FounderReply

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.

FounderReply v1 API routes with their HTTP methods and purpose
MethodRouteWhat it does
Workspaces & accounts
GETPOST
/api/v1/workspacesList the workspaces you belong to, or create one.
GET
/api/v1/oauth/{platform}/startBegin 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/personasRead or generate the brand persona / content strategy.
POST
/api/v1/personas/bootstrapDraft the focus brief from a connected account’s own posts.
POST
/api/v1/strategy/generateGenerate a content plan (and planned scheduled posts) from the persisted persona.
GET
/api/v1/scheduled-postsThe planned content calendar.
PATCH
/api/v1/scheduled-posts/{id}Edit or re-status one planned post.
POST
/api/v1/publishPublish approved content to a connected account, or queue a brief for drafting.
POST
/api/v1/draft/streamServer-sent stream of a drafted reply/post, token by token, for a live-typing compose UI.
POST
/api/v1/news/planTrigger news-driven post planning for a workspace.
Approvals & inbox
GET
/api/v1/approvalsThe human-in-the-loop queue for social drafts.
POST
/api/v1/approvals/{id}Approve, edit, or skip one queued item.
GET
/api/v1/inboxMentions and DMs pulled from the connected accounts.
Autonomy & analytics
GETPUT
/api/v1/autonomyRead or set the per-action autonomy level. Applied as written at decision time.
GET
/api/v1/analytics/overviewEngagement metrics rolled up by content pillar.
GET
/api/v1/usage/summaryCredit and usage-counter summary for the workspace’s billing period.
Growth
POST
/api/v1/growth/discoverRun opportunity discovery across the connected platforms.
GET
/api/v1/growth/opportunitiesThe discovered engagement opportunities.
POST
/api/v1/growth/opportunities/{id}/actAct on one — through the approval queue, not around it.
Outreach & leads — cold email + voice
GETPOST
/api/v1/leadsList 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/ingestIngest a prior conversation (+ optional docs) as JSON into the lead timeline and brain memory.
GETPOST
/api/v1/sequencesList or create a multi-step, multi-channel outreach sequence.
POST
/api/v1/sequences/{id}/enrollEnroll a lead in a sequence.
POST
/api/v1/outreach/sendSend an outbound email to a lead — verbatim body, or a goal to compose from.
GET
/api/v1/outreach/approvalsPending 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/aupRead the current Acceptable Use Policy version, or accept it (owner/admin, recorded with IP + user-agent).
GETPUT
/api/v1/outreach/policyRead or set the calling / eligibility / kill-switch compliance policies.
GETPOST
/api/v1/outreach/statusKill-switch status, or resume sending after a compliance hold.
GETPOSTDELETE
/api/v1/suppressionsThe workspace’s opt-out list — add or remove a manual suppression.
POST
/api/v1/calls/startPlace an outbound voice call to a lead. Triggers the LiveKit voice service; the transcript arrives by webhook.
GETPOST
/api/v1/telephonyThis workspace’s phone numbers + caller ID, or provision a new local number (owner/admin).
Browser — Twin Browser automation
POST
/api/v1/browser/runDrive a goal on a page until a success condition holds.
POST
/api/v1/browser/run/resumeContinue a run that parked on a verification step.
POST
/api/v1/browser/scrapeRead a page through Twin Browser — structured fields, or markdown.
POST
/api/v1/browser/screenshotCapture a page as a base64 image, including logged-in pages.
GETPOST
/api/v1/browser/connectionsSites 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/credentialsWhich stored credential names / IMAP inboxes exist. Never returns values.
Bots — Tier-B browser automation
GETPOST
/api/v1/bots/approvalsThe Tier-B bot approval queue: comments on strangers’ posts, replies, DMs, publishes.
POST
/api/v1/bots/connectProvision a Tier-B bot identity (browser-automation, not an official API).
GETPOST
/api/v1/bots/verifyCompile and verify a bot skill against a test account before it goes live.
SEO
GETPOST
/api/v1/seo/sitesList 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/auditRun the on-page audit sweep and reconcile the issue register.
GET
/api/v1/seo/overviewSite and page counts, average score, open issues by severity, keyword coverage.
GET
/api/v1/seo/issuesOpen on-page issues across the workspace’s sites.
GET
/api/v1/seo/pagesInventoried pages with their latest audit score/status.
GET
/api/v1/seo/rankingsLatest SERP position per tracked keyword.
GETPOST
/api/v1/seo/keywordsThe tracked keyword portfolio; add or update one.
POST
/api/v1/seo/content-gapsFind under-ranking keywords, read who outranks you, and generate articles against the gap.
POST
/api/v1/seo/gsc/syncIngest Google Search Console’s real impressions/clicks/average position.
POST
/api/v1/seo/reviewRun the LLM qualitative review for one inventoried page.
Blog
GET
/api/v1/blogThe workspace’s generated blog articles.
GETPATCH
/api/v1/blog/{id}One article, or update its status/body.
POST
/api/v1/blog/generateGenerate a batch of finished articles.
POST
/api/v1/blog/conquestMine a competitor’s surface and generate posts capturing the traffic it ranks for.
POST
/api/v1/blog/refreshRedraft published articles in place — same slug, honest updated_at.
GET
/api/v1/publicationsPublications for one account, newest-first.
POST
/api/v1/imagesAI image generation. Pro plan only, metered at 5 credits.
Keys & brain
GETPOST
/api/v1/api-keysList and mint fr_live_ keys. The plaintext is shown exactly once.
DELETE
/api/v1/api-keys/{id}Revoke one key.
POST
/api/v1/brainAsk the workspace’s brain. Tries a bearer key first, falls back to the session.Also accepts Authorization: Bearer fr_live_…
GETPOST
/api/v1/brain/proposalsRead 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.