WhatsApp Business

WhatsApp Business messaging API

developers.facebook.com/docs/whatsapp/cloud-api ↗
Version
1.0
OpenAPI
3.0.0
Endpoints
55
Schemas
144
Updated
3 days ago
Messaging messaging business communication
Use this API in your AI agent

Query structured spec data via REST or MCP. Get exactly what your agent needs.

Get API Key

Server URLs

http://whatsapp.local
http://example.com/v1

Authentication

bearer basic

Endpoints

Application 7 endpoints

POST /account/shards
operationId: Application_setShards

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/Set-Shards-Request-Body"
      },
      "example": {
        "cc": "<Country Code>",
        "pin": "<Two-Step PIN>",
        "shards": 32,
        "phone_number": "<Phone Number>"
      }
    }
  },
  "required": true,
  "description": ""
}

Responses

200
POST /account/shards
DELETE /settings/application
operationId: Application_resetSettings

Responses

200
DELETE /settings/application
GET /settings/application
operationId: Application_getSettings

Responses

200
GET /settings/application
PATCH /settings/application

If a field is not present in the request, no change is made to that setting. For example, if on_call_pager is not sent with the request, the existing configuration for on_call_pager is unchanged.

operationId: Application_updateSettings

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/Application-Settings"
      },
      "example": {
        "webhooks": {
          "url": "<Webhook URL, https>"
        }
      }
    }
  },
  "required": true,
  "description": ""
}

Responses

200
PATCH /settings/application
GET /settings/application/media/providers
operationId: Application_listMediaProviders

Responses

200
GET /settings/application/media/providers
POST /settings/application/media/providers
operationId: Application_updateMediaProviders

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/ApplicationUpdateMediaProvidersRequest"
      },
      "example": [
        {
          "name": "<Provider Name>",
          "type": "www",
          "config": {
            "bearer": "<Bearer Auth Token>"
          }
        }
      ]
    }
  },
  "required": true,
  "description": ""
}

Responses

200
POST /settings/application/media/providers
DELETE /settings/application/media/providers/{ProviderName}
operationId: Application_removeProvider

Parameters

Name In Required Type Description
ProviderName path required string Provider Name

Responses

200
DELETE /settings/application/media/providers/{ProviderName}

Backup/restore 2 endpoints

POST /settings/backup
operationId: BackupRestore_settingsPost

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/Backup-Settings-Request-Body"
      },
      "example": {
        "password": "<Password for Backup>"
      }
    }
  },
  "required": true,
  "description": ""
}

Responses

200
POST /settings/backup
POST /settings/restore
operationId: BackupRestore_settingsPost

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/Restore-Settings-Request-Body"
      },
      "example": {
        "data": "<Data to Restore, from Backup API>",
        "password": "<Password for Backup>"
      }
    }
  },
  "required": true,
  "description": ""
}

Responses

200
POST /settings/restore

Business profile 2 endpoints

GET /settings/business/profile
operationId: BusinessProfile_get

Responses

200
GET /settings/business/profile
POST /settings/business/profile
operationId: BusinessProfile_update

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/Business-Profile"
      },
      "example": {
        "email": "<Business Profile Email>",
        "address": "<Business Profile Address>",
        "vertical": "<Business Profile Vertical>",
        "websites": [
          "https://www.whatsapp.com",
          "https://www.facebook.com"
        ],
        "description": "<Business Profile Description>"
      }
    }
  },
  "required": true,
  "description": ""
}

Responses

200
POST /settings/business/profile

Certificates 5 endpoints

POST /certificates/external
operationId: Certificates_uploadExternalCertificate

Request Body

{
  "content": {
    "text/plain": {
      "schema": {
        "$ref": "#/components/schemas/CertificatesUploadExternalCertificateRequest"
      }
    }
  }
}

Responses

200
POST /certificates/external
GET /certificates/external/ca
operationId: Certificates_downloadCaCertificate

Responses

200
GET /certificates/external/ca
DELETE /certificates/webhooks/ca
operationId: Certificates_deleteWebhookCa

Responses

200
DELETE /certificates/webhooks/ca
GET /certificates/webhooks/ca
operationId: Certificates_downloadWebhookCaCertificate

Responses

200
GET /certificates/webhooks/ca
POST /certificates/webhooks/ca
operationId: Certificates_uploadWebhookCaCertificate

Request Body

{
  "content": {
    "text/plain": {
      "schema": {
        "$ref": "#/components/schemas/CertificatesUploadWebhookCaCertificateRequest"
      }
    }
  },
  "required": false
}

Responses

200
POST /certificates/webhooks/ca

Contacts 1 endpoints

POST /contacts
operationId: Contacts_createContact

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/Check-Contact-Request-Body"
      },
      "example": {
        "blocking": "wait",
        "contacts": [
          "{{Recipient-WA-ID}}"
        ]
      }
    }
  },
  "required": true,
  "description": ""
}

Responses

200
POST /contacts

Groups 13 endpoints

GET /groups
operationId: Groups_getAll

Responses

200
GET /groups
POST /groups
operationId: Groups_createGroup

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/Create-Group-Request-Body"
      },
      "example": {
        "subject": "<Group Subject>"
      }
    }
  },
  "required": true,
  "description": ""
}

Responses

200
POST /groups
GET /groups/{GroupId}
operationId: Groups_getInfo

Parameters

Name In Required Type Description
GroupId path required string

Responses

200
GET /groups/{GroupId}
PUT /groups/{GroupId}
operationId: Groups_updateInfo

Parameters

Name In Required Type Description
GroupId path required string

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/Update-Group-Info-Request-Body"
      },
      "example": {
        "subject": "<New Group Subject>"
      }
    }
  },
  "required": true,
  "description": ""
}

Responses

200
PUT /groups/{GroupId}
DELETE /groups/{GroupId}/admins
operationId: Groups_demoteAdmin

Parameters

Name In Required Type Description
GroupId path required string

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/Group-Admin-Request-Body"
      },
      "example": {
        "wa_ids": [
          "<Recipient WA-ID, from Contacts API>"
        ]
      }
    }
  },
  "required": true,
  "description": ""
}

Responses

200
DELETE /groups/{GroupId}/admins
PATCH /groups/{GroupId}/admins
operationId: Groups_promoteToAdmin

Parameters

Name In Required Type Description
GroupId path required string

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/Group-Admin-Request-Body"
      },
      "example": {
        "wa_ids": [
          "<Recipient WA-ID, from Contacts API>"
        ]
      }
    }
  },
  "required": true,
  "description": ""
}

Responses

200
PATCH /groups/{GroupId}/admins
DELETE /groups/{GroupId}/icon
operationId: Groups_deleteGroupIcon

Parameters

Name In Required Type Description
GroupId path required string

Request Body

{
  "content": {
    "multipart/form-data": {
      "schema": {
        "$ref": "#/components/schemas/GroupsDeleteGroupIconRequest"
      }
    }
  },
  "required": false
}

Responses

200
DELETE /groups/{GroupId}/icon
GET /groups/{GroupId}/icon
operationId: Groups_getIconBinary

Parameters

Name In Required Type Description
GroupId path required string

Responses

200
GET /groups/{GroupId}/icon
POST /groups/{GroupId}/icon
operationId: Groups_setGroupIcon

Parameters

Name In Required Type Description
GroupId path required string

Request Body

{
  "content": {
    "multipart/form-data": {
      "schema": {
        "$ref": "#/components/schemas/GroupsSetGroupIconRequest"
      }
    }
  },
  "required": false
}

Responses

200
POST /groups/{GroupId}/icon
DELETE /groups/{GroupId}/invite
operationId: Groups_deleteInvite

Parameters

Name In Required Type Description
GroupId path required string

Responses

200
DELETE /groups/{GroupId}/invite
GET /groups/{GroupId}/invite
operationId: Groups_getInviteDetails

Parameters

Name In Required Type Description
GroupId path required string

Responses

200
GET /groups/{GroupId}/invite
POST /groups/{GroupId}/leave
operationId: Groups_leaveGroup

Parameters

Name In Required Type Description
GroupId path required string

Responses

200
POST /groups/{GroupId}/leave
DELETE /groups/{GroupId}/participants
operationId: Groups_removeParticipant

Parameters

Name In Required Type Description
GroupId path required string

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/Remove-Group-Participant-Request-Body"
      },
      "example": {
        "wa_ids": [
          "{{Recipient-WA-ID}}"
        ]
      }
    }
  },
  "required": true,
  "description": ""
}

Responses

200
DELETE /groups/{GroupId}/participants

Health 5 endpoints

GET /health
operationId: Health_checkStatus

Responses

200
GET /health
GET /metrics
operationId: Health_getMetricsData

Parameters

Name In Required Type Description
format query optional string

Responses

200
GET /metrics
GET /stats/app
operationId: Health_getAppStats

Parameters

Name In Required Type Description
format query optional string

Responses

200
GET /stats/app
GET /stats/db
operationId: Health_getDbStats

Parameters

Name In Required Type Description
format query optional string

Responses

200
GET /stats/db
GET /support
operationId: Health_getSupportInfo

Responses

200
GET /support

Media 3 endpoints

POST /media
operationId: Media_uploadMedia

Request Body

{
  "content": {
    "audio/acc": {
      "schema": {
        "$ref": "#/components/schemas/MediaUploadMediaRequest4"
      }
    },
    "audio/amr": {
      "schema": {
        "$ref": "#/components/schemas/MediaUploadMediaRequest5"
      }
    },
    "audio/mp4": {
      "schema": {
        "$ref": "#/components/schemas/MediaUploadMediaRequest6"
      }
    },
    "audio/ogg": {
      "schema": {
        "$ref": "#/components/schemas/MediaUploadMediaRequest8"
      }
    },
    "image/png": {
      "schema": {
        "$ref": "#/components/schemas/MediaUploadMediaRequest11"
      }
    },
    "video/mp4": {
      "schema": {
        "$ref": "#/components/schemas/MediaUploadMediaRequest13"
      }
    },
    "audio/mpeg": {
      "schema": {
        "$ref": "#/components/schemas/MediaUploadMediaRequest7"
      }
    },
    "image/jpeg": {
      "schema": {
        "$ref": "#/components/schemas/MediaUploadMediaRequest10"
      }
    },
    "text/plain": {
      "schema": {
        "$ref": "#/components/schemas/MediaUploadMediaRequest12"
      }
    },
    "codecs=opus": {
      "schema": {
        "$ref": "#/components/schemas/MediaUploadMediaRequest9"
      }
    },
    "application/pdf": {
      "schema": {
        "$ref": "#/components/schemas/MediaUploadMediaRequest1"
      }
    },
    "application/msword": {
      "schema": {
        "$ref": "#/components/schemas/MediaUploadMediaRequest"
      }
    },
    "application/vnd.ms-excel": {
      "schema": {
        "$ref": "#/components/schemas/MediaUploadMediaRequest2"
      }
    },
    "application/vnd.ms-powerpoint": {
      "schema": {
        "$ref": "#/components/schemas/MediaUploadMediaRequest3"
      }
    }
  },
  "required": true
}

