# Permio > Permio (perms.io) is a permissions-as-a-service API. Resources are hierarchical URIs such as /projects/123/docs/9; you grant roles (named bundles of permissions like document.read) to principals (your own user or service IDs) or groups on a resource, and the grant applies to everything below it. Your backend asks "can principal X do permission P on resource R?" and gets allowed or denied. Permio does authorisation only; it works alongside any login provider (Auth0, Clerk, Firebase, Supabase or custom). Key facts: TypeScript SDK on npm (`npm install permio`); REST (JSON) and gRPC / gRPC-web APIs for any language; a public Rust client; Go and Python clients are not public yet; there is no Java SDK. Pricing is not public yet: it is free to start with no credit card. A dense single-file explanation is at https://perms.io/llms-full.txt. ## Docs - [Quickstart](https://docs.perms.io/quickstart/): Sign up, create a permission and role, grant it, create an API key and make a first check. - [How it works](https://docs.perms.io/how-it-works/): Organisations, projects, permissions, roles, principals, groups, resources and grants. - [Resources and inheritance](https://docs.perms.io/concepts/resources/): URI rules, inheritance down the tree, the `_` single-segment wildcard, how a check is decided. - [API keys](https://docs.perms.io/concepts/api-keys/): Key format, check-only vs full-access levels, invalidation and good practice. - [API reference](https://docs.perms.io/api-reference/): Every REST and gRPC endpoint. - [Permissions and roles API](https://docs.perms.io/api-reference/permissions/): Check, BatchCheck, grants, ListAccess, ListPrincipalsWithAccess and groups. ## SDK - [TypeScript SDK guide](https://docs.perms.io/sdk/typescript/): check, checkDetailed, assert, batchCheck, listAccess, whoHasAccess, groups, errors and framework examples. - [permio on npm](https://www.npmjs.com/package/permio): The published package, released with npm provenance. - [permio-js on GitHub](https://github.com/PrivateJAR/permio-js): Source of the TypeScript SDK (MIT). - [permio-rust on GitHub](https://github.com/PrivateJAR/permio-rust): Generated Rust client. ## Site - [Home](https://perms.io/): What Permio is: a permissions API with resource-level grants and inheritance, groups, list filtering and an audit log. - [Permissions for AI agents](https://perms.io/ai-agents): Give an AI agent only the access its user allows, using principals, scoped grants and check-only API keys. - [Security](https://perms.io/security): How API keys, authentication, fail-closed checks, the audit log and data location work. - [Compare](https://perms.io/compare): How Permio compares with OpenFGA, Cerbos and Permit.io. - [Permio vs OpenFGA](https://perms.io/compare/openfga): Hierarchical resource URIs and a hosted API versus Zanzibar-style relationship tuples. - [Permio vs Cerbos](https://perms.io/compare/cerbos): Stored grants on resource paths versus stateless policy-as-code decisions. - [Permio vs Permit.io](https://perms.io/compare/permit): A focused permissions API versus a full authorisation platform with policy engines. ## Optional - [Full plain-text reference](https://perms.io/llms-full.txt): The model, APIs, SDK usage with code, keys, groups and list filtering in one file. - [Privacy policy](https://perms.io/privacy): How Permio handles personal data. - [Terms of service](https://perms.io/terms): Terms for using Permio.