# Alta autónoma de agentes: cómo un agente de IA abre un sandbox de Shager con una sola llamada y por qué el botón de publicar sigue en manos de una persona

_2026-09-12 · Un agente abre su propio sandbox de Shager con un solo POST: la llamada, qué permite el sandbox, el reclamo humano y cómo se otorga el permiso de publicar._

Un agente de IA puede registrarse en Shager por su cuenta con una sola solicitud: `POST https://app.shager.ai/api/v1/agent/signup` con un cuerpo JSON que contenga al menos `agent_name`. Recibe una clave de API, una URL de MCP y un enlace de reclamo, y puede empezar de inmediato a crear clientes, importar medios y redactar borradores. No se programa ni se publica nada hasta que una persona abre el enlace de reclamo, inicia sesión y decide si esa clave puede publicar.

Esa división es todo el diseño. El agente puede avanzar sin esperar a nadie; la persona conserva la decisión que llega a audiencias reales.

## ¿Por qué dejar que un agente se registre solo?

Porque la alternativa corta el flujo del agente. Si a un agente le piden "configurar la distribución en redes de nuestro cliente" y la única forma de entrar es que una persona complete un formulario de registro, verifique un correo y cree una clave en un panel, se queda atascado en el primer paso. Para cuando alguien lo hace, el agente ya perdió el contexto.

Con el alta autónoma, el agente adelanta el trabajo por su cuenta: crea un espacio por cliente, trae los medios, redacta las publicaciones y le entrega a la persona un único enlace con todo listo para revisar. La receta de registro para agentes está publicada en [/auth.md](/auth.md), y la [página de agentes](/en/agents) enumera los archivos de descubrimiento que un agente puede leer antes de empezar.

## ¿Cómo es la llamada de registro?

Solo `agent_name` es obligatorio (de 2 a 80 caracteres). Los demás campos ayudan a la persona a reconocer qué está reclamando.

```bash
curl -s https://app.shager.ai/api/v1/agent/signup \
  -H "Content-Type: application/json" \
  -d '{
    "agent_name": "Northwind content agent",
    "contact_email": "ops@northwind-agency.example",
    "organization_name": "Northwind Agency",
    "purpose": "Draft weekly posts for 12 restaurant clients"
  }'
```

La respuesta envuelve todo en `data`:

```json
{
  "data": {
    "api_key": "shgr_live_...",
    "organization_id": "...",
    "sandbox": true,
    "claim_url": "https://app.shager.ai/...",
    "expires_at": "2026-09-19T10:04:11.000Z",
    "mcp_url": "https://app.shager.ai/api/mcp",
    "api_base": "https://app.shager.ai/api/v1",
    "openapi_url": "https://app.shager.ai/api/v1/openapi.json",
    "limits": { "workspaces": 5, "requests_per_minute": 120, "publishing": "after a human claims the sandbox" },
    "next_steps": ["..."]
  }
}
```

Hay dos campos que necesitan atención inmediata.

1. `api_key` se muestra una sola vez. Guárdala antes de hacer cualquier otra cosa, en un gestor de secretos o en una variable de entorno, nunca en una línea de log.
2. `claim_url` es para una persona. Si enviaste `contact_email`, Shager también manda el enlace de reclamo a ese correo, pero el agente debería mostrarlo igualmente en su propia respuesta.

Los registros están limitados a cinco por hora por dirección, lo que evita que un agente atrapado en un bucle genere decenas de sandboxes huérfanos.

## ¿Qué puede hacer un sandbox sin reclamar?

| Permitido antes del reclamo | Bloqueado hasta que una persona lo reclame |
|---|---|
| Crear hasta 5 clientes | Programar o publicar cualquier cosa |
| Subir medios desde URL | Crear enlaces de conexión para clientes |
| Crear borradores | Enviar solicitudes de aprobación a clientes |
| Listar y leer todo lo que creó | |

Las llamadas bloqueadas fallan con un error claro, no con algo que no hace nada en silencio. Un intento de programar devuelve HTTP 403 con `"code": "sandbox_unclaimed"`, y lo mismo pasa con `create_connect_link` y `request_approval`. Un sexto cliente devuelve 403 `sandbox_limit`. Un buen agente lee el `code` y le dice a la persona qué hace falta, en lugar de reintentar.

Los enlaces de conexión y las solicitudes de aprobación están bloqueados porque ambos llegan a personas reales fuera de la agencia: un cliente que hace clic en un enlace para conectar su página de Facebook, o un revisor que recibe un correo de aprobación. Eso no debería ocurrir en nombre de una organización que nadie verificó.

## Una primera sesión razonable en el sandbox

Esto es lo que hace un agente bien portado en sus primeros minutos, en Python con `requests`:

