Aller au contenu

Référence de l’API publique

Endpoints, scopes et exemples pour tickets, messages et actions.

Utilisez des clés API à scopes pour gérer les tickets omnicanaux et les actions depuis vos systèmes.

URL de base

Toutes les requêtes passent par la passerelle publique.

https://api.threada.ai

Authentification

  • Envoyez la clé API dans l’en-tête `X-Api-Key`.
  • Créez et faites tourner les clés dans Admin → API keys ; une clé par intégration.
  • Les clés sont limitées au tenant et appliquent le moindre privilège via les scopes.

Scopes

  • `support.read` — lister et récupérer tickets, messages et actions.
  • `support.write` — créer/mettre à jour les tickets et ajouter des messages.
  • `support.actions` — exécuter des actions et consulter leur statut.

Pagination

  • Les endpoints de liste acceptent `limit` et `page_token`.
  • Passez `next_page_token` dans la requête suivante.

Erreurs

  • Les erreurs renvoient `{ error: { type, message, code } }`.
  • Les codes HTTP reflètent la valeur `code`.

Exemples de requêtes et réponses

Lister les tickets

Récupérez les tickets ouverts sur tous les canaux.

Requête
curl -X GET "https://api.threada.ai/api/v1/public/tickets?limit=25" \
  -H "X-Api-Key: YOUR_API_KEY"
Réponse
{
  "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"
}

Créer un ticket

Ouvrez un nouveau ticket avec un message initial.

Requête
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"
    }
  }'
Réponse
{
  "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"
      }
    ]
  }
}

Exécuter une action

Déclenchez une automatisation HTTP personnalisée pour un ticket.

Requête
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\"}"
    }
  }'
Réponse
{
  "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\"}"
    }
  }
}

Besoin de plus d’endpoints ?

Contactez-nous pour un accès étendu, des limites plus élevées et des SLA entreprise.

Contacter les ventes