> 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/headless-browser/sesiones-y-perfiles-persistentes.md).

# Sesiones y perfiles persistentes

Gestionar flujos de trabajo de automatización de varias etapas de larga duración o mantener estados de usuario con sesión iniciada entre secuencias de conexión distintas requiere conservar los estados del navegador. Oxylabs Headless Browser ofrece dos sistemas avanzados de persistencia:

<table data-header-hidden><thead><tr><th width="178"></th><th></th></tr></thead><tbody><tr><td><a href="#persistent-sessions-sticky-sessions"><strong>Sesiones persistentes</strong></a></td><td>Mantén un entorno de navegador remoto activo en funcionamiento durante las desconexiones del cliente.</td></tr><tr><td><a href="#persistent-profiles"><strong>Perfiles persistentes</strong></a></td><td>Guarda y restaura cookies, almacenamiento local y la caché del navegador. <em>(Se requiere activación)</em></td></tr></tbody></table>

## Sesiones persistentes

Las sesiones persistentes (sticky) mantienen tu instancia de navegador remoto en ejecución en la nube (incluso cuando tu script de automatización local se desconecta) al definir un `session_name` personalizado en la URL de conexión:

```bash
wss://USER:PASS@ubc.oxylabs.io?session_name=checkout-flow-test
```

<table><thead><tr><th width="127">Parámetro</th><th width="534">Descripción</th><th width="98">Tipo</th></tr></thead><tbody><tr><td><code>session_name</code></td><td>Cuando se define, una sesión persiste hasta el tiempo máximo de vida (TTL) (máx. 24 h o hasta detenerse). Vuelve a conectarte con el mismo <code>session_name</code> para volver a adjuntar el mismo ID de sesión y las pestañas existentes. Formato admitido: <code>^[A-Za-z0-9-]{3,36}$</code></td><td>Cadena</td></tr><tr><td><code>keep_alive</code></td><td>Mientras <code>true</code> (predeterminado), la sesión permanece activa en la nube después de desconectarte (hasta el TTL máximo – 24 h).<br>Mientras <code>false</code>, al llamar a <code>browser.close()</code> recupera y cierra la sesión.</td><td>Booleano</td></tr></tbody></table>

### Reconéctate a una pestaña existente

```javascript
// Reconnect to existing session with 
const browser = await chromium.connectOverCDP(endpoint);
const ctx = browser.contexts()[0];
const page = ctx.pages().find(p => p.url().includes("http://example.com "));
```

## Perfiles persistentes

{% hint style="warning" %}
**Perfiles persistentes** la función y `o_profile` los parámetros están restringidos de forma predeterminada. Para acceder a ellos, contacta con el soporte de Oxylabs ([chat en vivo](https://oxylabs.io/) o [correo electrónico](mailto:support@oxylabs.io)) o con tu gerente de cuenta dedicado.
{% endhint %}

Guarda cookies y localStorage bajo un perfil con nombre y restaúralos en una sesión completamente nueva. Usar los siguientes parámetros te permite mantener una persona con sesión iniciada entre sesiones sin volver a autenticarte cada vez:

<table><thead><tr><th width="191">Parámetro</th><th width="456">Descripción</th><th width="102">Tipo</th></tr></thead><tbody><tr><td><code>o_profile</code></td><td>Guarda/restaura cookies y localStorage con un perfil con nombre (14 días desde el último uso). Formato admitido: <code>^[A-Za-z0-9_-]{1,36}$</code></td><td>Cadena</td></tr><tr><td><code>o_profile_save</code></td><td>Fuerza el guardado del perfil en mitad de la sesión. Predeterminado: <code>true</code>.</td><td>Booleano</td></tr><tr><td><code>proxy_resi_ses_id</code></td><td>ID de sesión personalizado para fijar la IP de salida residencial entre sesiones. Formato admitido: <code>^[A-Za-z0-9]{3,36}$</code>.</td><td>Cadena</td></tr><tr><td><code>proxy_resi_ses_time</code></td><td>Duración para mantener fijada la IP de salida del proxy residencial en minutos. Mín <code>1</code>, máx. <code>1440</code> (24 h).</td><td>Entero</td></tr></tbody></table>

{% hint style="info" %}
El número de perfiles por cuenta está limitado (`max_profiles`). Superar el límite devuelve `CDP_LIMIT_REACHED: se alcanzó el límite de perfiles` error. Reutiliza un nombre de perfil estable cuando sea posible, o contacta con el soporte de Oxylabs ([chat en vivo](https://oxylabs.io/) o [correo electrónico](mailto:support@oxylabs.io)) o con tu gerente de cuenta dedicado para aumentar el límite.
{% endhint %}

### Restauración fiable entre sesiones <a href="#reliable-cross-session-restore" id="reliable-cross-session-restore"></a>

Para sitios web con sistemas estrictos de monitorización de bots, guardar cookies no es suficiente. Si un perfil restaurado se conecta desde una IP de salida residencial diferente, tus cookies pueden invalidarse, lo que da como resultado páginas en blanco o pantallas de verificación de seguridad.

Para asegurar inicios de sesión consistentes, empareja tu perfil con una IP de salida residencial fijada:

```javascript
// Session 1: Authenticate and back up state
const connectionOne = "wss://USER:PASS@ubc.oxylabs.io?o_profile=my_user_profile&proxy_resi_ses_id=ip_session_abc&proxy_resi_ses_time=120";

// Session 2: Restore profile with the exact same IP session context
const connectionTwo = "wss://USER:PASS@ubc.oxylabs.io?o_profile=my_user_profile&proxy_resi_ses_id=ip_session_abc&proxy_resi_ses_time=120";
```


---

# 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/headless-browser/sesiones-y-perfiles-persistentes.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.