```python
import os, requests

API = "https://app.shager.ai/api/v1"
H = {"Authorization": f"Bearer {os.environ['SHAGER_API_KEY']}"}

def call(method, path, **body):
    r = requests.request(method, f"{API}{path}", headers=H, json=body or None, timeout=60)
    payload = r.json()
    if not r.ok:
        err = payload["error"]
        raise RuntimeError(f"{r.status_code} {err['code']}: {err['message']}")
    return payload["data"]

me = call("GET", "/me")
print(me)  # organization, scopes, sandbox status

ws = call("POST", "/workspaces", name="Harbor Tacos", timezone="America/Chicago")

media = call("POST", f"/workspaces/{ws['id']}/media",
             url="https://harbortacos.example/press/fall-menu.jpg",
             file_name="fall-menu.jpg")

print("Workspace", ws["id"], "media", media["id"], media["kind"])
```

Indica `timezone` de forma explícita al crear un cliente. Es un nombre de zona IANA, y la programación posterior se interpreta en esa zona, así que un restaurante de Chicago no debería heredar la zona predeterminada de otra persona.

En este punto todavía no hay cuentas sociales conectadas, porque conectar cuentas requiere un enlace de conexión, y el enlace de conexión requiere el reclamo. El agente prepara el contenido y la estructura, y la persona abre la puerta a todo lo demás.

## ¿Qué pasa cuando la persona lo reclama?

La persona abre `claim_url`, inicia sesión en Shager (o crea una cuenta) y se queda con el sandbox, junto con los clientes, los medios y los borradores que preparó el agente. Durante el reclamo elige si la clave del agente también puede programar y publicar, lo que agrega el permiso `publish`.

Esa decisión merece pensarse un momento. Dejar `publish` desactivado es una configuración perfectamente válida a largo plazo: el agente redacta, y la persona o el cliente aprueba y programa. Muchas agencias empiezan así y más adelante agregan una clave de publicación aparte en https://app.shager.ai/dashboard/agents, donde cada clave se puede revocar y cada llamada del agente aparece en el registro de auditoría. Las ventajas y desventajas de cada configuración se explican en [la rutina de distribución semanal](/en/blog/skill-weekly-distribution-routine).

Después del reclamo, los siguientes pasos que sugiere la propia API son sencillos: llamar a `create_connect_link` para que el dueño de las cuentas conecte sus cuentas sociales (Facebook, Instagram, YouTube, X, LinkedIn o TikTok) sin necesidad de entrar a Shager, luego `create_post` y, si la clave tiene `publish`, `schedule_post`.

## ¿Y si nadie lo reclama?

Los sandboxes sin reclamar vencen a los siete días, en la fecha indicada en `expires_at`. Los borradores y los clientes desaparecen con ellos. Un agente que trabaja en un proyecto más largo debería recordárselo a la persona antes de esa fecha, y no debería responder al vencimiento registrándose una y otra vez. Un sandbox nuevo no conserva los borradores del anterior.

## ¿Cómo debería redactar el agente la entrega?

Con claridad, con el enlace y las consecuencias. Algo así:

```text
I set up a Shager sandbox for Northwind with 3 client workspaces and
9 draft posts. To connect the clients' accounts and publish, open this
link and sign in: <claim_url>
When you claim it you can choose whether I'm allowed to schedule posts
myself. If you don't claim it by Sep 19, the sandbox and drafts are deleted.
```

En español, el mismo mensaje sería: "Preparé un sandbox de Shager para Northwind con 3 clientes y 9 borradores. Para conectar las cuentas de los clientes y publicar, abre este enlace e inicia sesión: <claim_url>. Al reclamarlo puedes elegir si me permites programar publicaciones por mi cuenta. Si no lo reclamas antes del 19 de septiembre, el sandbox y los borradores se eliminan."

Ese mensaje es honesto sobre lo que se hizo, lo que está pendiente y lo que controla la persona. También es el que tiene más probabilidades de recibir un clic.

## Preguntas frecuentes

### ¿El alta autónoma cuesta algo?

No. El sandbox es gratis y, durante el periodo de lanzamiento, Shager también es gratis después del reclamo, sin tarjeta; antes de empezar a cobrar te avisaremos con anticipación. El acceso por API y MCP está incluido en todos los planes. Los límites de cada plan están en la [página de precios](/en/pricing).

### ¿Puede el agente usar MCP en lugar de REST después de registrarse?

Sí. La respuesta incluye `mcp_url`, y la misma clave funciona como `Authorization: Bearer shgr_live_...` en el servidor MCP. Las herramientas se corresponden una a una con las operaciones REST descritas en el [documento OpenAPI](https://app.shager.ai/api/v1/openapi.json).

### ¿Una clave reclamada puede publicar alguna vez sin que una persona vea la publicación?

Solo si la persona otorgó `publish` durante el reclamo y el cliente no exige aprobación. Las dos cosas las decide la persona, y las dos se pueden cambiar después: las claves se pueden revocar desde el panel y la aprobación se puede exigir por cliente.

## Siguiente paso

Una vez reclamado el sandbox y conectadas las cuentas, pasa de la exploración a una ejecución completa. El [pipeline de contenido de punta a punta para agentes](/en/blog/agent-content-pipeline-end-to-end) retoma exactamente donde termina este artículo: del brief a las publicaciones en vivo y los clics por cuenta.

---
Source: https://shager.ai/es/blog/agent-self-signup-and-claim
