Antonnia Docs

API de Mensagens

Referência completa dos endpoints de mensagem

Todos os endpoints de mensagem são vinculados a uma sessão: /sessions/{session_id}/messages.

Criar mensagem

Cria uma nova mensagem em uma sessão.

POST /sessions/{session_id}/messages

Corpo da requisição

FieldTypeRequiredDescription
contentobjectYesConteúdo da mensagem (veja tipos de conteúdo)
rolestringYes"user" ou "assistant"
provider_message_idstringNoID da mensagem no seu canal
replied_provider_message_idstringNoID no provedor da mensagem que está sendo respondida
run_idstringNoIdentificador de execução da IA (uso interno)
curl -X POST https://services.antonnia.com/conversations/v2/api/v1/sessions/sess_abc123/messages \
  -H "Authorization: Bearer sk_live_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "content": { "type": "text", "text": "Hello, I need help" },
    "role": "user",
    "provider_message_id": "channel_msg_001"
  }'
response = httpx.post(
    f"{BASE_URL}/sessions/sess_abc123/messages",
    headers=HEADERS,
    json={
        "content": {"type": "text", "text": "Hello, I need help"},
        "role": "user",
        "provider_message_id": "channel_msg_001",
    },
)
message = response.json()

Response 201

{
  "id": "msg_abc123",
  "session_id": "sess_abc123",
  "conversation_id": "conv_789",
  "organization_id": "org_xyz",
  "role": "user",
  "content": { "type": "text", "text": "Hello, I need help" },
  "provider_message_id": "channel_msg_001",
  "replied_provider_message_id": null,
  "run_id": null,
  "delivery_status": "pending",
  "delivery_error_code": null,
  "delivery_error_message": null,
  "delivered_at": null,
  "metadata": {},
  "created_at": "2025-01-15T10:30:00Z",
  "updated_at": null
}

Erros

CodeDescription
400Tipo de conteúdo inválido
401Não autorizado
404Sessão não encontrada

Obter mensagem

Recupera uma única mensagem.

GET /sessions/{session_id}/messages/{message_id}
curl -X GET https://services.antonnia.com/conversations/v2/api/v1/sessions/sess_abc123/messages/msg_xyz789 \
  -H "Authorization: Bearer sk_live_YOUR_TOKEN"
response = httpx.get(
    f"{BASE_URL}/sessions/sess_abc123/messages/msg_xyz789",
    headers=HEADERS,
)
message = response.json()

Response 200

Retorna o objeto completo da mensagem.

Erros

CodeDescription
401Não autorizado
403A mensagem pertence a outra organização
404Mensagem ou sessão não encontrada

Atualizar mensagem

Atualiza campos de rastreamento de entrega em uma mensagem. Não modifica o conteúdo da mensagem.

PATCH /sessions/{session_id}/messages/{message_id}

Corpo da requisição

FieldTypeRequiredDescription
provider_message_idstringNoID da mensagem no seu canal
replied_provider_message_idstringNoID no provedor da mensagem respondida
delivery_statusstringNo"pending", "sent", "delivered", "read", "failed", "rejected"
delivery_error_codeintegerNoCódigo de erro do canal (quando falhou)
delivery_error_messagestringNoDescrição do erro do canal (quando falhou)
delivered_atdatetimeNoQuando a mensagem foi entregue
# Mark as sent with provider ID
curl -X PATCH https://services.antonnia.com/conversations/v2/api/v1/sessions/sess_abc123/messages/msg_xyz789 \
  -H "Authorization: Bearer sk_live_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "provider_message_id": "channel_msg_456",
    "delivery_status": "sent"
  }'
# Mark as sent with provider ID
httpx.patch(
    f"{BASE_URL}/sessions/sess_abc123/messages/msg_xyz789",
    headers=HEADERS,
    json={
        "provider_message_id": "channel_msg_456",
        "delivery_status": "sent",
    },
)

Reportar falha de entrega

curl -X PATCH https://services.antonnia.com/conversations/v2/api/v1/sessions/sess_abc123/messages/msg_xyz789 \
  -H "Authorization: Bearer sk_live_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "delivery_status": "failed",
    "delivery_error_code": 131026,
    "delivery_error_message": "24-hour messaging window expired"
  }'
httpx.patch(
    f"{BASE_URL}/sessions/sess_abc123/messages/msg_xyz789",
    headers=HEADERS,
    json={
        "delivery_status": "failed",
        "delivery_error_code": 131026,
        "delivery_error_message": "24-hour messaging window expired",
    },
)

Response 200

Retorna o objeto da mensagem atualizado.


Buscar mensagens

Busca mensagens dentro de uma sessão.

POST /sessions/{session_id}/messages/search

Corpo da requisição

FieldTypeRequiredDescription
session_idstringYesSessão para buscar
provider_message_idstringNoFiltrar por ID da mensagem no canal
replied_provider_message_idstringNoFiltrar por ID da mensagem respondida no canal
rolestringNo"user" ou "assistant"
offsetintegerNoOffset de paginação
limitintegerNoMáximo de resultados
curl -X POST https://services.antonnia.com/conversations/v2/api/v1/sessions/sess_abc123/messages/search \
  -H "Authorization: Bearer sk_live_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "session_id": "sess_abc123",
    "provider_message_id": "channel_msg_001"
  }'
response = httpx.post(
    f"{BASE_URL}/sessions/sess_abc123/messages/search",
    headers=HEADERS,
    json={
        "session_id": "sess_abc123",
        "provider_message_id": "channel_msg_001",
    },
)
messages = response.json()  # List[Message]

Response 200

Retorna um array de objetos de mensagem.

On this page