> ## Documentation Index
> Fetch the complete documentation index at: https://docs.olostep.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Crear búsqueda

> Busca en la web con una consulta en lenguaje natural y obtén una lista deduplicada de enlaces relevantes con títulos y descripciones.  Buscará la consulta semánticamente en toda la web y devolverá resultados.  Opcionalmente, pasa `scrape_options` para también raspar cada URL devuelta e incrustar `markdown_content` / `html_content` directamente en cada enlace. Los raspados de página se facturan automáticamente a tu equipo a través del endpoint subyacente /v1/scrapes.  Consulta [Función de Búsqueda](/features/search).



## OpenAPI

````yaml es/openapi/search.json POST /v1/searches
openapi: 3.0.3
info:
  title: API de Búsqueda
  version: 1.1.0
servers:
  - url: https://api.olostep.com
security: []
paths:
  /v1/searches:
    post:
      summary: Crear Búsqueda
      description: >-
        Busca en la web con una consulta en lenguaje natural y obtén una lista
        deduplicada de enlaces relevantes con títulos y descripciones.  Buscará
        la consulta semánticamente en toda la web y devolverá resultados. 
        Opcionalmente, pasa `scrape_options` para también raspar cada URL
        devuelta e incrustar `markdown_content` / `html_content` directamente en
        cada enlace. Los raspados de página se facturan automáticamente a tu
        equipo a través del endpoint subyacente /v1/scrapes.  Consulta [Función
        de Búsqueda](/features/search).
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                query:
                  type: string
                  description: La consulta de búsqueda en lenguaje natural.
                  example: What's going on with OpenAI's Sora shutting down?
                limit:
                  type: integer
                  description: >-
                    Número máximo de enlaces a devolver después de la
                    deduplicación.
                  minimum: 1
                  maximum: 25
                  default: 12
                  example: 10
                include_domains:
                  type: array
                  description: >-
                    Restringe los resultados a estos dominios. Solo hosts
                    básicos — el `http(s)://` inicial y las barras finales se
                    eliminan automáticamente.
                  items:
                    type: string
                  example:
                    - nytimes.com
                    - wsj.com
                exclude_domains:
                  type: array
                  description: >-
                    Excluye resultados de estos dominios. Solo hosts básicos —
                    el `http(s)://` inicial y las barras finales se eliminan
                    automáticamente.
                  items:
                    type: string
                  example:
                    - reddit.com
                fast_mode:
                  type: boolean
                  description: >-
                    Solicita una búsqueda directa y de baja latencia usando tu
                    consulta tal cual. El modo predeterminado realiza una
                    búsqueda más amplia para una mayor cobertura de resultados.
                  default: false
                scrape_options:
                  $ref: '#/components/schemas/ScrapeOptions'
              required:
                - query
            examples:
              minimal:
                summary: Mínimo — solo consulta
                value:
                  query: Best Answer Engine Optimization startups
              withScrape:
                summary: Con scrape_options + filtros de dominio + límite
                value:
                  query: What's going on with OpenAI's Sora shutting down?
                  limit: 10
                  include_domains:
                    - nytimes.com
                    - wsj.com
                  exclude_domains:
                    - pinterest.com
                  scrape_options:
                    formats:
                      - markdown
                    remove_css_selectors: default
                    timeout: 25
      responses:
        '200':
          description: Respuesta exitosa con resultados de búsqueda.
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    example: search_9bi0sbj9xa
                  object:
                    type: string
                    example: search
                  created:
                    type: integer
                    example: 1760327323
                  metadata:
                    type: object
                  query:
                    type: string
                    example: Best Answer Engine Optimization startups
                  credits_consumed:
                    type: integer
                    description: >-
                      Créditos totales consumidos por esta solicitud: 5 créditos
                      base de búsqueda + suma de créditos por página de scrape
                      cuando se usó scrape_options.
                    example: 10
                  result:
                    type: object
                    properties:
                      json_content:
                        type: string
                        description: >-
                          JSON convertido a cadena del resultado completo de la
                          búsqueda.
                      json_hosted_url:
                        type: string
                        description: URL al archivo JSON alojado en S3.
                        nullable: true
                      links:
                        type: array
                        description: >-
                          Lista deduplicada de enlaces relevantes encontrados en
                          múltiples búsquedas. Cada enlace puede incluir
                          `markdown_content` y/o `html_content` cuando se
                          proporcionaron scrape_options.
                        items:
                          $ref: '#/components/schemas/SearchLink'
                      size_exceeded:
                        type: boolean
                        description: >-
                          Verdadero cuando el contenido en línea por enlace
                          excedió el límite de seguridad de 9MB. Cuando es
                          verdadero, los campos de contenido se anulan en la
                          respuesta — usa json_hosted_url para obtener la carga
                          completa.
                      credits_consumed:
                        type: integer
                        description: Mismo valor que credits_consumed a nivel superior.
        '400':
          description: >-
            Solicitud incorrecta — validación fallida (consulta faltante, límite
            no válido, valor de scrape_options.formats no soportado, etc.). El
            cuerpo de la respuesta es `{ "message": "<reason>" }`.
        '401':
          description: Clave API Inválida
        '500':
          description: Error Interno del Servidor
      security:
        - Authorization: []
