Skip to content

Goal-directed conversations by text message, run by the AI part with a person in the loop.

appReaching people82 operationsid convo

How it sits

An app is already assembled from parts, with a face of its own. The counts and the links below are from the platform's spec and the other services' own descriptions.

Among the partsfrom the spec
Operations82 GET 38 · POST 38 · PUT 4 · DELETE 2
Resources20
Leaned on byno other service names it
Leans onExecutive assistant, SMS
In recipesnone yet

What it can do

82 operations in 20 resources, as the spec declares them. Each row is one call; paths are relative to the part.

vt

MethodPathDoes
GET/api/v1/vt/browseWhat the browser can show
GET/api/v1/vt/browse/{entity}One page of an entity
GET/api/v1/vt/browse/{entity}/{record_id}One record
GET/api/v1/vt/campaign-registriesTCR registrations (a send names one)
GET/api/v1/vt/campaignsCampaigns, with the website's filters and the vendor's work queue
POST/api/v1/vt/campaignsCreate a campaign (and its Deployment 1)
GET/api/v1/vt/campaigns/{campaign_id}One campaign with its deployments
PUT/api/v1/vt/campaigns/{campaign_id}Edit a campaign's name or dates
DELETE/api/v1/vt/campaigns/{campaign_id}/bindUnbind one of our campaigns: its replies are kept, nobody's
POST/api/v1/vt/campaigns/{campaign_id}/bindBind one of our campaigns to a programme (replies reach it at once)
POST/api/v1/vt/campaigns/{campaign_id}/closeClose one of our campaigns: webhook off, unbound, read-only
GET/api/v1/vt/campaigns/{campaign_id}/conversationsThe campaign's conversations, with ours marked
POST/api/v1/vt/campaigns/{campaign_id}/deploymentsAdd a deployment (copies the template's creative and media)
POST/api/v1/vt/campaigns/{campaign_id}/webhookPoint the campaign's replies at this engine, then test the delivery
GET/api/v1/vt/deployments/{deployment_id}One deployment: list, sends, report
PUT/api/v1/vt/deployments/{deployment_id}Edit a deployment's creative text or name
GET/api/v1/vt/deployments/{deployment_id}/handoffIs the deployment ready for a person to test send and launch?
POST/api/v1/vt/deployments/{deployment_id}/launchLaunch the real send: builds the queue, then waits for the vendor's two clicks
POST/api/v1/vt/deployments/{deployment_id}/listUpload the deployment's list (TEST campaigns, gated numbers only)
POST/api/v1/vt/deployments/{deployment_id}/test-sendTest send: the vendor texts the test list AT ONCE
POST/api/v1/vt/drafts/{draft_id}/deliveryAsk the vendor where a sent reply stands (queued → delivered)
GET/api/v1/vt/organizationsOrganisations the key can see
GET/api/v1/vt/sends/{send_id}One send and its progress
POST/api/v1/vt/sends/{send_id}/pausePause a send (the one vendor control the key may use)
GET/api/v1/vt/statusWhat the desk can see and write
25 operations

programme-versions

MethodPathDoes
GET/api/v1/programme-versionsVersions, filtered by campaign, programme or status
POST/api/v1/programme-versionsSave the next version of an authored programme (a draft)
POST/api/v1/programme-versions/checkWould this programme load? Problems field by field; nothing saved
GET/api/v1/programme-versions/deskWhat the desk has to look at: versions waiting, sent back, and live
GET/api/v1/programme-versions/summaryOne HQ campaign's programmes: versions, and the live one's brief
POST/api/v1/programme-versions/test-conversations/{conv_id}/messagesThe voter's turn in a rehearsal; returns the agent's replies
POST/api/v1/programme-versions/{programme_id}/retireThe desk takes a live HQ program off, at once (a person only)
GET/api/v1/programme-versions/{programme_id}/{version}One version, with its body
POST/api/v1/programme-versions/{programme_id}/{version}/campaign-yesRecord the campaign's yes on a draft (from HQ's approval queue)
POST/api/v1/programme-versions/{programme_id}/{version}/go-liveThe desk's yes: switch a campaign-approved version on (a person only)
POST/api/v1/programme-versions/{programme_id}/{version}/send-backThe desk sends a version back to the campaign with a note
POST/api/v1/programme-versions/{programme_id}/{version}/test-conversationsRehearse a version on the bench — the real agent, no SMS
12 operations

sends

