API Documentation

💬 Introduction

​Desk360 API is a Representational State Transfer (REST) ​​structure that provides operations such as: Reading Modifying Adding data Deleting data from your help desk.

Desk360 APIs also support Cross-Origin Resource Sharing (CORS).

HTTP Methods

The list of API commands used by Desk360

Command

Description

GET

Fetches object(s)

POST

Creates an object

PUT

Updates/Modifies an object

DELETE

Deletes an object

All API requests must reach the secure endpoint i.e. HTTPS only

💨 Rate Limit

This rate limit applies are based on IP address.

Plan

Rate Limit/Minute

Business

60

  • Make sure to apply the rate limit-best practices and it stays within the rate limit.

  • Make sure to make API calls in a safe layer such as your backend, not front-end or your mobile application.

  • Remind that even invalid requests are included in the rate limit.

Check your current rate limit status by looking at the following HTTP headers returned in response to each API request:

HTTP/1.1 200 OK
Content-Type: application/json
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 58

Title

Description

X-RateLimit-Limit

Total number of API calls allowed per minute.

X-RateLimit-Remaining

The number of requests remaining in the current rate limit window.

X-RateLimit-Reset

The reset time in Unix epoch time format.

Retry-After

The number of seconds you should wait in order to trigger your next API request.

This header is returned only when the rate limit is reached.

If your API request is received after the rate limit is reached, Desk360 will return an error in the response. The Retry-After value in the response header will tell you how long to wait before sending another API request.

HTTP/1.1 200 OK
Content-Type: application/json
Retry-After: 26

🚀 Getting Started

🔒 Authentication

Who can access my helpdesk? Can anyone see my data?

Before prioritizing a ticket or responding to a customer or using any of the APIs listed above, you must authenticate or log in as you sign in to your helpdesk web portal.

To authenticate the request, you can use your personal. You can obtain your API token with a request with your username and password.

All Desk360 API endpoints (except login) need this token in order to respond to your request.

Obtain your token with a request.

You can directly use v1/login endpoint in order to create/obtain an API token. This API will return an auto-generate a token and returns it.

To make it secure, the maximum wrong login attempt is fixed to 5 per minute.

Correct attempts do not affect the limits.

Login

POST https://public-api.desk360.com/v1/login

Use a valid email and password pair to obtain a token.

Request Body

NameTypeDescription

email

string

An email that is already registered

password

string

The user's password

{
    "access_token": "1|iybflVqHloQdz9QH4PIkX0q1Od68T9sDrKCtnuxW6f78ad5b",
    "token_type": "Bearer"
}
curl --location --request POST 'https://public-api.desk360.com/v1/login' \
--header 'Content-Type: application/json' \
--data-raw '{
    "email": "abc@example.com",
    "password": "YOUR_PASSWORD"
}'

📎 Attachments

The following endpoints are supported with attachments:

Sending a media message Sending a interactive message

Please follow the guidelines listed below:

  • Only files on a local machine can be added using the API. You can not use links!

  • Content-Type should always be multi-part/form-data for attached requests.

Errors

I received an error. How can I solve it?

API requests that cause errors will return an appropriate HTTP status code to help determine the type of error. You can use the following table to understand what each code means:

HTTP Status Code

Status Code Definition

Description

400

Client or Validation Error

The request body/query string is not in the correct format.

For example, the Send a message API requires the to field to be submitted as part of the request, and if it is missing, this status code is returned.

401

Authentication Failure

This indicates that the Authorization field is either missing or incorrect.

Check Authentication for more information.

404

Requested Resource not Found

The request contains an invalid ID or invalid parameters in the URL. For example, an API call to retrieve a integration with an invalid ID will return an HTTP 404 status code to inform you that no such integration exists.

405

Method not allowed

This API request has used the wrong HTTP method.

For example, a DELETE requested on /integrations endpoint will return an HTTP 405 as /integrations allows only GET requests.

406

Unsupported Accept Header

