> 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/products/es/web-scraper-api/features/custom-parser/generating-parsing-instructions-via-api.md).

# Generación de instrucciones de análisis mediante API

Mira cómo puedes generar analizadores automáticamente enviando solicitudes a la API.

Puedes generar conjuntos de instrucciones de parseo mediante la API proporcionando URLs y describiendo qué puntos de datos te gustaría parsear. Al recibir las instrucciones de parseo generadas, puedes guardarlas como un [preajuste del parser](/products/es/web-scraper-api/features/custom-parser/parser-presets.md) o simplemente enviar las instrucciones con tu solicitud de scraping.

También puedes generar instrucciones de parseo mediante [OxyCopilot](/products/es/web-scraper-api/web-scraper-api-playground/oxycopilot.md) en nuestro Playground de Web Scraper API.

## Generar instrucciones a partir de un prompt

Puedes generar instrucciones de parseo introduciendo una descripción en texto libre de los puntos de datos que te gustaría parsear y dándonos algunas URLs que pertenezcan al mismo tipo de página. La API responderá con un conjunto de instrucciones de parseo.

* **Endpoint**: `https://data.oxylabs.io/v1/parsers/generate-instructions/prompt`
* **Método**: `POST`
* **Autenticación**: `Basic`
* **Encabezados de la solicitud**: `Content-Type: application/json`

### Ejemplo de carga útil

```json
{ 
  "prompt_text": "Analiza el título del producto, el precio principal, el nombre del desarrollador y el nombre de la plataforma.",
  "urls": [
    "https://sandbox.oxylabs.io/products/1",
    "https://sandbox.oxylabs.io/products/2",
    "https://sandbox.oxylabs.io/products/4"
  ],
  "render": false
}
```

<table><thead><tr><th width="177.1328125">Parámetro</th><th>Descripción</th></tr></thead><tbody><tr><td><mark style="background-color:green;"><strong><code>prompt_text</code></strong></mark></td><td>Descripción en texto libre de los puntos de datos que se analizarán.</td></tr><tr><td><mark style="background-color:green;"><strong><code>urls</code></strong></mark></td><td>Lista de URLs que ejemplifican el tipo de página para el que quieres obtener instrucciones de parseo. La API acepta hasta 5 URLs. Recomendamos proporcionar de 3 a 5 URLs para ayudar al parser a adaptarse a distintos diseños y mejorar la precisión del parseo.</td></tr><tr><td><code>render</code></td><td>Indica si se debe usar renderizado de JS para obtener el contenido requerido.</td></tr></tbody></table>

\- parámetro obligatorio

### Respuesta de ejemplo

```json
{
    "parsing_instructions": {
        "developer_name": {
            "_fns": [
                {
                    "_args": [
                        "//div[contains(@class, 'brand-wrapper')]//span[contains(@class, 'brand developer')]"
                    ],
                    "_fn": "xpath"
                },
                {
                    "_args": [
                        "normalize-space(.)"
                    ],
                    "_fn": "xpath"
                },
                {
                    "_args": " ",
                    "_fn": "join"
                }
            ]
        },
        "main_price": {
            "_fns": [
                {
                    "_args": [
                        "//div[contains(@class, 'product-info-wrapper')]//div[contains(@class, 'price')]/text()"
                    ],
                    "_fn": "xpath_one"
                },
                {
                    "_fn": "amount_from_string"
                }
            ]
        },
        "platform_name": {
            "_fns": [
                {
                    "_args": [
                        "//span[contains(@class, 'game-platforms-wrapper')]",
                        "//div[contains(@class, 'brand-wrapper')]//span[contains(@class, 'game-platforms-wrapper')]"
                    ],
                    "_fn": "xpath"
                },
                {
                    "_args": [
                        "normalize-space(.)"
                    ],
                    "_fn": "xpath"
                },
                {
                    "_args": " ",
                    "_fn": "join"
                }
            ]
        },
        "title": {
            "_fns": [
                {
                    "_args": [
                        "//div[contains(@class, 'product-info-wrapper')]//h2/text()",
                        "//div[contains(@class, 'product-info-wrapper')]//h2[contains(@class, 'title')]/text()"
                    ],
                    "_fn": "xpath_one"
                },
                {
                    "_args": [
                        "^\\s*(.[\\s\\S]*?)\\s*$",
                        1
                    ],
                    "_fn": "regex_search"
                }
            ]
        }
    },
    "prompt_schema": {
        "properties": {
            "developer_name": {
                "description": "Nombre del desarrollador.",
                "title": "Nombre del desarrollador",
                "type": "string"
            },
            "main_price": {
                "description": "Precio principal del producto.",
                "title": "Precio principal",
                "type": "number"
            },
            "platform_name": {
                "description": "Nombre de la plataforma.",
                "title": "Nombre de la plataforma",
                "type": "string"
            },
            "title": {
                "description": "Título del producto.",
                "title": "Título",
                "type": "string"
            }
        },
        "required": [
            "title",
            "main_price",
            "developer_name",
            "platform_name"
        ],
        "title": "Campos",
        "type": "object"
    }
}
```

## Generar instrucciones a partir de un esquema JSON

Hay casos en los que quieres obtener datos analizados en un esquema JSON específico. Puedes usar este endpoint para obtener instrucciones de parseo que se adhieran estrictamente al esquema que proporciones.

* **Endpoint**: `https://data.oxylabs.io/v1/parsers/generate-instructions/schema`
* **Método**: `POST`
* **Autenticación**: `Basic`
* **Encabezados de la solicitud**: `Content-Type: application/json`

### Ejemplo de carga útil

```json
{
  "urls": [
    "https://oxylabs.io",
    "https://example.com",
    "https://bbc.co.uk"
  ],
  "prompt_schema": {
    "type": "object",
    "properties": {
      "links": {
        "description": "Un arreglo de cadenas de URL",
        "type": "array",
        "items": {
          "type": "string",
          "description": "Una URL"
        }
      }
    },
    "required": [
      "links"
    ]
  },
  "render": false
}
```

<table><thead><tr><th width="177.1328125">Parámetro</th><th>Descripción</th></tr></thead><tbody><tr><td><mark style="background-color:green;"><strong><code>prompt_schema</code></strong></mark></td><td><a href="https://json-schema.org/">esquema JSON</a> que describe la salida requerida del parser.</td></tr><tr><td><mark style="background-color:green;"><strong><code>urls</code></strong></mark></td><td>Lista de URLs que ejemplifican el tipo de página para el que quieres obtener instrucciones de parseo. La API acepta hasta 5 URLs.</td></tr><tr><td><code>render</code></td><td>Indica si se debe usar renderizado de JS para obtener el contenido requerido.</td></tr></tbody></table>

\- parámetro obligatorio

### Respuesta de ejemplo

```json
{
    "parsing_instructions": {
            "links": {
                "_fns": [
                    {
                        "_args": [
                            "//a[@href and normalize-space(@href) != '']/@href"
                        ],
                        "_fn": "xpath"
                    }
                ]
            }
        }
}
```


---

# 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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://developers.oxylabs.io/products/es/web-scraper-api/features/custom-parser/generating-parsing-instructions-via-api.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
