Application API
The v1 API
The /api/v1 routes are the ones the FounderReply app itself calls. They authenticate with your logged-in session rather than an API key, and every workspace-scoped route checks membership before it reads a row. For headless automation, drive the MCP endpoint instead.
Routes
Every integration-facing v1 route
67 routes across 11 areas, grouped the way the tool registry is on /developers/mcp. Prefer to send real requests from the browser? Try the interactive reference.
| Method | Route | What it does |
|---|---|---|
| Workspaces & accounts | ||
GETPOST | /api/v1/workspaces | List the workspaces you belong to, or create one. |
GET | /api/v1/oauth/{platform}/start | Begin the OAuth connect flow for a platform account. |
GET | /api/v1/accounts?workspace_id= | The workspace’s connected brand accounts. Tokens are never returned. |
GETDELETE | /api/v1/accounts/{id} | Inspect or disconnect one account. |
| Persona & content | ||
GETPOST | /api/v1/personas | Read or generate the brand persona / content strategy. |
POST | /api/v1/personas/bootstrap | Draft the focus brief from a connected account’s own posts. |
POST | /api/v1/strategy/generate | Generate a content plan (and planned scheduled posts) from the persisted persona. |
GET | /api/v1/scheduled-posts | The planned content calendar. |
PATCH | /api/v1/scheduled-posts/{id} | Edit or re-status one planned post. |
POST | /api/v1/publish | Publish approved content to a connected account, or queue a brief for drafting. |
POST | /api/v1/draft/stream | Server-sent stream of a drafted reply/post, token by token, for a live-typing compose UI. |
POST | /api/v1/news/plan | Trigger news-driven post planning for a workspace. |
| Approvals & inbox | ||
GET | /api/v1/approvals | The human-in-the-loop queue for social drafts. |
POST | /api/v1/approvals/{id} | Approve, edit, or skip one queued item. |
GET | /api/v1/inbox | Mentions and DMs pulled from the connected accounts. |
| Autonomy & analytics | ||
GETPUT | /api/v1/autonomy | Read or set the per-action autonomy level. Applied as written at decision time. |
GET | /api/v1/analytics/overview | Engagement metrics rolled up by content pillar. |
GET | /api/v1/usage/summary | Credit and usage-counter summary for the workspace’s billing period. |
| Growth | ||
POST | /api/v1/growth/discover | Run opportunity discovery across the connected platforms. |
GET | /api/v1/growth/opportunities | The discovered engagement opportunities. |
POST | /api/v1/growth/opportunities/{id}/act | Act on one — through the approval queue, not around it. |
| Outreach & leads — cold email + voice | ||
GETPOST | /api/v1/leads | List the workspace’s leads, or create one. |
GETPATCH | /api/v1/leads/{id} | One lead’s cross-channel timeline; update status or consent. |
POST | /api/v1/leads/ingest | Ingest a prior conversation (+ optional docs) as JSON into the lead timeline and brain memory. |
GETPOST | /api/v1/sequences | List or create a multi-step, multi-channel outreach sequence. |
POST | /api/v1/sequences/{id}/enroll | Enroll a lead in a sequence. |
POST | /api/v1/outreach/send | Send an outbound email to a lead — verbatim body, or a goal to compose from. |
GET | /api/v1/outreach/approvals | Pending outreach reply drafts — the parallel queue for email/call/sms. |
POST | /api/v1/outreach/approvals/{id} | Approve or reject one drafted reply; approving sends it. |
GETPOST | /api/v1/outreach/aup | Read the current Acceptable Use Policy version, or accept it (owner/admin, recorded with IP + user-agent). |
GETPUT | /api/v1/outreach/policy | Read or set the calling / eligibility / kill-switch compliance policies. |
GETPOST | /api/v1/outreach/status | Kill-switch status, or resume sending after a compliance hold. |
GETPOSTDELETE | /api/v1/suppressions | The workspace’s opt-out list — add or remove a manual suppression. |
POST | /api/v1/calls/start | Place an outbound voice call to a lead. Triggers the LiveKit voice service; the transcript arrives by webhook. |
GETPOST | /api/v1/telephony | This workspace’s phone numbers + caller ID, or provision a new local number (owner/admin). |
| Browser — Twin Browser automation | ||
POST | /api/v1/browser/run | Drive a goal on a page until a success condition holds. |
POST | /api/v1/browser/run/resume | Continue a run that parked on a verification step. |
POST | /api/v1/browser/scrape | Read a page through Twin Browser — structured fields, or markdown. |
POST | /api/v1/browser/screenshot | Capture a page as a base64 image, including logged-in pages. |
GETPOST | /api/v1/browser/connections | Sites this workspace has a browser session for, and connect-flow status. |
POSTDELETE | /api/v1/browser/connections/{id} | Re-poll one connection after a sign-in, or disconnect it. |
GETPOST | /api/v1/browser/credentials | Which stored credential names / IMAP inboxes exist. Never returns values. |
| Bots — Tier-B browser automation | ||
GETPOST | /api/v1/bots/approvals | The Tier-B bot approval queue: comments on strangers’ posts, replies, DMs, publishes. |
POST | /api/v1/bots/connect | Provision a Tier-B bot identity (browser-automation, not an official API). |
GETPOST | /api/v1/bots/verify | Compile and verify a bot skill against a test account before it goes live. |
| SEO | ||
GETPOST | /api/v1/seo/sites | List and register the sites tracked for SEO. |
PATCH | /api/v1/seo/sites/{id} | Configure a site’s blog mount URL and IndexNow key. |
POST | /api/v1/seo/audit | Run the on-page audit sweep and reconcile the issue register. |
GET | /api/v1/seo/overview | Site and page counts, average score, open issues by severity, keyword coverage. |
GET | /api/v1/seo/issues | Open on-page issues across the workspace’s sites. |
GET | /api/v1/seo/pages | Inventoried pages with their latest audit score/status. |
GET | /api/v1/seo/rankings | Latest SERP position per tracked keyword. |
GETPOST | /api/v1/seo/keywords | The tracked keyword portfolio; add or update one. |
POST | /api/v1/seo/content-gaps | Find under-ranking keywords, read who outranks you, and generate articles against the gap. |
POST | /api/v1/seo/gsc/sync | Ingest Google Search Console’s real impressions/clicks/average position. |
POST | /api/v1/seo/review | Run the LLM qualitative review for one inventoried page. |
| Blog | ||
GET | /api/v1/blog | The workspace’s generated blog articles. |
GETPATCH | /api/v1/blog/{id} | One article, or update its status/body. |
POST | /api/v1/blog/generate | Generate a batch of finished articles. |
POST | /api/v1/blog/conquest | Mine a competitor’s surface and generate posts capturing the traffic it ranks for. |
POST | /api/v1/blog/refresh | Redraft published articles in place — same slug, honest updated_at. |
GET | /api/v1/publications | Publications for one account, newest-first. |
POST | /api/v1/images | AI image generation. Pro plan only, metered at 5 credits. |
| Keys & brain | ||
GETPOST | /api/v1/api-keys | List and mint fr_live_ keys. The plaintext is shown exactly once. |
DELETE | /api/v1/api-keys/{id} | Revoke one key. |
POST | /api/v1/brain | Ask the workspace’s brain. Tries a bearer key first, falls back to the session.Also accepts Authorization: Bearer fr_live_… |
GETPOST | /api/v1/brain/proposals | Read and resolve review-gated proposals from that brain.Also accepts Authorization: Bearer fr_live_… |
Auth model
Session by default, bearer where it matters
Two routes are the exception to session-only auth: both /api/v1/brain endpoints try a bearer key first and fall back to the session. Everywhere else, an fr_live_ key belongs at /api/mcp, not here.