Skip to content

Conventions

Base URL

TypeURL
REST APIhttps://app.zorio.vn/api/
Webhook receiver (you host)your URL

The access domain is provisioned during onboarding.

Standard headers

Every request:

Authorization: Bearer <token>
Accept: application/json

Every request with a body:

Content-Type: application/json; charset=utf-8

Response shape

Single resource / action

json
{ "data": {} }

List (paginated)

json
{
  "current_page": 1,
  "data": [],
  "last_page": 5,
  "per_page": 50,
  "total": 234
}

Error

json
{
  "message": "Short error description",
  "errors": { "field_name": ["Detailed message"] }
}

Pagination

Query ?page=1&per_page=50 (default 50, max 200).

Timestamps & timezone

All datetimes are ISO 8601 with offset:

  • UTC: 2026-06-30T03:30:45+00:00
  • VN: 2026-06-30T10:30:45+07:00

When sending requests, formats with or without microseconds (.000000Z) are both accepted.

Common status codes

HTTPWhen
200OK
201Created
202Accepted (async)
400Bad request
401Token missing / invalid / expired
403Missing permission
404Resource not found
409Conflict (duplicate / state machine violation)
422Validation error
429Rate limit hit (with Retry-After)
500Server error

Phone number format

  • Stored in DB: E.164 without the leading + (e.g. 84987654321).
  • Request body accepts: both 0987654321 and 84987654321 — the backend normalizes.
  • Response returns: the original format sent by the client (preserved).

Recording URL

Recordings are served through a signed URL with a 30-minute TTL (HMAC SHA256). Download within 30 minutes — past that, request a fresh URL through the /recording endpoint.

Cấp phép theo điều khoản sử dụng của Zorio.