Responses

200
POST /media
DELETE /media/{MediaId}
operationId: Media_removeMedia

Parameters

Name In Required Type Description
MediaId path required string

Responses

200
DELETE /media/{MediaId}
GET /media/{MediaId}
operationId: Media_download

Parameters

Name In Required Type Description
MediaId path required string

Responses

200
GET /media/{MediaId}

Messages 2 endpoints

POST /messages
operationId: Messages_sendMessage

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/Send-Message-Request-Body"
      },
      "example": {
        "to": "{{Recipient-WA-ID}}",
        "text": {
          "body": "<Message Text>"
        },
        "type": "text",
        "recipient_type": "individual"
      }
    }
  },
  "required": true,
  "description": ""
}

Responses

200
POST /messages
PUT /messages/{MessageID}
operationId: Messages_markAsRead

Parameters

Name In Required Type Description
MessageID path required string Message ID from Webhook

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/Mark-Message-As-Read-Request-Body"
      },
      "example": {
        "status": "read"
      }
    }
  },
  "required": true,
  "description": ""
}

Responses

200
PUT /messages/{MessageID}

Profile 5 endpoints

GET /settings/profile/about
operationId: Profile_getAbout

Responses

200
GET /settings/profile/about
PATCH /settings/profile/about
operationId: Profile_updateAbout

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/Profile-About"
      },
      "example": {
        "text": "<About Profile>"
      }
    }
  },
  "required": true,
  "description": ""
}

Responses

200
PATCH /settings/profile/about
DELETE /settings/profile/photo
operationId: Profile_removePhoto

Responses

200
DELETE /settings/profile/photo
GET /settings/profile/photo
operationId: Profile_getPhoto

Parameters

Name In Required Type Description
format query optional string

Responses

200
GET /settings/profile/photo
POST /settings/profile/photo
operationId: Profile_updatePhoto

Request Body

{
  "content": {
    "multipart/form-data": {
      "schema": {
        "$ref": "#/components/schemas/ProfileUpdatePhotoRequest"
      }
    }
  },
  "required": false
}

Responses

200
POST /settings/profile/photo

Registration 2 endpoints

POST /account
operationId: Registration_requestCode

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/Request-Code-Request-Body"
      },
      "example": {
        "cc": "<Country Code>",
        "pin": "<Two-Step Verification PIN",
        "cert": "<Valid Cert from Business Manager>",
        "method": "sms",
        "phone_number": "<Phone Number>"
      }
    }
  },
  "required": true,
  "description": ""
}

Responses

201 Created: the account already exists. You are already registered, so you do not need to do anything else.
202 Created: the account does not exist. Depending on the method selected in the request, check your SMS or voice number for the registration code.
POST /account
POST /account/verify
operationId: Registration_verifyAccount

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/Register-Account-Request-Body"
      },
      "example": {
        "code": "<Registration Code Received via SMS/Voice>"
      }
    }
  },
  "required": true,
  "description": ""
}

Responses

200
POST /account/verify

Two-step verification 2 endpoints

DELETE /settings/account/two-step
operationId: TwoStepVerification_disable

Responses

200
DELETE /settings/account/two-step
POST /settings/account/two-step
operationId: TwoStepVerification_enableAccount

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/Enable-Two-Step-Request-Body"
      },
      "example": {
        "pin": "<Two-Step Verification PIN>"
      }
    }
  },
  "required": true,
  "description": ""
}

Responses

200
POST /settings/account/two-step

Users 6 endpoints

POST /users
operationId: Users_createUser

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/Create-User-Request-Body"
      },
      "example": {
        "password": "{{UserPassword}}",
        "username": "{{UserUsername}}"
      }
    }
  },
  "required": true,
  "description": ""
}

Responses

200
POST /users
POST /users/login
operationId: Users_performLogin

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/Login-Admin-Request-Body"
      }
    }
  },
  "required": false
}

Responses

200 OK
POST /users/login
POST /users/logout
operationId: Users_performLogout

Responses

200
POST /users/logout
DELETE /users/{UserUsername}
operationId: Users_removeUser

Parameters

Name In Required Type Description
UserUsername path required string

Responses

200
DELETE /users/{UserUsername}
GET /users/{UserUsername}
operationId: Users_getByUsername

Parameters

Name In Required Type Description
UserUsername path required string

Responses

200
GET /users/{UserUsername}
PUT /users/{UserUsername}
operationId: Users_updateUser

Parameters

Name In Required Type Description
UserUsername path required string

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/Update-User-Request-Body"
      },
      "example": {
        "password": "<New Password>"
      }
    }
  },
  "required": true,
  "description": ""
}

Responses

200
PUT /users/{UserUsername}

Schemas

