Saltar al contenido

Referencia de la API pública

Endpoints, scopes y ejemplos para tickets, mensajes y acciones.

Usa claves de API con scopes para gestionar tickets omnicanal y acciones desde tus sistemas.

URL base

Todas las solicitudes pasan por el gateway público.

https://api.threada.ai

Autenticación

  • Envía la clave de API en el encabezado `X-Api-Key`.
  • Crea y rota claves en Admin → API keys; usa una clave por integración.
  • Las claves están acotadas al tenant y aplican mínimos privilegios por scopes.

Scopes

  • `support.read` — lista y recupera tickets, mensajes y acciones.
  • `support.write` — crea/actualiza tickets y añade mensajes.
  • `support.actions` — ejecuta acciones y consulta su estado.

Paginación

  • Los endpoints de lista aceptan `limit` y `page_token`.
  • Pasa `next_page_token` en la siguiente solicitud.

Errores

  • Los errores devuelven `{ error: { type, message, code } }`.
  • Los códigos HTTP reflejan el valor de `code`.

Ejemplos de solicitud y respuesta

Listar tickets

Obtén tickets abiertos en todos los canales.

Solicitud
curl -X GET "https://api.threada.ai/api/v1/public/tickets?limit=25" \
  -H "X-Api-Key: YOUR_API_KEY"
Respuesta
{
  "items": [
    {
      "ticket_id": "TICKET_ID",
      "tenant_id": "TENANT_ID",
      "subject": "SUBJECT",
      "status": "open",
      "priority": "normal",
      "channel": "email",
      "tags": ["vip", "returns"],
      "last_message_at": "2026-02-04T18:32:11Z"
    }
  ],
  "next_page_token": "NEXT_PAGE_TOKEN"
}

Crear un ticket

Abre un ticket nuevo con un mensaje inicial.

Solicitud
curl -X POST "https://api.threada.ai/api/v1/public/tickets" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "subject": "SUBJECT",
    "priority": "normal",
    "channel": "email",
    "contact": {
      "name": "CUSTOMER_NAME",
      "email": "customer@example.com"
    },
    "tags": ["returns"],
    "initial_message": {
      "role": "user",
      "content": "MESSAGE_BODY",
      "external_message_id": "EXT_MSG_ID"
    }
  }'
Respuesta
{
  "ticket": {
    "summary": {
      "ticket_id": "TICKET_ID",
      "tenant_id": "TENANT_ID",
      "subject": "SUBJECT",
      "status": "open",
      "priority": "normal",
      "channel": "email",
      "tags": ["returns"],
      "created_at": "2026-02-04T18:32:11Z"
    },
    "contact": {
      "name": "CUSTOMER_NAME",
      "email": "customer@example.com"
    },
    "messages": [
      {
        "message_id": "MESSAGE_ID",
        "role": "user",
        "content": "MESSAGE_BODY",
        "channel": "email",
        "created_at": "2026-02-04T18:32:11Z"
      }
    ]
  }
}

Ejecutar una acción

Dispara una automatización HTTP personalizada para un ticket.

Solicitud
curl -X POST "https://api.threada.ai/api/v1/public/tickets/TICKET_ID/actions" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "payload": {
      "type": "custom_http",
      "method": "POST",
      "url": "/hooks/zapier",
      "headers": {
        "X-Source": "threada"
      },
      "body_json": "{\"event\":\"ticket_updated\"}"
    }
  }'
Respuesta
{
  "action": {
    "action_id": "ACTION_ID",
    "tenant_id": "TENANT_ID",
    "ticket_id": "TICKET_ID",
    "action_type": "custom_http",
    "status": "succeeded",
    "requested_by": "api_key:API_KEY_ID",
    "payload": {
      "type": "custom_http",
      "method": "POST",
      "url": "/hooks/zapier",
      "headers": {
        "X-Source": "threada"
      },
      "body_json": "{\"event\":\"ticket_updated\"}"
    }
  }
}

¿Necesitas más endpoints?

Contáctanos para acceso ampliado, mayores límites y SLAs empresariales.

Contactar ventas