# Construire le contexte d’implémentation (/fr/api/search-index/context)

<!-- agent-signals: reading_time_min: 3 · est_tokens: 1825 · updated: 2026-09-23 -->
Related: [API REST Mintlify Index](/fr/api/search-index/introduction.md), [Rechercher des connaissances techniques](/fr/api/search-index/search.md), [Obtenir le contenu des résultats](/fr/api/search-index/contents.md)



`POST /v1/context`

Recherche dans Mintlify Index et renvoie du contenu accompagné de ses sources, assemblé dans une limite de jetons. Utilisez ce point de terminaison lorsqu’une application ou un agent a besoin d’un contexte prêt à l’emploi en une seule requête.

## OpenAPI

```json
{
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "query",
            "format"
          ],
          "properties": {
            "query": {
              "type": "string",
              "minLength": 1,
              "description": "Question d’implémentation à étudier."
            },
            "product": {
              "type": "string",
              "minLength": 1,
              "description": "Nom du produit ou de l’entreprise à utiliser comme indication de récupération supplémentaire."
            },
            "format": {
              "type": "string",
              "enum": [
                "txt",
                "json"
              ],
              "description": "Format de la chaîne `response`. `txt` renvoie des sections Markdown. `json` renvoie un objet JSON sérialisé contenant les éléments de résultat."
            },
            "includeDomains": {
              "type": "array",
              "minItems": 1,
              "items": {
                "type": "string",
                "minLength": 1
              },
              "description": "Domaines à inclure dans la récupération."
            },
            "excludeDomains": {
              "type": "array",
              "minItems": 1,
              "items": {
                "type": "string",
                "minLength": 1
              },
              "description": "Domaines à exclure de la récupération."
            },
            "tokenBudget": {
              "type": "integer",
              "minimum": 1,
              "maximum": 6000,
              "default": 3000,
              "description": "Nombre maximal de jetons en sortie."
            }
          }
        },
        "example": {
          "query": "Comment dois-je configurer la mise en cache dans Next.js 16 ?",
          "product": "Next.js",
          "format": "txt",
          "tokenBudget": 3000
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Contexte assemblé avec succès.",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "requestId",
              "query",
              "response",
              "resultsCount",
              "outputTokens"
            ],
            "properties": {
              "requestId": {
                "type": "string",
                "description": "Identifiant unique de la requête."
              },
              "query": {
                "type": "string",
                "description": "Requête d’origine."
              },
              "response": {
                "type": "string",
                "description": "Contenu source assemblé. La valeur est au format Markdown pour les requêtes `txt` et au format JSON sérialisé pour les requêtes `json`. La chaîne peut être vide lorsqu’aucun contenu ne tient dans la limite de jetons."
              },
              "resultsCount": {
                "type": "integer",
                "minimum": 0,
                "description": "Nombre d’extraits de sources inclus dans la réponse."
              },
              "outputTokens": {
                "type": "integer",
                "minimum": 0,
                "description": "Nombre de jetons dans la réponse assemblée."
              }
            }
          },
          "example": {
            "requestId": "7f2ab8d1-3bea-4a29-bc51-c05a8d3a3e3c",
            "query": "Comment dois-je configurer la mise en cache dans Next.js 16 ?",
            "response": "### Mise en cache et revalidation\n\nSource: https://nextjs.org/docs/app/getting-started/caching-and-revalidating\n\nUtilisez les API de mise en cache actuelles décrites dans ce guide.\n\n--------------------------------",
            "resultsCount": 3,
            "outputTokens": 1842
          }
        }
      }
    },
    "400": {
      "description": "Le corps de la requête n’est pas valide.",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "error"
            ],
            "properties": {
              "error": {
                "type": "string",
                "description": "Message d’erreur."
              }
            }
          },
          "example": {
            "error": "Corps de requête invalide"
          }
        }
      }
    },
    "401": {
      "description": "La clé d’API est absente ou invalide, ou l’organisation n’a pas accès à l’API REST Index.",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "error"
            ],
            "properties": {
              "error": {
                "type": "string",
                "description": "Message d’erreur."
              }
            }
          },
          "example": {
            "error": "Non autorisé"
          }
        }
      }
    },
    "403": {
      "description": "L’adresse IP de la requête n’est pas autorisée par la clé d’API.",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "error"
            ],
            "properties": {
              "error": {
                "type": "string",
                "description": "Message d’erreur."
              }
            }
          },
          "example": {
            "error": "L’adresse IP n’est pas autorisée pour cette clé d’API"
          }
        }
      }
    },
    "429": {
      "description": "L’organisation a dépassé une limite de débit.",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "error"
            ],
            "properties": {
              "error": {
                "type": "string",
                "description": "Message d’erreur."
              }
            }
          },
          "example": {
            "error": "Limite de débit dépassée. Veuillez réessayer plus tard"
          }
        }
      }
    },
    "500": {
      "description": "Index n’a pas pu terminer la requête.",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "error"
            ],
            "properties": {
              "error": {
                "type": "string",
                "description": "Message d’erreur."
              }
            }
          }
        }
      }
    }
  }
}
```
