> 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/persistent-sessions-and-profiles.md).

# Sesiones y perfiles persistentes

Aprende sobre las sesiones persistentes (sticky) y los perfiles persistentes en Oxylabs Headless Browser. Reconéctate a sesiones en curso y reutiliza tus cookies o almacenamiento local a través de varias sesiones.

Administrar 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 persistir 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>Mantenga en ejecución un entorno remoto de navegador en vivo incluso tras las desconexiones del cliente.</td></tr><tr><td><a href="#persistent-profiles"><strong>Perfiles persistentes</strong></a></td><td>Guarde y restaure cookies, almacenamiento local y caché del navegador.</td></tr></tbody></table>

## Sesiones persistentes

Las Sesiones persistentes (sticky) mantienen su instancia remota del navegador en la nube (incluso cuando su script de automatización local se desconecta) al definir un `session_name` en su URL de conexión:

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

{% hint style="info" %}
Las Sesiones persistentes están **habilitadas de forma predeterminada** para todos los usuarios, con un límite predeterminado de **5 sesiones concurrentes**. Si necesita un límite más alto, contacte con soporte de Oxylabs ([chat en vivo](https://oxylabs.io/) o [correo electrónico](mailto:support@oxylabs.io)) o con su Dedicated Account Manager.
{% endhint %}

<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 de vida máximo (TTL) (máx. 24 h o hasta detenerse). Reconéctese con el mismo <code>session_name</code> para volver a adjuntar el mismo ID de sesión y las pestañas existentes. Formato compatible: <code>^[A-Za-z0-9-]{3,36}$</code></td><td>Cadena</td></tr><tr><td><code>keep_alive</code></td><td>Mientras <code>false</code> (predeterminado), llamar a <code>browser.close()</code> recupera y cierra la sesión.<br>Mientras <code>true</code>, la sesión permanece activa en la nube después de desconectarte (hasta 10 minutos).</td><td>Booleano</td></tr></tbody></table>

### Reconectarse 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

Los Perfiles persistentes están **habilitadas de forma predeterminada** para todos los usuarios, con un límite predeterminado de **5 perfiles**Úselo para guardar cookies y localStorage bajo un perfil con nombre y restaurarlos en una sesión completamente nueva. Los siguientes parámetros le permiten mantener una identidad autenticada entre sesiones sin volver a autenticarse 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>Guarde/restaure cookies y localStorage con un perfil con nombre (14 días desde el último uso). Formato compatible: <code>^[A-Za-z0-9_-]{1,36}$</code></td><td>Cadena</td></tr><tr><td><code>o_profile_save</code></td><td>Forzar el guardado del perfil durante o al final de la sesión. Predeterminado: <code>false</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 compatible: <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> (24h).</td><td>Entero</td></tr></tbody></table>

{% hint style="info" %}
Superar el `max_profiles` límite de `5` devuelve `CDP_LIMIT_REACHED: profile limit reached` error. Puede inspeccionar y eliminar perfiles guardados directamente en el Dashboard (`hb.oxylabs.io/dashboard`) si alcanza el límite, o reutilice un nombre de perfil estable. Contacte con soporte de Oxylabs ([chat en vivo](https://oxylabs.io/) o [correo electrónico](mailto:support@oxylabs.io)) o con su Dedicated Account Manager si se requieren límites más altos.
{% endhint %}

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

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

Para garantizar inicios de sesión consistentes, combine su perfil con una IP de salida residencial fijada:

```javascript
// Session 1: Authenticate and back up state
const connectionOne = "wss://USER:PASS@hb.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@hb.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/persistent-sessions-and-profiles.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.
