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: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
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.

