Summary
Build AgentID sign-in flows with a scoped P-256 credential while keeping private key material in your own keystore. The API reference now defines a dedicated public-key lifecycle for generated SDKs, and the new guide provides strict Python and TypeScript approval helpers.
What’s new?
New endpoints:
POST /v0/api-keys/public-keys- Register only a public P-256 JWK and receive the server-ownedapi_key_idused askidGET /v0/api-keys/public-keys- List public-key credentials without mixing in bearer credentialsPATCH /v0/api-keys/public-keys/{api_key_id}- Rename a credential without mutating security-relevant fieldsDELETE /v0/api-keys/public-keys/{api_key_id}- Revoke one public-key credentialPOST /v0/api-keys/public-keys/agentid-sign-in/revoke-all- Idempotently invalidate every current AgentID sign-in key in an organization
New AgentID endpoint (served by the AgentID issuer, not part of the AgentMail REST API or generated SDKs — call it directly as shown in the guide):
POST https://auth.agentid.com/authorize/approve- Submit one strict ES256 approval assertion without a bearer credential
New features:
- Scoped credentials: Register organization-, pod-, or inbox-scoped keys with inherited scope and expiry defaults.
- Generated SDK contract: Generate P-256 keys, register only public coordinates, pin the approval header and claims, and keep private keys below model context once corresponding SDK releases are published.
Use cases
Build agents that:
- Approve AgentID sign-in while the private key stays in a keystore or HSM
- Delegate sign-in authority to one organization, pod, or inbox
- Rotate credentials with a create-new, deploy-new, delete-old sequence
- Fence every active AgentID sign-in key with an idempotent emergency operation
Follow the AgentID Public-Key Authentication guide for complete Python and TypeScript helpers, lifecycle rules, and the accepted browser-session intent limitation.
