Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
openapi: 3.2.0
info:
title: Viber REST Bot Messages API
description: GENERATED FROM DOCUMENTATION by API Evangelist. Viber publishes no machine-readable contract; every operation below was read from the "Resource URL" blocks of https://developers.viber.com/docs/api/rest-bot-api/ on 2026-10-13. All calls are HTTPS POST with a JSON body and the X-Viber-Auth-Token header. Responses carry status (0 = success) and status_message.
version: '2026-10-13'
x-generated-from: documentation
x-generated-by: api-evangelist (hand-read from docs; generate-contract-from-docs.py found no verbatim METHOD /path pattern)
x-source: https://developers.viber.com/docs/api/rest-bot-api/
x-last-validated: '2026-10-13'
servers:
- url: https://chatapi.viber.com/pa
security:
- ViberAuthToken: []
tags:
- name: Messages
paths:
/send_message:
post:
operationId: sendMessage
summary: Send a message to a subscribed user
tags:
- Messages
description: Maximum total JSON size of the request is 30kb.
x-source: https://developers.viber.com/docs/api/rest-bot-api/#send-message
requestBody:
required: true
content:
application/json:
schema:
type: object
additionalProperties: true
responses:
'200':
$ref: '#/components/responses/Status'
/broadcast_message:
post:
operationId: broadcastMessage
summary: Broadcast a message to up to 300 subscribed users
tags:
- Messages
description: Same parameters as send_message plus broadcast_list (max 300). Rate limit of 500 requests in a 10 seconds window.
x-source: https://developers.viber.com/docs/api/rest-bot-api/#broadcast-message
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- broadcast_list
additionalProperties: true
properties:
broadcast_list:
type: array
maxItems: 300
items:
type: string
responses:
'200':
$ref: '#/components/responses/Status'
components:
responses:
Status:
description: Action result; status 0 for success, otherwise an error code
content:
application/json:
schema:
type: object
properties:
status:
type: integer
status_message:
type: string
additionalProperties: true
securitySchemes:
ViberAuthToken:
type: apiKey
in: header
name: X-Viber-Auth-Token