pinecallDocs
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