> For the complete documentation index, see [llms.txt](https://developers.oxylabs.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developers.oxylabs.io/api-reference/es/endpoints-principales.md).

# Endpoints principales

Referencia de los dos endpoints principales de la Web API, /search y /scrape: parámetros, esquema de respuesta y ejemplos.

<table><thead><tr><th width="184">Punto de conexión</th><th>Devuelve</th></tr></thead><tbody><tr><td><a href="#post-v1-search"><code>/search</code></a></td><td>Resultados orgánicos web clasificados</td></tr><tr><td><a href="#post-v1-scrape"><code>/scrape</code></a></td><td>Extrae contenido de la URL</td></tr></tbody></table>

### `POST /v1/search`

Resultados orgánicos web clasificados.

**Modos:** `sincrónico` solo

#### **Esquema de la solicitud**

```bash
curl https://webapi.oxylabs.io/v1/search \
  -H "Authorization: Bearer $OXYLABS_WEB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query": "eu ai act compliance deadlines", "max_results": 3, "location": "DE"}'
```

<table><thead><tr><th width="122">Parámetro</th><th width="88.5">Tipo</th><th width="84.5">Requerido</th><th>Descripción</th></tr></thead><tbody><tr><td><code>query</code></td><td>cadena</td><td>Sí</td><td>Frase de búsqueda por palabra clave. <code>1</code> hasta <code>2048</code> caracteres.</td></tr><tr><td><code>max_results</code></td><td>entero</td><td>No</td><td>Número de resultados a devolver. <code>1</code>–<code>20</code>. por defecto <code>10</code></td></tr><tr><td><code>location</code></td><td>cadena</td><td>No</td><td>Código de país ISO 3166-1 alfa-2, por ejemplo <code>DE</code>. por defecto <code>null</code></td></tr></tbody></table>

#### **Respuesta**

{% code expandable="true" %}

```json
{
  "state": "done",
  "results": [
    {
      "title": "Implementation Timeline | EU Artificial Intelligence Act",
      "outline": [
        "Date 2 August 2025 Providers: need to be compliant..."
      ],
      "url": "https://artificialintelligenceact.eu/implementation-timeline/",
      "metadata": {
        "position": 1
      }
    }
  ],
  "related_questions": [
    {
      "question": "When does the EU AI Act take effect?",
      "title": "Implementation Timeline | EU Artificial Intelligence Act",
      "snippet": "The Act applies in stages, beginning in August 2024."
    }
  ],
  "related_searches": [
    { "query": "ai act timeline" }
  ],
  "params": {
    "query": "eu ai act compliance deadlines",
    "location": "DE",
    "max_results": 3
  },
  "metadata": {
    "timestamp": 1787431568,
    "request_id": "1788875675880097469"
  }
}
```

{% endcode %}

<table><thead><tr><th width="265">Campo</th><th width="84">Tipo</th><th>Descripción</th></tr></thead><tbody><tr><td><code>state</code></td><td>cadena</td><td><code>done</code>. <code>faulted</code> en un <code>500</code></td></tr><tr><td><code>results[]</code></td><td>arreglo</td><td>Resultados orgánicos clasificados, los mejores primero. Vacío cuando no hubo coincidencias</td></tr><tr><td><code>results[].title</code></td><td>cadena</td><td>Título de la página</td></tr><tr><td><code>results[].outline</code></td><td>arreglo de cadenas</td><td>Fragmentos de contenido. Cada elemento está truncado</td></tr><tr><td><code>results[].url</code></td><td>cadena</td><td>URL absoluta del resultado</td></tr><tr><td><code>results[].metadata.position</code></td><td>entero</td><td>Rango, comenzando en <code>1</code></td></tr><tr><td><code>related_questions[]</code></td><td>arreglo</td><td>Entradas de "People also ask". Se omite cuando está vacío</td></tr><tr><td><code>related_questions[].question</code></td><td>cadena</td><td>La pregunta. Siempre presente</td></tr><tr><td><code>related_questions[].title</code></td><td>cadena</td><td>Título de la página de respuesta <em>(Opcional)</em></td></tr><tr><td><code>related_questions[].snippet</code></td><td>cadena</td><td>Extracto que responde la pregunta. Truncado <em>(Opcional)</em></td></tr><tr><td><code>related_searches[]</code></td><td>arreglo</td><td>Consultas relacionadas, cada una con un <code>query</code>. Se omite cuando está vacío</td></tr><tr><td><code>params</code></td><td>objeto</td><td>Parámetros usados para la solicitud, con los valores predeterminados completados</td></tr><tr><td><code>metadata.timestamp</code></td><td>entero</td><td>Marca temporal Unix en segundos</td></tr><tr><td><code>metadata.request_id</code></td><td>cadena</td><td>Identificador de la solicitud</td></tr></tbody></table>

### `POST /v1/scrape`

Extrae datos de la URL y devuelve su contenido en los formatos solicitados.

**Modos:** `sincrónico`, `asíncrono`, `por lotes`

#### **Esquema de la solicitud**

```bash
curl https://webapi.oxylabs.io/v1/scrape \
  -H "Authorization: Bearer $OXYLABS_WEB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://artificialintelligenceact.eu/implementation-timeline/", "output": ["markdown"]}'
```

<table><thead><tr><th width="133">Parámetro</th><th width="93">Tipo</th><th width="90">Requerido</th><th>Descripción</th></tr></thead><tbody><tr><td><code>url</code></td><td>cadena</td><td>sí</td><td>Absoluta <code>http</code> o <code>https</code> URL. Envíela sin cambios; las cadenas de consulta y los segmentos de ruta son significativos</td></tr><tr><td><code>output</code></td><td>arreglo de cadenas</td><td>no</td><td>Formatos a devolver: <code>["html"]</code> (predeterminado), <code>["markdown"]</code>, <code>["json"]</code>, <code>["screenshot"]</code>.<br><code>json</code> devuelve campos analizados (mediante analizadores dedicados o <a href="/products/web-api/scrape/ai-parsing.md">análisis con IA</a>). <code>screenshot</code> requiere <code>run_js: true</code></td></tr><tr><td><code>json</code></td><td>objeto</td><td>no</td><td>Requerido cuando <code>output</code> incluye <code>json</code> (y no hay un analizador dedicado disponible): <code>{"prompt": string}</code> o <code>{"schema": object}</code>, nunca ambos</td></tr><tr><td><code>json.prompt</code></td><td>cadena</td><td>no</td><td>Instrucciones de extracción en lenguaje natural para <code>output: ["json"]</code>. <code>max_len: 8192</code>, por defecto: <code>null</code>. No se puede usar con <code>json.schema</code>.</td></tr><tr><td><code>json.schema</code></td><td>objeto</td><td>no</td><td>Objeto OpenAPI / JSON Schema que define la forma requerida de la salida JSON. <code>10</code> hasta <code>65535</code> caracteres, por defecto: <code>null</code>. No se puede usar con <code>json.prompt</code></td></tr><tr><td><code>location</code></td><td>cadena</td><td>no</td><td>Código de país de dos letras para obtener, por ejemplo <code>DE</code></td></tr><tr><td><code>device</code></td><td>cadena</td><td>no</td><td><code>escritorio</code> (predeterminado) o <code>móvil</code></td></tr><tr><td><code>run_js</code></td><td>booleano</td><td>no</td><td>Ejecuta el JavaScript de la página antes de la captura. Más lento; use un tiempo de espera del cliente de 150 segundos o más</td></tr><tr><td><code>callback_url</code></td><td>cadena</td><td>no</td><td><strong>Solo asíncrono.</strong> URL de webhook para el trabajo finalizado. Las URL mal formadas se rechazan con <code>400</code></td></tr><tr><td><code>storage</code></td><td>objeto</td><td>no</td><td><strong>Solo asíncrono.</strong> Entrega el resultado a un bucket en lugar de la respuesta: <code>{"type": string, "url": string}</code>. <code>type</code> es <code>s3</code>, <code>s3_gzip</code>, <code>s3_compatible</code>, <code>gcs</code>, o <code>tos</code>. <code>url</code> no se valida</td></tr></tbody></table>

{% hint style="warning" %}
Las páginas con un **analizador dedicado** (p. ej. [páginas de producto de Bed Bath & Beyond](/api-reference/es/scrapers-dedicados/scrapers-de-comercio.md#post-v1-scrape-bedbathandbeyond-product)) se analizan automáticamente y no necesitan ningún `json` parámetro con `prompt` o `schema`. Incluirlos anula los analizadores dedicados existentes.
{% endhint %}

#### **Respuesta**

{% code expandable="true" %}

```json
{
  "state": "done",
  "results": [
    {
      "html": "107.175.25.67\n",
      "metadata": {
        "page": 1,
        "run_js": false,
        "url": "https://ip.oxylabs.io/",
        "statuses": {
          "http_request": {
            "code": 200,
            "tag": "HTTP_OK"
          }
        }
      }
    }
  ],
  "params": {
    "url": "https://ip.oxylabs.io",
    "output": ["html"],
    "json": { "schema": null, "prompt": null },
    "location": null,
    "device": "desktop",
    "run_js": null,
    "storage": {
      "type": "s3",
      "url": "oxylabs.test/7517848208047890433.json"
    },
    "callback_url": null,
    "client_notes": null
  },
  "metadata": {
    "timestamp": 1792394688,
    "request_id": "7517848208047890433",
    "statuses": {
      "storage_upload": {
        "code": 13000,
        "tag": "UPLOAD_SUCCESS"
      }
    }
  }
}
```

{% endcode %}

<table><thead><tr><th width="215">Campo</th><th width="81">Tipo</th><th>Descripción</th></tr></thead><tbody><tr><td><code>state</code></td><td>cadena</td><td><code>done</code>, <code>pendiente</code>, o <code>faulted</code></td></tr><tr><td><code>estado</code></td><td>entero</td><td>Presente en respuestas de error. Código de estado HTTP</td></tr><tr><td><code>results[]</code></td><td>arreglo</td><td>Una entrada para la URL solicitada. Presente cuando <code>state</code> es <code>done</code></td></tr><tr><td><code>results[].markdown</code></td><td>cadena</td><td>La página como Markdown. Presente cuando se solicita</td></tr><tr><td><code>results[].html</code></td><td>cadena</td><td>El marcado sin procesar. Presente cuando se solicita</td></tr><tr><td><code>results[].json</code></td><td>objeto</td><td>Campos analizados. Presente cuando se solicita</td></tr><tr><td><code>results[].screenshot</code></td><td>cadena</td><td>La captura de pantalla. Presente cuando se solicita</td></tr><tr><td><code>results[].metadata.url</code></td><td>cadena</td><td>La URL obtenida, después de las redirecciones</td></tr><tr><td><code>results[].metadata.statuses</code></td><td>objeto</td><td>Estados etiquetados de procesamiento HTTP, análisis y otros</td></tr><tr><td><code>params</code></td><td>objeto</td><td>Parámetros usados para la solicitud, con los valores predeterminados completados. Los valores nulos se conservan</td></tr><tr><td><code>metadata.timestamp</code></td><td>entero</td><td>Marca temporal Unix en segundos</td></tr><tr><td><code>metadata.request_id</code></td><td>cadena</td><td>Identificador de la solicitud</td></tr><tr><td><code>metadata.statuses</code></td><td>objeto</td><td>Estados etiquetados a nivel de solicitud, como el estado de entrega de almacenamiento</td></tr></tbody></table>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://developers.oxylabs.io/api-reference/es/endpoints-principales.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
