Reference / What each verb calls
What each verb calls
Every verb and the gateway endpoint it calls.
The bridge between this document and the gateway API. Anything in the right-hand column, your own code can call — over HTTP, in any language, with the same key.
| verb | endpoints |
|---|---|
start |
WS /v1/apps twice: the agent's serve entry, a process it starts, and its own companion socket (answers_dev); GET /v1/agents/{slug}/config for the tools on the connected line |
chat · test · simulate · remember · personas try |
WS /v1/apps from the agent's serve entry, a process the verb starts and stops |
start, once connected |
POST /v1/login/codes (the console's URL, at the instance it registered at), PUT /v1/line/from (the kept phone, on every connect in the sandbox), GET /v1/routes (the endpoints it answers at), GET /v1/agents/{slug}/line (when one of them is a number) |
chat |
WS /v1/chat?agent=&app=&contact= |
start --events · sessions · supervise |
GET /v1/calls/{call}/events (SSE), GET /v1/agents/{slug}/sessions |
sessions <call> · supervise |
GET /v1/calls/{call}/state — asked FIRST, because it is the one endpoint that 404s for a call this gateway has no log of |
supervise |
POST /v1/calls/{call}/verbs — with the org key: a desk that only reads and types needs no seat. A seat (POST …/supervise) is for audio, and that is the console's |
simulate --listen |
POST /v1/calls/{call}/listen, then the LiveKit room |
simulate --voice · test --voice |
POST /v1/evals/voice, POST /v1/evals/caller |
test · runs |
POST /v1/evals/run, GET /v1/evals/runs[/{id}]; runs promote is GET /v1/calls/{call}/golden?name=&from_seq= |
cases |
GET /v1/evals/cases?agent=&status= (a case is found by its name there), PATCH·DELETE /v1/evals/cases/{id}, POST /v1/evals/cases |
runs drift |
GET /v1/agents/{slug}/sessions — a held-rate is counted off the verdicts the calls already carry, so it asks the sessions endpoint and no evals endpoint at all |
eval |
POST /v1/evals/replay/{call} |
agent |
GET·PUT /v1/agents/{slug}/settings, GET …/settings/history, GET …/settings/diff, POST …/settings/rollback; list and stop are GET /v1/apps and POST /v1/apps/{app}/stop |
agent knowledge · lexicon · memory policy · docs attach · detach |
GET·PUT /v1/agents/{slug}/settings · GET·PUT /v1/agents/{slug}/lexicon, GET …/history |
pipeline |
GET /v1/agents/{slug}/pipeline |
docs |
PUT·GET·DELETE /v1/knowledge[/{base}], POST /v1/knowledge/{base}/eval, GET /v1/knowledge/attached |
memory |
GET·DELETE /v1/contacts/{contact}/memory, POST /v1/contacts/memory/eval |
remember |
POST /v1/agents/{slug}/memory/extraction |
numbers |
GET·POST /v1/numbers, DELETE /v1/numbers/{number} |
carriers |
GET /v1/carriers, GET·PUT·DELETE /v1/carrier[?account=] |
providers |
GET /v1/providers · PUT·DELETE·GET /v1/provider-keys[/{vendor}] |
voices |
GET /v1/voices · POST /v1/voices/sample |
callbacks |
GET /v1/callbacks[?agent=&after=] |
personas |
GET /v1/agents/{slug}/personas · PUT·DELETE /v1/agents/{slug}/personas/{name} · POST /v1/agents/{slug}/personas/generate — and push reads the agent's remaining files before sending them |
judges |
GET /v1/agents/{slug}/judges · PUT·DELETE /v1/agents/{slug}/judges/{name} · POST /v1/agents/{slug}/judges/try, and the same at /v1/org/judges with --org |
judging |
GET·PUT /v1/org/judging · GET /v1/provider-keys to say whose key the model runs on |
line |
GET·POST·DELETE /v1/agents/{slug}/line, PUT·DELETE /v1/line/from |
console |
POST /v1/login/codes in the environment asked — the one-use code the browser spends for a key of its own. Every other endpoint the console asks, it asks for itself |
login |
POST /v1/login/pairings, GET …/{code}/key — then GET /v1/whoami to prove what it got |
link |
what login knocks at when the machine is not signed in, then GET /v1/login/orgs for the person's orgs and POST /v1/login/org for the key in the one picked |
whoami |
GET /v1/whoami in the environment asked — the sandbox, or production with --prod |
deploy |
POST /v1/hosted/{name}/releases (the tarball itself, application/gzip), then GET /v1/hosted every few seconds while it follows; list is GET /v1/hosted, releases GET …/{name}/releases, rollback <n> POST …/{name}/rollback {release}, logs GET …/{name}/logs every two seconds, stop · start POST …/{name}/stop · …/start, rm DELETE /v1/hosted/{name} |
secrets |
GET /v1/secrets · PUT·DELETE /v1/secrets/{name} |
telemetry |
GET·PUT·DELETE /v1/telemetry |
monitors |
GET·POST /v1/monitors · DELETE /v1/monitors/{id} |
webhook |
GET·PUT·DELETE /v1/webhook · POST /v1/webhook/test |
every verb, without --prod |
its own endpoints at PINECALL_URL, with the project's key and pinecall-env: sandbox on each request and socket; nothing is asked first |
every verb, with --prod |
the same endpoints at PINECALL_URL, with the same key and pinecall-env: production on each request and socket |
prompt |
none. It is the one verb that needs no gateway and no key |