Base URL
All requests are made to:v1, so every endpoint is prefixed with /api/v1.
Authentication
The API uses Bearer token authentication. Pass your AccessOwl API token in theAuthorization header on every request:
GET endpoint, but returns 403 Access denied on mutating requests (POST,
PUT, PATCH, DELETE), including POST /api/v1/access_requests/{access_request_id}/grant.
If you get a 403 on a request you expect to work, check the token’s permission in
AccessOwl. Permission is set when the token is created and can’t be changed
afterwards, so create a new token with write permission and replace the old one.
Treat tokens as secrets: store them securely and never commit them to source control.
Requests without a valid token return 401 Unauthorized.
Rate limiting
Each API token is limited to 1,000 requests per hour. Exceeding the limit returns429 Too Many Requests with a Retry-After header indicating how many seconds to
wait before retrying:
429, pause for the number of seconds in Retry-After before
sending further requests.
Idempotency
Mutating requests (POST, PUT, PATCH, DELETE) accept an optional
Idempotency-Key header so a retried request doesn’t perform the same operation
twice.
- Same key, same request body: returns
409 Conflict. The duplicate is not processed again. A409confirms that a request with this key was already received — it does not report the outcome of the original request, which may still have failed. If you need the result, query the relevant resource directly. - Same key, different request body: returns
422 Unprocessable Entity. A key must not be reused for a different operation. - Missing or malformed key: returns
400 Bad Request.
409, telling you the operation was already submitted and you
should not send it again.
Responses
The API returns JSON. Successful requests return a2xx status code; client and
server errors return 4xx and 5xx codes respectively, with an error payload
describing what went wrong.
FAQ
Is there an AccessOwl MCP server?
Is there an AccessOwl MCP server?
There is no AccessOwl MCP server today. This REST API is the programmatic
surface for managing applications, reading current access, creating access
requests and marking them granted. If the goal is an AI agent handling access
work, that already works through Claude in Slack
with no MCP involved, see what you can ask it.

