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

# Sesiones y perfiles persistentes

Aprende sobre las Sesiones persistentes (sticky) y los Perfiles persistentes en Oxylabs Agent Browser. Reconéctate a sesiones en curso y reutiliza tus cookies o almacenamiento local a lo largo de varias sesiones.

Gestionar flujos de trabajo de automatización multietapa de larga duración o mantener estados de usuario con sesión iniciada a través de secuencias de conexión distintas requiere conservar los estados del navegador. Oxylabs Agent 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 a través de desconexiones del cliente.</td></tr><tr><td><a href="#persistent-profiles"><strong>Perfiles persistentes</strong></a></td><td>Guarda y restaura cookies, el almacenamiento local y la caché del navegador.</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) definiendo un `session_name` para la URL de conexión:

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

{% hint style="info" %}
Las Sesiones persistentes son **habilitadas de forma predeterminada** para todos los usuarios, con un límite predeterminado de **5 sesiones concurrentes**. Si necesitas un límite mayor, 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 %}

<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 que se detenga). 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>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).<br>Requiere <code>session_name</code>.</td><td>Booleano</td></tr></tbody></table>

### Volver a conectar a una pestaña existente

```javascript
// Reconnect to existing session
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 son **habilitadas de forma predeterminada** para todos los usuarios, con un límite predeterminado de **5 perfiles**Úsalo para guardar cookies y localStorage bajo un perfil con nombre y restaurarlos en una sesión completamente nueva. Los siguientes parámetros te permiten mantener una identidad conectada 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][a-zA-Z0-9_-]{2,35}$</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 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" %}
Superar el `max_profiles` límite de `5` devuelve `error de límite de perfil alcanzado 403 (máximo): límite de perfil alcanzado` Puedes inspeccionar y eliminar perfiles guardados directamente en el Panel de control (`hb.oxylabs.io/dashboard`) si alcanzas el límite, o reutilizar un nombre de perfil estable. 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 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 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 quedar invalidadas, lo que resulta en páginas en blanco o pantallas de verificación de seguridad.

Para garantizar inicios de sesión consistentes, combina tu 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://developers.oxylabs.io/products/es/agent-browser/persistent-sessions-and-profiles.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
