# Public API

El [**Public API**](https://residential-api.oxylabs.io/v2/docs) le permite **administrar usuarios proxy programáticamente** sin usar el panel de control. Puede crear, eliminar y modificar subusuarios de proxy, establecer límites de uso de tráfico y ver el uso actual e histórico del tráfico para Mobile Proxies.

### Rutas disponibles

**Endpoint base:** `https://residential-api.oxylabs.io/v2`

Combine el endpoint base con la ruta para realizar acciones específicas:

<table data-full-width="false"><thead><tr><th width="99.15625">Método</th><th width="449.92578125">Ruta</th><th>Descripción</th></tr></thead><tbody><tr><td><mark style="color:$success;">POST</mark></td><td><code>/login</code></td><td>Autentíquese para obtener el token de acceso (JWT).</td></tr><tr><td><mark style="color:blue;">GET</mark></td><td><code>/users/{userId}/sub-users</code></td><td>Recuperar todos los subusuarios activos</td></tr><tr><td><mark style="color:$success;">POST</mark></td><td><code>/users/{userId}/sub-users</code></td><td>Crear un nuevo subusuario.</td></tr><tr><td><mark style="color:blue;">GET</mark></td><td><code>/users/{userId}/sub-users/{subUserId}</code></td><td>Recuperar estadísticas de uso de tráfico para un subusuario específico.</td></tr><tr><td><mark style="color:$primary;">PATCH</mark></td><td><code>/users/{userId}/sub-users/{subUserId}</code></td><td>Modificar un subusuario.</td></tr><tr><td><mark style="color:red;">DELETE</mark></td><td><code>/users/{userId}/sub-users/{subUserId}</code></td><td>Eliminar un subusuario.</td></tr><tr><td><mark style="color:blue;">GET</mark></td><td><code>/users/{userId}/sub-users/{subUserId}/target-stats</code></td><td>Recuperar estadísticas de uso de tráfico por destino para un subusuario. Requiere especificar una fecha (disponibles los últimos 30 días).</td></tr><tr><td><mark style="color:blue;">GET</mark></td><td><code>/users/{userId}/client-stats</code></td><td>Recuperar el uso total de tráfico del mes actual.</td></tr></tbody></table>

### Cómo usar la Public API

<details>

<summary><strong>Pruebas mediante la interfaz web</strong></summary>

#### 1. Autorice a su usuario principal

***

Si está probando la funcionalidad a través de la [Public API](https://residential-api.oxylabs.io/v2/docs) interfaz, haga clic en el botón **Authorize** .

<figure><img src="/files/4fccbb02c86b7689915495678f4bf8d734a2d163" alt=""><figcaption></figcaption></figure>

Luego, introduzca las credenciales de su usuario proxy principal en la ventana recién abierta y seleccione **Authorize** una vez más.

{% hint style="info" %}
El usuario principal es el **primer subusuario** en su [**lista de usuarios**](https://dashboard.oxylabs.io/?route=/overview/MP/users).
{% endhint %}

<figure><img src="/files/cefd8ca43051c24edb5b55225140fb4b5f91f812" alt="" width="375"><figcaption></figcaption></figure>

#### 2. Inicie sesión para generar JWT

***

Después de autorizar, vaya a la pestaña **POST** `/login` para generar el JSON Web Token (JWT) que se requiere para finalizar la autorización.

<figure><img src="/files/c55adc2a779651cd8d6506057d69eb77cc3e06d5" alt=""><figcaption></figcaption></figure>

Luego, seleccione **Try it out** **→** **Execute**. Guarde los valores de `user_id` y `token` para usarlos más adelante.

{% hint style="warning" %}
**El JWT expira en 1 hora**. Después de eso, deberá generar uno nuevo.
{% endhint %}

{% hint style="warning" %}
Si ha cambiado recientemente la contraseña de su usuario principal, recibirá un error. Para resolverlo, debe **usar su contraseña original** o **contactar a nuestro equipo de soporte 24/7** a través de [chat en vivo ](https://oxylabs.drift.click/oxybot)o [correo electrónico](mailto:support@oxylabs.io).
{% endhint %}

<figure><img src="/files/a73fb524cee13e20188cdbb3fb284eab168717b6" alt=""><figcaption></figcaption></figure>

#### 3. Finalice la autorización con JWT

***

Abra la ventana de **Authorization** de nuevo y **pegue el token** del paso anterior en el campo de autenticación JWT Token. Luego, haga clic en el botón **Authorize** para guardar.

<figure><img src="/files/a9a3923641db010742d4a6ade37f1b63620c5826" alt="" width="435"><figcaption></figcaption></figure>

#### 4. Pruebe la Public API

Ahora puede probar los endpoints de la Public API en su navegador. Para cada endpoint, deberá introducir el `user_id`, obtenido en el paso 2.

</details>

{% stepper %}
{% step %}

#### Inicie sesión y genere JWT

Use la autenticación básica para iniciar sesión con las credenciales de su usuario principal (codificadas en base64) y recibir un token JWT.

{% hint style="info" %}
El usuario principal es el **primer subusuario** en su [**lista de usuarios**](https://dashboard.oxylabs.io/?route=/overview/MP/users)**.**
{% endhint %}

**Endpoint:** `https://residential-api.oxylabs.io/v2/login`

**Encabezado:** `Authorization: Basic base64(username:password)`

<pre class="language-bash"><code class="lang-bash">curl -X "POST" \\
  "https://residential-api.oxylabs.io/v2/login" \\
  -H "accept: application/json" \\
  -u "<a data-footnote-ref href="#user-content-fn-1">USERNAME:PASSWORD</a>"
</code></pre>

{% hint style="warning" %}
Si ha cambiado recientemente la contraseña de su usuario principal, recibirá un error. Para resolverlo, debe **usar su contraseña original** o **contactar a nuestro equipo de soporte 24/7** a través de [chat en vivo ](https://oxylabs.drift.click/oxybot)o [correo electrónico](mailto:support@oxylabs.io).
{% endhint %}

Una vez ejecutado, el servidor responderá con **dos valores importantes** necesarios para los pasos posteriores:

* `user_id` es el identificador único del usuario requerido para las solicitudes de API.
* `token` es el JSON Web Token (JWT) requerido para una autorización posterior.

{% code title="Ejemplo de salida:" %}

```json
{
  "user_id": "00000000-0000-0000-0000-000000000000",
  "token": "example token"
}
```

{% endcode %}

{% hint style="warning" %}
**El JWT expira en 1 hora**. Después de eso, deberá generar uno nuevo.
{% endhint %}
{% endstep %}

{% step %}

#### Use el `token` y `user_id` con solicitudes

Ahora puede consultar la API para administrar usuarios y comprobar estadísticas. Todas las solicitudes posteriores requieren el JWT `token` y su `user_id`.

**Encabezado:** `Authorization: Bearer {token}`

Por ejemplo, comprobemos el uso total de tráfico del mes actual.

<pre class="language-bash" data-full-width="false"><code class="lang-bash">curl -X "GET" \\
  "https://residential-api.oxylabs.io/v2/users/<a data-footnote-ref href="#user-content-fn-2">{userId}</a>/client-stats" \\
  -H "accept: application/json" \\
  -H "Authorization: Bearer <a data-footnote-ref href="#user-content-fn-3">{token}</a>"
</code></pre>

<details>

<summary><strong>Ejemplo de salida</strong></summary>

```json
{
  "traffic": 1.2354839,
  "date_from": "2026-01-01",
  "date_to": "2026-01-15"
}
```

</details>
{% endstep %}
{% endstepper %}

### IPs de entrada de Backonnect

Si desea usar el nombre DNS de su propio nodo de entrada backconnect, puede apuntar su subdominio/dominio a nuestro nodo de entrada. Para hacerlo, debe añadir un registro DNS `CNAME` con `pr.oxylabs.io` como destino. Así se ve esta configuración en el gestor DNS de Cloudflare para `el` subdominio de entrada:

![Backconnect](/files/2d655674116036aa6be060482d4831c397d2ece1)

Para más información, póngase en contacto con [**support@oxylabs.io**](mailto:support@oxylabs.io) o con su gestor de cuenta.

[^1]: Reemplácelo con las credenciales de su **usuario principal**. cURL codifica automáticamente a base64 y usa el método de autenticación básica.

[^2]: Reemplácelo con las credenciales de su `user_id`

[^3]: Reemplácelo con su JWT `token`


---

# 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/proxies/mobile-proxies/public-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.
