# Autonai > A REST API over a ShiftCare user's data, for building dashboards and integrations. ## API - OpenAPI spec: https://autonai.app/openapi.json - Base URL: https://autonai.app/api/v1 - Auth: HTTP Bearer with an API key (AutonAI portal → Settings → API keys, or the create_dashboard_api_key MCP tool). - Keys are scoped: read (default) or read_write. Write-tool invocation needs a read_write key. - Call server-side only; never expose the key in browser code. - Data is scoped to the workspace the key is bound to. ## Endpoints - GET /api/v1/accounts - GET /api/v1/clients - GET /api/v1/clients/{clientId} - GET /api/v1/clients/{clientId}/documents - GET /api/v1/clients/{clientId}/care-plans - GET /api/v1/care-plans/{id}?client_id={clientId} - GET /api/v1/care-plans/{id}/goals?client_id={clientId} - GET /api/v1/care-plans/{id}/tasks?client_id={clientId} - GET /api/v1/care-plans/{id}/focus-areas?client_id={clientId} - GET /api/v1/care-plans/{id}/reviews?client_id={clientId} - GET /api/v1/clients/{clientId}/medical-history?type=conditions|procedures|allergies - GET /api/v1/incidents - GET /api/v1/shifts?start_date=YYYY-MM-DD&end_date=YYYY-MM-DD - GET /api/v1/shifts/{id} - GET /api/v1/forms - GET /api/v1/forms/{id}/responses - GET /api/v1/staff - GET /api/v1/staff/compliance?account_id={id}&summary=true - GET /api/v1/complaints - GET /api/v1/invoices (V3 shape since 2026-07-11: numeric amounts, ISO dates, payment_status + client_ids filters; ?legacy=v2 for the retired V2 shape) - GET /api/v1/quotes - GET /api/v1/price-books?account_id={id} - GET /api/v1/medications - GET /api/v1/clients/{clientId}/funds?account_id={id} - GET /api/v1/clients/{clientId}/fund-transactions?account_id={id}&start_date=&end_date= - GET /api/v1/segments?account_id={id} - GET /api/v1/leaves?account_id={id} - GET /api/v1/leaves/metrics?account_id={id} - GET /api/v1/dashboard/operations/{metric}?account_id={id} - GET /api/v1/dashboard/user-tasks/{metric}?account_id={id} - GET /api/v1/tools (invokable tool catalogue + this key's scope) - POST /api/v1/tools/{name} (invoke a tool; body = tool input JSON; write effects need a read_write key; destructive actions keep their dry_run/confirm guardrails) ## Building a dashboard Fetch on load from a server/BFF that holds the API key, then render. Example: fetch("https://autonai.app/api/v1/clients", { headers: { Authorization: "Bearer " } })