Start free

API reference

Message exports

Export WhatsApp, SMS, RCS and email messages for a period of up to 31 days, with cursor pagination and the correlation metadata of each send.

  • 4 operations
  • Base URLhttps://api.messages.ccxcompany.co
  • AuthenticationBearer with your API key

The technical text below comes from the public contract, openapi.json, in the language the contract was written in.

Exporta as mensagens de WhatsApp de um período

GET/v2/exports/whatsapp

Todas as mensagens de WhatsApp criadas entre from e to (inclusive; até 31 dias por consulta), da mais recente para a mais antiga, com a correlação dos webhooks: metadata, campaignId, contactId e o seu Customer ID (contactExternalId).

Paginação por cursor: passe o nextCursor da resposta em cursor até ele voltar null. O custo por página é constante, qualquer que seja a profundidade.

Ambiente: vem da credencial — chave de teste exporta o sandbox.

O destinatário (to) sai mascarado sem o escopo pii:full.

Permissão: messages:read.

Parameters

FieldInTypeDescription
fromrequiredquerystring · date-timeInício do período (inclusive), ISO 8601.
torequiredquerystring · date-timeFim do período (inclusive), ISO 8601.
cursoroptionalquerystringO nextCursor da página anterior. Ausente = primeira página.
limitoptionalqueryintegerLinhas por página (padrão 500, máximo 1000).

Responses

  • 200Default Response

    Response fields and example
    FieldTypeDescription
    itemsrequiredobject[]
    items[].idrequiredstring
    items[].channelrequiredstringValues:whatsappsmsrcsemail
    items[].directionrequiredstringValues:outboundinbound
    items[].torequiredstring
    items[].statusrequiredstring
    items[].campaignIdoptionalstring
    items[].contactIdoptionalstring
    items[].contactExternalIdoptionalstring
    items[].metadataoptionalobjectMetadados de correlação do seu sistema (ex.: customerId, journeyId), devolvidos intactos em todo webhook desta mensagem. Até 20 chaves; chave começa por letra e usa [A-Za-z0-9_.-] (até 64); valor é texto (até 256), número ou booleano. Não envie dado pessoal aqui.
    items[].createdAtrequiredstring
    items[].sentAtoptionalstring
    items[].deliveredAtoptionalstring
    items[].readAtoptionalstring
    items[].failedAtoptionalstring
    items[].reasonoptionalstring
    items[].segmentsoptionalinteger
    items[].deliveredViaoptionalstringValues:rcssms
    items[].subjectoptionalstring
    nextCursorrequiredstring | null
    JSON
    {  "items": [    {      "id": "string",      "channel": "whatsapp",      "direction": "outbound",      "to": "string",      "status": "string",      "campaignId": "string",      "contactId": "string",      "contactExternalId": "string",      "metadata": {},      "createdAt": "string",      "sentAt": "string",      "deliveredAt": "string",      "readAt": "string",      "failedAt": "string",      "reason": "string",      "segments": 1,      "deliveredVia": "rcs",      "subject": "string"    }  ],  "nextCursor": "string"}
  • 400RFC 7807 problem details for BAD_REQUEST (400).

  • 401RFC 7807 problem details for UNAUTHORIZED (401).

  • 403RFC 7807 problem details for FORBIDDEN (403).

  • 422RFC 7807 problem details for VALIDATION_ERROR (422).

Error responses follow RFC 7807 (application/problem+json), with a stable code in the code field. See the error codes

curl example

cURL
curl 'https://api.messages.ccxcompany.co/v2/exports/whatsapp?from=2026-10-16T12%3A00%3A00.000Z&to=2026-10-16T12%3A00%3A00.000Z' \  -H "Authorization: Bearer $CCX_API_KEY"
Required fields only. Swap the sample values for your own.

Exporta as mensagens de SMS de um período

GET/v2/exports/sms

Todas as mensagens de SMS criadas entre from e to (inclusive; até 31 dias por consulta), da mais recente para a mais antiga, com a correlação dos webhooks: metadata, campaignId, contactId e o seu Customer ID (contactExternalId).

Paginação por cursor: passe o nextCursor da resposta em cursor até ele voltar null. O custo por página é constante, qualquer que seja a profundidade.

Ambiente: vem da credencial — chave de teste exporta o sandbox.

O destinatário (to) sai mascarado sem o escopo pii:full.

Permissão: sms:read.

Parameters

FieldInTypeDescription
fromrequiredquerystring · date-timeInício do período (inclusive), ISO 8601.
torequiredquerystring · date-timeFim do período (inclusive), ISO 8601.
cursoroptionalquerystringO nextCursor da página anterior. Ausente = primeira página.
limitoptionalqueryintegerLinhas por página (padrão 500, máximo 1000).

