Crossmint Verifiable Credentials API

The Verifiable Credentials API from Crossmint — 2 operation(s) for verifiable credentials.

Operations 3

POST /v1-alpha1/credentials/verification/verify Verify Credential #
DELETE /v1-alpha1/credentials/{credentialId} Revoke Credential #
GET /v1-alpha1/credentials/{credentialId} Get Credential #

Specifications

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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/crossmint:crossmint-verifiable-credentials-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

crossmint-verifiable-credentials-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  contact:
    email: support@crossmint.com
    name: Crossmint Support
    url: https://www.crossmint.com
  description: Generated from Crossmint's published product API specifications. Do not edit by hand.
  title: Crossmint Verifiable Credentials API
  version: 1.0.0
servers:
- description: Staging environment (testnets)
  url: https://staging.crossmint.com/api
- description: Production environment (mainnets)
  url: https://www.crossmint.com/api
tags:
- name: Verifiable Credentials
paths:
  /v1-alpha1/credentials/verification/verify:
    post:
      description: 'Checks that a verifiable credential is authentic and still valid: the proof matches the issuer, the credential has not expired, and its NFT has not been burned. Send the full credential object as returned by Get Credential.


        **API scope required**: `credentials.read`


        **Related**: Verify credentials'
      operationId: credentials.verify
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VerifyCredentialDto'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VerifyCredentialResponseDto'
          description: The verification result. `error` names the reason when `isValid` is `false`.
      security:
      - apiKey: []
      summary: Verify Credential
      tags:
      - Verifiable Credentials
  /v1-alpha1/credentials/{credentialId}:
    delete:
      description: 'Revokes a verifiable credential and burns the NFT that carries it. Only the issuing project can revoke a credential. The burn is processing when this returns; Verify Credential reports the credential as revoked once it completes.


        **API scope required**: `credentials.delete`


        **Related**: Revoke credentials'
      operationId: credentials.revoke
      parameters:
      - description: The credential's ID, `urn:uuid:<UUID>`, as returned by Issue Credential.
        in: path
        name: credentialId
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Burn started. Returns the burn action with its `actionId` and `status`, the same shape as Burn NFT.
        '404':
          description: No credential matches `credentialId`.
      security:
      - apiKey: []
      summary: Revoke Credential
      tags:
      - Verifiable Credentials
    get:
      description: 'Returns a verifiable credential by its ID. An encrypted credential comes back as `encryptedCredential`; when the issuing project makes the request, Crossmint also decrypts it into `unencryptedCredential`, and `decryptionError` explains a decryption that failed. A credential whose NFT is still minting is not available yet.


        **API scope required**: `credentials.read`


        **Related**: Retrieve credentials'
      operationId: credentials.get
      parameters:
      - description: The credential's ID, `urn:uuid:<UUID>`, as returned by Issue Credential.
        in: path
        name: credentialId
        required: true
        schema:
          type: string
      responses:
        '200':
          description: The credential as `unencryptedCredential`, `encryptedCredential`, or both. `pass` carries the wallet-pass links for the issuing project when the template issues passes.
        '404':
          description: No credential matches `credentialId`.
      security:
      - apiKey: []
      summary: Get Credential
      tags:
      - Verifiable Credentials
