Work with this as data
Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/civic:civic-pass-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
OpenAPI Specification
openapi: 3.2.0
info:
title: Civic Customer Pass API
description: The APIs described below enable Civic customers to issue and manage the Civic Pass for their dApp.
termsOfService: https://www.civic.com/legal/terms-of-service-civic-pass-v1/
contact:
email: devsupport@civic.com
version: 1.0.0
servers:
- url: https://api.civic.com/partner
tags:
- name: Pass
description: Issue and manage Civic Passes
paths:
/pass:
post:
tags:
- Pass
summary: List Civic Passes
description: Returns a list of all Civic Passes you have issued. Optionally filtered by the Civic Pass attributes. A pass may take a few seconds to a few minutes to show up here after issuing, depending on blockchain confirmation times.
operationId: listPass
requestBody:
content:
application/json:
schema:
type: object
properties:
limit:
type: number
default: 20
description: Number of records to return per page (used together with 'skip' for pagination)
skip:
type: number
default: 0
description: Number of records to skip (used together with 'limit' for pagination)
filter:
type: object
properties:
state:
$ref: '#/components/schemas/State'
walletAddress:
type: string
example: 4v4PL5bMZXXvQB3mvWPXLvqfJpjJmPRnPrmENnUESQQQ
responses:
200:
description: OK
content:
application/json:
schema:
type: object
properties:
records:
type: array
items:
type: object
$ref: '#/components/schemas/PassResponse'
security:
- pass_auth:
- write:token
- read:token
/pass/{chain}/{chainNetwork}:
post:
tags:
- Pass
summary: Issue a Civic Pass
description: Issue a Civic Pass to a user's wallet. This action is asynchronous, i.e. it does not wait for the Civic Pass to be confirmed on-chain before returning.
operationId: issuePass
parameters:
- name: chain
in: path
description: The type of blockchain that the Civic Pass was issued on.
required: true
example: ethereum
schema:
$ref: '#/components/schemas/Chain'
- name: chainNetwork
in: path
description: The blockchain network
required: true
explode: true
example: sepolia
schema:
$ref: '#/components/schemas/ChainNetwork'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Wallet'
required: true
responses:
'202':
description: The issuance of the Civic Pass has been initiated.
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/PassResponse'
'401':
description: Unauthorized
'400':
description: Client error
security:
- pass_auth:
- write:token
- read:token
/pass/{chain}/{chainNetwork}/{wallet}:
get:
tags:
- Pass
summary: Retrieve a Civic Pass
description: Retrieve the full details about a Civic Pass you issued, including a log of all events associated with the specific pass. A pass may take a few seconds to a few minutes to show up here after issuing, depending on blockchain confirmation times.
operationId: getPass
parameters:
- name: chain
in: path
description: The blockchain type that the Civic Pass was issued on.
required: true
example: ethereum
schema:
$ref: '#/components/schemas/Chain'
- name: wallet
in: path
description: The user's wallet the Civic Pass was issued to.
required: true
example: '0xEA5Ce8F9C81b681876DC713d33371c3E262A5888'
schema:
type: string
- name: chainNetwork
in: path
description: The blockchain network
required: true
explode: true
example: sepolia
schema:
$ref: '#/components/schemas/ChainNetwork'
responses:
'200':
description: The Civic Pass associated with the given wallet.
content:
application/json:
schema:
$ref: '#/components/schemas/PassResponse'
'404':
description: No Civic pass is associatied with the given wallet.
security:
- pass_auth:
- write:token
- read:token
patch:
tags:
- Pass
summary: Update a Civic Pass
description: Updates either the status or the expiration timestamp of a Civic Pass. This action is asynchronous, i.e. it does not wait for updates to be confirmed on-chain before returning. To immediately expire a pass, for example to force a user to refresh, set an expiration data a couple of second in the future.
operationId: patchPass
parameters:
- name: chain
in: path
description: The blockchain type that the Civic Pass was issued on.
required: true
example: ethereum
schema:
$ref: '#/components/schemas/Chain'
- name: wallet
in: path
description: The user's wallet the Civic Pass was issued to.
required: true
example: '0xEA5Ce8F9C81b681876DC713d33371c3E262A5888'
schema:
type: string
- name: chainNetwork
in: path
description: The blockchain network
required: true
explode: true
example: sepolia
schema:
$ref: '#/components/schemas/ChainNetwork'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateState'
required: true
responses:
'200':
description: ok
content:
application/json:
schema:
type: object
example:
status: ok
security:
- pass_auth:
- write:token
- read:token
delete:
tags:
- Pass
summary: Revoke a Civic Pass
operationId: deletePass
description: Revoking a Civic Pass is **irreversible**. After the Civic Pass has been revoked, it is not possible to issue a new Civic Pass to the same {chain, wallet, network} combination.
parameters:
- name: chain
in: path
description: The blockchain type that the Civic Pass was issued on.
required: true
example: ethereum
schema:
$ref: '#/components/schemas/Chain'
- name: wallet
in: path
description: The user's wallet the Civic Pass was issued to.
required: true
example: '0xEA5Ce8F9C81b681876DC713d33371c3E262A5888'
schema:
type: string
- name: chainNetwork
in: path
description: The blockchain network
required: true
explode: true
example: sepolia
schema:
$ref: '#/components/schemas/ChainNetwork'
responses:
'200':
description: The revocation has been initiated.
security:
- pass_auth:
- write:token
- read:token
components:
schemas:
Chain:
type: string
description: The chain type
enum:
- solana
- ethereum
UpdateState:
type: object
properties:
state:
$ref: '#/components/schemas/State'
expiryTimestamp:
description: The new expiration timestamp
example: 1677593295
type: number
ChainNetwork:
type: string
description: The chain network
enum:
- mainnet-beta
- devnet
- mainnet
- sepolia
- polygonAmoy
- polygonMainnet
- polygonZKEVM
- polygonZKEVMTestnet
- optimismSepolia
- optimismMainnet
- arbitrumSepolia
- arbitrumMainnet
- avalancheCChain
- avalancheCChainFuji
- xdcMainnet
- xdcApothem
- fantomMainnet
- fantomTestnet
- baseSepolia
- baseMainnet
- bscMainnet
- bscTestnet
- xlayerMainnet
- xlayerTestnet
- unichainMainnet
- unichainSepolia
- sonicMainnet
- sonicTestnet
PassResponse:
type: object
properties:
chain:
type: object
properties:
type:
$ref: '#/components/schemas/Chain'
network:
$ref: '#/components/schemas/ChainNetwork'
required:
- type
- network
gatekeeperNetwork:
description: The address of the [Gatekeeper Network](https://docs.civic.com/civic-pass/integrate/turnkey-integration/selecting-a-pass) this Civic Pass was issued for.
type: string
example: tgnuXXNMDLK8dy7Xm1TdeGyc95MDym4bvAQCwcW21Bf
walletAddress:
description: The wallet address that the Civic Pass is issued for.
type: string
example: 4v4PL5bMZXXvQB3mvWPXLvqfJpjJmPRnPrmENnUESQQQ
events:
description: Any action on a Civic Pass results in an event that is appended to this list.
type: array
items:
type: object
properties:
eventType:
type: string
enum:
- TOKEN_ISSUED_INITIATED
- TOKEN_ISSUED
- TOKEN_FROZEN_INITIATED
- TOKEN_FROZEN
- TOKEN_EXPIRY_CHANGED_INITIATED
- TOKEN_EXPIRY_CHANGED
- TOKEN_UNFROZEN_INITIATED
- TOKEN_UNFROZEN
- TOKEN_REVOKED_INITIATED
- TOKEN_REVOKED
timestamp:
type: number
example: 1677588899
transaction:
description: If the event has an associated chain transaction,its details are found here.
type: object
properties:
identifier:
type: string
example: 4GWazp2AqMmxkE6GKCoYf9rbgFL6eDTuMx9z7719eccSeCEYu9hiCvmcr9cK6ioiTUGZzvcWf6iB7fd3YCg39PT6
status:
type: string
enum:
- sent
- confirmed
- failed
required:
- identifier
required:
- eventType
- timestamp
id:
description: A unique, Civic-speficic identifier for the Civic Pass.
type: string
example: 63fdf96c58f1ae40a26a89be
onChainState:
type: string
enum:
- ACTIVE
- FROZEN
- REVOKED
state:
type: string
enum:
- ACTIVE
- FROZEN
- REVOKED
- REQUESTED
required:
- chain
- gatekeeperNetwork
- walletAddress
- events
- id
- onChainState
- state
State:
type: string
description: Available status
enum:
- ACTIVE
- REVOKED
- FROZEN
- REQUESTED
- REJECTED
Wallet:
type: object
description: The wallet address to issue this token to
properties:
walletAddress:
type: string
example: '0xEA5Ce8F9C81b681876DC713d33371c3E262A5888'
securitySchemes:
pass_auth:
type: oauth2
flows:
clientCredentials:
tokenUrl: https://auth0.civic.com/oauth/token
scopes: {}