Pricing & limits
Most channels are free: you bring your own token or number, or run on an anonymous sandbox key. A few channels ride Caspian's own network and are billed at cost, drawn from a credit balance. Your first sign-in adds $100 in free credit.
The model
There are two kinds of channel, and the difference is who owns the pipe.
- Free channels: email, Telegram, Discord, Slack, and SMS/WhatsApp on your own Twilio or Telnyx number. These need no signup: mint an anonymous sandbox key and go. Where a provider charges (your own Twilio SMS, for example), that bill is between you and them; Caspian just relays.
- Paid channels: X, WhatsApp on Caspian's Meta number, and iMessage. These run on infrastructure Caspian operates, so each message has a real per-message cost. It is billed at cost and drawn from your credit balance. Paid channels unlock after a one-time sign-in.
Sign in once and you get $100 in free credit. At the per-message rates below that is tens of thousands of messages before you pay anything. Your sandbox key upgrades in place. See Authentication.
Free vs paid
| Channel | Cost | What you bring |
|---|---|---|
| free | Nothing: an inbox on our domain, or your own domain | |
| Telegram | free | A @BotFather bot token |
| Discord | free | The shared bot, or your own bot token |
| Slack | free | One-click install, or your own app |
| SMS & WhatsApp (BYO) | free | Your own Twilio or Telnyx number (you pay the carrier) |
| X (Twitter) | paid | Sign-in, runs on Caspian's network |
| WhatsApp (Meta) | paid | Sign-in, Caspian's Meta number |
| iMessage | paid | Sign-in, runs on Caspian's network |
Per-message cost of paid channels
These are the provider costs the gateway passes through, per message. There is no markup and no monthly fee. You are billed only for what you send and receive on a paid channel.
| Channel | Outbound | Inbound |
|---|---|---|
| X (Twitter) DM | ~$0.015 | ~$0.005 |
| WhatsApp (Meta) | ~$0.005 | ~$0.005 |
| iMessage | ~$0.01 | ~$0.01 |
| negligible | negligible |
Rates are approximate and track the underlying provider; they can shift as those providers change their pricing. Free channels never draw from your balance: a Telegram bot or an SMS on your own Twilio number costs Caspian nothing.
Starting free, upgrading later
You do not need an account to build. Mint an anonymous sandbox key and every free channel works immediately:
curl -s -X POST https://api.trycaspianai.com/v1/projects/sandbox \
-H 'Content-Type: application/json' -d '{"name":"my-agent"}'Connecting a free channel is one call; a paid channel is the same shape but needs a signed-in key. The handler never changes.
from caspian_sdk import CommClient
client = CommClient() # reads COMM_API_KEY from env / .env
# Free: works on a sandbox key, no billing
client.connect_email()
client.connect_telegram(bot_token="123:abc")
# Paid: needs a signed-in key; billed at cost from your $100 credit
client.connect_x(
access_token="...",
access_secret="...",
user_id="...",
)import { CommClient } from "caspian-sdk";
const client = new CommClient(); // reads COMM_API_KEY from env / .env
// Free: works on a sandbox key, no billing
await client.connectEmail();
await client.connectTelegram({ botToken: "123:abc" });
// Paid: needs a signed-in key; billed at cost from your $100 credit
await client.connectX({
accessToken: "...",
accessSecret: "...",
userId: "...",
});To move from a sandbox key to a signed-in one, run the device sign-in and pass your current key so everything you built carries over. See Authentication for the full flow.
Rate limits
Rate limits are enforced per API key, not per channel or per account. A sandbox key and a signed-in key each get their own budget, so load on one project never throttles another.
When a key exceeds its limit the gateway returns 429. listen() already backs off and retries transient errors, so a normal agent loop rides through short bursts without dropping messages. If you are sending high volume, spread it across keys or contact us to raise the limit.