components:
  schemas:
    ScrapeOptions:
      type: object
      description: >-
        Opcional. Cuando se proporciona, cada enlace devuelto también se raspa y
        su contenido se incrusta en la respuesta. Los créditos de raspado por
        página se facturan automáticamente por el endpoint subyacente
        /v1/scrapes.
      properties:
        formats:
          type: array
          description: >-
            Formatos de salida para solicitar para cada página raspada. Por
            defecto es ['markdown'] cuando se omite. Por ahora, solo se admiten
            'html' y 'markdown' en /v1/searches.
          items:
            type: string
            enum:
              - html
              - markdown
          default:
            - markdown
          example:
            - markdown
        remove_css_selectors:
          type: string
          description: >-
            Opción para eliminar ciertos selectores CSS del contenido. Se
            reenvía a /v1/scrapes. Por defecto es 'default', que elimina
            ['nav','footer','script','style','noscript','svg',[role=alert],[role=banner],[role=dialog],[role=alertdialog],[role=region][aria-label*=skip
            i],[aria-modal=true]]. Pasa 'none' para desactivar, o un array JSON
            en forma de cadena de selectores para eliminar.
          default: default
        timeout:
          type: integer
          description: >-
            Presupuesto de tiempo en segundos para toda la fase de raspado.
            Después de que esto expire, la búsqueda devuelve con los enlaces
            disponibles — los campos de contenido serán nulos para cualquier
            enlace que no haya terminado de rasparse.
          minimum: 1
          maximum: 60
          default: 25
    SearchLink:
      type: object
      properties:
        url:
          type: string
          description: La URL del resultado.
        title:
          type: string
          nullable: true
          description: El título de la página de resultados.
        description:
          type: string
          nullable: true
          description: Un breve fragmento o descripción del resultado.
        markdown_content:
          type: string
          nullable: true
          description: >-
            Contenido en Markdown de la página. Solo presente cuando
            scrape_options.formats incluye 'markdown'. Nulo si el raspado falló,
            estaba vacío o alcanzó el tiempo de espera global. Para URLs de
            comentarios de Reddit, esto se genera a partir del JSON estructurado
            del analizador @olostep/reddit-post para mayor calidad.
        html_content:
          type: string
          nullable: true
          description: >-
            Contenido en HTML de la página. Solo presente cuando
            scrape_options.formats incluye 'html'. Nulo si el raspado falló,
            estaba vacío o alcanzó el tiempo de espera global.
  securitySchemes:
    Authorization:
      type: http
      scheme: bearer
      description: >-
        Encabezado de autenticación Bearer de la forma Bearer <token>, donde
        <token> es tu token de autenticación.

````