components:
  schemas:
    VerifyCredentialDto:
      properties:
        credential:
          properties:
            '@context':
              description: The context of the credential
              items:
                type: string
              type: array
            credentialSubject:
              additionalProperties: {}
              description: The credential subject, including all the data to be verified
              propertyNames:
                type: string
              type: object
            description:
              description: The credential description
              type: string
            id:
              description: The credential ID
              type: string
            issuer:
              properties:
                id:
                  description: The issuer DID
                  type: string
              required:
              - id
              type: object
            name:
              description: The credential name
              type: string
            nft:
              properties:
                chain:
                  description: The blockchain type
                  enum:
                  - abstract
                  - abstract-testnet
                  - apechain
                  - aptos
                  - arbitrum
                  - arbitrum-sepolia
                  - arbitrumnova
                  - arc
                  - arc-testnet
                  - astar-zkevm
                  - avalanche
                  - avalanche-fuji
                  - base
                  - base-goerli
                  - base-sepolia
                  - bsc
                  - bsc-testnet
                  - celo
                  - celo-sepolia
                  - chiliz
                  - chiliz-spicy-testnet
                  - coti
                  - coti-testnet
                  - curtis
                  - ethereum
                  - ethereum-goerli
                  - ethereum-sepolia
                  - flow
                  - flow-testnet
                  - hedera
                  - hedera-testnet
                  - hypersonic-testnet
                  - lightlink
                  - lightlink-pegasus
                  - mantle
                  - mantle-sepolia
                  - mode
                  - mode-sepolia
                  - optimism
                  - optimism-goerli
                  - optimism-sepolia
                  - plume
                  - plume-testnet
                  - polygon
                  - polygon-amoy
                  - polygon-mumbai
                  - rari
                  - rari-testnet
                  - robinhood-chain
                  - robinhood-chain-testnet
                  - scroll
                  - scroll-sepolia
                  - sei-atlantic-2-testnet
                  - sei-pacific-1
                  - shape
                  - shape-sepolia
                  - skale-nebula
                  - skale-nebula-testnet
                  - solana
                  - soneium
                  - soneium-minato-testnet
                  - space
                  - space-testnet
                  - stellar
                  - story
                  - story-testnet
                  - sui
                  - tempo
                  - tempo-testnet
                  - u2u-nebulas
                  - u2u-solaris
                  - verify-testnet
                  - viction
                  - viction-testnet
                  - world-chain
                  - world-chain-sepolia
                  - xai
                  - xai-sepolia-testnet
                  - xion
                  - zenchain-testnet
                  - zkatana
                  - zkyoto
                  - zora
                  - zora-goerli
                  - zora-sepolia
                  type: string
                contractAddress:
                  description: The contract address for the NFT
                  type: string
                tokenId:
                  description: The unique onchain identifier for the NFT
                  type: string
              required:
              - chain
              - contractAddress
              - tokenId
              type: object
            proof:
              properties:
                eip712:
                  description: Proof metadata needed for EIP712 signature verification
                  properties:
                    domain:
                      properties:
                        chainId:
                          type: number
                        name:
                          type: string
                        verifyingContract:
                          type: string
                        version:
                          type: string
                      required:
                      - chainId
                      - name
                      - verifyingContract
                      - version
                      type: object
                    types:
                      additionalProperties: {}
                      propertyNames:
                        type: string
                      type: object
                  required:
                  - domain
                  - types
                  type: object
                proofValue:
                  description: The proof value
                  type: string
              required:
              - eip712
              - proofValue
              type: object
            type:
              description: The type of the credential
              items:
                type: string
              type: array
            validFrom:
              description: The issuance date of the credential
              type: string
            validUntil:
              description: The expiration date of the credential
              type: string
          required:
          - '@context'
          - credentialSubject
          - id
          - issuer
          - nft
          - proof
          - type
          - validFrom
          type: object
      required:
      - credential
      type: object
    VerifyCredentialResponseDto:
      properties:
        error:
          description: Why the credential is not valid. Absent when `isValid` is `true`.
          type: string
        isValid:
          description: '`true` when the credential is authentic and still valid.'
          type: boolean
      required:
      - isValid
      title: Verification result
      type: object
  securitySchemes:
    apiKey:
      description: API key required for authentication
      in: header
      name: X-API-KEY
      type: apiKey
    orderClientSecret:
      description: The `clientSecret` returned when the order was created, sent as the raw `Authorization` header value. Lets a browser or mobile client read and continue its own order without a server-side API key.
      in: header
      name: Authorization
      type: apiKey
    userJwt:
      bearerFormat: JWT
      description: 'The end user''s JWT, sent as `Authorization: Bearer <JWT>` together with a client-side API key. Validated against the project''s external JWT configuration.'
      scheme: bearer
      type: http
x-provenance:
  method: harvested
  publisher: Crossmint
  source: https://www.crossmint.com/openapi.yaml
  note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
    stamped by stamp-openapi-provenance.py (roadmap#793)