# Buscar conocimientos técnicos (/es/api/search-index/search)

<!-- agent-signals: reading_time_min: 4 · est_tokens: 2701 · updated: 2026-09-23 -->
Related: [API REST de Mintlify Index](/es/api/search-index/introduction.md), [Crear contexto de implementación](/es/api/search-index/context.md), [Obtener contenido de resultados](/es/api/search-index/contents.md)



`POST /v1/search`

Devuelve resultados clasificados de documentación mantenida por sus editores o de la web. Usa los ID de resultados de Mintlify o cualquier URL de resultado con el endpoint de contenido cuando necesites más contenido.

## 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": "Consulta de búsqueda."
            },
            "numResults": {
              "type": "integer",
              "minimum": 1,
              "maximum": 20,
              "description": "Número máximo de resultados que se devolverán."
            },
            "text": {
              "default": false,
              "description": "Controla el contenido de los resultados. Establécelo en `true` para incluir contenido coincidente, en `false` para omitirlo o proporciona `maxCharacters` para incluir contenido truncado. Si se omite, el valor predeterminado es `false`.",
              "oneOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "object",
                  "additionalProperties": false,
                  "required": [
                    "maxCharacters"
                  ],
                  "properties": {
                    "maxCharacters": {
                      "type": "integer",
                      "minimum": 1,
                      "description": "Número máximo de caracteres de contenido que se incluirán por resultado."
                    }
                  }
                }
              ]
            },
            "includeDomains": {
              "type": "array",
              "minItems": 1,
              "items": {
                "type": "string",
                "minLength": 1
              },
              "description": "Dominios que se incluirán en los resultados de búsqueda."
            },
            "excludeDomains": {
              "type": "array",
              "minItems": 1,
              "items": {
                "type": "string",
                "minLength": 1
              },
              "description": "Dominios que se excluirán de los resultados de búsqueda."
            }
          }
        },
        "example": {
          "query": "Almacenamiento en caché y revalidación en Next.js 16",
          "numResults": 5,
          "text": {
            "maxCharacters": 4000
          },
          "includeDomains": [
            "nextjs.org"
          ]
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "La búsqueda se completó correctamente.",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "requestId",
              "results"
            ],
            "properties": {
              "requestId": {
                "type": "string",
                "description": "Identificador único de la solicitud."
              },
              "results": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": false,
                  "required": [
                    "id",
                    "url",
                    "title",
                    "text",
                    "score",
                    "source",
                    "siteName",
                    "breadcrumbs",
                    "publishedDate"
                  ],
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "Identificador del resultado. Pasa los ID de resultados de Mintlify en el campo `ids` de la solicitud de contenido. Para resultados web, pasa la URL del resultado en `urls`."
                    },
                    "url": {
                      "type": "string",
                      "format": "uri",
                      "description": "URL canónica de la fuente."
                    },
                    "title": {
                      "type": "string",
                      "description": "Título de la fuente."
                    },
                    "text": {
                      "type": "string",
                      "description": "Contenido coincidente cuando se solicita. De lo contrario, una cadena vacía."
                    },
                    "truncated": {
                      "type": "boolean",
                      "description": "Indica si el contenido devuelto es más corto que el contenido disponible."
                    },
                    "totalCharacters": {
                      "type": "integer",
                      "minimum": 0,
                      "description": "Número de caracteres disponibles antes del truncamiento. Está presente cuando está disponible."
                    },
                    "score": {
                      "type": "number",
                      "description": "Puntuación de relevancia relativa. Las respuestas de contenido usan `0` porque recuperan elementos seleccionados en lugar de clasificar resultados."
                    },
                    "source": {
                      "type": "string",
                      "enum": [
                        "mintlify",
                        "web"
                      ],
                      "description": "Fuente de recuperación."
                    },
                    "siteName": {
                      "type": "string",
                      "description": "Sitio de documentación o hostname web."
                    },
                    "breadcrumbs": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "Jerarquía de documentación del resultado."
                    },
                    "publishedDate": {
                      "type": "string",
                      "nullable": true,
                      "description": "Fecha de publicación cuando la fuente proporciona una; de lo contrario, `null`. Los resultados de `search` la normalizan a una marca de tiempo ISO 8601 completa. Los resultados de `contents` recuperados mediante `urls` transmiten la cadena de fecha original de la fuente sin normalizarla, que puede ser una marca de tiempo completa o una cadena que solo contenga la fecha."
                    }
                  }
                },
                "description": "Resultados de búsqueda clasificados."
              }
            }
          },
          "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": "Almacenamiento en caché y revalidación",
                "text": "El almacenamiento en caché es una técnica para guardar el resultado de la obtención de datos y otros cálculos.",
                "truncated": false,
                "totalCharacters": 92,
                "score": 0.91,
                "source": "mintlify",
                "siteName": "nextjs",
                "breadcrumbs": [
                  "Enrutador de aplicaciones",
                  "Primeros pasos"
                ],
                "publishedDate": null
              }
            ]
          }
        }
      }
    },
    "400": {
      "description": "El cuerpo de la solicitud no es válido.",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "error"
            ],
            "properties": {
              "error": {
                "type": "string",
                "description": "Mensaje de error."
              }
            }
          },
          "example": {
            "error": "Cuerpo de solicitud no válido"
          }
        }
      }
    },
    "401": {
      "description": "Falta la clave de API, no es válida o la organización no tiene acceso a la API REST de Index.",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "error"
            ],
            "properties": {
              "error": {
                "type": "string",
                "description": "Mensaje de error."
              }
            }
          },
          "example": {
            "error": "No autorizado"
          }
        }
      }
    },
    "403": {
      "description": "La IP de la solicitud no está permitida por la clave de API.",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "error"
            ],
            "properties": {
              "error": {
                "type": "string",
                "description": "Mensaje de error."
              }
            }
          },
          "example": {
            "error": "La dirección IP no está permitida para esta clave de API"
          }
        }
      }
    },
    "429": {
      "description": "La organización superó un límite de uso.",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "error"
            ],
            "properties": {
              "error": {
                "type": "string",
                "description": "Mensaje de error."
              }
            }
          },
          "example": {
            "error": "Límite de uso superado. Vuelve a intentarlo más tarde"
          }
        }
      }
    },
    "500": {
      "description": "Index no pudo completar la solicitud.",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "error"
            ],
            "properties": {
              "error": {
                "type": "string",
                "description": "Mensaje de error."
              }
            }
          }
        }
      }
    }
  }
}
```
