Endpoints
GET/v1/docs
List published docs (team + public) as JSON summaries.
Parameters
query — Case-insensitive substring over title + summary.collection — Limit to one collection id.type — overview or process.
Returns
{ docs: [{ id, slug, title, type, summary, verified_at, url }] }. url is the markdown endpoint for that doc.
Example
curl -H "Authorization: Bearer ff_live_…" \
"https://flowformance.com/v1/docs?query=refund&type=process"
GET/v1/docs/{slug}
Fetch one published doc as markdown (default) or structured steps.
Parameters
format — md (default) returns raw markdown + frontmatter; steps returns deterministic steps JSON.
Returns
md: text/markdown. steps: { id, title, type, version, verified_at, intro, steps:[{ n, title, body_md, image_url? }], callouts:[{ n, text }] } — a pure parse of the markdown, no AI, so it is stable across calls. Image links (in the markdown and image_url) are temporary signed links that work without your key for 1–2 hours — fetch the doc again for fresh ones.
Example
curl -H "Authorization: Bearer ff_live_…" \
"https://flowformance.com/v1/docs/handle-a-refund?format=steps"
GET/v1/answer
Ask a question and get a cited answer drawn only from published docs.
Parameters
qrequired — The question (max 1000 characters).
Returns
{ answer_md, citations:[{ slug, heading }] }. Fetch each cited slug via /v1/docs/{slug} for the full source. Limited to 20 answers per minute across the workspace’s keys (see Authentication).
Example
curl -H "Authorization: Bearer ff_live_…" \
"https://flowformance.com/v1/answer?q=How%20do%20I%20issue%20a%20refund%3F"
GET/v1/llms.txt
A keyed llms.txt index of the workspace, including team docs.
Returns
text/plain — a curated index linking to each doc’s markdown endpoint.
Example
curl -H "Authorization: Bearer ff_live_…" \
"https://flowformance.com/v1/llms.txt"
GET/v1/captures
List the leads your email-capture forms collected, newest first.
Parameters
since — Only leads captured at or after this time (epoch milliseconds).cursor — The next_cursor from the previous page.limit — Page size, 1–200 (default 50).
Returns
{ captures:[{ id, email, first_name, doc_slug, doc_title, video_title, source, confirmed, created_at }], next_cursor }. next_cursor is null on the last page. created_at is ISO 8601.
Example
curl -H "Authorization: Bearer ff_live_…" \
"https://flowformance.com/v1/captures?limit=50"