Quickstart
This walks you from zero to a generated handoff in three steps. You will need a Flow Relay account with at least one project and one connected integration.
1. Create an API key
Open Settings → API Keys in the dashboard and create a key. Keys are prefixed with fr_ and shown once at creation – copy it immediately and store it in a secret manager. You can revoke and re-create keys at any time.
2. List your projects
Every generation is scoped to a project, so grab a project_id first.
curl "https://www.flowrelay.it/api/v1/projects" \
-H "Authorization: Bearer fr_your_api_key"The response includes your tenant context and an array of accessible projects:
{
"account_type": "business",
"organizations": [{ "id": "org_3f2a", "name": "Acme", "slug": "acme", "role": "admin" }],
"projects": [
{ "id": "proj_8c1d", "name": "Payments", "project_type": "organization", "access_role": "admin" }
]
}3. Generate a handoff
Handoff generation is asynchronous. You POST a request, receive a jobId, then poll until the job completes.
curl "https://www.flowrelay.it/api/v1/handoffs" \
-H "Authorization: Bearer fr_your_api_key" \
-X POST \
-H "Content-Type: application/json" \
-d '{ "project_id": "proj_8c1d" }'{ "jobId": "job_9f3c", "status": "pending" }Poll the job until status is completed:
curl "https://www.flowrelay.it/api/v1/jobs/job_9f3c" \
-H "Authorization: Bearer fr_your_api_key"{
"job": { "id": "job_9f3c", "status": "completed", "result_kind": "handoff", "result_id": "ho_1a2b" },
"result": { "id": "ho_1a2b", "title": "Checkout refactor handoff", "summary": "..." }
}That is the whole loop: enqueue → poll → read the artifact. The same pattern powers insights.
Next steps
- Read Authentication for key handling and rate limits.
- Read Async jobs for a robust polling loop in JavaScript and Python.
- Browse the full API reference.