Tarceel

API Reference

Every route below needs one of these credentials, sent as a standard bearer header:

Authorization: Bearer <token>
CredentialLooks likeUse for
Account token JWT Managing your account — instances, API keys, billing
Personal access token pat_... Same as above, for scripts/automation (no expiry)
Instance API key sk_... Sending messages, webhook config, for one instance
Where do I get each one, and other details
Account token
POST /auth/request-link with your email, then GET /auth/verify?token=... from the link you receive returns { "token": "<jwt>" }. Expires after ~30 days.
Personal access token
Dashboard → API Tokens+ Create token (while logged in as a human), or POST /account/tokens using an existing account token or personal access token. Shown once, at creation — save it then. Gates the exact same routes as the account token, but never expires until you revoke it — use this for a script that can't complete the login flow itself.
Instance API key
Shown once, right after POST /instances succeeds, or after rotating it via POST /instances/{instanceId}/api-key/rotate. Lost it? Open that instance in the dashboard → Overview tab → Credentials section (has a Copy button), or rotate a fresh one.

A route's lock icon below tells you which credential it needs — everywhere AccountToken is listed, a personal access token works identically. Where a route accepts both AccountToken and InstanceApiKey, that's an OR — send whichever you have. The one exception: /instances/{id}/messages/* routes always require the instance's own API key, since that's meant for your server's own integration, not a dashboard session.

Example — listing your instances with a personal access token:

curl https://app.tarceel.com/instances \
  -H "Authorization: Bearer pat_..."

Testing a route right on this page? Click Authorize below (the padlock icon), paste the raw token — no need to type "Bearer" yourself — and every "Try it out" call will send it automatically from then on.