API resource
A WhatsApp Business number messages customers; it is not a posting target. Conversations and replies are in Messages (start one with POST /v1/inbox/conversations and an approved template). These calls cover the number itself: its live status with Meta, the business profile customers see, blocked users, ice breakers, catalogs and incoming media. Meta bills template deliveries to your own WhatsApp Business account.
Connect WhatsApp with Meta credentials
/v1/connect/whatsappWorks on: WhatsApp
Body
access_tokenstringrequiredPermanent System User token with whatsapp_business_management and whatsapp_business_messaging.
waba_idstringrequiredWhatsApp Business Account id, from WhatsApp Manager.
phone_number_idstringrequiredPhone number id, from WhatsApp Manager.
pinstringThe 6-digit two-step verification PIN, if the number has one.
curl -X POST "https://creatoros-production-5658.up.railway.app/v1/connect/whatsapp" \
-H "Authorization: Bearer $CREATOROS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"access_token": "EAAG...",
"waba_id": "317766992490131",
"phone_number_id": "1875844705851813"
}'{
"connected": true,
"id": "acc_Wa2Qp7Vz4Ny9Tx1Lm6Rc3Wb8Js5Df0Ga7Ue2Ki4Oq9W",
"phone_number": "+1 310-555-1234",
"name": "Acme Corp",
"quality_rating": "GREEN"
}Register a connected WhatsApp number on the Cloud API
/v1/accounts/{accountId}/whatsapp/registerWorks on: WhatsApp
Path parameters
accountIdstringrequiredThe WhatsApp account ID
Body
pinstringThe 6-digit two-step verification PIN set on the number. Omitting it applies Creator OS's managed default registration PIN, the same one every Embedded Signup connect sets automatically.
curl -X POST "https://creatoros-production-5658.up.railway.app/v1/accounts/acc_Wa2Qp7Vz4Ny9Tx1Lm6Rc3Wb8Js5Df0Ga7Ue2Ki4Oq9W/whatsapp/register" \
-H "Authorization: Bearer $CREATOROS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"pin": "string"
}'{
"registered": true,
"accountId": "acc_Wa2Qp7Vz4Ny9Tx1Lm6Rc3Wb8Js5Df0Ga7Ue2Ki4Oq9W",
"phoneNumberId": "string"
}Request a Meta re-verification code for a BYO WhatsApp number
/v1/accounts/{accountId}/whatsapp/request-codeWorks on: WhatsApp
Path parameters
accountIdstringrequiredThe WhatsApp account ID
Body
methodstringlanguagestringMeta locale code for the verification message, e.g. en_US.
curl -X POST "https://creatoros-production-5658.up.railway.app/v1/accounts/acc_Wa2Qp7Vz4Ny9Tx1Lm6Rc3Wb8Js5Df0Ga7Ue2Ki4Oq9W/whatsapp/request-code" \
-H "Authorization: Bearer $CREATOROS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"method": "SMS"
}'{
"requested": true,
"alreadyActive": true,
"method": "string",
"accountId": "acc_Wa2Qp7Vz4Ny9Tx1Lm6Rc3Wb8Js5Df0Ga7Ue2Ki4Oq9W",
"phoneNumberId": "string"
}Verify the Meta re-verification code for a BYO WhatsApp number
/v1/accounts/{accountId}/whatsapp/verify-codeWorks on: WhatsApp
Path parameters
accountIdstringrequiredThe WhatsApp account ID
Body
codestringrequiredThe 6-digit code Meta sent to the phone. Non-digit separators (e.g. "749-456") are stripped automatically.
curl -X POST "https://creatoros-production-5658.up.railway.app/v1/accounts/acc_Wa2Qp7Vz4Ny9Tx1Lm6Rc3Wb8Js5Df0Ga7Ue2Ki4Oq9W/whatsapp/verify-code" \
-H "Authorization: Bearer $CREATOROS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"code": "string"
}'{
"verified": true,
"accountId": "acc_Wa2Qp7Vz4Ny9Tx1Lm6Rc3Wb8Js5Df0Ga7Ue2Ki4Oq9W",
"phoneNumberId": "string"
}List account notifications
/v1/whatsapp/account-eventsWorks on: WhatsApp
Query parameters
accountIdstringrequiredWhatsApp account ID
limitintegerMaximum events to return
curl "https://creatoros-production-5658.up.railway.app/v1/whatsapp/account-events?accountId=acc_Wa2Qp7Vz4Ny9Tx1Lm6Rc3Wb8Js5Df0Ga7Ue2Ki4Oq9W" \
-H "Authorization: Bearer $CREATOROS_API_KEY"{
"events": [
{
"id": "string",
"accountId": "acc_Wa2Qp7Vz4Ny9Tx1Lm6Rc3Wb8Js5Df0Ga7Ue2Ki4Oq9W",
"type": "string",
"severity": "info",
"title": "string",
"detail": "string",
"createdAt": "2026-10-10T00:00:00.000Z"
}
]
}Check if a user is blocked
/v1/whatsapp/block-users/statusWorks on: WhatsApp
Query parameters
accountIdstringrequireduserstringrequiredConsumer wa_id or E.164 phone (leading + optional)
curl "https://creatoros-production-5658.up.railway.app/v1/whatsapp/block-users/status?accountId=acc_Wa2Qp7Vz4Ny9Tx1Lm6Rc3Wb8Js5Df0Ga7Ue2Ki4Oq9W&user=%3Cuser%3E" \
-H "Authorization: Bearer $CREATOROS_API_KEY"{
"blocked": true
}Unblock users
/v1/whatsapp/block-usersWorks on: WhatsApp
Body
accountIdstringrequiredWhatsApp account ID
usersstring[]requiredPhone numbers (E.164) or WhatsApp user IDs to unblock.
curl -X DELETE "https://creatoros-production-5658.up.railway.app/v1/whatsapp/block-users" \
-H "Authorization: Bearer $CREATOROS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"accountId": "acc_Wa2Qp7Vz4Ny9Tx1Lm6Rc3Wb8Js5Df0Ga7Ue2Ki4Oq9W",
"users": [
"string"
]
}'{
"unblocked": [
{
"input": "string",
"waId": "string"
}
],
"failed": [
{
"input": "string",
"errors": [
"string"
]
}
]
}List blocked users
/v1/whatsapp/block-usersWorks on: WhatsApp
Query parameters
accountIdstringrequiredWhatsApp account ID
limitintegerPage size.
afterstringCursor from a previous response's nextCursor.
curl "https://creatoros-production-5658.up.railway.app/v1/whatsapp/block-users?accountId=acc_Wa2Qp7Vz4Ny9Tx1Lm6Rc3Wb8Js5Df0Ga7Ue2Ki4Oq9W" \
-H "Authorization: Bearer $CREATOROS_API_KEY"{
"blockedUsers": [
{
"waId": "string"
}
],
"nextCursor": "string"
}Block users
/v1/whatsapp/block-usersWorks on: WhatsApp
Body
accountIdstringrequiredWhatsApp account ID
usersstring[]requiredPhone numbers (E.164, e.g. "+16505551234") or WhatsApp user IDs to block.
curl -X POST "https://creatoros-production-5658.up.railway.app/v1/whatsapp/block-users" \
-H "Authorization: Bearer $CREATOROS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"accountId": "acc_Wa2Qp7Vz4Ny9Tx1Lm6Rc3Wb8Js5Df0Ga7Ue2Ki4Oq9W",
"users": [
"string"
]
}'{
"blocked": [
{
"input": "string",
"waId": "string"
}
],
"failed": [
{
"input": "string",
"errors": [
"string"
]
}
]
}Get display name status
/v1/whatsapp/business-profile/display-nameWorks on: WhatsApp
Query parameters
accountIdstringrequiredWhatsApp account ID
curl "https://creatoros-production-5658.up.railway.app/v1/whatsapp/business-profile/display-name?accountId=acc_Wa2Qp7Vz4Ny9Tx1Lm6Rc3Wb8Js5Df0Ga7Ue2Ki4Oq9W" \
-H "Authorization: Bearer $CREATOROS_API_KEY"{
"success": true,
"displayName": {
"name": "string",
"status": "APPROVED",
"phoneNumber": "string"
}
}Request display name change
/v1/whatsapp/business-profile/display-nameWorks on: WhatsApp
Body
accountIdstringrequiredWhatsApp account ID
displayNamestringrequiredNew display name (must follow WhatsApp naming guidelines)
curl -X POST "https://creatoros-production-5658.up.railway.app/v1/whatsapp/business-profile/display-name" \
-H "Authorization: Bearer $CREATOROS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"accountId": "acc_Wa2Qp7Vz4Ny9Tx1Lm6Rc3Wb8Js5Df0Ga7Ue2Ki4Oq9W",
"displayName": "string"
}'{
"success": true,
"message": "string",
"displayName": {
"name": "string",
"status": "PENDING_REVIEW"
}
}Get username suggestions
/v1/whatsapp/business-profile/username/suggestionsWorks on: WhatsApp
Query parameters
accountIdstringrequiredWhatsApp account ID
curl "https://creatoros-production-5658.up.railway.app/v1/whatsapp/business-profile/username/suggestions?accountId=acc_Wa2Qp7Vz4Ny9Tx1Lm6Rc3Wb8Js5Df0Ga7Ue2Ki4Oq9W" \
-H "Authorization: Bearer $CREATOROS_API_KEY"{
"success": true,
"suggestions": [
"string"
]
}Delete business username
/v1/whatsapp/business-profile/usernameWorks on: WhatsApp
Body
accountIdstringrequiredWhatsApp account ID
curl -X DELETE "https://creatoros-production-5658.up.railway.app/v1/whatsapp/business-profile/username" \
-H "Authorization: Bearer $CREATOROS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"accountId": "acc_Wa2Qp7Vz4Ny9Tx1Lm6Rc3Wb8Js5Df0Ga7Ue2Ki4Oq9W"
}'{
"success": true
}Get business username
/v1/whatsapp/business-profile/usernameWorks on: WhatsApp
Query parameters
accountIdstringrequiredWhatsApp account ID
curl "https://creatoros-production-5658.up.railway.app/v1/whatsapp/business-profile/username?accountId=acc_Wa2Qp7Vz4Ny9Tx1Lm6Rc3Wb8Js5Df0Ga7Ue2Ki4Oq9W" \
-H "Authorization: Bearer $CREATOROS_API_KEY"{
"success": true,
"username": "string",
"status": "approved"
}Set business username
/v1/whatsapp/business-profile/usernameWorks on: WhatsApp
Body
accountIdstringrequiredWhatsApp account ID
usernamestringrequiredDesired username. Letters, digits, period, and underscore only. Must contain at least one letter. No leading, trailing, or consecutive periods. No www prefix. No domain TLD suffix.
transferActionstringPass force_transfer to request a transfer if the username is held by another account
curl -X POST "https://creatoros-production-5658.up.railway.app/v1/whatsapp/business-profile/username" \
-H "Authorization: Bearer $CREATOROS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"accountId": "acc_Wa2Qp7Vz4Ny9Tx1Lm6Rc3Wb8Js5Df0Ga7Ue2Ki4Oq9W",
"username": "string"
}'{
"success": true,
"username": "string",
"status": "approved"
}Get business profile
/v1/whatsapp/business-profileWorks on: WhatsApp
Query parameters
accountIdstringrequiredWhatsApp account ID
curl "https://creatoros-production-5658.up.railway.app/v1/whatsapp/business-profile?accountId=acc_Wa2Qp7Vz4Ny9Tx1Lm6Rc3Wb8Js5Df0Ga7Ue2Ki4Oq9W" \
-H "Authorization: Bearer $CREATOROS_API_KEY"{
"success": true,
"businessProfile": {
"about": "string",
"address": "string",
"description": "string",
"email": "string",
"profilePictureUrl": "string",
"websites": [
"string"
],
"vertical": "string"
}
}Update business profile
/v1/whatsapp/business-profileWorks on: WhatsApp
Body
accountIdstringrequiredWhatsApp account ID
aboutstringShort business description (max 139 characters)
addressstringBusiness address
descriptionstringFull business description (max 512 characters)
emailstringBusiness email
websitesstring[]Business websites (max 2)
verticalstringBusiness category (e.g., RETAIL, ENTERTAINMENT, etc.)
profilePictureHandlestringHandle from resumable upload for profile picture
curl -X POST "https://creatoros-production-5658.up.railway.app/v1/whatsapp/business-profile" \
-H "Authorization: Bearer $CREATOROS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"accountId": "acc_Wa2Qp7Vz4Ny9Tx1Lm6Rc3Wb8Js5Df0Ga7Ue2Ki4Oq9W"
}'{
"success": true,
"message": "string"
}Unlink a catalog from a WhatsApp number
/v1/whatsapp/catalogsWorks on: WhatsApp
Query parameters
accountIdstringrequiredWhatsApp account ID
catalogAccountIdstringA facebook, instagram or metaads account whose Meta login carries catalog_management; its token performs the call instead of the account's own
catalogIdstringrequiredMeta catalog ID
curl -X DELETE "https://creatoros-production-5658.up.railway.app/v1/whatsapp/catalogs?accountId=acc_Wa2Qp7Vz4Ny9Tx1Lm6Rc3Wb8Js5Df0Ga7Ue2Ki4Oq9W&catalogId=%3CcatalogId%3E" \
-H "Authorization: Bearer $CREATOROS_API_KEY"{
"success": true,
"wabaId": "string",
"catalogId": "string"
}List the catalogs linked to a WhatsApp number
/v1/whatsapp/catalogsWorks on: WhatsApp
Query parameters
accountIdstringrequiredWhatsApp account ID
catalogAccountIdstringA facebook, instagram or metaads account whose Meta login carries catalog_management; its token performs the call instead of the account's own
curl "https://creatoros-production-5658.up.railway.app/v1/whatsapp/catalogs?accountId=acc_Wa2Qp7Vz4Ny9Tx1Lm6Rc3Wb8Js5Df0Ga7Ue2Ki4Oq9W" \
-H "Authorization: Bearer $CREATOROS_API_KEY"{
"wabaId": "string",
"catalogs": [
{
"id": "string",
"name": "string"
}
]
}Link a catalog to a WhatsApp number
/v1/whatsapp/catalogsWorks on: WhatsApp
Body
accountIdstringrequiredWhatsApp account ID
catalogAccountIdstringAccount whose Meta login token performs the call
catalogIdstringrequiredMeta catalog ID
curl -X POST "https://creatoros-production-5658.up.railway.app/v1/whatsapp/catalogs" \
-H "Authorization: Bearer $CREATOROS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"accountId": "acc_Wa2Qp7Vz4Ny9Tx1Lm6Rc3Wb8Js5Df0Ga7Ue2Ki4Oq9W",
"catalogId": "string"
}'{
"wabaId": "string",
"catalogs": [
{
"id": "string",
"name": "string"
}
]
}Get a number's commerce settings
/v1/whatsapp/commerce-settingsWorks on: WhatsApp
Query parameters
accountIdstringrequiredWhatsApp account ID
catalogAccountIdstringA facebook, instagram or metaads account whose Meta login carries catalog_management; its token performs the call instead of the account's own
curl "https://creatoros-production-5658.up.railway.app/v1/whatsapp/commerce-settings?accountId=acc_Wa2Qp7Vz4Ny9Tx1Lm6Rc3Wb8Js5Df0Ga7Ue2Ki4Oq9W" \
-H "Authorization: Bearer $CREATOROS_API_KEY"{
"settings": {
"isCartEnabled": true,
"isCatalogVisible": true
}
}Update a number's commerce settings
/v1/whatsapp/commerce-settingsWorks on: WhatsApp
Body
accountIdstringrequiredWhatsApp account ID
catalogAccountIdstringisCartEnabledbooleanisCatalogVisiblebooleancurl -X PUT "https://creatoros-production-5658.up.railway.app/v1/whatsapp/commerce-settings" \
-H "Authorization: Bearer $CREATOROS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"accountId": "acc_Wa2Qp7Vz4Ny9Tx1Lm6Rc3Wb8Js5Df0Ga7Ue2Ki4Oq9W"
}'{
"settings": {
"isCartEnabled": true,
"isCatalogVisible": true
}
}Clear ice breakers and commands
/v1/whatsapp/conversational-automationWorks on: WhatsApp
Query parameters
accountIdstringrequiredWhatsApp account ID
curl -X DELETE "https://creatoros-production-5658.up.railway.app/v1/whatsapp/conversational-automation?accountId=acc_Wa2Qp7Vz4Ny9Tx1Lm6Rc3Wb8Js5Df0Ga7Ue2Ki4Oq9W" \
-H "Authorization: Bearer $CREATOROS_API_KEY"{
"success": true
}Get ice breakers and commands
/v1/whatsapp/conversational-automationWorks on: WhatsApp
Query parameters
accountIdstringrequiredWhatsApp account ID
curl "https://creatoros-production-5658.up.railway.app/v1/whatsapp/conversational-automation?accountId=acc_Wa2Qp7Vz4Ny9Tx1Lm6Rc3Wb8Js5Df0Ga7Ue2Ki4Oq9W" \
-H "Authorization: Bearer $CREATOROS_API_KEY"{
"data": {
"enable_welcome_message": true,
"prompts": [
"string"
],
"commands": [
{
"command_name": "string",
"command_description": "string"
}
]
}
}Set ice breakers and commands
/v1/whatsapp/conversational-automationWorks on: WhatsApp
Body
accountIdstringrequiredWhatsApp account ID
enable_welcome_messagebooleanWhen true, Meta sends a request_welcome event the first time a person opens a chat with the number.
promptsstring[]Ice breakers shown to a person opening a chat. Tapping one sends its text as a normal message.
commandsobject[]Slash commands shown when a person types /. Names are unique, letters, digits and underscores, without the slash.
curl -X POST "https://creatoros-production-5658.up.railway.app/v1/whatsapp/conversational-automation" \
-H "Authorization: Bearer $CREATOROS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"accountId": "acc_Wa2Qp7Vz4Ny9Tx1Lm6Rc3Wb8Js5Df0Ga7Ue2Ki4Oq9W"
}'{
"success": true
}Get number status
/v1/whatsapp/number-infoWorks on: WhatsApp
Query parameters
accountIdstringrequiredWhatsApp account ID
curl "https://creatoros-production-5658.up.railway.app/v1/whatsapp/number-info?accountId=acc_Wa2Qp7Vz4Ny9Tx1Lm6Rc3Wb8Js5Df0Ga7Ue2Ki4Oq9W" \
-H "Authorization: Bearer $CREATOROS_API_KEY"{
"phone": {
"display_phone_number": "string",
"verified_name": "string",
"name_status": "string",
"quality_rating": "string",
"messaging_limit_tier": "string",
"throughput": {
"level": "string"
},
"status": "string",
"is_official_business_account": true,
"platform_type": "string",
"health_status": {}
},
"waba": {
"name": "string",
"business_verification_status": "string",
"timezone_id": "string",
"health_status": {}
}
}Get pricing analytics
/v1/whatsapp/pricing-analyticsWorks on: WhatsApp
Query parameters
accountIdstringrequiredWhatsApp account ID
startstringrequiredRange start, ISO 8601 date or date-time.
endstringrequiredRange end, ISO 8601 date or date-time. Must be after start.
granularitystringrequiredSize of each data point. Meta refuses MONTHLY when the range is too short for a monthly bucket (for example a range that starts at the beginning of the current month and ends today); that is a 400 with param: granularity and Meta's reason in error. Use DAILY for short or month-to-date ranges. One of: HALF_HOUR, DAILY, MONTHLY.
dimensionsstringComma-separated breakdowns: COUNTRY, PHONE, PRICING_CATEGORY, PRICING_TYPE, TIER. Without it each data point is a total for the interval.
metricTypesstringComma-separated: COST, VOLUME. Defaults to both.
pricingTypesstringComma-separated filter: REGULAR, FREE_CUSTOMER_SERVICE, FREE_ENTRY_POINT.
pricingCategoriesstringComma-separated filter of Meta pricing categories, for example MARKETING, MARKETING_LITE, UTILITY, AUTHENTICATION, AUTHENTICATION_INTERNATIONAL, SERVICE, REFERRAL_CONVERSION.
countryCodesstringComma-separated ISO 3166-1 alpha-2 country codes to filter on.
curl "https://creatoros-production-5658.up.railway.app/v1/whatsapp/pricing-analytics?accountId=acc_Wa2Qp7Vz4Ny9Tx1Lm6Rc3Wb8Js5Df0Ga7Ue2Ki4Oq9W&start=%3Cstart%3E&end=%3Cend%3E&granularity=%3Cgranularity%3E" \
-H "Authorization: Bearer $CREATOROS_API_KEY"{
"accountId": "acc_Wa2Qp7Vz4Ny9Tx1Lm6Rc3Wb8Js5Df0Ga7Ue2Ki4Oq9W",
"phoneNumber": "string",
"granularity": "HALF_HOUR",
"start": "2026-10-10T00:00:00.000Z",
"end": "2026-10-10T00:00:00.000Z",
"dataPoints": [
{
"start": "2026-10-10T00:00:00.000Z",
"end": "2026-10-10T00:00:00.000Z",
"phoneNumber": "string",
"country": "string",
"tier": "string",
"pricingType": "string",
"pricingCategory": "string",
"volume": 0,
"cost": 0
}
]
}Download WhatsApp media
/v1/whatsapp/media/{mediaId}Works on: WhatsApp
Path parameters
mediaIdstringrequiredThe media id from attachments[].payload.id.
Query parameters
accountIdstringrequiredThe WhatsApp account that received the media.
curl "https://creatoros-production-5658.up.railway.app/v1/whatsapp/media/1029384756102938?accountId=acc_Wa2Qp7Vz4Ny9Tx1Lm6Rc3Wb8Js5Df0Ga7Ue2Ki4Oq9W" \
-H "Authorization: Bearer $CREATOROS_API_KEY"{
"ok": true
}Upload profile picture
/v1/whatsapp/business-profile/photoWorks on: WhatsApp
Body
accountIdstringrequiredWhatsApp account ID
urlstringrequiredPublicly reachable https URL of the image (JPEG or PNG, max 5MB, recommended 640x640). Fetched server-side; must resolve directly without redirects.
curl -X POST "https://creatoros-production-5658.up.railway.app/v1/whatsapp/business-profile/photo" \
-H "Authorization: Bearer $CREATOROS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"accountId": "acc_Wa2Qp7Vz4Ny9Tx1Lm6Rc3Wb8Js5Df0Ga7Ue2Ki4Oq9W",
"url": "string"
}'{
"success": true,
"message": "string"
}