MethodPathDoes
GET/api/v1/sendsSends, newest first
POST/api/v1/sendsDraft a send (nothing leaves Apex)
GET/api/v1/sends/providersThe providers configured here and what each can do
GET/api/v1/sends/{send_id}One send with its events
PUT/api/v1/sends/{send_id}Edit a draft or a send in review
POST/api/v1/sends/{send_id}/bindHow replies to this send find its programme
POST/api/v1/sends/{send_id}/launchLaunch, or hand to the provider's own approvals
POST/api/v1/sends/{send_id}/moveA plain transition: submit (review), approve, back to draft, close
POST/api/v1/sends/{send_id}/queueQueue: the one click that writes to the provider (files the order)
POST/api/v1/sends/{send_id}/testTest send to the send's test numbers — THE GATE rules every one
GET/api/v1/sends/{send_id}/trackWhere the launched send stands
POST/api/v1/sends/{send_id}/watchAsk the provider whether the deployment exists yet
12 operations

hq-conversations

MethodPathDoes
GET/api/v1/hq-conversationsThis campaign's AI conversations and the replies waiting on a person
POST/api/v1/hq-conversations/drafts/{draft_id}/approveThe campaign's click — send one reply (GATED)
POST/api/v1/hq-conversations/drafts/{draft_id}/rejectTurn a reply down; a model reply is drafted again
GET/api/v1/hq-conversations/{claim_id}One conversation: every message, and what waits
POST/api/v1/hq-conversations/{claim_id}/redraftWrite a new reply to the voter's last message; sends nothing
5 operations

claims

MethodPathDoes
GET/api/v1/claimsList claims
POST/api/v1/claims/{claim_id}/redraftDraft again for the last contact turn (Convo#29)
POST/api/v1/claims/{claim_id}/releaseEnd a conversation by hand (sends nothing)
3 operations

contacts

MethodPathDoes
GET/api/v1/contacts/locationsStated contact locations — the zones that outrank the area code
DELETE/api/v1/contacts/{phone}/locationForget a stated location — quiet hours fall back to the area code
PUT/api/v1/contacts/{phone}/locationState where a person is (outranks the area code for quiet hours)
3 operations

drafts

MethodPathDoes
GET/api/v1/draftsDrafts awaiting a human click (default: pending)
POST/api/v1/drafts/{draft_id}/approveThe human click — send one draft (GATED)
POST/api/v1/drafts/{draft_id}/rejectDiscard one draft — and, for a model reply, draft again (Convo#29)
3 operations

programmes

MethodPathDoes
GET/api/v1/programmesList loaded programmes
POST/api/v1/programmes/{programme_id}/startOpen a claim and send the opening (GATED)
POST/api/v1/programmes/{programme_id}/test-conversationsOpen a TEST conversation with the programme's real agent (no SMS)
3 operations

health

MethodPathDoes
GET/healthBasic health check
GET/health/detailedDetailed health check
2 operations

test-conversations

MethodPathDoes
GET/api/v1/test-conversations/{conv_id}A TEST conversation: claim, goals and transcript
POST/api/v1/test-conversations/{conv_id}/messagesThe voter's turn in a TEST conversation; returns the agent's replies
2 operations

vt-reports

MethodPathDoes
GET/api/v1/vt-reports/organizations/{organization_id}/deploymentsOne organization's deployments, newest first, with report numbers
GET/api/v1/vt-reports/organizations/{organization_id}/deployments/{deployment_id}One deployment of the organization, with its message and report
2 operations

webhook

MethodPathDoes
POST/api/v1/webhook/smsInbound SMS from SMS
POST/api/v1/webhook/victorytextA reply from Victory Text
2 operations

audit

MethodPathDoes
GET/api/v1/auditOutbound + inbound audit
1 operation

brief

MethodPathDoes
GET/api/v1/briefThe programme brief — the client rollup, DERIVED from the store
1 operation

gate

MethodPathDoes
GET/api/v1/gateGate status — counts only, never the numbers
1 operation

optouts

MethodPathDoes
GET/api/v1/optoutsRevocations (stage0 + optout_intent) for VT suppression
1 operation

practice

MethodPathDoes
POST/api/v1/practice/turnPractice turn: ask, follow up or judge (no send, nothing stored)
1 operation

prime

MethodPathDoes
GET/primePrime application caches
1 operation

status

MethodPathDoes
GET/statusService status overview
1 operation

transcript

MethodPathDoes
GET/api/v1/transcriptTranscript rows (vt_response shape) for a contact
1 operation

All the partsReaching peopleThe platform's own id for this service is cbconvo.

forge-catalog.json, generated Oct 30, 2026

Anti-cloud. Host local, think global.

Terminal
/terminal