Only application/json and */* are supported. When uploading files multipart/form-data are supported.

415

Unsupported Content-type

Only application/json is supported.

429

Rate Limit Exceeded

The API rate limit allowed for your Desk360 domain has been exhausted. Check Rate Limit.

500

Unexpected Server Error

You can't do much more here. This indicates an error on the Desk360 side. Please email us your API script with response headers. We will contact you and fix this issue as soon as possible.

Sample error response

In addition to the HTTP status code, most errors also return a response with more information to help you troubleshoot the error. An example error response is shown below. The format of the error response is explained after the example.

    "error": {
        "code": "failed_validation",
        "message": "The to field is required."
        "doc_url": "https://docs.desk360.com/api"
    }
}

Error Response Fields

Field

Description

code

Custom error code that is machine-parseable.

message

Descriptive error message.

doc_url

A link to guide you if there is a solution on the documentation.

Error Codes

Code

Description

authentication_exception

Authentication failed. The token is missing or invalid. Do not forget to put "Bearer" in the beginning of your token. eg: "Bearer YOUR-API-TOKEN"

method_not_allowed_exception

If the method and endpoint is mismatched, you will get this error. Please check the endpoint method. eg: Products only allows GET method.

not_found_exception

You may have made a typo in your request URL.

model_not_found_exception

Requested resource not found, the resource maybe deleted or maybe the resource is not yours.

internal_server_error

The error is coming from our servers. If you have been receiving this error message for a while, contact us.

insecure_request_exception

HTTP is not allowed. Use HTTPS instead.

too_many_requests_exception

Check Rate Limit.

invalid_credentials

You typed your email/password wrong.

too_many_attempts

If you entered your email/password wrong more than 5 times, you should wait for a minute.

not_authorized

You do not have permission to modify the resource.

not_found

Requested resource not found, the resource maybe deleted or maybe the resource is not yours.

failed_validation

This is a validation error, please read the message and apply what it says.

📄 Pagination

API responses that return a list of objects are paginated, for example, View Integration List. Add the parameter page to the query string to navigate through the pages. The page number starts from 1 and each page is fixed to show 20 objects.

https://public-api.desk360.com/api/v1/integrations?page=1

The "Link" header in the response will be showing the next page if it exists:

Headers
"Link" : <https://public-api.desk360.com/v1/integrations?page=2>; rel=next

If you are on the last page the link header will not be filled.

Best Practices

  • Whenever it is possible, please queue API calls on your side. This allows you to buffer recent calls to avoid reaching the rate limit. Once you reach the rate limit, retry API calls after the retry period.

  • Whenever it is feasible, cache the data that does not change much on your side. For example, the mapping between agent name and ID is extremely unlikely to change, so it is a useful approach to cache this data to avoid the rate limit.

  • Avoid making API calls directly from a mobile app, instead, send the request to your servers and make API calls from there. This ensures that if an API endpoint is changed, you can make and deploy the change on your server instead of updating your application and forcing your customers to the latest version.

Integrations

Apart from its competitors, Desk360 enables its customers to manage multiple integrations under one account.

In order to find your Integration ID, visit Integrations.

Integrations

GET https://public-api.desk360.com/v1/integrations

List of your integrations.

Headers

NameTypeDescription

Authorization *

string

Your API token

[
    {
        "id": 11,
        "display_name": "YourIntegration1",
        "phone_number": "+905554443322"
    },
    {
        "id": 22,
        "name": "YourIntegration2",
        "logo": "+905555555555"
    }
]

Code Samples

curl --location --request GET 'https://public-api.desk360.com/v1/integrations' \
--header 'Authorization: Bearer YOUR_API_TOKEN'

WhatsApp Message Templates

WhatsApp message templates are message formats that let you deliver multiple notifications to customers who have agreed to receive them via WhatsApp.

WhatsApp Message Templates

GET https://public-api.desk360.comv1/integrations/:integrationId/conversations/templates

Get WhatsApp message template and languages list from a product.

Path Parameters

NameTypeDescription

IntegrationId *

Integer

The ID of your integration

Headers

NameTypeDescription

Authorization *

String

Your API Token

[
  {
    "id": 75,
    "name": "template_02",
    "category_editable": false,
    "sendable": true,
    "category": {
      "value": 2,
      "label": "template-messages.new.custom",
      "subLabel": "template-messages.new.custom-subtitle",
      "status": 1,
      "children": []
    },
    "category_label": "template-messages.new.custom",
    "supported_languages": [
      {
        "label": "English",
        "value": 1,
        "filled": true
      },
      {
        "label": "Türkçe",
        "value": 2,
        "filled": true
      }
    ],
    "translations": [
      {
        "language_id": 1,
        "language": "English",
        "header_type": null,
        "header_variables": null,
        "header": null,
        "header_file": null,
        "body": "English content test",
        "body_variables": null,
        "footer": null,
        "variables": [],
        "buttons": [],
        "editable": true,
        "status": "template-messages.in-review",
        "status_value": 1,
        "quality": "template-messages.quality-unavailable",
        "updated_at": "2024-05-31T06:33:30.000000Z"
      },
      {
        "language_id": 2,
        "language": "Türkçe",
        "header_type": {
          "value": 4,
          "label": "TEXT"
        },
        "header_variables": [
          {
            "id": "",
            "key": "1",
            "value": "Header 1"
          }
        ],
        "header": "Merhaba {{1}} ,",
        "header_file": null,
        "body": "Merhaba {{1}}, Sipariş takip numaranız: {{2}} Bu takip numarası ile siparişinizin durumunu sorgulayabilirsiniz.",
        "body_variables": [
          {
            "id": "",
            "key": "1",
            "value": "Ahmet Kara"
          },
          {
            "id": "",
            "key": "2",
            "value": "SP123456789"
          }
        ],
        "footer": null,
        "variables": [
          "header-1",
          "body-1",
          "body-2"
        ],
        "buttons": [],
        "editable": true,
        "status": "template-messages.active",
        "status_value": 2,
        "quality": "template-messages.quality-unavailable",
        "updated_at": "2024-05-30T12:16:37.000000Z"
      }
    ],
    "created_at": "2024-05-30T12:14:28.000000Z",
    "updated_at": "2024-05-31T06:33:30.000000Z"
  }
]

Code Samples

curl --location --request GET 'https://public-api.desk360.com/v1/integrations/:integrationId/conversations/templates/?page=1' \--header 'Authorization: Bearer YOUR_API_TOKEN'

Send WhatsApp Message Template

POST https://public-api.desk360.com/v1/integrations/:integrationsId/conversations/templates/send

Send active WhatsApp message template to a WhatsApp number. If you send with attachments, use form-data. You can also send other body parameters with form-data as well.

Path Parameters

NameTypeDescription

IntegrationId *

Integer

The ID of your integration

Headers

NameTypeDescription

Authorization *

string

Your API Token

Request Body

NameTypeDescription

template_id *

Integer

The template id of the template to be sent.

language_id *

Integer

The language id of the template to be sent.

destinations[] *

array

Required parameters for the template. The key list received in the template list should be used as a key during submission.

destinations.*.phone *

string

WhatsApp number to be sent. It should start with (+) and a country code.

destinations.*.parameters

object

Required parameters for the template. The key list received in the template list should be used as a key during submission.

attachment

file

Attachment for the message template (only allowed in form-data).

{
    "message_id": "gBEGkFBXUQRnAglW0luHY8xsrFk"
}

Code Samples

curl --location --request POST 'https://public-api.desk360.com/v1/integrations/:integrationId/conversations/templates/send' \
--header 'Authorization: YOUR_API_TOKEN' \
--form 'template_id="1"' \
--form 'language_id="1"' \
--form 'destinations[0][phone]="+905555555555"' \
--form 'destinations[0][parameters][header-1]="Header 1"' \
--form 'destinations[0][parameters][body-1]="Body 1"' \
--form 'destinations[0][parameters][body-2]="Body 2"' \
--form 'attachment=@"/test_image.jpg"'

Bulk Send WhatsApp Message Template

POST https://public-api.desk360.com/v1/integrations/:integrationId/conversations/templates/send/bulk

Send active WhatsApp message template to multiple WhatsApp number. If you send with attachments, use form-data. You can also send other body parameters with form-data as well.

Path Parameters

NameTypeDescription

IntegrationId *

Integer

The ID of your integration

Headers

NameTypeDescription

Authorization *

string

Your API Token

Request Body

NameTypeDescription

template_id *

Integer

The template id of the template to be sent.

language_id *

Integer

The language id of the template to be sent.

destinations[]

array

Destinations for the template.

destinations.*.phone

string

WhatsApp number to be sent. It should start with (+) and a country code.

parameters

object

Required parameters for the template. The key list received in the template list should be used as a key during submission.

attachment

file

Attachment for the message template (only allowed in form-data).

destinations_file

file

WhatsApp numbers csv file to be sent. It should start with (+) and a country code.

{
    "phones": [
        "+905555555555"
    ]
}

Code Samples

curl --location --request POST 'https://public-api.desk360.com/v1/integrations/:integrationId/conversations/templates/send/bulk' \
--header 'Authorization: YOUR_API_TOKEN' \
--form 'template_id="1"' \
--form 'language_id="1"' \
--form 'destinations[0][phone]="+905555555555"' \
--form 'parameters[header-1]="Header 1"' \
--form 'parameters[body-1]="Body 1"' \
--form 'parameters[body-2]="Body 2"' \
--form 'attachment=@"/test_image.jpg"'

WhatsApp Messages

Use the messages node to send text, location, contact, media, interactive, location request and read receipt message to your customers.

Send WhatsApp Message

POST https://public-api.desk360.com/v1/integrations/:integrationId/conversations/messages

Send message to an active WhatsApp number.

Path Parameters

NameTypeDescription

IntegrationId*

Integer

The ID of your integration

Headers

NameTypeDescription

Authorization *

string

Your API Token

Request Body

NameTypeDescription

to*

string

WhatsApp number to be sent. It should start with (+) and a country code.

text *

string

Message body. It should max 4096 chars.

{
    "message_id": "gBEGkFBXUQRnAgnoOJ1ESPKBwME"
}

Code Samples

curl --location --request POST 'https://public-api.desk360.com/v1/integrations/:integrationId/conversations/messages' \
--header 'Authorization: Bearer YOUR_API_TOKEN' \
--form 'to="+90xxxxxxxxxx"' \
--form 'text="Hello!"'

Send WhatsApp Location Message

POST https://public-api.desk360.com/v1/integrations/:integrationId/conversations/messages

Send location message to an active WhatsApp number.

Path Parameters

NameTypeDescription

IntegrationId*

Integer

The ID of your integration

Headers

NameTypeDescription

Authorization *

String

Your API Token

Request Body

NameTypeDescription

to*

String

WhatsApp number to be sent. It should start with (+) and a country code.

location*

Object

An object of the message.

location.longitude*

Numeric

Longitude of location.

location.latitude*

Numeric

Latitude of location.

location.name*

String

Name of location.

location.address*

String

Address of location.

{
    "message_id": "gBEGkFBXUQRnAgn3kXajlucbaso"
}

Code Samples

curl --location --request POST 'https://public-api.desk360.com/v1/integrations/:integrationId/conversations/messages/locations' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_API_TOKEN' \
--data '{
    "to": "+90xxxxxxxxxx",
    "location": {
        "longitude": -122.425332,
        "latitude": 37.758056,
        "name": "Facebook HQ",
        "address": "1 Hacker Way, Menlo Park, CA 94025"
    }
}'

Send WhatsApp Contact Message

POST https://public-api.desk360.com/v1/integrations/:integrationId/conversations/messages/contacts

Send contact message to an active WhatsApp number.

Path Parameters

NameTypeDescription

IntegrationId*

Integer

The ID of your integration

Headers

NameTypeDescription

Authorization *

String

Your API Token

Request Body

NameTypeDescription

to*

String

WhatsApp number to be sent. It should start with (+) and a country code.

contacts*

Array

An array of the message.

contacts.*.addresses.*.street

String

Street of address.

contacts.*.addresses.*.city

String

City of address.

contacts.*.addresses.*.state

String

State of address.

contacts.*.addresses.*.zip

String

Zip code of address.

contacts.*.addresses.*.country

String

Country of address.

contacts.*.addresses.*.country_code

String

Country code of address.

contacts.*.addresses.*.type

String

Type of address.

contacts.*.birthday

String

Birtday of contacts. Must be "Y-m-d" format.

contacts.*.emails.*.email

String

Email of emails.

contacts.*.emails.*.type

String

Type of emails.

contacts.*.name.formatted_name*

String

Formatted name of name object.

contacts.*.name.first_name*

String

First name of name object.

contacts.*.name.last_name*

String

Last name of name object.

contacts.*.name.middle_name

String

Middle name of name object.

contacts.*.name.suffix

String

Suffix of name.

contacts.*.name.prefix

String

Prefix of name.

contacts.*.org.company

String

Company name of organization.

contacts.*.org.department

String

Department of organization.

contacts.*.org.title

String

Title of organization.

contacts.*.phones.*.phone

String

Phone number of phones.

contacts.*.phones.*.type

String

Type of phones.

contacts.*.phones.*.wa_id

String

WAID of phones

contacts.*.urls.*.url

String

Url of urls.

contacts.*.urls.*.type

String

Type of urls.

{
    "message_id": "gBEGkFBXUQRnAgkCL1xSaIMoDz0"
}

Code Samples

curl --location --request POST 'https://public-api.desk360.com/v1/integrations/:integrationId/conversations/messages/contacts' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_API_TOKEN' \
--data-raw '{
    "to": "+90xxxxxxxxxx",
    "contacts": [
        {
            "addresses": [
                {
                    "city": "Menlo Park",
                    "country": "United States",
                    "country_code": "us",
                    "state": "CA",
                    "street": "1 Hacker Way",
                    "type": "HOME",
                    "zip": "94025"
                }
            ],
            "birthday": "2012-08-18",
            "emails": [
                {
                    "email": "test@whatsapp.com",
                    "type": "WORK"
                }
            ],
            "name": {
                "first_name": "John",
                "formatted_name": "John Smith",
                "last_name": "Smith"
            },
            "org": {
                "company": "WhatsApp",
                "department": "Design",
                "title": "Manager"
            },
            "phones": [
                {
                    "phone": "+1 (650) 555-1234",
                    "type": "WORK",
                    "wa_id": "16505551234"
                }
            ],
            "urls": [
                {
                    "url": "https://www.facebook.com",
                    "type": "WORK"
                }
            ]
        }
    ]
}'

Send WhatsApp Media Message

POST https://public-api.desk360.com/v1/integrations/:integrationId/conversations/messages/medias

Send media messages to an active WhatsApp number.

Path Parameters

NameTypeDescription

IntegrationId*

Integer

The ID of your integration

Headers

NameTypeDescription

Authorization *

string

Your API Token

Request Body

NameTypeDescription

to*

string

WhatsApp number to be sent. It should start with (+) and a country code.

attachments[]*

object

Attachment for the message (Only allowed in form-data).

Max Count: 5, Max Size: 20MB

{
    "medias": {
        "images": [
            {
                "url": "https://my-cdn.desk360.com/integrations/integrationId/attachments/bTARCYuscrcWU20t0dA8aesXufZKVuS0INd8rR5L.png",
                "name": "desk360.png",
                "type": "image",
                "aws": true,
                "content_type": "image/png",
                "message_id": "gBEGkFBXUQRnAgkEg3us4YW8UJE",
                "media_id": "cae26b43-1463-44f5-9a81-f4119afbf6d9"
            }
        ]
    }
}

Code Samples

curl --location --request POST 'https://public-api.desk360.com/v1/integrations/:integrationId/conversations/messages/medias' \
--header 'Authorization: Bearer YOUR_API_TOKEN' \
--form 'to="+90xxxxxxxxxx"' \
--form 'attachments[]=@"/path/to/file"'

Get WhatsApp Media

GET https://public-api.desk360.com/v1/integrations/:integrationId/conversations/messages/medias/:mediaId

Get whatsapp media by media id.

Path Parameters

NameTypeDescription

IntegrationId*

Integer

The ID of your integration

MediaId*

String

The ID of media

Headers

NameTypeDescription

Authorization *

string

Your API Token

{fileObject}

Code Samples

curl --location --request GET 'https://public-api.desk360.com/v1/integrations/:integrationId/conversations/messages/medias/:mediaId' \
--header 'Authorization: Bearer YOUR_API_TOKEN'

Send WhatsApp Interactive Message

POST https://public-api.desk360.com/v1/integrations/:integrationId/conversations/messages/interactive

Send interactive message to an active WhatsApp number.

Path Parameters

NameTypeDescription

IntegrationId*

Integer

The ID of your integration

Headers

NameTypeDescription

Authorization *

string

Your API Token

Request Body

NameTypeDescription

to*

String

WhatsApp number to be sent. It should start with (+) and a country code.

body*

String

Message body. It must be max 1024 chars.

buttons[]*

Array

Required parameters for the interactive message. It must be max 10 button object item.

buttons.*.id*

String

Unique identifier for your button. This ID is returned in the webhook when the button is clicked by the user. Maximum length: 200 chars.

buttons.*.title*

String

Button title. It cannot be an empty string and must be unique within the message. Emojis are supported, markdown is not. Maximum length: 20 chars.

header

Object

An object with the header of the message.

header.type

String

Required if header is set. Supported values: text, image, video or document.

header.text

String

Required if header's type is text. It must be max 60 chars.

header.document.link

String

Required if header's type is document.

header.document.filename

String

Header's document filename.

header.video.link

String

Required if header's type is video.

header.image.link

String

Required if header's type is image.

footer

Object

An object with the footer of the message.

footer.text

String

Required if footer object. It must be max 60 chars.

{
    "message_id": "gBEGkFBXUQRnAglHuQTBEMHpUdo"
}

Code Samples

curl --location --request POST 'https://public-api.desk360.com/v1/integrations/:integrationId/conversations/messages/interactive' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_API_TOKEN' \
--data '{
    "to": "+90xxxxxxxxxx",
    "header": {
        "type": "image",
        "image": {
            "link": "https://fastly.picsum.photos/id/879/200/300.jpg?hmac=07llkorYxtpw0EwxaeqFKPC5woveWVLykQVnIOyiwd8"
        }
    },
    "body": "<p>Hello</p>",
    "footer": {
        "text": "<b>Bye</b>"
    },
    "buttons": [
        {
            "id": "ID 1.1",
            "title": "Button 1"
        },
        {
            "id": "ID 1.2",
            "title": "Button 2"
        },
        {
            "id": "ID 1.3",
            "title": "Button 3"
        }
    ]
}'

Send WhatsApp Location Request Interactive Message

POST https://public-api.desk360.com/v1/integrations/:integrationId/conversations/messages/interactive/location-request

Send location request interactive message to an active WhatsApp number.

Path Parameters

NameTypeDescription

IntegrationId*

Integer

The ID of your integration

Headers

NameTypeDescription

Authorization *

String

Your API Token

Request Body

NameTypeDescription

to*

String

WhatsApp number to be sent. It should start with (+) and a country code.

body*

String

Message body. It must be max 1024 chars.

{
    "message_id": "gBEGkFBXUQRnAgn6gWf5CzaF6Ko"
}

Code Samples

curl --location --request POST 'https://public-api.desk360.com/v1/integrations/:integrationId/conversations/messages/interactive/location-request' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_API_TOKEN' \
--data '{
    "to": "+90xxxxxxxxxx",
    "body": "<i>Send Location</i>"
}'

Read WhatsApp Message

POST https://public-api.desk360.com/v1/integrations/:integrationId/conversations/messages/reads

Mark messages from webhook as read.

Path Parameters

NameTypeDescription

IntegrationId*

Integer

The ID of your integration

Headers

NameTypeDescription

Authorization *

string

Your API Token

Request Body

NameTypeDescription

message_ids[]*

object

Message ids to mark as read

{
    "message_ids": [
        "gBEGkFBXUQRnAgn6gWf5CzaF6Ko",
        "gBEGkFBXUQRnAglHuQTBEMHpUdo"
    ]
}

Code Samples

curl --location --request POST 'https://public-api.desk360.com/v1/integrations/:integrationId/conversations/messages/reads' \
--header 'Authorization: Bearer YOUR_API_TOKEN' \
--form 'message_ids[]="xxxxxxxxxxxxxxxx"'

WhatsApp Webhooks

Subscribe to Webhooks to be notified about messages and message status updates your business receives.

Received Messages Examples

Text Messages

{
  "messages": {
    "id": "ABEGkFMIcyRoAgo-sGaD-H6MgPEt",
    "text": "Hello",
    "from": "90xxxxxxxxxx",
    "timestamp": "1630913975",
    "name": "John Doe",
    "type": "text"
  }
}

Location Messages

{
  "messages": {
    "id": "ABEGkFBXUQRnAgo6cHkZc1yy0dAx",
    "text": "Main Street Beach - Main Street Beach, Santa Cruz, CA, latitude: 38.9806263495, longitude: -131.9428612257",
    "from": "90xxxxxxxxxx",
    "timestamp": "1700052659",
    "name": "John Doe",
    "location": {
      "address": "Main Street Beach, Santa Cruz, CA",
      "latitude": 38.9806263495,
      "longitude": -131.9428612257,
      "name": "Main Street Beach"
    },
    "type": "location"
  }
}

Contact Messages

{
  "messages": {
    "id": "ABEGkFBXUQRnAgo6PXn8aI1fmlOm",
    "from": "90xxxxxxxxxx",
    "timestamp": "1700052797",
    "name": "John Doe",
    "type": "contacts",
    "contacts": [
      {
        "addresses": [
          {
            "city": "Menlo Park",
            "country": "United States",
            "country_code": "us",
            "state": "CA",
            "street": "1 Hacker Way",
            "type": "WORK",
            "zip": "94025"
          }
        ],
        "birthday": "2012-08-18",
        "emails": [
          {
            "email": "kfish@fb.com",
            "type": "WORK"
          }
        ],
        "ims": [
          {
            "service": "AIM",
            "user_id": "kfish"
          }
        ],
        "name": {
          "first_name": "Kerry",
          "formatted_name": "Kerry Fisher",
          "last_name": "Fisher"
        },
        "org": {
          "company": "Meta",
          "department": "WhatsApp"
        },
        "phones": [
          {
            "phone": "+1 (650) 555-1234",
            "type": "WORK",
            "wa_id": "16505551234"
          }
        ],
        "urls": [
          {
            "url": "https://www.facebook.com",
            "type": "WORK"
          }
        ]
      }
    ]
  }
}

Media Messages

{
  "messages": {
    "id": "ABEGkFBXUQRnAgo6xTEQCONO2nW9",
    "from": "90xxxxxxxxxx",
    "timestamp": "1689756449",
    "name": "John Doe",
    "image": {
      "message": null,
      "media_id": "83518734-56a9-4b51-8372-93f1432cfa9b",
      "mime_type": "image/jpeg",
      "sha": "7e18d97d50eea65a50d9fa93db26e1c689da7c7de64d829b22aad38c4f541510"
    },
    "attachments": {
      "images": [
        {
          "url": "https://path/to/file/9oCtWHWxkv4E0PQhtHA4uW4NRinIROKCO8NEae5p.jpeg",
          "name": "9oCtWHWxkv4E0PQhtHA4uW4NRinIROKCO8NEae5p.jpeg",
          "type": "image",
          "aws": true
        }
      ]
    },
    "type": "image"
  }
}

Status Updates

{
  "statuses": {
    "id": "gBEGkFBXUQRnAglM82HET_hbwJs",
    "from": "90xxxxxxxxxx",
    "status": "delivered|read"
  }
}

Homepage Pricing

Last updated