Solutions · By Team · Engineering

Build Authorization Once. Ship Features Forever.

Engineering teams burn months building and maintaining permission logic scattered across services. AuthZed gives you one schema, one API call, and a battle-tested engine — so you can stop maintaining authorization and get back to shipping.

Built on SpiceDB — the open-source, Google Zanzibar–inspired authorization database.

Replace authorization code in every service with one call. BEFORE · authz in every service Web appRBAC table APIif/else checks MobileJWT roles JobsSQL filters Duplicated, drifting, untested — and nobody owns it. AFTER · one source of truth Web app API Mobile Jobs SpiceDB CheckPermission one schema
What we solve

Top Engineering Challenges We Solve

Stop Rebuilding Authorization

Replace bespoke per-service permission code with one engine and one schema.

Model Anything

Relationships express RBAC, ABAC, ReBAC, hierarchies, groups, and sharing — no rewrites.

Millisecond Checks at Scale

Sub-25ms p95, strongly consistent decisions on the Google Zanzibar architecture.

Test & Version Your Policy

Authorization becomes a schema: reviewed in PRs, validated in CI, no tribal knowledge.

Drop-in Clients & Tooling

gRPC/HTTP clients, the zed CLI, the Playground, and a Kubernetes Operator.

Solve the List Problem

LookupResources answers “what can this user see?” in one call — no N+1.

The list-endpoint problem

One call instead of N+1 permission checks

Filtering a list by permission the naive way means a CheckPermission for every row. LookupResources returns only the IDs a user can access in a single request — the difference between a feature that scales and one that times out.

"Show me everything I can access" — without N+1. NAIVE · filter in the app Fetch 10,000 rowsfrom the database CheckPermission × 10,000one call per row Slow · N+1 timeouts at scale ✗ WITH LookupResources LookupResources(user, view)one request Returns only the IDsthe user can access Fast one round trip ✓ The same API powers permission-aware search, lists, and RAG retrieval.
For Engineering

Outcomes Engineering Teams Care About

ChallengeWith AuthZed
Authorization code sprawlOne schema, one CheckPermission API
“What can this user list?” N+1 queriesLookupResources in a single call
Permission bugs shipped to prodVersioned, tested policy in CI
Scaling the authz layerSub-25ms at billions of relationships
Every feature needs new authz plumbingModel it once in the schema
Onboarding engineers to authz logicA readable schema, not tribal knowledge
In practice

Engineering Use Cases

Multi-Tenant Isolation

Hard tenant boundaries by default, with explicit cross-tenant sharing when you need it.

Replacing a Homegrown Authz Table

Migrate off the permissions table no one wants to touch.

Roles, Groups & Hierarchies

Org → team → project inheritance without exploding role logic.

Permission-Aware Search & Lists

Pre-filter results with LookupResources instead of post-filtering.

Sharing & Link Access

Ship document-style sharing primitives without building them from scratch.

AI / RAG Retrieval

Filter what an agent can retrieve to the calling user's access.

Key Engineering Features

Built for developers

CheckPermission API

One call to ask “can this subject do this on this resource?”

LookupResources / LookupSubjects

List what a user can access, or who can access a resource.

Schema DSL

Define object types, relations, permissions, and caveats as code.

Clients & zed CLI

gRPC and HTTP clients in every major language, plus a first-class CLI.

Watch API

Stream every relationship change to caches, search indexes, and pipelines.

Strong Consistency

ZedTokens give you read-your-writes correctness when you need it.

Bring your hardest authorization model.

We'll sketch the schema with you live, from your real resources and roles.

Schedule a Demo