Permit.io Docs
Permit.io Documentation
Add fine-grained authorization to your apps, APIs, and AI agents. Model policy in the UI or as code, enforce it with an SDK call, and run decisions next to your services.
Node.jspermit.check()
// Ask the PDP next to your service
const permitted = await permit.check(
"john@permit.io", // user
"read", // action
"document" // resource
);Every SDK exposes the same check. How checks work
Choose your path
- Authorize your app and APIModel roles, attributes, and relationships, then call permit.check() from your backend.
- Secure AI agents with MCP GatewayPut the gateway in front of MCP servers so every tool call is checked against policy and logged.
- Embed access requests and user managementAdd Permit Elements to your app so users can request access and admins can manage their own teams.
- Deploy the PDPUse the managed Cloud PDP, run a container PDP next to your services, or run Nexus PDP for large data sets in your network.
Go beyond a yes or no
One check answers one question. These calls answer many at once, or ask the question the other way around.
- Bulk check
bulkCheck()Evaluate many user, action, and resource checks in a single call, for lists, tables, and dashboards. - Get user permissions
getUserPermissions()Return everything a user can do across resources and tenants, including ABAC access, to drive your UI. - Get authorized users
authorized_users()List the users who can perform an action on a resource, with the role assignments that grant it. - Check in all tenants
checkInAllTenants()Find every tenant where a user can perform an action, without one check per tenant.
How it works
How a permission decision is made
- IdentityA user, service, or AI agent, authenticated by your identity provider.
- RequestYour code asks: can this identity perform this action on this resource?
- Policy decision pointRuns in your VPC next to your services and evaluates policy with OPA or Cedar.
- DecisionAllow or deny, returned to your code. The decision log records why.
- AuditEvery decision is logged and can be forwarded to your logging stack or SIEM.
Example decision log entryallow
- user
- john@permit.io
- action
- read
- resource
- document:q3-report (tenant: default)
- reason
- john@permit.io has the viewer role in tenant default, and viewer can read document
- decided by
- PDP in your VPC
SDKs and tools
Each tile opens the quickstart for that SDK or tool.
Popular tasks
Get help
- Ask in Slack (opens in a new tab)Get help from the Permit team and other developers building with Permit.
- GitHub (opens in a new tab)Source code and issue trackers for the SDKs, the PDP, and OPAL.
- Status page (opens in a new tab)Current availability of Permit services and incident history.
- Talk to an engineer (opens in a new tab)Architecture, scale, and rollout questions for your deployment.