Qevili developer guide.
A small, simple API for sending and receiving messages.
Base address
https://jzbdjgswgswqompluqwe.supabase.co/functions/v1/qevili-api
Every request needs Authorization: Bearer YOUR_KEY. Keep your key on your server, never in an app or web page. You need a Business, Starter or Pro pack.
POST /v1/messages Authorization: Bearer YOUR_KEY { "to": "sara", "text": "Your order is ready for pickup." } 200 { "message_id": "…", "request_state": "accepted" }
Routes
GET /v1/me
Check your key works. Returns your business id.
GET /v1/lookup
Find a person by number, username or email. Only people who allowed it are found.
POST /v1/messages
Send a text of up to 4096 characters. Add a client_id to avoid duplicates when you retry.
Good to know
WebhooksSet an https address. We send each customer message as JSON and expect a 2xx answer. We retry once and pause the webhook after 10 failures in a row.
SignatureThe header
X-Qevili-Signature: t=<unix>,v1=<hex>. v1 is the HMAC-SHA256 of <t>.<raw body> with your webhook secret. Reject requests older than 5 minutes.Errors400 bad request, 401 wrong key, 402 pack needed, 403 not allowed, 404 person not found, 409 waiting for the person to accept, 429 limit reached.
Limits300 messages and 60 lookups per hour. Replies within 24 hours of a customer message do not use your monthly allowance.
Full guides with your key filled in
Sign in to see the Getting started page, request log and webhook tester.