Machine-readable resources
Authentication
Every request uses a secret API key as a bearer token:https://builder.flowyte.com/api/v1. The first key is created in the dashboard’s
Developer page; the key alone determines your organization (no other headers needed). Each
endpoint lists the scope the key must hold — request only what you need.
The build sequence
1
Create an agent
POST /agents → capture data.id.2
Give it knowledge
POST /agents/{id}/knowledge/sources, then poll GET …/sources/{id} until
status is indexed (ingestion is asynchronous).3
Add skills
POST /agents/{id}/skills for actions like transfer or booking.4
Publish
POST /agents/{id}/publish — freezes the version that channels will serve.5
Test
POST /agents/{id}/simulate — streams the conversation over SSE.6
Go live
POST /agents/{id}/publishable-keys for the chat widget, or assign a phone number.Rules that prevent the common mistakes
- Test with
POST /agents/{id}/simulate(SSE) — not/chat/completions. - Phone and chat serve the last published version. Edits change the draft. Always publish before going live;
409 no_published_versionmeans “publish first.” - Knowledge ingestion is async — poll a source until
status: indexedbefore relying on it. - Responses are the
ApiResponse<T>envelope ({ success, data }). Lists use cursor pagination — follow the returned cursor, not page numbers. - Errors are RFC 9457 problem+json — branch on the
type/status. - Streaming endpoints are Server-Sent Events: read frames
event:<type>\ndata:<json>, stop onevent: done.