Vestly.ai API
Leads, conversations, bookings, knowledge and monthly numbers of your Vestly.ai company. Create a token in the dashboard under Account → API (Premium and Enterprise) and send it as "Authorization: Bearer vy_…". 120 requests a minute per token. Webhooks (signed with X-Vestly-Signature-V2) tell you about new events as they happen.
Base address: https://app.vestly.ee/api/public/v1 · OpenAPI: openapi.json
Endpoints
| Method | Path | What it does |
|---|---|---|
GET | /leads | List leads, newest first status: new, contacted, booked, lost or spam · score: hot, warm or cold · since: Changed since (ISO 8601) · per_page: 1–100 |
GET | /leads/{id} | One lead id: Lead id |
PATCH | /leads/{id} | Update status, note or follow-up date id: Lead id |
GET | /conversations | List conversations, newest first since: Active since (ISO 8601) · per_page: 1–100 |
GET | /conversations/{uuid} | One conversation with its messages uuid: Conversation id |
GET | /bookings | Times booked in the chat limit: At most 500 |
GET | /knowledge | Knowledge you added (by hand, questions and answers, files, linked documents) bot_id: Only this chatbot |
POST | /knowledge | Add a knowledge entry; the chatbot uses it at once |
DELETE | /knowledge/{id} | Delete an entry you added id: Entry id |
GET | /stats | A month in numbers: conversations, leads, bookings, sales after a chat, languages, top questions month: YYYY-MM, default this month |
Example
curl -H "Authorization: Bearer vy_…" "https://app.vestly.ee/api/public/v1/leads?status=new&score=hot"
Webhooks
Choose the events in the chatbot's Integrations tab: lead.captured, lead.updated, conversation.finished, conversation.rated, question.unanswered, purchase.attributed, booking.created, handoff.requested. Each is a JSON POST signed with X-Vestly-Signature-V2: sha256=HMAC(timestamp.body) and X-Vestly-Timestamp, using the secret shown in the dashboard.