Skip to content

Overview

Permio (perms.io) is permissions as a service. It gives you resource-level role-based access control (RBAC): you define permissions and roles, grant them to your users on resource URIs, and ask one question from your code:

May principal alice do document.read on /documents/42?

Manage everything in the dashboard at app.perms.io, and check permissions through the API.

Grant access to individual objects, such as /projects/42 or /documents/42/comments/7, not just to whole types.

A grant on /documents applies to /documents/42 and everything beneath it, including resources created later. The _ wildcard segment lets one grant cover a whole level. See Resources and inheritance.

Grant to a group such as group:editors once, and every member holds the grant. See Groups.

perms.io only does authorisation. Principals are whatever IDs your app already uses, so it works with any login system.

  • One REST/JSON, gRPC and gRPC-web API. See the API reference.
  • Official SDKs for TypeScript, Go, Python, Rust and Java, with check helpers, typed errors and retries.
  • A dashboard for managing projects, permissions, roles, grants and API keys.
  • Quickstart: from sign-up to a passing check in five minutes.
  • How it works: permissions, roles, principals and grants.
  • API keys: key format, access levels and invalidation.
  • IAM fundamentals: background on access control in general.

If you use a coding assistant or an LLM, point it at these files:

  • llms.txt (https://docs.perms.io/llms.txt): an index of every page on this site, with a one-line description of each.
  • llms-full.txt (https://docs.perms.io/llms-full.txt): the concepts, quickstart, SDKs and API reference in one Markdown file, to load straight into the model’s context.

For example, give your assistant this prompt:

Add Permio permissions to this app using the `permio` npm package. Docs: https://docs.perms.io/llms.txt

Install it with npm install permio. See the TypeScript SDK.

Questions or problems? Email hello@perms.io.