object Address
{
  "type": "object",
  "title": "Address",
  "example": {
    "zip": "94025",
    "city": "Menlo Park",
    "type": "HOME",
    "state": "CA",
    "street": "1 Hacker Way",
    "country": "United States",
    "country_code": "us"
  },
  "required": [
    "city",
    "country",
    "country_code",
    "state",
    "street",
    "type",
    "zip"
  ],
  "properties": {
    "zip": {
      "type": "string",
      "description": "ZIP code"
    },
    "city": {
      "type": "string",
      "description": "City name"
    },
    "type": {
      "type": "string",
      "description": "Standard Values: HOME, WORK"
    },
    "state": {
      "type": "string",
      "description": "State abbreviation"
    },
    "street": {
      "type": "string",
      "description": "Street number and name"
    },
    "country": {
      "type": "string",
      "description": "Full country name"
    },
    "country_code": {
      "type": "string",
      "description": "Two-letter country abbreviation"
    }
  }
}
object Application-Settings
{
  "type": "object",
  "title": "Update-Application-Settings-Request-Body",
  "example": {
    "media": {
      "auto_download": [
        "image",
        "document",
        "audio"
      ]
    },
    "webhooks": {
      "url": "<Webhook URL, https>",
      "max_concurrent_requests": 12
    },
    "sent_status": false,
    "pass_through": false,
    "on_call_pager": "<WA_ID of valid WhatsApp contact>",
    "callback_persist": true,
    "callback_backoff_delay_ms": 3000,
    "max_callback_backoff_delay_ms": 900000
  },
  "properties": {
    "media": {
      "$ref": "#/components/schemas/Media"
    },
    "webhooks": {
      "$ref": "#/components/schemas/Webhooks"
    },
    "sent_status": {
      "type": "boolean",
      "default": false,
      "description": "Receive a notification that a message is sent to server. When true, you will receive a message indicating that a message has been sent. If false (default), you will not receive notification."
    },
    "pass_through": {
      "type": "boolean",
      "default": true,
      "description": "When true, removes messages from the local database after they are delivered to or read by the recipient. When false, saves all messages on local storage until they are explicitly deleted.\nWhen messages are sent, they are stored in a local database. This database is used as the application's history. Since the business keeps its own history, you can specify whether you want message pass_through or not. Restart required."
    },
    "on_call_pager": {
      "type": "string",
      "description": "Set to valid WhatsApp Group with users who wish to see alerts for critical errors and messages."
    },
    "callback_persist": {
      "type": "boolean",
      "default": true,
      "description": "Stores callbacks on disk until they are successfully acknowledged by the Webhook or not. Restart required."
    },
    "heartbeat_interval": {
      "type": "integer",
      "default": 5,
      "description": "Multiconnect: Interval of the Master node monitoring of Coreapp nodes in seconds"
    },
    "unhealthy_interval": {
      "type": "integer",
      "default": 30,
      "description": "Multiconnect: Maximum amount of seconds a Master node waits for a Coreapp node to respond to a heartbeat before considering it unhealthy and starting the failover process."
    },
    "callback_backoff_delay_ms": {
      "type": "string",
      "default": "3000",
      "description": "Backoff delay for a failed callback in milliseconds\nThis setting is used to configure the amount of time the backoff delays before retrying a failed callback. The backoff delay increases linearly by this value each time a callback fails to get a HTTPS 200 OK response. The backoff delay is capped by the max_callback_backoff_delay_ms setting."
    },
    "max_callback_backoff_delay_ms": {
      "type": "string",
      "default": "900000",
      "description": "Maximum delay for a failed callback in milliseconds"
    }
  }
}
array ApplicationUpdateMediaProvidersRequest
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/Media-Provider"
  },
  "description": ""
}
object Audio
{
  "type": "object",
  "oneOf": [
    {
      "$ref": "#/components/schemas/AudioById"
    },
    {
      "$ref": "#/components/schemas/AudioByProvider"
    }
  ],
  "title": "Audio",
  "description": "The media object containing audio"
}
object AudioById
{
  "type": "object",
  "title": "AudioById",
  "example": {
    "id": "<Media Id, from Media API>"
  },
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string"
    }
  }
}
object AudioByProvider
{
  "type": "object",
  "title": "AudioByProvider",
  "example": {
    "link": "<Link to Audio, https>",
    "provider": {
      "name": "<Provider Name from Media Provider API, optional"
    }
  },
  "required": [
    "provider",
    "link"
  ],
  "properties": {
    "link": {
      "type": "string"
    },
    "provider": {
      "$ref": "#/components/schemas/Provider"
    }
  }
}
object Backup-Settings
{
  "type": "object",
  "title": "Root Type for Backup-Settings",
  "example": {
    "data": "encrypted-backup-data"
  },
  "properties": {
    "data": {
      "type": "string",
      "description": "The data that has been backed up, encrypted for security."
    }
  },
  "description": ""
}
object Backup-Settings-Request-Body
{
  "type": "object",
  "title": "Backup-Settings-Request",
  "example": {
    "password": "<Password for Backup>"
  },
  "required": [
    "password"
  ],
  "properties": {
    "password": {
      "type": "string",
      "description": "Used to encrypt backup data for security"
    }
  }
}
object Backup-Settings-Response
{
  "type": "object",
  "title": "Root Type for Backup-Settings-Response",
  "example": {
    "settings": {
      "data": "encrypted-backup-data"
    }
  },
  "properties": {
    "settings": {
      "$ref": "#/components/schemas/Backup-Settings"
    }
  },
  "description": "Save the data value as that will be used along with your password to restore the information."
}
object Basic
{
  "type": "object",
  "title": "Root Type for Basic",
  "example": {
    "password": "your-password",
    "username": "your-username"
  },
  "properties": {
    "password": {
      "type": "string"
    },
    "username": {
      "type": "string"
    }
  },
  "description": ""
}
object Business-Profile
{
  "type": "object",
  "title": "Set-Business-Profile-Request",
  "example": {
    "email": "<Business Profile Email>",
    "address": "<Business Profile Address>",
    "vertical": "<Business Profile Vertical>",
    "websites": [
      "https://www.whatsapp.com",
      "https://www.facebook.com"
    ],
    "description": "<Business Profile Description>"
  },
  "required": [
    "address",
    "description",
    "email",
    "vertical",
    "websites"
  ],
  "properties": {
    "email": {
      "type": "string",
      "description": "Email address to contact the business\nMaximum of 128 characters"
    },
    "address": {
      "type": "string",
      "description": "Address of the business\nMaximum of 256 characters"
    },
    "vertical": {
      "type": "string",
      "description": "Industry of the business\nMaximum of 128 characters"
    },
    "websites": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "URLs associated with business (e.g., website, Facebook page, Instagram)\nMaximum of 2 websites with a maximum of 256 characters each"
    },
    "description": {
      "type": "string",
      "description": "Description of the business\nMaximum of 256 characters"
    }
  }
}
object Business-Settings
{
  "type": "object",
  "title": "Root Type for Business-Settings",
  "example": {
    "business": {
      "profile": {
        "email": "new-business-email",
        "address": "new-business-address",
        "vertical": "business-industry",
        "websites": [
          "website-1",
          "website-2"
        ],
        "description": "business-description"
      }
    }
  },
  "properties": {
    "business": {
      "$ref": "#/components/schemas/Business-Settings-Business"
    }
  },
  "description": ""
}
object Business-Settings-Business
{
  "type": "object",
  "title": "Root Type for Business-Settings-Business",
  "example": {
    "profile": {
      "email": "new-business-email",
      "address": "new-business-address",
      "vertical": "business-industry",
      "websites": [
        "website-1",
        "website-2"
      ],
      "description": "business-description"
    }
  },
  "properties": {
    "profile": {
      "$ref": "#/components/schemas/Business-Profile"
    }
  },
  "description": ""
}
string CertificatesDownloadCaCertificateResponse
{
  "type": "string",
  "format": "binary"
}
string CertificatesDownloadWebhookCaCertificateResponse
{
  "type": "string",
  "format": "binary"
}
string CertificatesUploadExternalCertificateRequest
{
  "type": "string",
  "format": "binary"
}
string CertificatesUploadWebhookCaCertificateRequest
{
  "type": "string",
  "format": "binary"
}
object Check-Contact
{
  "type": "object",
  "title": "Check-Contact",
  "example": {
    "input": "+1 (516) 283-7151",
    "wa_id": "15162837151",
    "status": "valid"
  },
  "properties": {
    "input": {
      "type": "string",
      "description": "The value you sent in the contacts field of the JSON request."
    },
    "wa_id": {
      "type": "string",
      "description": "WhatsApp user identifier that can be used in other API calls. Only returned if the status is valid."
    },
    "status": {
      "enum": [
        "processing",
        "valid",
        "invalid"
      ],
      "type": "string",
      "description": "Status of the user.",
      "x-enum-descriptions": [
        "processing: Input is still being processed.",
        "valid: Input determined to be a valid WhatsApp user.",
        "invalid: Input determined to not be a valid WhatsApp user or the phone number is in a bad format."
      ]
    }
  },
  "description": ""
}
object Check-Contact-Request-Body
{
  "type": "object",
  "title": "Check-Contact-Request",
  "example": {
    "blocking": "wait",
    "contacts": [
      "{{Recipient-WA-ID}}"
    ]
  },
  "required": [
    "contacts"
  ],
  "properties": {
    "blocking": {
      "enum": [
        "no_wait",
        "wait"
      ],
      "type": "string",
      "default": "no_wait",
      "description": "Blocking determines whether the request should wait for the processing to complete (synchronous) or not (asynchronous)."
    },
    "contacts": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Array of contact phone numbers. The numbers can be in any standard telephone number format."
    }
  }
}
object Check-Contact-Response
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/Response"
    },
    {
      "type": "object",
      "properties": {
        "contacts": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/Check-Contact"
          }
        }
      }
    }
  ],
  "title": "Check-Contact-Response",
  "example": {
    "contacts": [
      {
        "input": "1-631-555-1002",
        "status": "processing"
      },
      {
        "input": "6315551003",
        "status": "processing"
      },
      {
        "input": "+54 9 11 5612-1008",
        "status": "processing"
      },
      {
        "input": "+1 (516) 283-7151",
        "wa_id": "15162837151",
        "status": "valid"
      }
    ]
  },
  "description": ""
}
object Check-Health-Response
{
  "type": "object",
  "title": "Root Type for Check-Health-Response",
  "example": {
    "health": {
      "your-hostname1:your-container-id1": {
        "role": "primary_master",
        "gateway_status": "connected"
      },
      "your-hostname2:your-container-id2": {
        "role": "secondary_master",
        "gateway_status": "disconnected"
      }
    }
  },
  "properties": {
    "health": {
      "oneOf": [
        {
          "$ref": "#/components/schemas/Gateway-Status"
        },
        {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/components/schemas/Gateway-Node-Status"
          }
        }
      ]
    }
  },
  "description": ""
}
object Config
{
  "oneOf": [
    {
      "$ref": "#/components/schemas/Config-Bearer"
    },
    {
      "$ref": "#/components/schemas/Config-Basic"
    }
  ],
  "title": "Config"
}
object Config-Basic
{
  "type": "object",
  "title": "Config",
  "example": {
    "basic": {
      "password": "your-password",
      "username": "your-username"
    }
  },
  "properties": {
    "basic": {
      "$ref": "#/components/schemas/Basic"
    }
  }
}
object Config-Bearer
{
  "type": "object",
  "title": "Config",
  "example": {
    "bearer": "<Bearer Auth Token>"
  },
  "required": [
    "bearer"
  ],
  "properties": {
    "bearer": {
      "type": "string"
    }
  }
}
object Contact
{
  "type": "object",
  "title": "Contact",
  "example": {
    "org": {
      "title": "Manager",
      "company": "WhatsApp",
      "department": "Design"
    },
    "name": {
      "last_name": "Smith",
      "first_name": "John",
      "formatted_name": "John Smith"
    },
    "urls": [
      {
        "url": "https://www.facebook.com",
        "type": "WORK"
      }
    ],
    "emails": [
      {
        "type": "WORK",
        "email": "test@fb.com"
      },
      {
        "type": "WORK",
        "email": "test@whatsapp.com"
      }
    ],
    "phones": [
      {
        "type": "HOME",
        "phone": "+1 (940) 555-1234"
      },
      {
        "type": "WORK",
        "phone": "+1 (650) 555-1234",
        "wa_id": "16505551234"
      }
    ],
    "birthday": "2012-08-18T00:00:00.000Z",
    "addresses": [
      {
        "zip": "94025",
        "city": "Menlo Park",
        "type": "HOME",
        "state": "CA",
        "street": "1 Hacker Way",
        "country": "United States",
        "country_code": "us"
      },
      {
        "zip": "94025",
        "city": "Menlo Park",
        "type": "WORK",
        "state": "CA",
        "street": "200 Jefferson Dr",
        "country": "United States",
        "country_code": "us"
      }
    ]
  },
  "properties": {
    "ims": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": ""
    },
    "org": {
      "$ref": "#/components/schemas/Org"
    },
    "name": {
      "$ref": "#/components/schemas/Name"
    },
    "urls": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Url"
      },
      "description": "Contact URL(s)"
    },
    "emails": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Email"
      },
      "description": "Contact email address(es)"
    },
    "phones": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Phone"
      },
      "description": "Contact phone number(s)"
    },
    "birthday": {
      "type": "string",
      "description": "YYYY-MM-DD formatted string"
    },
    "addresses": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Address"
      },
      "description": "Full contact address(es)"
    }
  }
}
object Create-Group-Request-Body
{
  "type": "object",
  "title": "Create-Group-Request",
  "example": {
    "subject": "<Group Subject>"
  },
  "required": [
    "subject"
  ],
  "properties": {
    "subject": {
      "type": "string"
    }
  }
}
object Create-User-Request-Body
{
  "type": "object",
  "title": "Create-User-Request",
  "example": {
    "password": "password",
    "username": "username"
  },
  "required": [
    "username",
    "password"
  ],
  "properties": {
    "password": {
      "type": "string",
      "description": "username"
    },
    "username": {
      "type": "string",
      "description": "password"
    }
  }
}
object Currency
{
  "type": "object",
  "title": "Currency",
  "example": {
    "amount_1000": 100990,
    "currency_code": "USD"
  },
  "required": [
    "amount_1000",
    "currency_code"
  ],
  "properties": {
    "amount_1000": {
      "type": "integer",
      "format": "int32"
    },
    "currency_code": {
      "type": "string"
    }
  },
  "description": ""
}
object Date-Time-Component
{
  "type": "object",
  "title": "Date-Time-Component",
  "example": {
    "hour": 15,
    "year": 1977,
    "month": 2,
    "minute": 33,
    "day_of_week": 5,
    "day_of_month": 25
  },
  "properties": {
    "hour": {
      "type": "integer",
      "format": "int32",
      "description": "The hour"
    },
    "year": {
      "type": "integer",
      "format": "int32",
      "description": "The year"
    },
    "month": {
      "type": "integer",
      "format": "int32",
      "description": "The month"
    },
    "minute": {
      "type": "integer",
      "format": "int32",
      "description": "The minute"
    },
    "day_of_week": {
      "enum": [
        "1",
        "2",
        "3",
        "4",
        "5",
        "6",
        "7"
      ],
      "type": "string",
      "format": "int32",
      "description": "Both strings and numbers are accepted. If different from the value derived from the date (if specified), use the derived value.",
      "x-enum-varnames": [
        "MONDAY",
        "TUESDAY",
        "WEDNESDAY",
        "THURSDAY",
        "FRIDAY",
        "SATURDAY",
        "SUNDAY"
      ],
      "x-enum-descriptions": [
        "Monday",
        "Tuesday",
        "Wednesday",
        "Thursday",
        "Friday",
        "Saturday",
        "Sunday"
      ]
    },
    "day_of_month": {
      "type": "integer",
      "format": "int32",
      "description": "The day of month"
    }
  },
  "description": "Date/time by component"
}
object Date-Time-Object
{
  "type": "object",
  "title": "Date-Time",
  "example": {
    "component": {
      "hour": 15,
      "year": 1977,
      "month": 2,
      "minute": 33,
      "day_of_week": 5,
      "day_of_month": 25
    }
  },
  "properties": {
    "component": {
      "$ref": "#/components/schemas/Date-Time-Component"
    },
    "unix_epoch": {
      "$ref": "#/components/schemas/Date-Time-Unix-Epoch"
    }
  },
  "description": "The Whatsapp Business API Client will attempt to format the date/time based on a specified localization."
}
object Date-Time-Unix-Epoch
{
  "type": "object",
  "title": "Date-Time-Unix-Epoch",
  "example": {
    "timestamp": 123456789
  },
  "properties": {
    "timestamp": {
      "type": "integer",
      "format": "int32",
      "description": "Epoch timestamp in seconds"
    }
  },
  "description": "Date/time by Unix epoch"
}
object Detailed-User-Response
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/Response"
    },
    {
      "type": "object",
      "properties": {
        "users": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/Detailed-User-Response-Item"
          }
        }
      }
    }
  ],
  "title": "Root Type for Detailed-User-Response",
  "example": {
    "users": [
      {
        "ROLES": "ROLE_USER",
        "username": "username"
      }
    ]
  },
  "description": ""
}
object Detailed-User-Response-Item
{
  "type": "object",
  "title": "Root Type for Detailed-Response-Item",
  "example": {
    "ROLES": "ROLE_USER",
    "username": "username"
  },
  "properties": {
    "ROLES": {
      "$ref": "#/components/schemas/User-Role"
    },
    "username": {
      "type": "string"
    }
  },
  "description": ""
}
object Document
{
  "type": "object",
  "oneOf": [
    {
      "$ref": "#/components/schemas/DocumentById"
    },
    {
      "$ref": "#/components/schemas/DocumentByProvider"
    }
  ],
  "title": "Document",
  "description": "The media object containing a document"
}
object DocumentById
{
  "type": "object",
  "title": "Document",
  "example": {
    "id": "<Media Id, from Media API>X",
    "caption": "<Message Caption>",
    "filename": "<Filename>"
  },
  "required": [
    "caption",
    "id",
    "filename"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "caption": {
      "type": "string"
    },
    "filename": {
      "type": "string"
    }
  }
}
object DocumentByProvider
{
  "type": "object",
  "title": "Document1",
  "example": {
    "link": "<Link to PDF, https>",
    "caption": "<Message Caption>",
    "filename": "<Filename>",
    "provider": {
      "name": "<Provider Name from Media Provider API, optional"
    }
  },
  "required": [
    "provider",
    "caption",
    "link",
    "filename"
  ],
  "properties": {
    "link": {
      "type": "string"
    },
    "caption": {
      "type": "string"
    },
    "filename": {
      "type": "string"
    },
    "provider": {
      "$ref": "#/components/schemas/Provider"
    }
  }
}
object Email
{
  "type": "object",
  "title": "Email",
  "example": {
    "type": "<Contact's Email Type>",
    "email": "<Contact's Email>"
  },
  "required": [
    "email",
    "type"
  ],
  "properties": {
    "type": {
      "type": "string"
    },
    "email": {
      "type": "string"
    }
  }
}
object Enable-Two-Step-Request-Body
{
  "type": "object",
  "title": "Enable-Two-Step-Request",
  "example": {
    "pin": "your-6-digit-pin"
  },
  "required": [
    "pin"
  ],
  "properties": {
    "pin": {
      "type": "string"
    }
  }
}
object Error
{
  "type": "object",
  "title": "Error",
  "example": {
    "code": 1234,
    "title": "error-code-title",
    "details": "optional-detailed-error-message"
  },
  "properties": {
    "code": {
      "type": "integer",
      "format": "int32",
      "description": "See the https://developers.facebook.com/docs/whatsapp/api/errors for more information."
    },
    "href": {
      "type": "string",
      "description": "location for error detail"
    },
    "title": {
      "type": "string",
      "description": "error title"
    },
    "details": {
      "type": "string",
      "description": "error detail"
    }
  },
  "description": ""
}
object Gateway-Node-Status
{
  "type": "object",
  "title": "Root Type for Gateway-Node-Status",
  "example": {
    "role": "coreapp",
    "gateway_status": "connected"
  },
  "properties": {
    "role": {
      "enum": [
        "primary_master",
        "secondary_master",
        "coreapp"
      ],
      "type": "string"
    },
    "gateway_status": {
      "type": "string"
    }
  },
  "description": ""
}
string Gateway-Status
{
  "enum": [
    "connected",
    "connecting",
    "disconnected",
    "uninitialized",
    "unregistered"
  ],
  "type": "string",
  "description": ""
}
object Get-Business-Profile-Response
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/Response"
    },
    {
      "type": "object",
      "properties": {
        "settings": {
          "$ref": "#/components/schemas/Business-Settings"
        }
      }
    }
  ],
  "title": "Root Type for Get-Business-Profile-Response",
  "example": {
    "settings": {
      "business": {
        "profile": {
          "email": "new-business-email",
          "address": "new-business-address",
          "vertical": "business-industry",
          "websites": [
            "website-1",
            "website-2"
          ],
          "description": "business-description"
        }
      }
    }
  },
  "description": ""
}
object Get-Media-Providers-Response
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/Response"
    },
    {
      "type": "object",
      "properties": {
        "settings": {
          "$ref": "#/components/schemas/Media-Provider-Settings"
        }
      }
    }
  ],
  "title": "Root Type for Get-Media-Providers-Response",
  "example": {
    "settings": {
      "application": {
        "media": {
          "providers": [
            {
              "name": "your-first-provider",
              "type": "www",
              "config": {
                "basic": {
                  "password": "your-password",
                  "username": "your-username"
                }
              }
            },
            {
              "name": "your-second-provider",
              "type": "www",
              "config": {
                "bearer": "your-bearer-token"
              }
            }
          ]
        }
      }
    }
  },
  "description": ""
}
object Get-Profile-About-Response
{
  "type": "object",
  "title": "Root Type for Get-Profile-About-Response",
  "example": {
    "settings": {
      "profile": {
        "about": {
          "text": "your-profile-about-text"
        }
      }
    }
  },
  "properties": {
    "settings": {
      "$ref": "#/components/schemas/Profile-About-Settings"
    }
  },
  "description": ""
}
object Get-Profile-Photo-Response
{
  "type": "object",
  "title": "Root Type for Get-Profile-Photo-Response",
  "example": {
    "settings": {
      "profile": {
        "photo": {
          "link": "profile-photo-url"
        }
      }
    }
  },
  "properties": {
    "settings": {
      "$ref": "#/components/schemas/Profile-Photo-Settings"
    }
  },
  "description": ""
}
object Group
{
  "type": "object",
  "title": "Groups-Response-Item",
  "example": {
    "id": "your-group-id",
    "creation_time": 123456789
  },
  "properties": {
    "id": {
      "type": "string"
    },
    "creation_time": {
      "type": "integer",
      "format": "int32",
      "description": "timestamp"
    }
  },
  "description": ""
}
object Group-Admin-Request-Body
{
  "type": "object",
  "title": "Group-Admin-Request",
  "example": {
    "wa_ids": [
      "<Recipient WA-ID, from Contacts API>"
    ]
  },
  "required": [
    "wa_ids"
  ],
  "properties": {
    "wa_ids": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "The WhatsApp IDs of the people to be added or removed as group admins"
    }
  }
}
object Group-Info
{
  "type": "object",
  "title": "Group-Response-Item",
  "example": {
    "admins": [
      "whatsapp-id-1",
      "whatsapp-id-2"
    ],
    "creator": "whatsapp-id-1",
    "subject": "your-group-subject",
    "participants": [
      "whatsapp-id-3",
      "whatsapp-id-4",
      "whatsapp-id-5"
    ],
    "creation_time": 123456789
  },
  "properties": {
    "admins": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Group administrators\nLists IDs of the creator of the group and any administrators added"
    },
    "creator": {
      "type": "string",
      "description": "ID of the creator of this group"
    },
    "subject": {
      "type": "string",
      "description": "Subject of the group"
    },
    "participants": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Participants of the group\nThis is an array of all the IDs of the participants in the group. Initially, this will be the creator of the group."
    },
    "creation_time": {
      "type": "integer",
      "format": "int32",
      "description": "Group creation time"
    }
  },
  "description": ""
}
object Group-Invite
{
  "type": "object",
  "title": "Group-Invite",
  "example": {
    "link": "group-invite-link"
  },
  "properties": {
    "link": {
      "type": "string"
    }
  },
  "description": ""
}
object Group-Invite-Response
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/Response"
    },
    {
      "type": "object",
      "properties": {
        "groups": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/Group-Invite"
          }
        }
      }
    }
  ],
  "title": "Group-Invite-Response",
  "example": {
    "groups": [
      {
        "link": "group-invite-link"
      }
    ]
  },
  "description": ""
}
object Group-Response
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/Response"
    },
    {
      "type": "object",
      "properties": {
        "groups": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/Group-Info"
          }
        }
      }
    }
  ],
  "title": "Group-Response",
  "example": {
    "groups": [
      {
        "admins": [
          "whatsapp-id-1",
          "whatsapp-id-2"
        ],
        "creator": "whatsapp-id-1",
        "subject": "your-group-subject",
        "participants": [
          "whatsapp-id-3",
          "whatsapp-id-4",
          "whatsapp-id-5"
        ],
        "creation_time": 123456789
      }
    ]
  },
  "description": ""
}
object Groups-Response
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/Response"
    },
    {
      "type": "object",
      "properties": {
        "groups": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/Group"
          }
        }
      }
    }
  ],
  "title": "GroupsResponse",
  "example": {
    "groups": [
      {
        "id": "your-group-idX",
        "creation_time": 123456789
      }
    ]
  },
  "description": ""
}
object GroupsDeleteGroupIconRequest
{
  "type": "object",
  "required": [
    "File"
  ],
  "properties": {
    "File": {
      "type": "string",
      "format": "binary"
    }
  }
}
object GroupsSetGroupIconRequest
{
  "type": "object",
  "required": [
    "File"
  ],
  "properties": {
    "File": {
      "type": "string",
      "format": "binary"
    }
  }
}
string HealthGetAppStats200Response
{
  "type": "string"
}
object HealthGetAppStatsResponse
{
  "type": "object",
  "example": {},
  "properties": {}
}
string HealthGetDbStats200Response
{
  "type": "string"
}
object HealthGetDbStatsResponse
{
  "type": "object",
  "example": {},
  "properties": {}
}
string HealthGetMetricsData200Response
{
  "type": "string"
}
object HealthGetMetricsDataResponse
{
  "type": "object",
  "example": {},
  "properties": {}
}
object HealthGetSupportInfoResponse
{
  "type": "object",
  "example": {},
  "properties": {}
}
object Hsm
{
  "type": "object",
  "title": "Hsm",
  "example": {
    "language": {
      "code": "en",
      "policy": "deterministic"
    },
    "namespace": "business_a_namespace",
    "element_name": "hello_world",
    "localizable_params": [
      {
        "default": "1234"
      }
    ]
  },
  "required": [
    "namespace",
    "element_name",
    "language",
    "localizable_params"
  ],
  "properties": {
    "language": {
      "$ref": "#/components/schemas/Language"
    },
    "namespace": {
      "type": "string",
      "description": "The namespace that will be used"
    },
    "element_name": {
      "type": "string",
      "description": "The element name that indicates which template to use within the namespace"
    },
    "localizable_params": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/LocalizableParam"
      },
      "description": "This field is an array of values to apply to variables in the template"
    }
  },
  "description": "The containing element for the message content — Indicates that the message is highly structured. Parameters contained within provide the structure."
}
object Image
{
  "type": "object",
  "oneOf": [
    {
      "$ref": "#/components/schemas/ImageById"
    },
    {
      "$ref": "#/components/schemas/ImageByProvider"
    }
  ],
  "title": "Image",
  "description": "The media object containing an image"
}
object ImageById
{
  "type": "object",
  "title": "ImageById",
  "example": {
    "id": "<Media Id, from Media API>X",
    "caption": "<Message Caption>"
  },
  "required": [
    "caption",
    "id"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "caption": {
      "type": "string"
    }
  }
}
object ImageByProvider
{
  "type": "object",
  "title": "ImageByProvider",
  "example": {
    "link": "<Link to Image, https>",
    "caption": "<Media Caption>",
    "provider": {
      "name": "<Provider Name from Media Provider API, optional"
    }
  },
  "required": [
    "provider",
    "link",
    "caption"
  ],
  "properties": {
    "link": {
      "type": "string"
    },
    "caption": {
      "type": "string"
    },
    "provider": {
      "$ref": "#/components/schemas/Provider"
    }
  }
}
object Language
{
  "type": "object",
  "title": "Language",
  "example": {
    "code": "en",
    "policy": "deterministic"
  },
  "required": [
    "policy",
    "code"
  ],
  "properties": {
    "code": {
      "type": "string",
      "description": "The code of the language or locale to use — Accepts both language and language_locale formats (e.g., en and en_US)."
    },
    "policy": {
      "enum": [
        "fallback",
        "deterministic"
      ],
      "type": "string",
      "description": "The language policy the message should follow"
    }
  }
}
object LocalizableParam
{
  "type": "object",
  "title": "LocalizableParam",
  "example": {
    "default": "<param value>"
  },
  "required": [
    "default"
  ],
  "properties": {
    "default": {
      "type": "string",
      "description": "Default text if localization fails"
    },
    "currency": {
      "$ref": "#/components/schemas/Currency"
    },
    "date_time": {
      "$ref": "#/components/schemas/Date-Time-Object"
    }
  }
}
object Location
{
  "type": "object",
  "title": "Location",
  "example": {
    "name": "<Location Name>",
    "address": "<Location's Address>",
    "latitude": "<Latitude>",
    "longitude": "<Longitude>"
  },
  "required": [
    "longitude",
    "latitude",
    "name",
    "address"
  ],
  "properties": {
    "name": {
      "type": "string",
      "description": "Name of the location"
    },
    "address": {
      "type": "string",
      "description": "Address of the location. Only displayed if name is present."
    },
    "latitude": {
      "type": "string",
      "description": "Latitude of the location"
    },
    "longitude": {
      "type": "string",
      "description": "Longitude of the location"
    }
  }
}
object Login-Admin-Request-Body
{
  "type": "object",
  "title": "Login-Admin-Request",
  "example": {
    "new_password": "<New Admin Password>"
  },
  "required": [
    "new_password"
  ],
  "properties": {
    "new_password": {
      "type": "string"
    }
  }
}
object Mark-Message-As-Read-Request-Body
{
  "type": "object",
  "title": "Mark-Message-As-Read-Request",
  "example": {
    "status": "read"
  },
  "required": [
    "status"
  ],
  "properties": {
    "status": {
      "type": "string",
      "default": "read"
    }
  }
}
object Media
{
  "type": "object",
  "title": "Media",
  "example": {
    "auto_download": [
      "image",
      "document",
      "audio"
    ]
  },
  "required": [
    "auto_download"
  ],
  "properties": {
    "auto_download": {
      "type": "array",
      "items": {
        "enum": [
          "audio",
          "document",
          "voice",
          "video",
          "image."
        ],
        "type": "string"
      },
      "description": "An array specifying which types of media to automatically download."
    }
  }
}
object Media-Provider
{
  "type": "object",
  "title": "Update-Media-Providers-Request",
  "example": {
    "name": "<Provider Name>",
    "type": "www",
    "config": {
      "bearer": "<Bearer Auth Token>"
    }
  },
  "properties": {
    "name": {
      "type": "string",
      "description": "The name for the provider"
    },
    "type": {
      "type": "string",
      "description": "The type of provider"
    },
    "config": {
      "$ref": "#/components/schemas/Config"
    }
  }
}
object Media-Provider-Settings
{
  "type": "object",
  "title": "Root Type for Settings",
  "example": {
    "application": {
      "media": {
        "providers": [
          {
            "name": "your-first-provider",
            "type": "www",
            "config": {
              "basic": {
                "password": "your-password",
                "username": "your-username"
              }
            }
          },
          {
            "name": "your-second-provider",
            "type": "www",
            "config": {
              "bearer": "your-bearer-token"
            }
          }
        ]
      }
    }
  },
  "properties": {
    "application": {
      "$ref": "#/components/schemas/Media-Provider-Settings-Application"
    }
  },
  "description": ""
}
object Media-Provider-Settings-Application
{
  "type": "object",
  "title": "Root Type for Settings-Application",
  "example": {
    "media": {
      "providers": [
        {
          "name": "your-first-provider",
          "type": "www",
          "config": {
            "basic": {
              "password": "your-password",
              "username": "your-username"
            }
          }
        },
        {
          "name": "your-second-provider",
          "type": "www",
          "config": {
            "bearer": "your-bearer-token"
          }
        }
      ]
    }
  },
  "properties": {
    "media": {
      "$ref": "#/components/schemas/Media-Provider-Settings-Application-Media"
    }
  },
  "description": ""
}
object Media-Provider-Settings-Application-Media
{
  "type": "object",
  "title": "Root Type for Settings-Application-Media",
  "example": {
    "providers": [
      {
        "name": "your-first-provider",
        "type": "www",
        "config": {
          "basic": {
            "password": "your-password",
            "username": "your-username"
          }
        }
      },
      {
        "name": "your-second-provider",
        "type": "www",
        "config": {
          "bearer": "your-bearer-token"
        }
      }
    ]
  },
  "properties": {
    "providers": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Media-Provider"
      }
    }
  },
  "description": ""
}
object MediaDownloadResponse
{
  "type": "object",
  "example": {},
  "properties": {}
}
string MediaUploadMediaRequest
{
  "type": "string",
  "format": "binary"
}
string MediaUploadMediaRequest1
{
  "type": "string",
  "format": "binary"
}
string MediaUploadMediaRequest10
{
  "type": "string",
  "format": "binary"
}
string MediaUploadMediaRequest11
{
  "type": "string",
  "format": "binary"
}
string MediaUploadMediaRequest12
{
  "type": "string",
  "format": "binary"
}
string MediaUploadMediaRequest13
{
  "type": "string",
  "format": "binary"
}
string MediaUploadMediaRequest2
{
  "type": "string",
  "format": "binary"
}
string MediaUploadMediaRequest3
{
  "type": "string",
  "format": "binary"
}
string MediaUploadMediaRequest4
{
  "type": "string",
  "format": "binary"
}
string MediaUploadMediaRequest5
{
  "type": "string",
  "format": "binary"
}
string MediaUploadMediaRequest6
{
  "type": "string",
  "format": "binary"
}
string MediaUploadMediaRequest7
{
  "type": "string",
  "format": "binary"
}
string MediaUploadMediaRequest8
{
  "type": "string",
  "format": "binary"
}
string MediaUploadMediaRequest9
{
  "type": "string",
  "format": "binary"
}
object Message
{
  "type": "object",
  "title": "Message",
  "example": {
    "id": "gBEGkYiEB1VXAglK1ZEqA1YKPrU"
  },
  "properties": {
    "id": {
      "type": "string"
    }
  },
  "description": ""
}
object Message-Context
{
  "type": "object",
  "title": "Root Type for Message-Context",
  "example": {
    "id": "message-id-of-context-message",
    "from": "sender-wa-id-of-context-message",
    "group_id": "group-id-of-context-message",
    "mentions": [
      "wa-id1",
      "wa-id2"
    ]
  },
  "properties": {
    "id": {
      "type": "string",
      "description": "message id"
    },
    "from": {
      "type": "string",
      "description": "Sender Whatsapp id of context-message"
    },
    "group_id": {
      "type": "string",
      "description": "GroupId of context message"
    },
    "mentions": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Whats app ids"
    }
  },
  "description": ""
}
object Message-Response
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/Response"
    },
    {
      "type": "object",
      "properties": {
        "messages": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/Message"
          }
        }
      }
    }
  ],
  "title": "Message-Response",
  "example": {
    "messages": [
      {
        "id": "gBEGkYiEB1VXAglK1ZEqA1YKPrUX"
      }
    ]
  },
  "description": ""
}
string Message-Type
{
  "enum": [
    "audio",
    "contacts",
    "document",
    "hsm",
    "image",
    "location",
    "text",
    "video",
    "voice",
    "unknown"
  ],
  "type": "string",
  "default": "text",
  "description": "type of the message"
}
object Meta
{
  "type": "object",
  "title": "Meta",
  "example": {
    "version": "whatsapp-business-api-client-version",
    "api_status": "stable"
  },
  "properties": {
    "version": {
      "type": "string"
    },
    "api_status": {
      "enum": [
        "deprecated",
        "experimental",
        "stable"
      ],
      "type": "string"
    }
  },
  "description": "Contains generic information such as WhatsApp Business API Client version."
}
object Name
{
  "type": "object",
  "title": "Name",
  "example": {
    "last_name": "Smith",
    "first_name": "John",
    "formatted_name": "John Smith"
  },
  "required": [
    "formatted_name"
  ],
  "properties": {
    "prefix": {
      "type": "string",
      "description": "Name preffix"
    },
    "suffix": {
      "type": "string",
      "description": "Name suffix"
    },
    "last_name": {
      "type": "string",
      "description": "Last name"
    },
    "first_name": {
      "type": "string",
      "description": "First name"
    },
    "formatted_name": {
      "type": "string",
      "description": "Full name as it normally appears"
    }
  },
  "description": "Full contact name"
}
object Org
{
  "type": "object",
  "title": "Org",
  "example": {
    "title": "Manager",
    "company": "WhatsApp",
    "department": "Design"
  },
  "required": [
    "company"
  ],
  "properties": {
    "title": {
      "type": "string",
      "description": "Contact's business title"
    },
    "company": {
      "type": "string",
      "description": "Name of the contact's company"
    },
    "department": {
      "type": "string",
      "description": "Name of the contact's department"
    }
  },
  "description": "Contact organization information"
}
object Phone
{
  "type": "object",
  "title": "Phone",
  "example": {
    "type": "WORK",
    "phone": "+1 (650) 555-1234",
    "wa_id": "16505551234"
  },
  "properties": {
    "type": {
      "type": "string",
      "description": "Standard Values: CELL, MAIN, IPHONE, HOME, WORK"
    },
    "phone": {
      "type": "string"
    },
    "wa_id": {
      "type": "string",
      "description": "WhatsApp ID"
    }
  }
}
object Profile-About
{
  "type": "object",
  "title": "Set-Profile-About-Request",
  "example": {
    "text": "<About Profile>"
  },
  "required": [
    "text"
  ],
  "properties": {
    "text": {
      "type": "string",
      "description": "Text to display in your profile's About section\nThe max length for the string is 139 characters."
    }
  }
}
object Profile-About-Settings
{
  "type": "object",
  "title": "Root Type for Profile-About-Settings",
  "example": {
    "profile": {
      "about": {
        "text": "your-profile-about-text"
      }
    }
  },
  "properties": {
    "profile": {
      "$ref": "#/components/schemas/Profile-About-Settings-Profile"
    }
  },
  "description": ""
}
object Profile-About-Settings-Profile
{
  "type": "object",
  "title": "Root Type for About-XXX",
  "example": {
    "about": {
      "text": "your-profile-about-text"
    }
  },
  "properties": {
    "about": {
      "$ref": "#/components/schemas/Profile-About"
    }
  },
  "description": ""
}
object Profile-Photo-Settings
{
  "type": "object",
  "title": "Root Type for Profile-Photo-Settings",
  "example": {
    "profile": {
      "photo": {
        "link": "profile-photo-url"
      }
    }
  },
  "properties": {
    "profile": {
      "type": "object",
      "properties": {
        "photo": {
          "type": "object",
          "properties": {
            "link": {
              "type": "string"
            }
          }
        }
      }
    }
  },
  "description": ""
}
object Profile-Photo-Settings-Profile
{
  "type": "object",
  "title": "Root Type for Profile-Photo-Settings-Profile",
  "example": {
    "photo": {
      "link": "profile-photo-url"
    }
  },
  "properties": {
    "photo": {
      "$ref": "#/components/schemas/Profile-Photo-Settings-Profile-Photo"
    }
  },
  "description": ""
}
object Profile-Photo-Settings-Profile-Photo
{
  "type": "object",
  "title": "Root Type for Profile-Photo-Settings-Profile-Photo",
  "example": {
    "link": "profile-photo-url"
  },
  "properties": {
    "link": {
      "type": "string"
    }
  },
  "description": ""
}
string ProfileGetPhotoResponse
{
  "type": "string",
  "format": "binary"
}
object ProfileUpdatePhotoRequest
{
  "type": "object",
  "required": [
    "File"
  ],
  "properties": {
    "File": {
      "type": "string",
      "format": "binary"
    }
  }
}
object Provider
{
  "type": "object",
  "title": "Provider",
  "example": {
    "name": "<Provider Name from Media Provider API, optional"
  },
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string"
    }
  }
}
object Register-Account-Request-Body
{
  "type": "object",
  "title": "Register-Account-Request",
  "example": {
    "code": "your-registration-code-received-by-sms-or-voice-call"
  },
  "required": [
    "code"
  ],
  "properties": {
    "code": {
      "type": "string"
    }
  }
}
object Remove-Group-Participant-Request-Body
{
  "type": "object",
  "title": "Remove-Group-Participant-Request",
  "example": {
    "wa_ids": [
      "{{Recipient-WA-ID}}"
    ]
  },
  "required": [
    "wa_ids"
  ],
  "properties": {
    "wa_ids": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": ""
    }
  }
}
object Request-Code-Account
{
  "type": "object",
  "title": "Root Type for Request-Code-Account",
  "example": {
    "vname": "decoded-vname-from-cert"
  },
  "properties": {
    "vname": {
      "type": "string"
    }
  },
  "description": ""
}
object Request-Code-Request-Body
{
  "type": "object",
  "title": "Request-Code-Request",
  "example": {
    "cc": "<Country Code>",
    "pin": "<Two-Step Verification PIN",
    "cert": "<Valid Cert from Business Manager>",
    "method": "< sms | voice >",
    "phone_number": "<Phone Number>"
  },
  "required": [
    "cc",
    "phone_number",
    "method",
    "cert"
  ],
  "properties": {
    "cc": {
      "type": "string",
      "description": "Numerical country code for the phone number you are registering"
    },
    "pin": {
      "type": "string",
      "description": "Existing 6-digit PIN — This is only required when two-factor verification is enabled on this account."
    },
    "cert": {
      "type": "string",
      "description": "Base64-encoded Verified Name certificate"
    },
    "method": {
      "enum": [
        "sms",
        "voice"
      ],
      "type": "string",
      "description": "Method of receiving your registration code"
    },
    "phone_number": {
      "type": "string",
      "description": "Phone number you are registering, without the country code or plus symbol (+)"
    }
  }
}
object Request-Code-Response
{
  "type": "object",
  "title": "Root Type for Request-Code-Response",
  "example": {
    "account": [
      {
        "vname": "decoded-vname-from-cert"
      }
    ]
  },
  "properties": {
    "account": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Request-Code-Account"
      }
    }
  },
  "description": ""
}
object Response
{
  "type": "object",
  "title": "Response",
  "example": {
    "meta": {
      "version": "whatsapp-business-api-client-version",
      "api_status": "deprecated"
    },
    "errors": [
      {
        "code": 1234,
        "title": "error-code-title",
        "details": "optional-detailed-error-message"
      }
    ]
  },
  "properties": {
    "meta": {
      "$ref": "#/components/schemas/Meta"
    },
    "errors": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Error"
      },
      "description": "Only returned with a failed request. Contains an array of error objects that are present when there is an error. "
    }
  },
  "description": ""
}
object Restore-Settings-Request-Body
{
  "type": "object",
  "title": "Restore-Settings-Request",
  "example": {
    "data": "<Data to Restore, from Backup API>",
    "password": "<Password for Backup>"
  },
  "required": [
    "password",
    "data"
  ],
  "properties": {
    "data": {
      "type": "string",
      "description": "The data that was returned by the /v1/settings/backup API call"
    },
    "password": {
      "type": "string",
      "description": "The password you used in the /v1/settings/backup API call to encrypt the backup data"
    }
  }
}
object Send-Message-Request-Body
{
  "type": "object",
  "title": "Send-Text-Message-Request",
  "example": {
    "to": "{whatsapp-id}",
    "text": {
      "body": "your-text-message-content"
    },
    "type": "text",
    "preview_url": true,
    "recipient_type": "individual"
  },
  "required": [
    "to"
  ],
  "properties": {
    "to": {
      "type": "string",
      "description": "When recipient_type is individual, this field is the WhatsApp ID (phone number) returned from contacts endpoint. When recipient_type is group, this field is the WhatsApp group ID."
    },
    "hsm": {
      "$ref": "#/components/schemas/Hsm"
    },
    "ttl": {
      "type": "object"
    },
    "text": {
      "$ref": "#/components/schemas/Text"
    },
    "type": {
      "$ref": "#/components/schemas/Message-Type"
    },
    "audio": {
      "$ref": "#/components/schemas/Audio"
    },
    "image": {
      "$ref": "#/components/schemas/Image"
    },
    "video": {
      "$ref": "#/components/schemas/Video"
    },
    "contacts": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Contact"
      },
      "description": ""
    },
    "document": {
      "$ref": "#/components/schemas/Document"
    },
    "location": {
      "$ref": "#/components/schemas/Location"
    },
    "preview_url": {
      "type": "boolean",
      "description": "Specifying preview_url in the request is optional when not including a URL in your message.\nTo include a URL preview, set preview_url to true in the message body and make sure the URL begins with http:// or https://. For more information, see the Sending URLs in Text Messages section."
    },
    "recipient_type": {
      "enum": [
        "individual",
        "group"
      ],
      "type": "string",
      "default": "individual",
      "description": "Determines whether the recipient is an individual or a group\nSpecifying recipient_type in the request is optional when the value is individual.\nHowever, recipient_type is required when using group. If sending a text message to a group, see the Sending Group Messages documentation."
    }
  }
}
object Set-Shards-Request-Body
{
  "type": "object",
  "title": "Set-Shards-Request",
  "example": {
    "cc": "<Country Code>",
    "pin": "<Two-Step PIN>",
    "shards": 32,
    "phone_number": "<Phone Number>"
  },
  "required": [
    "cc",
    "phone_number",
    "shards",
    "pin"
  ],
  "properties": {
    "cc": {
      "type": "string"
    },
    "pin": {
      "type": "string"
    },
    "shards": {
      "enum": [
        "1",
        "2",
        "4",
        "8",
        "16",
        "32"
      ],
      "type": "string",
      "format": "int32"
    },
    "phone_number": {
      "type": "string"
    }
  }
}
object Text
{
  "type": "object",
  "title": "Text",
  "example": {
    "body": "<Message Text>"
  },
  "required": [
    "body"
  ],
  "properties": {
    "body": {
      "type": "string"
    }
  }
}
object Update-Group-Info-Request-Body
{
  "type": "object",
  "title": "Update-Group-Info-Request",
  "example": {
    "subject": "<New Group Subject>"
  },
  "required": [
    "subject"
  ],
  "properties": {
    "subject": {
      "type": "string"
    }
  }
}
object Update-User-Request-Body
{
  "type": "object",
  "title": "Update-User-Request",
  "example": {
    "password": "New Password"
  },
  "required": [
    "password"
  ],
  "properties": {
    "password": {
      "type": "string",
      "description": "password"
    }
  }
}
object Upload-Media
{
  "type": "object",
  "title": "Root Type for Upload-Media",
  "example": {
    "id": "f043afd0-f0ae-4b9c-ab3d-696fb4c8cd68"
  },
  "properties": {
    "id": {
      "type": "string"
    }
  },
  "description": ""
}
object Upload-Media-Response
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/Response"
    },
    {
      "type": "object",
      "properties": {
        "media": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/Upload-Media"
          }
        }
      }
    }
  ],
  "title": "Root Type for Upload-Media-Response",
  "example": {
    "media": [
      {
        "id": "f043afd0-f0ae-4b9c-ab3d-696fb4c8cd68X"
      }
    ]
  },
  "description": ""
}
object Url
{
  "type": "object",
  "title": "Root Type for Url",
  "example": {
    "url": "https://www.facebook.com",
    "type": "WORK"
  },
  "properties": {
    "url": {
      "type": "string",
      "description": "URL"
    },
    "type": {
      "type": "string",
      "description": "Standard Values: HOME, WORK"
    }
  },
  "description": "Standard Values: HOME, WORK"
}
object User-Login-Response
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/Response"
    },
    {
      "type": "object",
      "properties": {
        "users": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/User-Login-Response-Item"
          }
        }
      }
    }
  ],
  "title": "UserLoginResponse",
  "example": {
    "users": [
      {
        "token": "eyJhbGciOHlXVCJ9.eyJ1c2VyIjoNTIzMDE2Nn0.mEoF0COaO00Z1cANo",
        "expires_after": "2018-03-01T15:29:26.000Z"
      }
    ]
  },
  "description": ""
}
object User-Login-Response-Item
{
  "type": "object",
  "title": "UserLoginResponseItem",
  "example": {
    "token": "eyJhbGciOHlXVCJ9.eyJ1c2VyIjoNTIzMDE2Nn0.mEoF0COaO00Z1cANo",
    "expires_after": "2018-03-01T15:29:26.000Z"
  },
  "properties": {
    "token": {
      "type": "string",
      "description": "Authentication token to be used for all other WhatsApp Business API calls. The token must be sent in the authorization header in the format:\nAuthorization: Bearer <authentication-token>"
    },
    "expires_after": {
      "type": "string",
      "format": "date-time",
      "description": "Token expiration timestamp. By default, this is 7 days."
    }
  },
  "description": ""
}
object User-Response
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/Response"
    },
    {
      "type": "object",
      "properties": {
        "users": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/User-Response-Item"
          }
        }
      }
    }
  ],
  "title": "Root Type for User-Create-Response",
  "example": {
    "users": [
      {
        "username": "username"
      }
    ]
  },
  "description": ""
}
object User-Response-Item
{
  "type": "object",
  "title": "Root Type for User-Create-Response-Item",
  "example": {
    "username": "username"
  },
  "properties": {
    "username": {
      "type": "string"
    }
  },
  "description": ""
}
string User-Role
{
  "enum": [
    "ROLE_ADMIN",
    "ROLE_USER"
  ],
  "type": "string",
  "description": ""
}
object Video
{
  "type": "object",
  "oneOf": [
    {
      "$ref": "#/components/schemas/VideoById"
    },
    {
      "$ref": "#/components/schemas/VideoByProvider"
    }
  ],
  "title": "Video",
  "description": "The media object containing a video"
}
object VideoById
{
  "type": "object",
  "title": "VideoById",
  "example": {
    "id": "<Media Id, from Media API>X",
    "caption": "<Message Caption>"
  },
  "required": [
    "caption",
    "id"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "caption": {
      "type": "string"
    }
  }
}
object VideoByProvider
{
  "type": "object",
  "title": "ByProvider",
  "example": {
    "link": "<Link to Video, https>",
    "caption": "<Message Caption>",
    "provider": {
      "name": "<Provider Name from Media Provider API, optional"
    }
  },
  "required": [
    "provider",
    "caption",
    "link"
  ],
  "properties": {
    "link": {
      "type": "string"
    },
    "caption": {
      "type": "string"
    },
    "provider": {
      "$ref": "#/components/schemas/Provider"
    }
  }
}
object Webhook-Audio
{
  "type": "object",
  "title": "Root Type for Webhook-Audio",
  "example": {
    "id": "media-id",
    "file": "absolute-filepath-on-coreapp",
    "link": "link-to-audio-file",
    "sha256": "checksum",
    "mime_type": "media-mime-type"
  },
  "properties": {
    "id": {
      "type": "string",
      "description": "ID of the media. Can be used to delete the media if stored locally on the client."
    },
    "file": {
      "type": "string",
      "deprecated": true,
      "description": "Absolute filename and location on media volume. This parameter is deprecated."
    },
    "link": {
      "type": "string"
    },
    "sha256": {
      "type": "string",
      "description": "Checksum"
    },
    "caption": {
      "type": "string",
      "description": "Optional. Only present if specified."
    },
    "filename": {
      "type": "string",
      "description": "Filename on the sender's device. This will only be present in audio and document media messages."
    },
    "mime_type": {
      "type": "string",
      "description": "Mime type of media"
    }
  },
  "description": ""
}
object Webhook-Contact
{
  "type": "object",
  "title": "Root Type for Webhook-Contact",
  "example": {
    "wa_id": "16315551234",
    "profile": {
      "name": "Kerry Fisher"
    }
  },
  "properties": {
    "wa_id": {
      "type": "string",
      "description": "The WhatsApp ID of the contact"
    },
    "profile": {
      "$ref": "#/components/schemas/Webhook-Contact-Profile"
    }
  },
  "description": ""
}
object Webhook-Contact-Profile
{
  "type": "object",
  "title": "Root Type for Webhook-Contact-Profile",
  "example": {
    "name": "sender-profile-name"
  },
  "properties": {
    "name": {
      "type": "string",
      "description": "Optional. As of v2.21.4, contains the sender's profile name."
    }
  },
  "description": ""
}
object Webhook-Document
{
  "type": "object",
  "title": "Root Type for Webhook-Document",
  "example": {
    "id": "fc233119-733f-49c-bcbd-b2f68f798e33",
    "file": "/usr/local/wamedia/shared/fc233119-733f-49c-bcbd-b2f68f798e33",
    "sha256": "3b11fa6ef2bde1dd14726e09d3edaf782120919d06f6484f32d5d5caa4b8e",
    "caption": "80skaraokesonglistartist",
    "mime_type": "application/pdf"
  },
  "properties": {
    "id": {
      "type": "string",
      "description": "ID of the media. Can be used to delete the media if stored locally on the client."
    },
    "file": {
      "type": "string",
      "deprecated": true,
      "description": "Absolute filename and location on media volume. This parameter is deprecated."
    },
    "link": {
      "type": "string"
    },
    "sha256": {
      "type": "string",
      "description": "Checksum"
    },
    "caption": {
      "type": "string",
      "description": "Optional. Only present if specified."
    },
    "filename": {
      "type": "string",
      "description": "Filename on the sender's device. This will only be present in audio and document media messages."
    },
    "mime_type": {
      "type": "string",
      "description": "Mime type of media"
    }
  },
  "description": ""
}
object Webhook-Event
{
  "type": "object",
  "title": "Root Type for Webhook-Event",
  "example": {
    "contacts": [
      {
        "wa_id": "16315551234",
        "profile": {
          "name": "Kerry Fisher"
        }
      }
    ],
    "messages": [
      {
        "id": "ABGGFlA5FpafAgo6tHcNmNjXmuSf",
        "from": "16315551234",
        "text": {
          "body": "Hello this is an answer"
        },
        "type": "text",
        "timestamp": "1518694235"
      }
    ]
  },
  "properties": {
    "errors": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Error"
      }
    },
    "contacts": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Webhook-Contact"
      }
    },
    "messages": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Webhook-Message"
      }
    },
    "statuses": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Webhook-Status"
      }
    }
  },
  "description": ""
}
object Webhook-Image
{
  "type": "object",
  "title": "Root Type for Webhook-Image",
  "example": {
    "id": "b1c68f38-8734-4ad3-b4a1-ef0c10d683",
    "file": "/usr/local/wamedia/shared/b1cf38-8734-4ad3-b4a1-ef0c10d0d683",
    "sha256": "29ed500fa64eb55fc19dc4124acb300e5dcc54a0f822a301ae99944db",
    "caption": "Check out my new phone!",
    "mime_type": "image/jpeg"
  },
  "properties": {
    "id": {
      "type": "string",
      "description": "ID of the media. Can be used to delete the media if stored locally on the client."
    },
    "file": {
      "type": "string",
      "deprecated": true,
      "description": "Absolute filename and location on media volume. This parameter is deprecated."
    },
    "link": {
      "type": "string"
    },
    "sha256": {
      "type": "string",
      "description": "Checksum"
    },
    "caption": {
      "type": "string",
      "description": "Optional. Only present if specified."
    },
    "mime_type": {
      "type": "string",
      "description": "Mime type of media"
    }
  },
  "description": ""
}
object Webhook-Location
{
  "type": "object",
  "title": "Root Type for Webhook-Location",
  "example": {
    "url": "https://foursquare.com/v/4d7031d35b5df7744",
    "name": "Main Street Beach",
    "address": "Main Street Beach, Santa Cruz, CA",
    "latitude": 38.9806263495,
    "longitude": -131.9428612257
  },
  "properties": {
    "url": {
      "type": "string",
      "description": "URL for the website where the user downloaded the location information"
    },
    "name": {
      "type": "string",
      "description": "Name of the location"
    },
    "address": {
      "type": "string",
      "description": "Address of the location"
    },
    "latitude": {
      "type": "number",
      "format": "double",
      "description": "Latitude of location being sent"
    },
    "longitude": {
      "type": "number",
      "format": "double",
      "description": "Longitude of location being sent"
    }
  },
  "description": ""
}
object Webhook-Message
{
  "type": "object",
  "title": "Root Type for Webhook-Message",
  "example": {
    "id": "ABGGFlA5FpafAgo6tHcNmNjXmuSfX",
    "from": "16315551234",
    "text": {
      "body": "Hello this is an answer"
    },
    "type": "text",
    "timestamp": "1518694235"
  },
  "properties": {
    "id": {
      "type": "string",
      "description": "Message ID"
    },
    "from": {
      "type": "string",
      "description": "WhatsApp ID of the sender"
    },
    "text": {
      "$ref": "#/components/schemas/Webhook-Text"
    },
    "type": {
      "$ref": "#/components/schemas/Message-Type"
    },
    "audio": {
      "$ref": "#/components/schemas/Webhook-Audio"
    },
    "image": {
      "$ref": "#/components/schemas/Webhook-Image"
    },
    "video": {
      "$ref": "#/components/schemas/Webhook-Video"
    },
    "voice": {
      "$ref": "#/components/schemas/Webhook-Voice"
    },
    "errors": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Error"
      }
    },
    "system": {
      "$ref": "#/components/schemas/Webhook-System"
    },
    "context": {
      "$ref": "#/components/schemas/Message-Context"
    },
    "contacts": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Contact"
      }
    },
    "document": {
      "$ref": "#/components/schemas/Webhook-Document"
    },
    "group_id": {
      "type": "string",
      "description": "Optional. WhatsApp group ID"
    },
    "location": {
      "$ref": "#/components/schemas/Webhook-Location"
    },
    "timestamp": {
      "type": "string",
      "description": "Message received timestamp"
    }
  },
  "description": ""
}
object Webhook-Status
{
  "type": "object",
  "title": "Root Type for Webhook-Status",
  "example": {
    "id": "gBGGEgZHMlEfAgkM1RBkhDRr7t8",
    "errors": [
      {
        "code": 470,
        "title": "Failed to send message because you are outside the support window for freeform messages to this user. Please use a valid HSM notification or reconsider."
      }
    ],
    "status": "failed",
    "timestamp": "1533332775",
    "recipient_id": "12064001000"
  },
  "properties": {
    "id": {
      "type": "string",
      "description": "Message ID"
    },
    "errors": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Error"
      }
    },
    "status": {
      "enum": [
        "sent",
        "delivered",
        "read",
        "failed",
        "deleted"
      ],
      "type": "string",
      "description": "Status of message",
      "x-enum-descriptions": [
        "Message received by WhatsApp server (One checkmark in WhatsApp Mobile)",
        "Message delivered to recipient (Two checkmarks in WhatsApp Mobile)",
        "Message read by recipient (Two blue checkmarks in WhatsApp Mobile)",
        "Message failed to send (Red error triangle in WhatsApp Mobile)",
        "Message deleted by the user"
      ]
    },
    "timestamp": {
      "type": "string",
      "description": "Timestamp of the status message"
    },
    "recipient_id": {
      "type": "string",
      "description": "WhatsApp ID of recipient"
    }
  },
  "description": ""
}
object Webhook-System
{
  "type": "object",
  "title": "Root Type for Webhook-System",
  "example": {
    "body": "+1 (650) 387-5246 added +1 (650) 644-8470",
    "type": "group_user_joined",
    "users": [
      "16506448470"
    ],
    "group_id": "16315558032-1530825318",
    "operator": "16503875246"
  },
  "properties": {
    "body": {
      "type": "string"
    },
    "type": {
      "enum": [
        "group_created",
        "group_user_promoted",
        "group_user_demoted",
        "group_user_joined",
        "group_user_left",
        "group_subject_changed",
        "group_description_changed",
        "group_icon_changed",
        "group_icon_deleted",
        "group_invite_link_revoked",
        "user_identity_changed",
        "group_user_changed_number",
        "group_error_fetching_photo",
        "group_error_adding_users",
        "group_error_adding_user",
        "group_error_full_adding_users",
        "group_error_removing_user",
        "broadcast_list_created",
        "group_ended",
        "group_error_blocked_adding_user"
      ],
      "type": "string",
      "description": "",
      "x-enum-descriptions": [
        "Group created",
        "Group user promoted to admin",
        "Group user removed as admin",
        "User joined the group",
        "User left the group",
        "Group subject changed",
        "Group description changed",
        "Group icon changed",
        "Group icon deleted",
        "Group's invite link disabled",
        "User's end-to-end keys changed",
        "User's phone number changed",
        "Error retrieving the group photo",
        "Error adding users to the group",
        "Error adding a user to the group",
        "Group is at capacity and no more users can be added",
        "Error removing user from group",
        "Broadcast list created",
        "Group ended",
        "Error attempting to add a user that blocked the adder"
      ]
    }
  },
  "description": ""
}
object Webhook-Text
{
  "type": "object",
  "title": "Root Type for Webhook-Text",
  "example": {
    "body": "text-message-content"
  },
  "properties": {
    "body": {
      "type": "string",
      "description": "Message text"
    }
  },
  "description": ""
}
object Webhook-Video
{
  "type": "object",
  "title": "Root Type for Webhook-Video",
  "example": {
    "id": "media-idX",
    "file": "absolute-filepath-on-coreapp",
    "link": "link-to-video-file",
    "sha256": "checksum",
    "mime_type": "media-mime-type"
  },
  "properties": {
    "id": {
      "type": "string",
      "description": "ID of the media. Can be used to delete the media if stored locally on the client."
    },
    "file": {
      "type": "string",
      "deprecated": true,
      "description": "Absolute filename and location on media volume. This parameter is deprecated."
    },
    "link": {
      "type": "string"
    },
    "sha256": {
      "type": "string",
      "description": "Checksum"
    },
    "caption": {
      "type": "string",
      "description": "Optional. Only present if specified."
    },
    "mime_type": {
      "type": "string",
      "description": "Mime type of media"
    }
  },
  "description": ""
}
object Webhook-Voice
{
  "type": "object",
  "title": "Root Type for Webhook-Voice",
  "example": {
    "id": "463eb7ec-ff4e-4d9b-b110-1879cbd411b2",
    "file": "/usr/local/wamedia/shared/463e/b7ec/ff4e4d9bb1101879cbd411b2",
    "sha256": "fa9e1807d936b7cebe63654ea3a7912b1fa9479220258d823590521ef53b0710",
    "mime_type": "audio/ogg; codecs=opus"
  },
  "properties": {
    "id": {
      "type": "string",
      "description": "ID of the media. Can be used to delete the media if stored locally on the client."
    },
    "file": {
      "type": "string",
      "deprecated": true,
      "description": "Absolute filename and location on media volume. This parameter is deprecated."
    },
    "link": {
      "type": "string"
    },
    "sha256": {
      "type": "string",
      "description": "Checksum"
    },
    "caption": {
      "type": "string",
      "description": "Optional. Only present if specified."
    },
    "mime_type": {
      "type": "string",
      "description": "Mime type of media"
    }
  },
  "description": ""
}
object Webhooks
{
  "type": "object",
  "title": "Webhooks",
  "example": {
    "url": "<Webhook URL, https>",
    "max_concurrent_requests": 12
  },
  "properties": {
    "url": {
      "type": "string",
      "description": "Inbound and outbound notifications are routed to this URL. A HTTPS-based endpoint is required; HTTP will not work."
    },
    "max_concurrent_requests": {
      "enum": [
        "6",
        "12",
        "18",
        "24"
      ],
      "type": "string",
      "format": "int32",
      "default": 6,
      "description": "Configures the maximum number of inflight callback requests that are sent out. Can be set to 6 (default), 12, 18, or 24."
    }
  }
}