# Listar cuentas publicitarias

URL canónica: https://sosoapi.ai/es/docs/api/advertising-api-accounts-list

Contrato: sha256:9aedef8d43dd4514

Lista las cuentas publicitarias vinculadas explícitamente, la moneda, la zona horaria, las tareas y el estado actual de autorización. El social_account_id orgánico no es una cuenta publicitaria.

POST /advertising-api/accounts/list

## Autenticación y permisos

- **Clases de credenciales aceptadas:** user_session, delegated_oauth, personal_access_token

- **Capacidad delegada:** agent:advertising_read

- **Rol mínimo del espacio de trabajo:** viewer

- **Alcance del acceso:** Recursos a los que este usuario está autorizado a acceder

- **Se requiere consentimiento para todos los espacios de trabajo:** No

- **Cambia el estado:** No

- **Cuando la operación se completa:** synchronous_http_response

Un token solo puede usar los derechos de su propietario. Cada solicitud comprueba pertenencia al espacio, propiedad del recurso, espacios elegidos y capacidades concedidas. Los perfiles core y full cambian qué herramientas se muestran; no conceden acceso.

## Campos de solicitud

```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "workspace_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    }
  },
  "required": [
    "workspace_id"
  ],
  "additionalProperties": false
}
```

## Respuesta y finalización

Estados HTTP de éxito: 200

Una respuesta HTTP exitosa puede indicar aceptación, no finalización. Para trabajo en segundo plano, guarda el ID devuelto y consulta la misma operación hasta que termine. Una publicación programada o aceptada solo está publicada cuando la plataforma lo confirma; un tiempo de espera agotado en el cliente no determina el resultado.

```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "contract_version": {
      "type": "string",
      "const": "advertising/v1"
    },
    "accounts": {
      "maxItems": 100,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "workspace_id": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "grant_id": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "provider_account_id": {
            "type": "string",
            "pattern": "^[1-9]\\d{1,24}$"
          },
          "provider_app_id": {
            "type": "string",
            "pattern": "^[1-9]\\d{1,24}$"
          },
          "provider_principal_id": {
            "type": "string",
            "pattern": "^[1-9]\\d{1,24}$"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          },
          "currency": {
            "type": "string",
            "pattern": "^[A-Z]{3}$"
          },
          "timezone": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
          },
          "account_status": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "tasks": {
            "maxItems": 50,
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 100
            }
          },
          "granted_permissions": {
            "maxItems": 100,
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 100
            }
          },
          "access_mode": {
            "type": "string",
            "enum": [
              "read",
              "manage"
            ]
          },
          "state": {
            "type": "string",
            "enum": [
              "ready",
              "action_required",
              "disconnected"
            ]
          },
          "generation": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          },
          "observed_at": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
          }
        },
        "required": [
          "id",
          "workspace_id",
          "grant_id",
          "provider_account_id",
          "provider_app_id",
          "provider_principal_id",
          "name",
          "currency",
          "timezone",
          "account_status",
          "tasks",
          "granted_permissions",
          "access_mode",
          "state",
          "generation",
          "observed_at"
        ]
      }
    }
  },
  "required": [
    "contract_version",
    "accounts"
  ]
}
```

## Errores y reintentos seguros

Comprueba el estado HTTP y el cuerpo de respuesta. Un error de validación 400 puede contener un ZodError; los errores del controlador usan los campos error, message y code. Conserva request_id o x-request-id para el diagnóstico, sin credenciales. Corrige los errores de acceso 401/403 antes de reintentar y respeta Retry-After para 429. Si una escritura es incierta o devuelve 5xx, consulta primero el resultado existente. Reutiliza una clave de idempotencia solo donde se admita; el comportamiento de reintento varía por operación y no garantiza una entrega exactamente una vez.

## Ejemplos

Estos ejemplos usan valores ficticios comprobados con los esquemas. Sustituye los IDs por otros autorizados, los archivos multimedia por recursos listos y las fechas por tu hora de publicación confirmada. Comprueba la elegibilidad de la cuenta antes de enviar una escritura. Esta página no envía solicitudes API.

Establece SOSOAPI_ACCESS_TOKEN en tu servidor con una credencial aceptada por esta operación y mantenla fuera del código del navegador. Para un agente de IA, usa sosoapi auth login para iniciar sesión en el navegador y deja a la CLI renovar sus credenciales.

request.json

```json
{
  "workspace_id": "11111111-1111-4111-8111-111111111111"
}
```

cURL

```bash
curl --request POST \
  "https://gqeshlawtcexsapabaui.supabase.co/functions/v1/advertising-api/accounts/list" \
  -H "Authorization: Bearer $SOSOAPI_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  --data-binary @request.json
```

JavaScript

```js
// Server-side JavaScript. Do not print tokens or credential-bearing responses.
const token = process.env.SOSOAPI_ACCESS_TOKEN;
if (!token) throw new Error("Set an accepted credential for this operation");
const response = await fetch("https://gqeshlawtcexsapabaui.supabase.co/functions/v1/advertising-api/accounts/list", {
  method: "POST",
  headers: { "Content-Type": "application/json", Authorization: "Bearer " + token },
  body: JSON.stringify({
  "workspace_id": "11111111-1111-4111-8111-111111111111"
})
});
const result = await response.json();
// Check response.ok, the operation-specific body and completion state before continuing.
```

CLI

```bash
npx sosoapi api post /advertising-api/accounts/list < request.json
```

Ejemplo de respuesta sintética

```json
{
  "contract_version": "advertising/v1",
  "accounts": []
}
```

## Herramientas y guías relacionadas

MCP: sosoapi_ads_accounts_list

[Referencia de API](https://sosoapi.ai/es/docs/api)