Responses

  • 200Default Response

    Response fields and example
    FieldTypeDescription
    itemsrequiredobject[]
    items[].idrequiredstring
    items[].channelrequiredstringValues:whatsappsmsrcsemail
    items[].directionrequiredstringValues:outboundinbound
    items[].torequiredstring
    items[].statusrequiredstring
    items[].campaignIdoptionalstring
    items[].contactIdoptionalstring
    items[].contactExternalIdoptionalstring
    items[].metadataoptionalobjectMetadados de correlação do seu sistema (ex.: customerId, journeyId), devolvidos intactos em todo webhook desta mensagem. Até 20 chaves; chave começa por letra e usa [A-Za-z0-9_.-] (até 64); valor é texto (até 256), número ou booleano. Não envie dado pessoal aqui.
    items[].createdAtrequiredstring
    items[].sentAtoptionalstring
    items[].deliveredAtoptionalstring
    items[].readAtoptionalstring
    items[].failedAtoptionalstring
    items[].reasonoptionalstring
    items[].segmentsoptionalinteger
    items[].deliveredViaoptionalstringValues:rcssms
    items[].subjectoptionalstring
    nextCursorrequiredstring | null
    JSON
    {  "items": [    {      "id": "string",      "channel": "whatsapp",      "direction": "outbound",      "to": "string",      "status": "string",      "campaignId": "string",      "contactId": "string",      "contactExternalId": "string",      "metadata": {},      "createdAt": "string",      "sentAt": "string",      "deliveredAt": "string",      "readAt": "string",      "failedAt": "string",      "reason": "string",      "segments": 1,      "deliveredVia": "rcs",      "subject": "string"    }  ],  "nextCursor": "string"}
  • 400RFC 7807 problem details for BAD_REQUEST (400).

  • 401RFC 7807 problem details for UNAUTHORIZED (401).

  • 403RFC 7807 problem details for FORBIDDEN (403).

  • 422RFC 7807 problem details for VALIDATION_ERROR (422).

Error responses follow RFC 7807 (application/problem+json), with a stable code in the code field. See the error codes

curl example

cURL
curl 'https://api.messages.ccxcompany.co/v2/exports/sms?from=2026-10-16T12%3A00%3A00.000Z&to=2026-10-16T12%3A00%3A00.000Z' \  -H "Authorization: Bearer $CCX_API_KEY"
Required fields only. Swap the sample values for your own.

Exporta as mensagens de RCS de um período

GET/v2/exports/rcs

Todas as mensagens de RCS criadas entre from e to (inclusive; até 31 dias por consulta), da mais recente para a mais antiga, com a correlação dos webhooks: metadata, campaignId, contactId e o seu Customer ID (contactExternalId).

Paginação por cursor: passe o nextCursor da resposta em cursor até ele voltar null. O custo por página é constante, qualquer que seja a profundidade.

Ambiente: vem da credencial — chave de teste exporta o sandbox.

O destinatário (to) sai mascarado sem o escopo pii:full.

Permissão: rcs:read.

Parameters

FieldInTypeDescription
fromrequiredquerystring · date-timeInício do período (inclusive), ISO 8601.
torequiredquerystring · date-timeFim do período (inclusive), ISO 8601.
cursoroptionalquerystringO nextCursor da página anterior. Ausente = primeira página.
limitoptionalqueryintegerLinhas por página (padrão 500, máximo 1000).

Responses

  • 200Default Response

    Response fields and example
    FieldTypeDescription
    itemsrequiredobject[]
    items[].idrequiredstring
    items[].channelrequiredstringValues:whatsappsmsrcsemail
    items[].directionrequiredstringValues:outboundinbound
    items[].torequiredstring
    items[].statusrequiredstring
    items[].campaignIdoptionalstring
    items[].contactIdoptionalstring
    items[].contactExternalIdoptionalstring
    items[].metadataoptionalobjectMetadados de correlação do seu sistema (ex.: customerId, journeyId), devolvidos intactos em todo webhook desta mensagem. Até 20 chaves; chave começa por letra e usa [A-Za-z0-9_.-] (até 64); valor é texto (até 256), número ou booleano. Não envie dado pessoal aqui.
    items[].createdAtrequiredstring
    items[].sentAtoptionalstring
    items[].deliveredAtoptionalstring
    items[].readAtoptionalstring
    items[].failedAtoptionalstring
    items[].reasonoptionalstring
    items[].segmentsoptionalinteger
    items[].deliveredViaoptionalstringValues:rcssms
    items[].subjectoptionalstring
    nextCursorrequiredstring | null
    JSON
    {  "items": [    {      "id": "string",      "channel": "whatsapp",      "direction": "outbound",      "to": "string",      "status": "string",      "campaignId": "string",      "contactId": "string",      "contactExternalId": "string",      "metadata": {},      "createdAt": "string",      "sentAt": "string",      "deliveredAt": "string",      "readAt": "string",      "failedAt": "string",      "reason": "string",      "segments": 1,      "deliveredVia": "rcs",      "subject": "string"    }  ],  "nextCursor": "string"}
  • 400RFC 7807 problem details for BAD_REQUEST (400).

  • 401RFC 7807 problem details for UNAUTHORIZED (401).

  • 403RFC 7807 problem details for FORBIDDEN (403).

  • 422RFC 7807 problem details for VALIDATION_ERROR (422).

