Reference
Endpoint map for the journey docs.
Primary Vera API paths grouped by capability. Use this page after you know the journey stage and need the exact request shape, response shape, or example call.
Workspace and projects
/v1/workspaceRead the active workspace snapshot for agent planning.
Examples
curl
curl -X GET "https://api-vera.symph.ai/v1/workspace" \
-H "Authorization: Bearer vwk_live_..."fetch
const response = await fetch("https://api-vera.symph.ai/v1/workspace", {
method: "GET",
headers: {
Authorization: "Bearer vwk_live_..."
}
});
const data = await response.json();response
{
"projects": [
{
"id": "proj_01hx6x9v2r",
"name": "First outbound campaign",
"business_name": "Vera.AI",
"website": "https://vera.symph.ai",
"agent_mode": "needs_approval"
}
],
"activeProject": {
"id": "proj_01hx6x9v2r",
"name": "First outbound campaign"
},
"nextActions": []
}/v1/projectsList projects for the authenticated workspace.
Examples
curl
curl -X GET "https://api-vera.symph.ai/v1/projects" \
-H "Authorization: Bearer vwk_live_..."fetch
const response = await fetch("https://api-vera.symph.ai/v1/projects", {
method: "GET",
headers: {
Authorization: "Bearer vwk_live_..."
}
});
const data = await response.json();response
[
{
"id": "proj_01hx6x9v2r",
"name": "First outbound campaign",
"business_name": "Vera.AI",
"website": "https://vera.symph.ai",
"agent_mode": "needs_approval",
"created_at": "2026-05-19T07:30:00Z"
}
]/v1/projectsCreate a project.
Examples
curl
curl -X POST "https://api-vera.symph.ai/v1/projects" \
-H "Authorization: Bearer vwk_live_..." \
-H "Content-Type: application/json" \
-d '{
"name": "First outbound campaign",
"business_name": "Vera.AI",
"website": "https://vera.symph.ai"
}'fetch
const response = await fetch("https://api-vera.symph.ai/v1/projects", {
method: "POST",
headers: {
Authorization: "Bearer vwk_live_...",
"Content-Type": "application/json"
},
body: JSON.stringify({
"name": "First outbound campaign",
"business_name": "Vera.AI",
"website": "https://vera.symph.ai"
})
});
const data = await response.json();response
{
"id": "proj_01hx6x9v2r",
"name": "First outbound campaign",
"business_name": "Vera.AI",
"website": "https://vera.symph.ai",
"agent_mode": "needs_approval"
}/v1/projects/{project_id}/policySet needs_approval or autonomous mode.
Examples
curl
curl -X PATCH "https://api-vera.symph.ai/v1/projects/proj_01hx6x9v2r/policy" \
-H "Authorization: Bearer vwk_live_..." \
-H "Content-Type: application/json" \
-d '{
"agent_mode": "autonomous"
}'fetch
const response = await fetch("https://api-vera.symph.ai/v1/projects/proj_01hx6x9v2r/policy", {
method: "PATCH",
headers: {
Authorization: "Bearer vwk_live_...",
"Content-Type": "application/json"
},
body: JSON.stringify({
"agent_mode": "autonomous"
})
});
const data = await response.json();response
{
"id": "proj_01hx6x9v2r",
"name": "First outbound campaign",
"agent_mode": "autonomous"
}/v1/projects/{project_id}/readinessCheck whether Vera has the inputs needed to operate.
Examples
curl
curl -X GET "https://api-vera.symph.ai/v1/projects/proj_01hx6x9v2r/readiness" \
-H "Authorization: Bearer vwk_live_..."fetch
const response = await fetch("https://api-vera.symph.ai/v1/projects/proj_01hx6x9v2r/readiness", {
method: "GET",
headers: {
Authorization: "Bearer vwk_live_..."
}
});
const data = await response.json();response
{
"ready": true,
"blockers": [],
"warnings": [
"Approve at least one recent prospect research record before draft generation."
]
}API keys
/v1/api-keysList API keys for the authenticated user.
Examples
curl
curl -X GET "https://api-vera.symph.ai/v1/api-keys" \
-H "Authorization: Bearer vwk_live_..."fetch
const response = await fetch("https://api-vera.symph.ai/v1/api-keys", {
method: "GET",
headers: {
Authorization: "Bearer vwk_live_..."
}
});
const data = await response.json();response
[
{
"id": "key_01hx7g2n8w",
"name": "AI agent",
"key_prefix": "vwk",
"key_last4": "9k2p",
"scopes": [
"api"
],
"created_at": "2026-05-19T08:00:00Z",
"revoked_at": null
}
]/v1/api-keysCreate an API key. The secret is returned once.
Examples
curl
curl -X POST "https://api-vera.symph.ai/v1/api-keys" \
-H "Authorization: Bearer vwk_live_..." \
-H "Content-Type: application/json" \
-d '{
"name": "AI agent",
"scopes": [
"api"
]
}'fetch
const response = await fetch("https://api-vera.symph.ai/v1/api-keys", {
method: "POST",
headers: {
Authorization: "Bearer vwk_live_...",
"Content-Type": "application/json"
},
body: JSON.stringify({
"name": "AI agent",
"scopes": [
"api"
]
})
});
const data = await response.json();response
{
"api_key": {
"id": "key_01hx7g2n8w",
"name": "AI agent",
"key_prefix": "vwk",
"key_last4": "9k2p",
"scopes": [
"api"
]
},
"secret": "vwk_live_..."
}/v1/api-keys/{api_key_id}:revokeDisable an API key without removing its audit row.
Examples
curl
curl -X POST "https://api-vera.symph.ai/v1/api-keys/key_01hx7g2n8w:revoke" \
-H "Authorization: Bearer vwk_live_..."fetch
const response = await fetch("https://api-vera.symph.ai/v1/api-keys/key_01hx7g2n8w:revoke", {
method: "POST",
headers: {
Authorization: "Bearer vwk_live_..."
}
});
const data = await response.json();response
{
"ok": true,
"message": "API key revoked."
}/v1/api-keys/{api_key_id}Delete an API key record from settings.
Examples
curl
curl -X DELETE "https://api-vera.symph.ai/v1/api-keys/key_01hx7g2n8w" \
-H "Authorization: Bearer vwk_live_..."fetch
const response = await fetch("https://api-vera.symph.ai/v1/api-keys/key_01hx7g2n8w", {
method: "DELETE",
headers: {
Authorization: "Bearer vwk_live_..."
}
});
const data = await response.json();response
{
"ok": true,
"message": "API key deleted."
}Knowledge
/v1/projects/{project_id}/contextAdd notes, URLs, and files.
Examples
curl
curl -X POST "https://api-vera.symph.ai/v1/projects/proj_01hx6x9v2r/context" \
-H "Authorization: Bearer vwk_live_..." \
-F "notes=Vera.AI turns context into outbound motion." \
-F "urls=https://vera.symph.ai" \
-F "files=@./product-notes.pdf"fetch
const form = new FormData();
form.append("notes", "Vera.AI turns context into outbound motion.");
form.append("urls", "https://vera.symph.ai");
form.append("files", fileInput.files[0]);
const response = await fetch("https://api-vera.symph.ai/v1/projects/proj_01hx6x9v2r/context", {
method: "POST",
headers: {
Authorization: "Bearer vwk_live_..."
},
body: form
});
const data = await response.json();response
{
"ok": true,
"message": "Context ingested.",
"sources_created": 3,
"claims_created": 5
}/v1/projects/{project_id}/knowledgeRead claims, coverage, sources, and evidence.
Examples
curl
curl -X GET "https://api-vera.symph.ai/v1/projects/proj_01hx6x9v2r/knowledge" \
-H "Authorization: Bearer vwk_live_..."fetch
const response = await fetch("https://api-vera.symph.ai/v1/projects/proj_01hx6x9v2r/knowledge", {
method: "GET",
headers: {
Authorization: "Bearer vwk_live_..."
}
});
const data = await response.json();response
{
"project_id": "proj_01hx6x9v2r",
"coverage": {
"offer": "present",
"icp": "partial",
"proof": "missing"
},
"claims": [
{
"id": "claim_01hx81mk2q",
"text": "Vera.AI turns business context into grounded outbound workflows.",
"status": "approved",
"source_type": "uploaded_context",
"trust_level": "user_confirmed"
}
],
"sources": [],
"evidence": []
}/v1/projects/{project_id}/knowledge-claimsCreate a manual claim.
Examples
curl
curl -X POST "https://api-vera.symph.ai/v1/projects/proj_01hx6x9v2r/knowledge-claims" \
-H "Authorization: Bearer vwk_live_..." \
-H "Content-Type: application/json" \
-d '{
"text": "Vera.AI supports autonomous no-reply follow-up scheduling.",
"source_type": "manual",
"status": "approved"
}'fetch
const response = await fetch("https://api-vera.symph.ai/v1/projects/proj_01hx6x9v2r/knowledge-claims", {
method: "POST",
headers: {
Authorization: "Bearer vwk_live_...",
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Vera.AI supports autonomous no-reply follow-up scheduling.",
"source_type": "manual",
"status": "approved"
})
});
const data = await response.json();response
{
"id": "claim_01hx81mk2q",
"text": "Vera.AI supports autonomous no-reply follow-up scheduling.",
"status": "approved"
}/v1/knowledge-claims/{claim_id}Edit claim text, trust, evidence, or status.
Examples
curl
curl -X PATCH "https://api-vera.symph.ai/v1/knowledge-claims/claim_01hx81mk2q" \
-H "Authorization: Bearer vwk_live_..." \
-H "Content-Type: application/json" \
-d '{
"status": "approved",
"trust_level": "high"
}'fetch
const response = await fetch("https://api-vera.symph.ai/v1/knowledge-claims/claim_01hx81mk2q", {
method: "PATCH",
headers: {
Authorization: "Bearer vwk_live_...",
"Content-Type": "application/json"
},
body: JSON.stringify({
"status": "approved",
"trust_level": "high"
})
});
const data = await response.json();response
{
"id": "claim_01hx81mk2q",
"text": "Vera.AI supports autonomous no-reply follow-up scheduling.",
"trust_level": "high",
"status": "approved"
}/v1/knowledge-claims/{claim_id}Remove a claim that the agent should not reuse.
Examples
curl
curl -X DELETE "https://api-vera.symph.ai/v1/knowledge-claims/claim_01hx81mk2q" \
-H "Authorization: Bearer vwk_live_..."fetch
const response = await fetch("https://api-vera.symph.ai/v1/knowledge-claims/claim_01hx81mk2q", {
method: "DELETE",
headers: {
Authorization: "Bearer vwk_live_..."
}
});
const data = await response.json();response
{
"ok": true,
"message": "Knowledge claim deleted."
}Runs and review
/v1/projects/{project_id}/runsQueue one public journey operation.
Examples
curl
curl -X POST "https://api-vera.symph.ai/v1/projects/proj_01hx6x9v2r/runs" \
-H "Authorization: Bearer vwk_live_..." \
-H "Content-Type: application/json" \
-d '{
"operation": "search_prospects",
"inputs": {
"limit": 10,
"refresh": false
}
}'fetch
const response = await fetch("https://api-vera.symph.ai/v1/projects/proj_01hx6x9v2r/runs", {
method: "POST",
headers: {
Authorization: "Bearer vwk_live_...",
"Content-Type": "application/json"
},
body: JSON.stringify({
"operation": "search_prospects",
"inputs": {
"limit": 10,
"refresh": false
}
})
});
const data = await response.json();response
{
"id": "run_01hx86cmfe",
"operation": "search_prospects",
"status": "queued",
"project_id": "proj_01hx6x9v2r"
}/v1/runs/{run_id}Read one run status and result.
Examples
curl
curl -X GET "https://api-vera.symph.ai/v1/runs/run_01hx86cmfe" \
-H "Authorization: Bearer vwk_live_..."fetch
const response = await fetch("https://api-vera.symph.ai/v1/runs/run_01hx86cmfe", {
method: "GET",
headers: {
Authorization: "Bearer vwk_live_..."
}
});
const data = await response.json();response
{
"id": "run_01hx86cmfe",
"operation": "search_prospects",
"status": "succeeded",
"result": {
"prospects_created": 4
}
}/v1/projects/{project_id}/runsList task runs for the project.
Examples
curl
curl -X GET "https://api-vera.symph.ai/v1/projects/proj_01hx6x9v2r/runs" \
-H "Authorization: Bearer vwk_live_..."fetch
const response = await fetch("https://api-vera.symph.ai/v1/projects/proj_01hx6x9v2r/runs", {
method: "GET",
headers: {
Authorization: "Bearer vwk_live_..."
}
});
const data = await response.json();response
[
{
"id": "run_01hx86cmfe",
"operation": "search_prospects",
"status": "succeeded",
"created_at": "2026-05-19T08:10:00Z"
}
]/v1/projects/{project_id}/next-actionsList open agent or human actions.
Examples
curl
curl -X GET "https://api-vera.symph.ai/v1/projects/proj_01hx6x9v2r/next-actions" \
-H "Authorization: Bearer vwk_live_..."fetch
const response = await fetch("https://api-vera.symph.ai/v1/projects/proj_01hx6x9v2r/next-actions", {
method: "GET",
headers: {
Authorization: "Bearer vwk_live_..."
}
});
const data = await response.json();response
[
{
"id": "act_01hx8jr3n5",
"action_type": "review_drafts",
"title": "Review generated drafts",
"status": "open",
"priority": "high"
}
]/v1/projects/{project_id}/review-decisionsApprove, skip, retry, or request changes for review items.
Examples
curl
curl -X POST "https://api-vera.symph.ai/v1/projects/proj_01hx6x9v2r/review-decisions" \
-H "Authorization: Bearer vwk_live_..." \
-H "Content-Type: application/json" \
-d '{
"target_type": "draft",
"target_id": "draft_01hx8cb9ja",
"decision": "approve",
"note": "Looks good."
}'fetch
const response = await fetch("https://api-vera.symph.ai/v1/projects/proj_01hx6x9v2r/review-decisions", {
method: "POST",
headers: {
Authorization: "Bearer vwk_live_...",
"Content-Type": "application/json"
},
body: JSON.stringify({
"target_type": "draft",
"target_id": "draft_01hx8cb9ja",
"decision": "approve",
"note": "Looks good."
})
});
const data = await response.json();response
{
"target_type": "draft",
"target_id": "draft_01hx8cb9ja",
"review_status": "approved",
"message": "Draft approved. It is ready for an explicit send action.",
"next_action": {
"action_type": "send_first_draft",
"status": "open"
}
}/v1/projects/{project_id}/agent:continueAdvance the next safe autonomous or preparation step.
Examples
curl
curl -X POST "https://api-vera.symph.ai/v1/projects/proj_01hx6x9v2r/agent:continue" \
-H "Authorization: Bearer vwk_live_..."fetch
const response = await fetch("https://api-vera.symph.ai/v1/projects/proj_01hx6x9v2r/agent:continue", {
method: "POST",
headers: {
Authorization: "Bearer vwk_live_..."
}
});
const data = await response.json();response
{
"ok": true,
"queued_count": 1,
"message": "Queued 1 preparation task.",
"runs": [
{
"id": "run_01hx8a2r9f",
"operation": "generate_drafts",
"status": "queued"
}
],
"blockers": []
}Prospects and strategy
/v1/projects/{project_id}/prospectsList prospects.
Examples
curl
curl -X GET "https://api-vera.symph.ai/v1/projects/proj_01hx6x9v2r/prospects" \
-H "Authorization: Bearer vwk_live_..."fetch
const response = await fetch("https://api-vera.symph.ai/v1/projects/proj_01hx6x9v2r/prospects", {
method: "GET",
headers: {
Authorization: "Bearer vwk_live_..."
}
});
const data = await response.json();response
[
{
"id": "prospect_01hx88t4qw",
"company_name": "Founder-led sales team",
"domain": "example.com",
"fit_score": 84,
"status": "needs_review"
}
]/v1/projects/{project_id}/prospectsCreate a prospect manually.
Examples
curl
curl -X POST "https://api-vera.symph.ai/v1/projects/proj_01hx6x9v2r/prospects" \
-H "Authorization: Bearer vwk_live_..." \
-H "Content-Type: application/json" \
-d '{
"company_name": "Founder-led sales team",
"domain": "example.com",
"contact_email": "[email protected]",
"status": "needs_review"
}'fetch
const response = await fetch("https://api-vera.symph.ai/v1/projects/proj_01hx6x9v2r/prospects", {
method: "POST",
headers: {
Authorization: "Bearer vwk_live_...",
"Content-Type": "application/json"
},
body: JSON.stringify({
"company_name": "Founder-led sales team",
"domain": "example.com",
"contact_email": "[email protected]",
"status": "needs_review"
})
});
const data = await response.json();response
{
"id": "prospect_01hx88t4qw",
"company_name": "Founder-led sales team",
"domain": "example.com",
"contact_email": "[email protected]",
"status": "needs_review"
}/v1/prospects/{prospect_id}Update prospect status, domain, contact email, or latest signal.
Examples
curl
curl -X PATCH "https://api-vera.symph.ai/v1/prospects/prospect_01hx88t4qw" \
-H "Authorization: Bearer vwk_live_..." \
-H "Content-Type: application/json" \
-d '{
"contact_email": "[email protected]",
"status": "cold"
}'fetch
const response = await fetch("https://api-vera.symph.ai/v1/prospects/prospect_01hx88t4qw", {
method: "PATCH",
headers: {
Authorization: "Bearer vwk_live_...",
"Content-Type": "application/json"
},
body: JSON.stringify({
"contact_email": "[email protected]",
"status": "cold"
})
});
const data = await response.json();response
{
"id": "prospect_01hx88t4qw",
"contact_email": "[email protected]",
"status": "cold"
}/v1/projects/{project_id}/prospect-researchList research records created for prospects.
Examples
curl
curl -X GET "https://api-vera.symph.ai/v1/projects/proj_01hx6x9v2r/prospect-research" \
-H "Authorization: Bearer vwk_live_..."fetch
const response = await fetch("https://api-vera.symph.ai/v1/projects/proj_01hx6x9v2r/prospect-research", {
method: "GET",
headers: {
Authorization: "Bearer vwk_live_..."
}
});
const data = await response.json();response
[
{
"id": "research_01hx8ax7ck",
"prospect_id": "prospect_01hx88t4qw",
"review_status": "needs_review",
"fit_score": 82,
"caveats": [
"Confirm contact role before sending."
]
}
]/v1/projects/{project_id}/strategiesList reviewable outreach strategies.
Examples
curl
curl -X GET "https://api-vera.symph.ai/v1/projects/proj_01hx6x9v2r/strategies" \
-H "Authorization: Bearer vwk_live_..."fetch
const response = await fetch("https://api-vera.symph.ai/v1/projects/proj_01hx6x9v2r/strategies", {
method: "GET",
headers: {
Authorization: "Bearer vwk_live_..."
}
});
const data = await response.json();response
[
{
"id": "strategy_01hx8b02a1",
"prospect_id": "prospect_01hx88t4qw",
"review_status": "needs_review",
"angle": "Operational research relief for a lean sales team",
"risk_level": "low"
}
]Drafts and sends
/v1/projects/{project_id}/draftsList first-touch, reply, and follow-up drafts.
Examples
curl
curl -X GET "https://api-vera.symph.ai/v1/projects/proj_01hx6x9v2r/drafts" \
-H "Authorization: Bearer vwk_live_..."fetch
const response = await fetch("https://api-vera.symph.ai/v1/projects/proj_01hx6x9v2r/drafts", {
method: "GET",
headers: {
Authorization: "Bearer vwk_live_..."
}
});
const data = await response.json();response
[
{
"id": "draft_01hx8cb9ja",
"prospect_id": "prospect_01hx88t4qw",
"subject": "Outbound workflow for your team",
"review_status": "needs_review",
"lifecycle_status": "drafted_not_sendable"
}
]/v1/projects/{project_id}/drafts/{draft_id}Update subject and rich body HTML before review.
Examples
curl
curl -X PATCH "https://api-vera.symph.ai/v1/projects/proj_01hx6x9v2r/drafts/draft_01hx8cb9ja" \
-H "Authorization: Bearer vwk_live_..." \
-H "Content-Type: application/json" \
-d '{
"subject": "Outbound workflow for your team",
"body_html": "<p>Hi team,</p><p>I noticed your outbound process depends on manual research.</p>"
}'fetch
const response = await fetch("https://api-vera.symph.ai/v1/projects/proj_01hx6x9v2r/drafts/draft_01hx8cb9ja", {
method: "PATCH",
headers: {
Authorization: "Bearer vwk_live_...",
"Content-Type": "application/json"
},
body: JSON.stringify({
"subject": "Outbound workflow for your team",
"body_html": "<p>Hi team,</p><p>I noticed your outbound process depends on manual research.</p>"
})
});
const data = await response.json();response
{
"id": "draft_01hx8cb9ja",
"subject": "Outbound workflow for your team",
"review_status": "needs_review",
"lifecycle_status": "drafted_not_sendable",
"body_html": "<p>Hi team,</p><p>I noticed your outbound process depends on manual research.</p>"
}/v1/projects/{project_id}/drafts/{draft_id}:sendSend an approved draft through the selected Gmail sender.
Examples
curl
curl -X POST "https://api-vera.symph.ai/v1/projects/proj_01hx6x9v2r/drafts/draft_01hx8cb9ja:send" \
-H "Authorization: Bearer vwk_live_..." \
-H "Content-Type: application/json" \
-d '{
"confirm_reviewed": true,
"dry_run": false
}'fetch
const response = await fetch("https://api-vera.symph.ai/v1/projects/proj_01hx6x9v2r/drafts/draft_01hx8cb9ja:send", {
method: "POST",
headers: {
Authorization: "Bearer vwk_live_...",
"Content-Type": "application/json"
},
body: JSON.stringify({
"confirm_reviewed": true,
"dry_run": false
})
});
const data = await response.json();response
{
"ok": true,
"dry_run": false,
"draft": {
"id": "draft_01hx8cb9ja",
"lifecycle_status": "sent"
},
"to_email": "[email protected]",
"from_email": "[email protected]",
"gmail_message_id": "18f8f23a9c4d2f11",
"gmail_thread_id": "18f8f23a9c4d2f11"
}Replies, inbound, and follow-ups
/v1/projects/{project_id}/inbox:syncSync Gmail replies and update reply metadata.
Examples
curl
curl -X POST "https://api-vera.symph.ai/v1/projects/proj_01hx6x9v2r/inbox:sync" \
-H "Authorization: Bearer vwk_live_..."fetch
const response = await fetch("https://api-vera.symph.ai/v1/projects/proj_01hx6x9v2r/inbox:sync", {
method: "POST",
headers: {
Authorization: "Bearer vwk_live_..."
}
});
const data = await response.json();response
{
"ok": true,
"provider": "gmail",
"synced_threads": 3,
"synced_messages": 3,
"new_replies": 1,
"review_actions": 1,
"reply_draft_runs": 1,
"paused_follow_ups": 1,
"skipped_messages": 0
}/v1/projects/{project_id}/email-messagesList synced email messages.
Examples
curl
curl -X GET "https://api-vera.symph.ai/v1/projects/proj_01hx6x9v2r/email-messages" \
-H "Authorization: Bearer vwk_live_..."fetch
const response = await fetch("https://api-vera.symph.ai/v1/projects/proj_01hx6x9v2r/email-messages", {
method: "GET",
headers: {
Authorization: "Bearer vwk_live_..."
}
});
const data = await response.json();response
[
{
"id": "msg_01hx8f5x2q",
"prospect_id": "prospect_01hx88t4qw",
"direction": "inbound",
"analysis": {
"intent": "positive",
"asks_for_pricing": true
}
}
]/v1/projects/{project_id}/email-messages/{message_id}:takeoverPause automation for a reply that a human will handle.
Examples
curl
curl -X POST "https://api-vera.symph.ai/v1/projects/proj_01hx6x9v2r/email-messages/msg_01hx8f5x2q:takeover" \
-H "Authorization: Bearer vwk_live_..."fetch
const response = await fetch("https://api-vera.symph.ai/v1/projects/proj_01hx6x9v2r/email-messages/msg_01hx8f5x2q:takeover", {
method: "POST",
headers: {
Authorization: "Bearer vwk_live_..."
}
});
const data = await response.json();response
{
"ok": true,
"message": "Human takeover recorded.",
"skipped_reply_drafts": 1,
"paused_follow_ups": 1
}/v1/projects/{project_id}/inbound-candidatesList classified inbound messages that may become prospects.
Examples
curl
curl -X GET "https://api-vera.symph.ai/v1/projects/proj_01hx6x9v2r/inbound-candidates" \
-H "Authorization: Bearer vwk_live_..."fetch
const response = await fetch("https://api-vera.symph.ai/v1/projects/proj_01hx6x9v2r/inbound-candidates", {
method: "GET",
headers: {
Authorization: "Bearer vwk_live_..."
}
});
const data = await response.json();response
[
{
"id": "candidate_01hx8n9jfc",
"status": "needs_review",
"message_type": "buyer_interest",
"recommended_action": "accept"
}
]/v1/projects/{project_id}/inbound-candidates:syncClassify recent inbound messages as potential prospects.
Examples
curl
curl -X POST "https://api-vera.symph.ai/v1/projects/proj_01hx6x9v2r/inbound-candidates:sync" \
-H "Authorization: Bearer vwk_live_..."fetch
const response = await fetch("https://api-vera.symph.ai/v1/projects/proj_01hx6x9v2r/inbound-candidates:sync", {
method: "POST",
headers: {
Authorization: "Bearer vwk_live_..."
}
});
const data = await response.json();response
{
"ok": true,
"provider": "gmail",
"scanned_messages": 25,
"created_candidates": 2,
"updated_candidates": 1,
"ignored_candidates": 22,
"skipped_messages": 0
}/v1/projects/{project_id}/inbound-candidates/{candidate_id}:acceptConvert an inbound candidate into a prospect and reply draft.
Examples
curl
curl -X POST "https://api-vera.symph.ai/v1/projects/proj_01hx6x9v2r/inbound-candidates/candidate_01hx8n9jfc:accept" \
-H "Authorization: Bearer vwk_live_..."fetch
const response = await fetch("https://api-vera.symph.ai/v1/projects/proj_01hx6x9v2r/inbound-candidates/candidate_01hx8n9jfc:accept", {
method: "POST",
headers: {
Authorization: "Bearer vwk_live_..."
}
});
const data = await response.json();response
{
"ok": true,
"message": "Inbound candidate accepted. A prospect was linked and a reply draft was queued for review.",
"reply_draft_run": {
"operation": "generate_reply_draft",
"status": "queued"
}
}/v1/projects/{project_id}/follow-up-schedulesList scheduled no-reply follow-ups.
Examples
curl
curl -X GET "https://api-vera.symph.ai/v1/projects/proj_01hx6x9v2r/follow-up-schedules" \
-H "Authorization: Bearer vwk_live_..."fetch
const response = await fetch("https://api-vera.symph.ai/v1/projects/proj_01hx6x9v2r/follow-up-schedules", {
method: "GET",
headers: {
Authorization: "Bearer vwk_live_..."
}
});
const data = await response.json();response
[
{
"id": "fus_01hx8hbk3n",
"prospect_id": "prospect_01hx88t4qw",
"status": "scheduled",
"due_at": "2026-05-22T09:00:00Z"
}
]/v1/projects/{project_id}/follow-ups:tickProcess due follow-up work.
Examples
curl
curl -X POST "https://api-vera.symph.ai/v1/projects/proj_01hx6x9v2r/follow-ups:tick" \
-H "Authorization: Bearer vwk_live_..."fetch
const response = await fetch("https://api-vera.symph.ai/v1/projects/proj_01hx6x9v2r/follow-ups:tick", {
method: "POST",
headers: {
Authorization: "Bearer vwk_live_..."
}
});
const data = await response.json();response
{
"ok": true,
"queued_count": 1,
"message": "Queued 1 follow-up draft run.",
"runs": [
{
"id": "run_01hx8jpr7v",
"operation": "generate_follow_up_draft",
"status": "queued"
}
]
}