Skip to main content

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

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.

Filter data by permission

How a permission decision is made

  1. IdentityA user, service, or AI agent, authenticated by your identity provider.
  2. RequestYour code asks: can this identity perform this action on this resource?
  3. Policy decision pointRuns in your VPC next to your services and evaluates policy with OPA or Cedar.
  4. DecisionAllow or deny, returned to your code. The decision log records why.
  5. 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
The same five steps apply whether the caller is a person clicking a button or an agent calling a tool. Only the identity changes.

SDKs and tools

Each tile opens the quickstart for that SDK or tool.

All SDKs

Get help