> 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/scheduler.md).

# Scheduler

Automatiza trabajos de scraping recurrentes con el Scheduler gratuito en Web Scraper API. Define la frecuencia con cron, especifica los elementos del trabajo y la hora de finalización, y supervisa las ejecuciones mediante endpoints dedicados.

[**Scheduler**](https://oxylabs.io/features/scheduler) es una **función gratuita** de Web Scraper API que te permite automatizar trabajos recurrentes de scraping y parsing creando programaciones.

Mira el videotutorial a continuación para aprender más sobre Scheduler y cómo funciona.

{% embed url="<https://www.youtube.com/watch?v=HJLkFZ_9Z5w>" %}
Guía paso a paso para automatizar tus trabajos recurrentes de scraping usando Scheduler
{% endembed %}

Recomendamos usar Scheduler junto con la [**Subir a Cloud Storage**](/products/es/web-scraper-api/features/result-processing-and-storage/cloud-storage.md) función. De esta manera, puedes configurar tu programación y recibir actualizaciones periódicas de datos en tu almacenamiento sin intentar obtener resultados de nuestro sistema.

{% hint style="warning" %}
**IMPORTANTE**: Scheduler es una herramienta poderosa que puede aumentar rápidamente tu factura de servicio. Recomendamos probarla con unos pocos elementos de trabajo y un número limitado de repeticiones para asegurarte de obtener los datos correctos en los intervalos correctos. Una vez que eso esté establecido, puedes detener la programación de prueba y crear una nueva programación ampliada.
{% endhint %}

## Inicio rápido

Al crear una nueva programación, sigue los simples pasos a continuación.

1. Indícanos **con qué frecuencia debemos repetir los trabajos** enviando una expresión cron;
2. Danos **un conjunto de parámetros de trabajo** que debemos ejecutar en los momentos programados;
3. Avísanos **cuándo detenernos** enviando una hora de finalización.

Ver [**aquí**](#create-a-new-schedule) para encontrar un ejemplo de código para enviar una nueva programación.

{% hint style="info" %}
**NOTA**: También puedes descargar e importar [**esta colección de Postman**](https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FiwDdoZGfMbUe5cRL2417%2Fuploads%2FsipIxRVxZmZroadwSuqg%2FScheduler.postman_collection.json?alt=media\&token=dac92525-e5cc-43c2-a8eb-a32e8eba0483) para probar todos nuestros endpoints de Scheduler. ¿Eres nuevo en Postman? Aprende más sobre esta herramienta [**aquí**](/integrations/es/web-scraper-api-integrations/postman.md).
{% endhint %}

## Endpoints

Scheduler tiene varios endpoints que puedes usar para controlar el servicio:

* [**Crear una nueva programación**](#1.-create-a-new-schedule)
* [**Obtener todas las programaciones**](#get-all-schedules)
* [**Obtener** **ejecuciones** **información**](#get-runs-information)
* [**Obtener trabajos programados**](#get-scheduled-jobs)
* [**Obtener información de la programación**](#get-schedule-info)
* [**Desactivar o reactivar una programación**](#change-schedule-state)

### Crear una nueva programación

#### Resumen

Usa este endpoint para iniciar una nueva programación.

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

**Entrada**

<table><thead><tr><th width="125">Parámetro</th><th width="477.3333333333333">Descripción</th><th>Valor predeterminado</th></tr></thead><tbody><tr><td><mark style="background-color:green;"><strong><code>cron</code></strong></mark></td><td>Expresión cron de programación. Determina con qué frecuencia se ejecutará la programación enviada. Leer más <a href="https://crontab.guru/"><strong>aquí</strong></a> y <a href="https://docs.oracle.com/cd/E12058_01/doc/doc.1014/e12030/cron_expressions.htm"><strong>aquí</strong></a>.</td><td>-</td></tr><tr><td><mark style="background-color:green;"><strong><code>elementos</code></strong></mark></td><td>Lista de conjuntos de parámetros de trabajo de Scraper API que deben ejecutarse como parte de la programación.</td><td>-</td></tr><tr><td><mark style="background-color:green;"><strong><code>end_time</code></strong></mark></td><td>La hora en la que la programación debe dejar de ejecutarse. NB: la hora de finalización es inclusiva.</td><td>-</td></tr></tbody></table>

\- parámetro requerido

{% hint style="info" %}
**NOTA**: Para obtener orientación sobre cómo preparar conjuntos de parámetros de trabajo para la **`elementos`** parte de la carga útil de Scheduler, consulta la página de documentación del scraper específico que quieras usar (p. ej., [**Google**](/api-targets/es/search-engines/google.md), [**Amazon**](/api-targets/es/e-commerce/amazon.md), etc.).
{% endhint %}

La carga útil de abajo hará que Scheduler ejecute dos trabajos a las 03:00 los lunes hasta `end_time` (inclusive).

```json
{
  "cron": "0 3 * * 1",
  "items": [
    {"source": "universal", "url": "https://ip.oxylabs.io"},
    {"source": "google_search", "query": "stuff"}
  ],
  "end_time": "2032-12-21 12:34:45"
}
```

#### Salida

La respuesta a continuación confirma que la programación se creó correctamente. Incluye `items_count` (el número de conjuntos de parámetros de trabajo que enviaste), la hora de la primera ejecución y enlaces a los `ejecuciones` y `trabajos` endpoints de la nueva programación.

```json
{
    "schedule_id": 168110763619310929,
    "active": true,
    "items_count": 2,
    "cron": "0 3 * * 1",
    "end_time": "2032-12-21 12:34:45",
    "next_run_at": "2026-09-21 03:00:00",
    "links": [
        {
            "rel": "runs",
            "href": "/v1/schedules/168110763619310929/runs",
            "method": "GET"
        },
        {
            "rel": "jobs",
            "href": "/v1/schedules/168110763619310929/jobs",
            "method": "GET"
        }
    ]
}
```

### Obtener todas las programaciones

#### Resumen

Usa este endpoint para obtener la lista de todas las programaciones asociadas con tu cuenta de usuario.

* **Endpoint**: `https://data.oxylabs.io/v1/schedules`
* **Método**: `GET`
* **Autenticación**: `Basic`

#### Salida

Este endpoint devuelve la lista de todos los IDs de programación asociados con la cuenta de usuario que hace la solicitud.

Consulta la respuesta de ejemplo a continuación. Los IDs de programación se devuelven como cadenas.

```json
{
    "schedules": [
        "168110763619310929",
        "195963006349271396",
        "1192925426751182410",
        "2482057452528425703"
    ]
}
```

### Obtener información de ejecuciones

#### Resumen

Usa este endpoint para obtener información sobre una lista de todas las ejecuciones de una programación, con los metadatos de cada trabajo y la tasa de éxito de cada ejecución.

* **Endpoint**: `https://data.oxylabs.io/v1/schedules/{id}/runs`
* **Método**: `GET`
* **Autenticación**: `Basic`

#### Salida

La carga útil de abajo contiene una respuesta de ejemplo `/runs` del endpoint.

```json
{
    "runs": [
        {
            "run_id": 105302280,
            "jobs": [
                {
                    "id": 7505291047442843649,
                    "create_status_code": 202,
                    "result_status": "done",
                    "created_at": "2026-09-14 15:47:07",
                    "result_created_at": "2026-09-14 15:47:09"
                }
            ],
            "success_rate": 1.0
        },
        {
            "run_id": 105302283,
            "jobs": [
                {
                    "id": 7505291294688676865,
                    "create_status_code": 202,
                    "result_status": "done",
                    "created_at": "2026-09-14 15:48:06",
                    "result_created_at": "2026-09-14 15:48:07"
                }
            ],
            "success_rate": 1.0
        }
    ]
}
```

<table><thead><tr><th width="216">Clave</th><th>Descripción</th><th>Tipo</th></tr></thead><tbody><tr><td><code>ejecuciones</code></td><td>Una colección de objetos de ejecución que representan instancias de ejecución de una tarea o flujo de trabajo programado.</td><td>Arreglo</td></tr><tr><td><code>ejecuciones</code>:<code>run_id</code></td><td>Un identificador único para la instancia de ejecución específica.</td><td>Entero</td></tr><tr><td><code>ejecuciones</code>:<code>trabajos</code></td><td>Una colección de objetos de trabajo que se ejecutaron como parte de esta ejecución.</td><td>Arreglo</td></tr><tr><td><code>ejecuciones</code>:<code>success_rate</code></td><td>La proporción de trabajos exitosos respecto al total de trabajos en esta ejecución (varía de 0 a 1).</td><td>Número</td></tr><tr><td><code>ejecuciones</code>:<code>trabajos</code>:<code>id</code></td><td>Un identificador único de Oxylabs para el trabajo específico.</td><td>Entero</td></tr><tr><td><code>ejecuciones</code>:<code>trabajos</code>:<code>create_status_code</code></td><td>Código de estado HTTP devuelto cuando se creó el trabajo, que indica la aceptación inicial de la solicitud del trabajo.</td><td>Entero</td></tr><tr><td><code>ejecuciones</code>:<code>trabajos</code>:<code>result_status</code></td><td>El estado de ejecución del trabajo: <code>pending</code>, <code>done</code> o <code>faulted</code>.</td><td>Cadena</td></tr><tr><td><code>ejecuciones</code>:<code>trabajos</code>:<code>created_at</code></td><td>Marca de tiempo en que se creó el trabajo</td><td>Cadena</td></tr><tr><td><code>ejecuciones</code>:<code>trabajos</code>:<code>result_created_at</code></td><td>Marca de tiempo en que el trabajo se completó y produjo un resultado</td><td>Cadena</td></tr></tbody></table>

### Obtener trabajos programados

#### Resumen

Usa este endpoint para obtener la lista de trabajos de scraping ejecutados como resultado de ejecutar una programación.

* **Endpoint**: `https://data.oxylabs.io/v1/schedules/{id}/jobs`
* **Método**: `GET`
* **Autenticación**: `Basic`

#### Salida

La carga útil de abajo contiene una respuesta de ejemplo: los IDs de todos los trabajos creados por la programación hasta ahora.

```json
{
    "jobs": [
        7505291047442843649,
        7505291294688676865
    ]
}
```

### Obtener información de la programación

#### Resumen

Usa este endpoint para obtener información sobre una programación específica.

* **Endpoint**: `https://data.oxylabs.io/v1/schedules/{id}`
* **Método**: `GET`
* **Autenticación**: `Basic`

#### Salida

La carga útil de abajo contiene una respuesta de ejemplo de información de la programación. Antes de la primera ejecución, `estadísticas` es un objeto vacío.

```json
{
    "schedule_id": 485005153871537982,
    "active": true,
    "items_count": 2,
    "cron": "26 8 * * *",
    "end_time": "2032-12-21 12:34:45",
    "next_run_at": "2026-09-16 08:26:00",
    "links": [
        {
            "rel": "runs",
            "href": "/v1/schedules/485005153871537982/runs",
            "method": "GET"
        },
        {
            "rel": "jobs",
            "href": "/v1/schedules/485005153871537982/jobs",
            "method": "GET"
        }
    ],
    "stats": {
        "total_job_count": 2,
        "job_create_outcomes": [
            {
                "status_code": 202,
                "job_count": 2,
                "ratio": 1.0
            }
        ],
        "job_result_outcomes": [
            {
                "status": "done",
                "job_count": 2,
                "ratio": 1.0
            }
        ]
    }
}
```

<table><thead><tr><th width="239.58203125">Clave</th><th width="395.515625">Descripción</th><th>Tipo</th></tr></thead><tbody><tr><td><code>schedule_id</code></td><td>El ID único de la programación.</td><td>Entero</td></tr><tr><td><code>active</code></td><td>¿La programación está activa ahora?</td><td>Booleano</td></tr><tr><td><code>items_count</code></td><td>El número de elementos (trabajos) de la programación.</td><td>Entero</td></tr><tr><td><code>cron</code></td><td>La expresión cron asociada con la programación.</td><td>Cadena</td></tr><tr><td><code>end_time</code></td><td>El momento en el que la programación dejará de repetirse.</td><td>Cadena</td></tr><tr><td><code>next_run_at</code></td><td>El momento en el que la programación se ejecutará la próxima vez.</td><td>Cadena</td></tr><tr><td><code>links</code></td><td>Una colección de objetos de enlace que define los endpoints de API disponibles relacionados con un recurso de programación.</td><td>Arreglo</td></tr><tr><td><code>links</code>:<code>rel</code></td><td>El identificador de relación que explica el propósito del enlace en relación con el recurso principal.</td><td>Cadena</td></tr><tr><td><code>links</code>:<code>href</code></td><td>La ruta URL al endpoint de API. Representa la ubicación del recurso a la que se puede acceder.</td><td>Cadena</td></tr><tr><td><code>links</code>:<code>method</code></td><td>El método HTTP que se debe usar al acceder a este endpoint.</td><td>Cadena</td></tr><tr><td><code>estadísticas</code></td><td>Contiene estadísticas de creación de trabajos y de finalización de trabajos.</td><td>Objeto JSON</td></tr><tr><td><code>estadísticas</code>:<code>total_job_count</code></td><td>El número total de trabajos creados por la programación hasta ahora (en todas las ejecuciones).</td><td>Entero</td></tr><tr><td><code>estadísticas</code>:<code>job_create_outcomes</code></td><td>Contiene estadísticas de creación de trabajos.</td><td>Arreglo JSON</td></tr><tr><td><code>estadísticas</code>:<code>job_create_outcomes</code>:<code>status_code</code></td><td>El código de estado recibido en respuesta a un intento de ejecutar la programación (crear un trabajo de scraping/parsing).</td><td>Entero</td></tr><tr><td><code>estadísticas</code>:<code>job_create_outcomes</code>:<code>job_count</code></td><td>El número de intentos de creación de trabajos que resultaron en ese código de estado particular.</td><td>Entero</td></tr><tr><td><code>estadísticas</code>:<code>job_create_outcomes</code>:<code>ratio</code></td><td>La proporción entre el número de intentos de creación de trabajos que resultaron en ese intento particular y el número total de intentos de creación de trabajos.</td><td>Flotante</td></tr><tr><td><code>stats: job_result_outcomes</code></td><td>Contiene las estadísticas de resultados de los trabajos de scraping/parsing ejecutados como parte de la programación.</td><td>Arreglo JSON</td></tr><tr><td><code>stats : job_result_outcomes : status</code></td><td>El estado del trabajo. Valores posibles: <code>pending</code> (el trabajo aún se está procesando), <code>done</code> (el trabajo se ha completado correctamente), <code>faulted</code> (el trabajo ha fallado).</td><td>Cadena</td></tr><tr><td><code>job_count</code></td><td>El número de trabajos que resultaron en ese estado particular <code>status</code>.</td><td>Entero</td></tr><tr><td><code>stats : job_result_outcomes : ratio</code></td><td>La proporción entre el número de trabajos con ese estado particular y el número total de trabajos creados.</td><td>Flotante</td></tr></tbody></table>

### Desactivar o reactivar una programación

#### Resumen

Usa este endpoint para activar o desactivar una programación particular.

* **Endpoint**: `https://data.oxylabs.io/v1/schedules/{id}/state`
* **Método**: `PUT`
* **Autenticación**: `Basic`

#### Entrada

Usa este endpoint para detener o reiniciar una programación.

Al establecer `active` en `false`, puedes detener la ejecución de una programación particular.

Si estableces `active` en `true`, puedes reactivar una programación que se había detenido previamente.

```json
{
  "active": false
}
```

**Salida**

```json
null
```

La respuesta estándar es un cuerpo de respuesta vacío con un `202` código de estado.

## Códigos de respuesta de la API

Para los códigos de respuesta de la API, consulta la sección [**API**](/products/es/web-scraper-api/response-codes.md#api) de la API. Una solicitud de programación con un parámetro faltante o inválido se rechaza con HTTP `422` y un `detalle` que nombra el campo; un ID de programación desconocido devuelve HTTP `404`.


---

# 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/scheduler.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.
