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

Clear filters

Application 2 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
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

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 1 endpoints

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 2 endpoints

POST /certificates/external
operationId: Certificates_uploadExternalCertificate

Request Body

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

Responses

200
POST /certificates/external
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 3 endpoints

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
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
POST /groups/{GroupId}/leave
operationId: Groups_leaveGroup

Parameters

Name In Required Type Description
GroupId path required string

Responses

200
POST /groups/{GroupId}/leave

Media 1 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

Messages 1 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

Profile 1 endpoints

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 1 endpoints

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 3 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

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."
    }
  }
}