curl send.
If you’d rather hand the API to an LLM, skip to the agent path — copy one markdown blob from the console and paste it into Claude Code or Cursor.
Before you begin
- A Chert account with at least one project provisioned. Ask your Chert admin if you’re not sure.
curland a terminal.
1. Pull your credentials from the console
Open the Chert console and select the project you want to send from. Three things you’ll need, all visible from the project’s sidebar:| What | Where to find it | Example |
|---|---|---|
| Tenant slug | API keys page → “Tenant slug” column | acme-7a3f |
| Signing secret | API keys page → “Reveal” on the row matching your tenant | 8f2c9d… (32 hex chars) |
| Phone number | Phone numbers page → any active line in your project | +14152165723 |
The signing secret is shown in full only once at provisioning. If you’ve lost it, your admin can rotate via the API keys page — be aware rotation invalidates the previous secret immediately.
endpoints_available.
2. Send your first message
Bearer auth is the simplest mode — single-tenant accounts don’t need any other header.Response
message_id is the Chert send id to reuse with message-scoped endpoints such as delivery lookup, reactions, and edits.
Route ids are scoped by the resource in the path:
/chats/{id}/messages uses a chat_id; /messages/{id} and /messages/{id}/react use a message_id. In the /send response, lead_id is the chat id for chat-scoped routes. convo_id is kept for compatibility and is not the id to put in /chats/{id}.3. Confirm delivery
Look up one message bymessage_id:
4. Stream replies
Open the SSE feed in another terminal. New events arrive asdata: lines as they happen:
message.received event within seconds.
For production, register a real webhook URL — see Receiving replies.
Hand off to an AI agent
If you’re driving Chert from Claude Code, Cursor, or another agent loop:- In the console, open the Documentation tab inside your project.
- Click Copy markdown at the top of the “Markdown reference” card. The blob already has your live tenant slug, signing secret, project id, and a curl example for listing your phone numbers — pre-substituted.
- Paste it into your agent. Ask it to build whatever you want — first message, bot loop, attachment sender, group chat. Every endpoint in the blob has been verified end-to-end against this deployment.
What’s next
| Goal | Read |
|---|---|
| Sign requests with HMAC for production | Authentication |
| Send multi-part messages, group chats, attachments | Create a group |
| Wire a production webhook receiver | Receiving replies |
| Look up an error code | Errors |
Programmatic registration (advanced)
If you don’t have a console account yet — for example, an end-user-driven agent — you can register a tenant over HTTP. See the unauthenticatedPOST /api/v1/register flow in Authentication.

