Overview
This page describes our Partner API.
The 360dialog Partner API follows REST principles. It uses predictable, resource-oriented URLs, accepts form-encoded request bodies, returns JSON-formatted responses, and relies on standard HTTP methods, authentication mechanisms, and response status codes.
The 360dialog Partner API enables the programmatic management of WhatsApp Business Accounts and phone numbers. It enables Partners to automate workflows and build a seamless onboarding and management experience for their clients.
To get started, you will need:
Partner ID
Partner Hub login credentials
Partner ID
The Partner ID is a unique identifier used for most Partner API requests. You can find your Partner ID by logging into the 360dialog Partner Hub in your browser and navigating to the Partner Integration section.

Login Credentials
When a Partner account is created, you will receive an email invitation to activate the account and set a password. These credentials, your email address and password, are used to authenticate in the Partner Hub and to generate a Bearer token for Partner API requests.
Base URL
The default base URL for the 360dialog Partner API is https://hub.360dialog.io/api/v2
Authentication
The Partner API supports two authentication methods:
API Key Recommended
Bearer Token
API Key Authentication (Recommended)
API Key authentication allows secure access to the Partner API without requiring user credentials. Each request must include a valid API key in the request headers.
How to Obtain an API Key
Navigate to the API Keys section in the Partner Dashboard
Generate an API key. Store the key securely, as it grants access to the Partner API. It will only be displayed once
Using the API key
Include the API Key in the request header:
Example Request
Best Practices for API Authentication
API Keys Usage: Use API Keys for service-to-service communication.
API Keys Rotation: Rotate keys periodically to maintain security.
Secure Storage: Always store API keys and credentials securely. Avoid exposing them publicly or hardcoding them in client-side code - use environment variables instead
Error Handling: Handle authentication errors gracefully. Common errors include:
401 Unauthorized: Invalid or missing authentication credentials.
403 Forbidden: Valid credentials, but insufficient permissions.
Bearer Token Authentication (Deprecated)
During the transition period, Bearer Token authentication will still be supported. To obtain a Bearer Token, provide your username (email) and password.
Request OAuth token for any Partner API request
POST https://hub.360dialog.io/api/v2/token
Request example
Request Body
password*
string
Example: 123StrongPass4Me!
After the token is received, use this access token in the authorization header:
Partner Webhook URL
A Webhook URL is required to receive notifications for certain events relating to a Partner Account and connected Client Accounts. You can set a Partner URL in the Partner Hub UI or via API endpoint.
Filtering
Filters can be applied to Partner API endpoints by specifying parameters in the request URL, allowing results to be narrowed down.
Filtering Examples
Get a specific channel.
Get a client by contact email
Filtering options
Sorting
Examples:
ascending:
https://hub.360dialog.io/api/v2/partners/partner-id/clients?sort=iddescending:
https://hub.360dialog.io/api/v2/partners/partner-id/clients?sort=-id
Sorting options
Filtering Examples
Filter channels by channel property.
How to use sort?
Example:
ascending:
https://hub.360dialog.io/api/v2/partners/partner-id/channels?sort=iddescending:
https://hub.360dialog.io/api/v2/partners/partner-id/channels?sort=-id
Channel Statuses
The hub_status property indicates the channel status.
draft
Channel exists in the 360dialog Hub but is not synced with Meta
live
Channel is live
pending_deletion
Channel is pending deletion
unregistered
Channel is unregistered from the WhatsApp API
done OBO WABAs Only
Channel exists in the 360dialog Hub but not on Meta
pending OBO WABAs Only
Channel exists in the 360dialog Hub but is not synced with Meta
Granularity Filtering
You can use the granularity parameter to retrieve metrics about the conversations associated with the WhatsApp Business Account (WABA).
Specifically, you can get the number of messages sent and delivered as well as conversation and cost information for a given period. This parameter works together with the /balance endpoint in the Partner API. See below how to parse your request.
Query Syntax: GET/info/balance?<FILTERING_PARAMETER>
Example
https://hub.360dialog.io/api/v2/partners/{partner_id}/clients/{client_id}/info/balance?start_date=1664582400&end_date=1667260799&granularity=day
Query String Parameters
<FILTERING_PARAMATERS>
Required.
Metric filtering parameter. Append additional filtering parameters using dots.
For possible values, see:
start_date=1664582400&end_date=1667260799&granularity=day
When calling the GET request, you can attach the following{filtering-parameters}to retrieve the cost and conversation information for a specific WABA.
Filtering Parameters
start_date
type: UNIX Timestamp
Required. The start date in UNIX Timestamp (UTC). Returned data will be equal to or newer than the specified date.
Example: 1672531200
end_date
type: UNIX Timestamp
Required.
The end date in UNIX Timestamp (UTC). Returned data will be equal to or older than the specified date.
Example: 1672531200
granularity
type: String
Required.
The granularity by which you would like to retrieve the analytics. Supported Options:
DAYMONTH
Defaults with MONTH if no value is provided in the request.
app_id
type: array
Available only for Get Client Balance endpoint.
An array of app_ids for which you would like to retrieve usage. If not provided, all app ids in the WABA are included.
With granularity parameters, you can filter and break down your results. See the code sample below for examples.
A successful response returns the usage object with the data you have requested.
Last updated
Was this helpful?