# Keel - Permit Protocol > Keel is the authority layer around AI execution. Before a consequential action > (model call, tool call, payment, system change, delegated action), an agent > requests a **permit**; Keel returns a decision and a tamper-evident record. Within > a Keel-governed path, only a live `allow` permit authorizes an action. ## Do this - Before acting, `POST https://api.keelapi.com/v1/permits` with your runtime key (`Authorization: Bearer $KEEL_RUNTIME_KEY`). - Act only on a live `allow`; obey `expires_at` and the returned constraints. - Treat `deny`, `challenge`, `throttle`, expiry, and revocation as do-not-act. - One permit per consequential step; keep the permit reference with the action. - Fail closed if you cannot obtain a permit. ## What this is not - Not identity, not a login, not a registry. Being known to Keel is not authority - only a permit is. Keel is not your identity provider: your operator supplies or binds the runtime credential Keel uses to attribute permit requests, and grants your authority separately. ## Links - Full instructions: https://agents.keelapi.com/agents.md - Discovery JSON: https://agents.keelapi.com/.well-known/keel.json - Docs & SDKs: https://docs.keelapi.com - Protocol version: 0.1