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
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, y la página de agentes 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.
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:
{
"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.
api_keyse 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.claim_urles para una persona. Si enviastecontact_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:
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.
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í:
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:
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.
¿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.
¿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 retoma exactamente donde termina este artículo: del brief a las publicaciones en vivo y los clics por cuenta.


