Zoosial
docs
InicioEstructura de datos y conexión de cuentas
Volver al sitio Volver al Dashboard
Zoosial
Buscar en docs...
⌘K
Conectar cuentas

Estructura de datos y conexión de cuentas

Owner (tú) → Profiles (marcas/proyectos, máximo 1 cuenta por red social cada uno) → Accounts (cuentas conectadas: página FB, IG, WhatsApp…).

Profiles y accounts

POST
/profiles
{ name } — crea un profile.
GET
/profiles
Lista tus profiles.
GET
/accounts
Lista cuentas del owner (sin tokens).
GET
/accounts/health
Estado de cada cuenta: connected / needs_reconnection.
GET
/accounts/:id/about
Ficha "Información" de la Página de Facebook, para prellenar el contexto de negocio. Otras plataformas devuelven about: null, no error.
PATCH
/profiles/:id
{ aiContext } — único campo editable hoy: el contexto de negocio (máx. 2000 caracteres) que usa el generador de copy.
GET
/adaccounts
Lista cuentas publicitarias (ad accounts) conectadas.
DELETE
/accounts/:id · /adaccounts/:id
Desconecta: borra el registro y el token en Zoosial y emite account.disconnected. No des-registra la app en la plataforma (eso se hace desde Facebook/Google) ni borra el historial de posts.

Se cobra por perfil, no por cuenta. Regla estructural: cada perfil admite 1 cuenta por red social (1 Facebook, 1 Instagram, 1 YouTube, 1 Meta Ads, 1 Google Ads, etc.) — para conectar otra cuenta de la misma red hay que crear otro perfil. El plan Free permite 1 perfil con hasta 3 cuentas en total y 20 créditos de IA al mes; el Trial (14 días desde el registro) permite 1 perfil con todas las redes (1 c/u) y 150 créditos; con suscripción activa, perfiles y cuentas ilimitados y 300 créditos. GET /profiles devuelve estos límites en plan.limits, y marca cada perfil con paused: true|false. Si superas un límite, la API responde con un code: 409 one_per_network (ya hay una cuenta de esa red en el perfil), 402 plan_account_limit, 402 plan_profile_limit, 402 ai_credit_limit o 403 profile_paused (el perfil dejó de estar cubierto por tu plan tras un downgrade: los más antiguos siguen activos, el resto se pausa).

Conexión por OAuth (Meta, TikTok, Google)

Un mismo patrón genérico para las tres plataformas que usan OAuth:

GET
/connect/:platform?profileId=…
:platform es meta (Facebook + Instagram), threads, tiktok (orgánico), tiktokads (Marketing API) o google — este último con &product=youtube|googlebusiness|googlecalendar, uno por conexión (ver Google). Devuelve { authUrl } para abrir en el navegador. Una plataforma desconocida → 400.
GET
/connect/:platform/callback
Callback público (sin token). Meta redirige a /app/connect-select con un connectToken (vale 15 min y no se consume, así que sirve para encadenar página + cuentas publicitarias); Threads, TikTok y Google redirigen directo al Dashboard ya conectado. Si tu app registró un redirectUri en su API key, el callback vuelve a tu propia pantalla con ?profileId=&ct=&platform=meta&clientState= — ver Integración de agente.

Para Meta hay un paso extra: elegir a qué Página de Facebook conectar (y su Instagram asociado). Las cuentas publicitarias (ad accounts) usan el mismo connectToken con su propio picker — no se auto-conecta ninguna, cada una se elige (y se cobra) aparte.

GET
/profiles/:id/connect/meta/available?ct=<connectToken>
Lista las páginas de FB disponibles para elegir.
POST
/profiles/:id/connect/meta
{ ct, pageId } — conecta UNA página (rechaza si el profile ya tiene una FB conectada).
GET
/profiles/:id/connect/meta/adaccounts/available?ct=<connectToken>
Lista las cuentas publicitarias disponibles (marca las ya conectadas).
POST
/profiles/:id/connect/meta/adaccounts
{ ct, adAccountId } — conecta UNA cuenta publicitaria (mismo ct del callback).

Conexión sin OAuth (WhatsApp, Telegram)

WhatsApp (QR o Cloud API oficial) y Telegram (bot token) no pasan por un flujo OAuth de navegador — ver WhatsApp Business y Telegram.

bash
# Crear un profile y arrancar OAuth con Meta
curl -X POST https://zoosial.com/profiles \
  -H "Authorization: Bearer $SC_API_KEY" -H "Content-Type: application/json" \
  -d '{"name":"Mi marca"}'
# → { "id": "prof_123", "name": "Mi marca" }

curl "https://zoosial.com/connect/meta?profileId=prof_123" \
  -H "Authorization: Bearer $SC_API_KEY"
# → { "authUrl": "https://facebook.com/dialog/oauth?..." }
En esta página
Profiles y accounts Conexión por OAuth (Meta, TikTok, Google) Conexión sin OAuth (WhatsApp, Telegram)
¿Tienes dudas?
Nuestro equipo responde en menos de 2h
Contactar soporte