Error responses follow RFC 7807 (application/problem+json), with a stable code in the code field. See the error codes

curl example

cURL
curl 'https://api.messages.ccxcompany.co/v2/exports/rcs?from=2026-10-16T12%3A00%3A00.000Z&to=2026-10-16T12%3A00%3A00.000Z' \  -H "Authorization: Bearer $CCX_API_KEY"
Required fields only. Swap the sample values for your own.

Exporta as mensagens de e-mail de um período

GET/v2/exports/email

Todas as mensagens de e-mail criadas entre from e to (inclusive; até 31 dias por consulta), da mais recente para a mais antiga, com a correlação dos webhooks: metadata, campaignId, contactId e o seu Customer ID (contactExternalId).

Paginação por cursor: passe o nextCursor da resposta em cursor até ele voltar null. O custo por página é constante, qualquer que seja a profundidade.

Ambiente: vem da credencial — chave de teste exporta o sandbox.

O destinatário (to) sai mascarado sem o escopo pii:full.

Permissão: email:read.

Parameters

FieldInTypeDescription
fromrequiredquerystring · date-timeInício do período (inclusive), ISO 8601.
torequiredquerystring · date-timeFim do período (inclusive), ISO 8601.
cursoroptionalquerystringO nextCursor da página anterior. Ausente = primeira página.
limitoptionalqueryintegerLinhas por página (padrão 500, máximo 1000).

Responses

  • 200Default Response

    Response fields and example
    FieldTypeDescription
    itemsrequiredobject[]
    items[].idrequiredstring
    items[].channelrequiredstringValues:whatsappsmsrcsemail
    items[].directionrequiredstringValues:outboundinbound
    items[].torequiredstring
    items[].statusrequiredstring
    items[].campaignIdoptionalstring
    items[].contactIdoptionalstring
    items[].contactExternalIdoptionalstring
    items[].metadataoptionalobjectMetadados de correlação do seu sistema (ex.: customerId, journeyId), devolvidos intactos em todo webhook desta mensagem. Até 20 chaves; chave começa por letra e usa [A-Za-z0-9_.-] (até 64); valor é texto (até 256), número ou booleano. Não envie dado pessoal aqui.
    items[].createdAtrequiredstring
    items[].sentAtoptionalstring
    items[].deliveredAtoptionalstring
    items[].readAtoptionalstring
    items[].failedAtoptionalstring
    items[].reasonoptionalstring
    items[].segmentsoptionalinteger
    items[].deliveredViaoptionalstringValues:rcssms
    items[].subjectoptionalstring
    nextCursorrequiredstring | null
    JSON
    {  "items": [    {      "id": "string",      "channel": "whatsapp",      "direction": "outbound",      "to": "string",      "status": "string",      "campaignId": "string",      "contactId": "string",      "contactExternalId": "string",      "metadata": {},      "createdAt": "string",      "sentAt": "string",      "deliveredAt": "string",      "readAt": "string",      "failedAt": "string",      "reason": "string",      "segments": 1,      "deliveredVia": "rcs",      "subject": "string"    }  ],  "nextCursor": "string"}
  • 400RFC 7807 problem details for BAD_REQUEST (400).

  • 401RFC 7807 problem details for UNAUTHORIZED (401).

  • 403RFC 7807 problem details for FORBIDDEN (403).

  • 422RFC 7807 problem details for VALIDATION_ERROR (422).

Error responses follow RFC 7807 (application/problem+json), with a stable code in the code field. See the error codes

curl example

cURL
curl 'https://api.messages.ccxcompany.co/v2/exports/email?from=2026-10-16T12%3A00%3A00.000Z&to=2026-10-16T12%3A00%3A00.000Z' \  -H "Authorization: Bearer $CCX_API_KEY"
Required fields only. Swap the sample values for your own.

Stuck on a route? Talk to the people who run the API.

Sign up through the site and get a US$5 test credit.