REST API overview
The Qyvo REST API — base URL, auth, request/response conventions, and the full endpoint catalogue.
The Qyvo REST API exposes the same workspace operations available in the dashboard — sending messages, managing contacts, triggering sequences and flows, querying templates and tags. It's the integration surface used by the n8n community node and the (forthcoming) Zapier app.
For LLM-driven integrations, prefer the MCP server — it exposes the same actions with rich tool descriptions designed for agents.
Base URL
https://www.qyvo.io/api/v1
All endpoints require HTTPS. There is no separate sandbox URL — testing happens in your real workspace, against a number you have onboarded. We recommend using a dedicated test contact (your own phone) until your integration is stable.
Authentication
Every request must include a Bearer token:
Authorization: Bearer YOUR_TOKEN_HERE
Generate the token in Settings → API Tokens. See Authentication for full details.
Request and response shape
| Aspect | Convention |
|---|---|
| Request body | JSON, Content-Type: application/json |
| Response body | JSON |
| Verbs | GET for triggers and dropdowns; POST for actions and lookups (even read-only ones, because they accept a JSON body) |
| IDs | UUIDs (Laravel HasUuids trait) |
| Timestamps | ISO 8601 in UTC, e.g. 2026-05-07T08:14:23+00:00 |
| Phone format | International with leading +, e.g. +14155550123. Qyvo normalizes minor formatting variations server-side. |
| Errors | See Errors |
| Pagination | See Pagination |
| Rate limits | See Rate limits |
Endpoint catalogue
Identity
GET /v1/me— current user and tenant
Triggers (polling)
These return up to 100 most-recent records, sorted by created_at DESC. Designed for n8n / Zapier polling, but usable directly:
GET /v1/triggers/new-message-receivedGET /v1/triggers/new-campaign-sentGET /v1/triggers/new-flow-triggeredGET /v1/triggers/new-sequence-triggered
Messages
POST /v1/actions/send-template-message— Meta-approved template (always available)POST /v1/actions/send-text-message— free-form text, only inside the 24-hour customer service window
Contacts
POST /v1/actions/create-contact— upsert by phonePOST /v1/actions/update-contact— by id or phonePOST /v1/actions/get-contact— by id, phone, or emailPOST /v1/actions/search-contacts— full-text + tag/email filterPOST /v1/actions/add-tagPOST /v1/actions/remove-tag
Templates
Tags
Sequences and Flows
POST /v1/actions/trigger-sequencePOST /v1/actions/get-sequencePOST /v1/actions/trigger-flowPOST /v1/actions/get-flow
OpenAPI
A machine-readable OpenAPI 3.1 spec for the entire surface is available at:
https://www.qyvo.io/api/v1/openapi.yaml
Import it into Postman, Bruno, or any code generator (Stainless, Speakeasy, openapi-generator) to scaffold a typed client in your language.
Versioning
The current major version is v1. We follow semver:
- Patch / minor — additive changes (new endpoints, new optional fields). Existing payloads keep working.
- Major — breaking. New URL prefix (
/api/v2/), with/api/v1/kept live for at least 12 months.
See the Changelog for release history.
