MIGRATION_RUNBOOK.md. The MCP server (@rayify-ai/mcp) is a higher-level slim-8 surface layered over these endpoints.
Auto-generated OpenAPI: a full openapi.json will be generated from the platform backend once the v2 spec stabilizes. Until then, this page lists the customer-facing endpoints by hand.
Base URL
RAYIFY_API_URL for self-hosted / staging.
Authentication
All endpoints require a Bearer token:Projects
List projects
status (active / completed / archived), kind (research / survey / audience / simulation), limit (default 50, max 200).
Get a project
Get project status (lightweight)
{ id, status, last_updated_at, question_count, reasoning_count }. Use this for polling without the body weight of full state.
Create a research project
audience tunes the Reasoning fleet’s specialist composition.
Create a survey
questions accepts string arrays only. For richer question types (matrix / likert / star_rating), use the web app.
Questions
Add a question
400 with a structured error.
Sources
Attach a source
Findings
Search findings
Error responses
All endpoints return JSON errors:400- validation error401- missing / invalid API key403- insufficient permissions (admin route, wrong workspace)404- resource not found429- rate limited500- platform error (report to support@rayify.ai)
Rate limits
Default: 100 requests/minute per API key. Enterprise tier raises this.429 responses include a Retry-After header.
Webhooks
Webhook configuration lives on the web app: Settings → Webhooks. Subscribed events includeproject.created / project.completed / decision_packet.published. Payloads are signed with HMAC-SHA256; verify against the secret you provisioned at subscription time.