You need a Feather account before you begin. All requests in this guide target
the sandbox environment at
https://api-sandbox.featherhq.com. Contact Feather
to provision production credentials.1
Create an API key
Every request to the Feather API must include a valid API key. Create one now by posting to For the rest of this guide, replace
/v1/identity/api-keys.Create API Key
Response (201 Created)
<your-key> in every command with the plain_text_key value you just copied.2
Verify your identity
Confirm your key works and check which organization and role it belongs to by calling
GET /v1/identity/whoami.Verify Identity
Response (200 OK)
3
Create an assistant
An assistant is the AI actor behind your conversations. Create one by posting a name and system prompt. Feather provisions the assistant, an initial revision, and a bound workflow — and returns all three.New assistants start inactive (
Create Assistant
Response (201 Created)
active_revision_id is null). Save agent.id and agent_revision.id for the next step.4
Activate the revision
Make the assistant live by activating its initial revision. This points the assistant’s The assistant is now active. There is no separate “publish” step — activating a revision is what makes it live.
active_revision_id at that revision so it can serve conversations.Activate Revision
5
Start a conversation
Open a conversation with Copy the conversation
POST /v1/conversations. Reference your assistant with assistant_id, and identify the end user with your own stable identifier via org_external_end_user_id — Feather creates the end user for you if it doesn’t exist yet.Start Conversation
Response (201 Created)
id — you’ll need it to send messages. API-key callers always create chat, live conversations; passing session_type: test or simulation from an API key returns 422 (those run only from the dashboard).6
Send a message
Send the first user message by posting a turn. Feather runs it through your assistant and returns the reply along with the session status.You’ve run your first end-to-end Feather conversation. Branch on
Send a Message
Response (201 Created)
session_status: while it’s active, keep sending turns. If it becomes awaiting_approval or waiting_for_human, poll GET /v1/conversations/{id}/messages until it returns to active or closes.Next steps
Now that you have a working assistant and conversation, explore what else Feather can do.Build a fuller assistant
Attach a knowledge base and custom tools so your assistant answers grounded in your own data.
Ingest your docs
Upload files, crawl URLs, or sync from Notion and Google Drive to populate a knowledge base.
Stream responses
Use the streaming turns endpoint to deliver low-latency, token-by-token replies.
Evaluate quality
Run simulation suites and model-judge evaluators to measure and improve performance.