# documentación sobre generación de instrucciones de análisis mediante API

Puedes generar conjuntos de instrucciones de análisis a través de la API proporcionando URLs y describiendo qué puntos de datos te gustaría analizar. Al recibir las instrucciones de análisis generadas, puedes guardarlas como una [preseteo del analizador](/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 análisis a través de [OxyCopilot](/products/es/web-scraper-api/web-scraper-api-playground/oxycopilot.md) en nuestro Web Scraper API Playground.

## Generar instrucciones a partir de un prompt

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

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

### Carga de ejemplo

```json
{ 
  "prompt_text": "Parse title of the product, main price, developer name and platform name.",
  "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 análisis. Recomendamos proporcionar de 3 a 5 URLs para ayudar al analizador a adaptarse a diferentes diseños y mejorar la precisión del análisis.</td></tr><tr><td><code>render</code></td><td>Si se debe usar o no el renderizado de JS para obtener el contenido requerido. </td></tr></tbody></table>

&#x20;    \- parámetro obligatorio

### Respuesta de ejemplo

```json
{
    "parsing_instructions": {
        "developer_name": {
            "_fns": [
                {
                    "_args": [
                        "//div[contains(@class, 'brand-wrapper')]//span[@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"
                }
            ]
        },
        "title": {
            "_fns": [
                {
                    "_args": [
                        "//div[contains(@class, 'product-info-wrapper')]//h2/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 análisis que se ajusten estrictamente al esquema que proporciones.

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

### Carga de ejemplo

```json
{
  "urls": [
    "https://oxylabs.io",
    "https://example.com",
    "https://bbc.co.uk"
  ],
  "prompt_schema": {
    "properties": {
      "links": {
        "description": "Un array 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 analizador.</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 análisis.</td></tr><tr><td><code>render</code></td><td>Si se debe usar o no el renderizado de JS para obtener el contenido requerido. </td></tr></tbody></table>

&#x20;    \- parámetro obligatorio

### Respuesta de ejemplo

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


---

# Agent Instructions: 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:

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

The question should be specific, self-contained, and written in natural language.
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.
