Reuily API
Read your forms, their questions and every response from your own code. The API is included on every plan, Free too.
Quick answer
How do I read my forms and responses with the Reuily API?
Create an API key under Settings, Security, API keys, then send it as Authorization: Bearer with each request to https://reuily.com/api/v1. The API reads forms and responses in the key's workspace, on every plan including Free.
How do I get an API key?
- 1
Create a key
Go to Settings, then Security. Under API keys, choose Create key, name it after the app that will use it and pick a workspace. - 2
Copy it once
Reuily shows the key once. Store it in your app's secret settings, never in code a browser loads. - 3
Send it with each request
Add the header Authorization: Bearer followed by your key.
Base URL
https://reuily.com/api/v1Which endpoints are there?
Every endpoint is a GET request under the base URL and returns JSON. Lists come back as data, with page, page_size, total and has_more.
GET /me- The key's workspace, organization and owner. Handy for checking a key works.
GET /forms- Forms in the workspace, most recently updated first. Supports page, page_size and search.
GET /forms/{form_id}- One form with its questions, their IDs, types and answer choices.
GET /forms/{form_id}/responses- Responses to a form. Supports page, page_size, since, until and order.
GET /forms/{form_id}/responses/{response_id}- One response.
Query parameters
page- Page number, starting at 1.
page_size- Items per page, from 1 to 100. The default is 20.
search- Forms only: match form names.
since / until- Responses only: dates like 2026-10-08, in UTC. Both are inclusive.
order- Responses only: newest (the default) or oldest.
What does a request look like?
This reads the latest 50 responses to a form. Each answer carries its question's ID, which matches the questions from GET /forms/{form_id}.
Example response
JSON
{ "data": [ { "id": "Ef56Gh78", "form_id": "Ab12Cd34", "submitted_at": "2026-10-08T11:59:58Z", "completion_seconds": 42, "answers": [ { "question_id": "rating-field", "question": "How would you rate us?", "answer": 5 } ] } ], "page": 1, "page_size": 50, "total": 1, "has_more": false}What errors and limits are there?
Each key can make 100 requests a minute. Errors come back as JSON like {"error": {"code": "not_found", "message": "Not found."}}.
400 invalid_request- A parameter is missing or out of range. The message says which.
401 missing_api_key / invalid_api_key- No key was sent, or it was revoked or has stopped working.
403 forbidden / plan_required- The key's owner can't see that, or API access is off for the organization.
403 mfa_enrollment_required- The organization requires two-step verification and the key's owner hasn't set it up.
404 not_found- The form or response doesn't exist in the key's workspace.
429 rate_limited- More than 100 requests in a minute. Wait for the Retry-After seconds.
How do I revoke a key?
Go to Settings, then Security. Under API keys, choose Revoke next to the key. Apps using it stop working straight away.
Common questions
Which plans include API access?
Every plan, including Free. The API follows your plan's limits and features.
Can the API create or change forms?
Not yet. The API reads forms and responses. To build forms from code or an assistant, use an AI agent through Reuily's MCP server, and to receive each new response as it arrives, use a webhook.
What can a key see?
A key works in the one workspace you picked and has your access there. If you lose access to the workspace, the key stops working too.
Why did my key stop working?
A key ends when you revoke it, change your password, change two-step verification or sign out everywhere. Create a new key and update your app.
Should I poll the API for new responses?
Use a webhook to hear about each new response as it arrives, and the API to backfill or look up responses. Polling counts against the limit of 100 requests a minute.