# Rechercher des connaissances techniques (/fr/api/search-index/search)

<!-- agent-signals: reading_time_min: 4 · est_tokens: 2678 · updated: 2026-09-23 -->
Related: [API REST Mintlify Index](/fr/api/search-index/introduction.md), [Construire le contexte d’implémentation](/fr/api/search-index/context.md), [Obtenir le contenu des résultats](/fr/api/search-index/contents.md)



`POST /v1/search`

Renvoie des résultats classés issus de la documentation gérée par les éditeurs ou du web. Utilisez les identifiants de résultats Mintlify ou l’URL de n’importe quel résultat avec le point de terminaison contents lorsque vous avez besoin de davantage de contenu.

## OpenAPI

```json
{
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "query",
            "numResults"
          ],
          "properties": {
            "query": {
              "type": "string",
              "minLength": 1,
              "description": "Requête de recherche."
            },
            "numResults": {
              "type": "integer",
              "minimum": 1,
              "maximum": 20,
              "description": "Nombre maximal de résultats à renvoyer."
            },
            "text": {
              "default": false,
              "description": "Contrôle le contenu des résultats. Définissez `true` pour inclure le contenu correspondant, `false` pour l’omettre, ou fournissez `maxCharacters` pour inclure du contenu tronqué. En l’absence de valeur, le paramètre vaut `false`.",
              "oneOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "object",
                  "additionalProperties": false,
                  "required": [
                    "maxCharacters"
                  ],
                  "properties": {
                    "maxCharacters": {
                      "type": "integer",
                      "minimum": 1,
                      "description": "Nombre maximal de caractères de contenu à inclure par résultat."
                    }
                  }
                }
              ]
            },
            "includeDomains": {
              "type": "array",
              "minItems": 1,
              "items": {
                "type": "string",
                "minLength": 1
              },
              "description": "Domaines à inclure dans les résultats de recherche."
            },
            "excludeDomains": {
              "type": "array",
              "minItems": 1,
              "items": {
                "type": "string",
                "minLength": 1
              },
              "description": "Domaines à exclure des résultats de recherche."
            }
          }
        },
        "example": {
          "query": "Mise en cache et revalidation dans Next.js 16",
          "numResults": 5,
          "text": {
            "maxCharacters": 4000
          },
          "includeDomains": [
            "nextjs.org"
          ]
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Recherche terminée avec succès.",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "requestId",
              "results"
            ],
            "properties": {
              "requestId": {
                "type": "string",
                "description": "Identifiant unique de la requête."
              },
              "results": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": false,
                  "required": [
                    "id",
                    "url",
                    "title",
                    "text",
                    "score",
                    "source",
                    "siteName",
                    "breadcrumbs",
                    "publishedDate"
                  ],
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "Identifiant du résultat. Transmettez les identifiants des résultats Mintlify dans le champ `ids` de la requête contents. Pour les résultats web, transmettez l’URL du résultat dans `urls`."
                    },
                    "url": {
                      "type": "string",
                      "format": "uri",
                      "description": "URL canonique de la source."
                    },
                    "title": {
                      "type": "string",
                      "description": "Titre de la source."
                    },
                    "text": {
                      "type": "string",
                      "description": "Contenu correspondant lorsqu’il est demandé. Sinon, une chaîne vide."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Indique si le contenu renvoyé est plus court que le contenu disponible."
                    },
                    "totalCharacters": {
                      "type": "integer",
                      "minimum": 0,
                      "description": "Nombre de caractères disponibles avant troncature. Présent lorsqu’il est disponible."
                    },
                    "score": {
                      "type": "number",
                      "description": "Score de pertinence relatif. Les réponses contents utilisent `0`, car elles récupèrent des éléments sélectionnés au lieu de classer les résultats."
                    },
                    "source": {
                      "type": "string",
                      "enum": [
                        "mintlify",
                        "web"
                      ],
                      "description": "Source de récupération."
                    },
                    "siteName": {
                      "type": "string",
                      "description": "Site de documentation ou nom d’hôte web."
                    },
                    "breadcrumbs": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "Hiérarchie documentaire du résultat."
                    },
                    "publishedDate": {
                      "type": "string",
                      "nullable": true,
                      "description": "Date de publication lorsque la source en fournit une, sinon `null`. Les résultats `search` la normalisent en horodatage ISO 8601 complet. Les résultats `contents` récupérés via `urls` transmettent la chaîne de date originale de la source sans normalisation ; il peut s’agir d’un horodatage complet ou d’une date seule."
                    }
                  }
                },
                "description": "Résultats de recherche classés."
              }
            }
          },
          "example": {
            "requestId": "3d8ed0aa-c21c-4a18-b995-207aa6315ea8",
            "results": [
              {
                "id": "nextjs:/docs/app/getting-started/caching-and-revalidating",
                "url": "https://nextjs.org/docs/app/getting-started/caching-and-revalidating",
                "title": "Mise en cache et revalidation",
                "text": "La mise en cache est une technique qui consiste à stocker le résultat de la récupération de données et d’autres calculs.",
                "truncated": false,
                "totalCharacters": 92,
                "score": 0.91,
                "source": "mintlify",
                "siteName": "nextjs",
                "breadcrumbs": [
                  "Routeur App",
                  "Premiers pas"
                ],
                "publishedDate": null
              }
            ]
          }
        }
      }
    },
    "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."
              }
            }
          }
        }
      }
    }
  }
}
```
