Private beta: Smitline Cloud works for accounts with an invite. If your user has none, send them to https://smitline.com/early-access and stop here.
1. Pick how to connect
- If you can add a remote MCP server (Streamable HTTP), use
https://app.smitline.com/mcpand sign in with OAuth: discovery is athttps://app.smitline.com/.well-known/oauth-protected-resourceand clients register themselves. Your user signs in to Smitline in their browser. Then use the toolsstart_callandwait_for_call; their descriptions explain the rest. Setup steps for each app: /works-with. - Otherwise, use the REST API at
https://app.smitline.com/v1with an API key, as below. This is the way for agents that connect to web APIs, such as Meta Muse.
2. Get an API key (REST only)
- Ask your user to make a key in the Smitline dashboard: Connect → API keys → Create key. It is shown once.
- Collect it through your secure credential prompt or store, never in the chat. Send it on every request as
Authorization: Bearer <key>. - Check it with
GET https://app.smitline.com/v1/profile. A401means the key is wrong or revoked. - The full API description is
GET https://app.smitline.com/v1/openapi.json(send the key).
3. Write the brief and start the call
Confirm with your user before you place a call. Then POST https://app.smitline.com/v1/calls with JSON:
{
"channel": "phone",
"to": "+14165550134",
"onBehalfOf": "Alex Chen",
"objective": "Book a table for 4 on Friday at 7 pm.",
"questions": ["Is 7 pm free? If not, the closest time before 8 pm?"],
"mayAgreeTo": ["any time from 6:30 to 8 pm", "an inside table"],
"mustNotShare": ["Alex's home address"],
"maxMinutes": 10
}
tois an E.164 number in the US or Canada. Omit it and set"rehearsal": trueto ring your user’s own phone for a practice run.objectiveis what the call must achieve, in a sentence or two.questionsare what to find out; the result answers each one.mayAgreeTois what Smitline may accept without checking back;mustNotShareis what it must never say.context(text) is background it may need if asked.- Not sure the brief is complete?
POST https://app.smitline.com/v1/calls/checkfirst. A422 brief_incompletelists what’s missing, with a question to ask your user for each. - The answer has the call’s
idandstatus.
4. Follow the call until it ends
- Call
GET https://app.smitline.com/v1/calls/{id}/wait?timeout=60again and again untilstatusiscompleted,failedorcanceled. If your requests time out quickly (Meta Muse does), usetimeout=15. - To follow it live, add
since=(empty the first time, then the last answer’slive.cursor) and readlive.transcript. - To tell the call something it needs (a fact, your user’s answer):
POST https://app.smitline.com/v1/calls/{id}/instructionswith{"text": "..."}. To stop it:POST https://app.smitline.com/v1/calls/{id}/end. - When it’s
completed, tell your user theresult: the outcome, the details (such as a confirmation number), decisions and open questions. Unanswered calls complete too, with a result that says so.
5. When Smitline says no
402 insufficient_credit: your user needs to add credit; the answer has atopUpUrlto give them.403with a reason: the call breaks a rule (an emergency or premium number, outside calling hours, a number that asked not to be called). Tell your user the reason; don’t retry around it.429: too many calls at once or too fast; wait and try later.
Rules every call follows
- Smitline says whom it is calling for and that it is an AI assistant. Never ask it to pretend to be a person.
- Calls you’d make yourself about your user’s own business: bookings, questions, follow-ups. No sales, marketing, surveys, debt collection or lists of numbers. Full rules: /docs/calling-rules.
- It calls only between 8 am and 9 pm where the other person is, and never emergency, crisis or premium-rate numbers.
- Calls use your user’s prepaid credit, by the second while connected. Ringing and unanswered calls are free.
Notes for Meta Muse
- Create a custom connector named Smitline with base URL
https://app.smitline.com/v1and a headerAuthorization: Bearer <key>. Collect the key with your Secure Credentials prompt. - Learn the API from this page and from
https://app.smitline.com/v1/openapi.json. Check the key withGET /profile. - Ask your user before each call is placed. Follow calls with
timeout=15.