canonical: https://jentic.com/apis/civic.com/civic

# Civic Auth API

Jentic publishes the only available OpenAPI specification for Civic Auth API, keeping it validated and agent-ready. Civic Auth issues, verifies, and revokes Civic Pass tokens - on-chain identity credentials that prove a wallet has cleared a real-person or compliance check. The API supports starting an identity verification session, polling its status, and managing the lifecycle of a Civic Pass once it is granted. Bearer JWT authentication is used for every call.

## For AI agents

Verify wallet-bound user identity by issuing, checking, or revoking Civic Pass tokens, and start KYC-style identity verification sessions. Useful for any agent gating an action behind a real-person check on a blockchain network.

## Scope

Does not handle wallet creation, on-chain transaction signing, or general OAuth login - use for Civic Pass identity verification and lifecycle management only.

## Capabilities

- Verify a Civic Pass token presented by a user before granting access to a gated action
- Issue a new Civic Pass to a wallet address that has completed verification
- Revoke an existing Civic Pass when fraud or policy violation is detected
- Start an identity verification session and obtain a session id for the user to complete
- Poll the status of an identity verification session by session id
- Read the current status of a Civic Pass attached to a wallet

## Use cases

### Gate an on-chain mint behind a Civic Pass check

Before allowing a wallet to mint or claim, an application calls POST /token/verify with the Civic Pass token the user presents. If the token is valid the action proceeds; if not, the user is redirected to start verification. This is the standard pattern for sybil resistance and per-wallet-per-person enforcement on NFT drops, airdrops, and DeFi access lists.

Example prompt: Receive a Civic Pass JWT from a connected wallet, POST it to /token/verify, and approve or reject the mint based on the response

### Run a KYC verification session and issue a pass

Start an end-user identity verification session with POST /identity/verify, then poll GET /identity/status/{sessionId} until the session resolves. On success, issue the Civic Pass with POST /pass/issue so future calls only need a token verification rather than another KYC run. This keeps the heavy verification one-shot and lets every subsequent gated action be a quick token check.

Example prompt: Start an identity verification for user u_42, poll /identity/status/{sessionId} every 5 seconds until status=completed, then issue a Civic Pass

### Lifecycle management for a compliance team

Compliance and trust teams need to revoke access when a wallet is implicated in fraud or sanctions. POST /pass/revoke removes the pass for a given wallet, while GET /pass/status confirms the current state. Combined with /token/verify on the application side, this gives the team a single switch that invalidates the wallet across every integrated experience.

Example prompt: Look up the Civic Pass status for a flagged wallet, revoke it via /pass/revoke, and log the event

### Agent integration via Jentic

Through Jentic, an agent acting on behalf of a wallet-aware application can resolve intents like 'check this wallet's Civic Pass' to the right Civic endpoint without hard-coding paths or auth. The bearer JWT lives in the Jentic credential vault and is injected only at execution time.

Example prompt: Search Jentic for 'verify a Civic Pass', load the schema for POST /token/verify, and execute it with the user-supplied JWT

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | /token/verify | Verify a Civic Pass token |
| GET | /pass/status | Get a Civic Pass status |
| POST | /pass/issue | Issue a Civic Pass |
| POST | /pass/revoke | Revoke a Civic Pass |
| POST | /identity/verify | Start identity verification |
| GET | /identity/status/{sessionId} | Get identity verification status |

## Key resources

- **Civic Pass** — Issue, revoke, and read the status of Civic Pass tokens on a wallet
- **Identity Verification** — Start KYC-style verification sessions and poll their result by session id
- **Token Verification** — Verify that a Civic Pass JWT presented by a user is valid

## Why Jentic

- **Setup:** Wiring the Civic Auth API by hand means learning its bearer token auth and threading pass issuance, revocation, and identity verification through the right lifecycle endpoints yourself. Through Jentic you install once, import the Civic Auth API from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** Civic takes the token, session, or pass target in the request body rather than the URL path, so scope the agent to the operations it needs, such as verifying a token and checking pass status. You choose the operations it may call, so issuing or revoking a pass is not included unless you add it.
- **Credential handling:** Your Civic token is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'verify an identity token' or 'check a Civic pass status', and Jentic returns the matching Civic operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **CiviCRM REST API** — CiviCRM is an unrelated CRM that shares the 'civic' name; useful only as a disambiguation reference.
- **Clarivate API** — Clarivate exposes intellectual-property and research data sometimes paired with identity-verified workflows.
- **Claim.MD API** — Claim.MD handles healthcare claims that often sit behind a strong identity check.

## FAQ

### Why is there no official OpenAPI spec for Civic Auth API?

Civic does not publish an OpenAPI specification for its Auth API. Jentic generates and maintains this spec from the Civic developer documentation so AI agents and developers can call Civic through structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Civic Auth API use?

Civic Auth uses HTTP bearer authentication with a JWT in the Authorization header. Through Jentic, the bearer token is stored encrypted in the credential vault and injected only at execution time, so the raw JWT never enters the agent's prompt.

### Can I issue and revoke a Civic Pass through this API?

Yes. POST /pass/issue grants a Civic Pass to a wallet that has completed verification, POST /pass/revoke removes it, and GET /pass/status reads the current state. Combined with POST /token/verify on the consuming side, this covers the full lifecycle.

### How do I run an end-to-end identity verification through Jentic?

Search Jentic for 'start a Civic identity verification', which returns POST /identity/verify with its input schema. Execute it to get a sessionId, then call GET /identity/status/{sessionId} until the session resolves. Jentic loads each schema on demand so the agent does not need to read the spec.

### What are the rate limits for the Civic Auth API?

The OpenAPI spec does not declare formal rate limits. For production traffic - particularly for token verification on a popular mint - confirm the per-key quota with Civic support and treat any 429 response as a backoff signal.

### Does this API perform the on-chain pass write itself?

No. Civic Auth handles the off-chain verification and pass-management plane; the on-chain Civic Pass token is written through Civic's smart contracts. Use this API to verify, issue, and revoke at the service level rather than to broadcast a blockchain transaction.

### Can I limit what my agent is allowed to do with the Civic Auth API?

Yes. Because you run Jentic One yourself, your own rules decide which Civic operations and credentials the agent may use. Civic takes the token, session, or pass target in the request body rather than the URL path, so you can scope the agent to just the operations it needs, such as POST /token/verify and GET /pass/status. Since you choose the operations it may call, issuing a pass via POST /pass/issue or revoking one via POST /pass/revoke is not included unless you add it.
