REST endpoints to generate flows, edit blocks, swap themes, and pull previews. Build the full agentic editing loop without leaving the API.
Sign in to Flow2 to get your API token and start creating presentations programmatically.
Create a presentation with a single API call:
curl -X POST https://flow2.co/api/create-flow \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"content": "Benefits of remote work for modern teams",
"slide_count": 5
}'
Get an API key with just an email. No account required, no verification.
| Parameter | Type | Description |
|---|---|---|
| email required | string | Your email address |
{
"message": "You're in! Here's your API key.",
"api_key": "fvapi_abc123...",
"credits": 0,
"status": "free_tier",
"next_steps": {
"1": "Try creating a flow: POST /api/create-flow",
"2": "You'll need credits - grab some at /pricing"
}
}
Note: New signups start with 0 credits. Purchase credits at /pricing to create flows.
Start async AI presentation generation. Returns a job_id to poll for status.
| Parameter | Type | Description |
|---|---|---|
| content required | string | The topic or content for your presentation |
| title optional | string | Custom title (auto-generated if not provided) |
| slide_count optional | integer | Number of slides (1-20, default: 5) |
| tone optional | string | professional, casual, formal, friendly, authoritative |
| audience optional | string | Target audience (e.g., "investors", "students") |
| goal optional | string | Inform/Educate, Persuade/Sell, Inspire/Motivate, Report/Update |
| key_points optional | string | Key points to emphasize |
| generate_images optional | boolean | Generate AI images (default: true) |
{
"success": true,
"job_id": "FuhqTD270ZwzXdoL",
"status": "pending",
"poll_url": "/api/job-status/FuhqTD270ZwzXdoL"
}
Poll for job completion. Returns flow URL when complete.
{
"job_id": "FuhqTD270ZwzXdoL",
"status": "complete",
"flow_id": "53f5",
"url": "/m/53f5",
"edit_url": "/flow/53f5/edit",
"title": "Team Collaboration SaaS Platform",
"images_generated": 3
}
Check your credit balance.
{
"success": true,
"balance": 487,
"monthly_allowance": 500,
"tier": "pro"
}
List your recent API jobs.
Agents can now READ, EDIT, and PREVIEW flows. Not just create them.
Generate a flow. Read its visual preview. Refine specific blocks. Re-render. Ship.
The full agentic editing loop is live as of April 2026, with mobile-first
R2-cached previews and a structured update contract.
Call GET /api/blocks/schema. The response is the docs (machine-readable, no auth required).
Self-describing block + endpoint catalogue. Public, no auth. Returns every block kind, mutation verb, and an example payload for each. Make this your first call. Agents can bootstrap from the response without docs in their prompt.
Full flow JSON + per-screen preview URLs. Returns screen_count, preview_urls[], and content.presentation.screens[].blocks[] with their addressable ids.
One screen + its preview URL. Use when you only need to inspect or edit a single screen.
Visual preview image URL for screen n. Lazy-rendered + R2-cached, ~50ms after first hit. Pass ?redirect=1 to 302 straight to the image. Cache-buster auto-rotates on edit.
Flow-level: change theme or title. Body: {"theme":"neon-pulse"} or {"title":"..."}.
Edit one block. Body's type field selects the operation: text, image, stat, chart, timeline, cta-button, bullet-list, video, team, comparison-table, comparison-slider, set-background, set-video-background, remove-background. See /api/blocks/schema for payload shapes.
Insert a block. Body: {"blockContent": {"id": "...", "type": "...", ...}}. Send your own id in blockContent if you want to address the block later.
Delete a block.
Insert a screen. Body: {"position": 3, "screenContent": {"screenType": "content", "blocks": [...]}}. Omit position to append.
Delete a screen.
Sign in to mint a token at /developers. Tokens read, write, and edit any flow you own. All editing endpoints are free (0 credits) once you've paid the 10-credit cost to mint the flow.
POST /api/create-flow with a topic or detailed prompt. AI streams a 5–15 screen presentation in 30–90 seconds.
GET /api/flows/:id returns the structure; GET /api/flows/:id/preview/:n returns the visual.
ids to PATCH text, swap images, replace charts, reskin the theme. Add screens, remove blocks. As many edits as needed. They're free.
https://flow2.co/m/:id. Mobile-optimized, instant share, embed-friendly.
Create a presentation and wait for completion:
# Start generation
JOB=$(curl -s -X POST https://flow2.co/api/create-flow \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"content": "Q3 Sales Report", "slide_count": 6, "tone": "professional"}')
JOB_ID=$(echo $JOB | jq -r '.job_id')
# Poll until complete
while true; do
STATUS=$(curl -s "https://flow2.co/api/job-status/$JOB_ID")
STATE=$(echo $STATUS | jq -r '.status')
if [ "$STATE" = "complete" ]; then
echo "Flow created: https://flow2.co$(echo $STATUS | jq -r '.url')"
break
elif [ "$STATE" = "failed" ]; then
echo "Error: $(echo $STATUS | jq -r '.error')"
break
fi
sleep 2
done
API access requires a Premium or Pro subscription. PRO users receive 500 credits/month.
Each presentation generation costs 5 credits. Images cost 2 credits each. AI refinements are free. Check your balance with GET /api/credits.
Every AI agent can generate text. Most can generate images. But very few can generate interactive experiences: structured, navigable, visual content that an audience can actually engage with.
Flow2 bridges that gap. Your agent describes what it wants. The API returns a shareable link to a beautiful, mobile-optimized interactive flow. No templates. No manual work.
Here's how an AI agent might use Flow2 in a sales pipeline:
POST /api/create-flow with personalized content
Connect Claude (or any MCP-compatible client) directly to your Flow2 account. 14 tools spanning generation, reading, and editing — create a flow from a prompt, swap themes, edit blocks one at a time, all from chat.
https://mcp.flow2.co/
🔧 API is in active development
We're building the API alongside the product. If you're working on an agentic workflow and need a specific endpoint, reach out and we'll prioritize what developers actually need.