Polygon ID Links API

The Links API from Polygon ID — 4 operation(s) for links.

Operations 7

POST /v2/identities/{identifier}/credentials/links/{id}/offer Create a credential offer for a link #
POST /v2/identities/{identifier}/credentials/links/callback Create Link QR Code Callback #

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/polygon-id-links-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

polygon-id-links-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Privado ID - Issuer Agent Links API
  description: "The Issuer Node Core API is ideal for users who need multiple identities and for integrator profiles, who want to \ncreate solutions based on Privado ID functionalities and might be interested in having access to low level \ninformation such as Merkle Trees.\nThe Issuer Node API provide the following functionalities:\n* Create and retrieve Identities\n* Create a Verifiable Credential (VC)\n* Retrieve a Verifiable Credential or a list of Verifiable Credentials\n* Generate JSON to create a QR Code and use that to accept credentials in a wallet\n* Revoke a Verifiable Credential\n* Check revocation status of a Verifiable Credential\n* Retrieve the Revocation Status of a Verifiable Credential\n* Call Agent Endpoint using the Wallet App\n* Handle connections.\n"
  version: '1'
servers:
- url: https://issuer-node-core-api-testing.privado.id
  description: Base URL declared by the provider in apis.yml (roadmap#122).
tags:
- name: Links
paths:
  /v2/identities/{identifier}/credentials/links:
    get:
      summary: Get Links
      operationId: GetLinks
      description: 'Returns a list of links for the provided identity.

        Filter between all | active | inactive | exceeded links and also perform a full text search with the query parameter.

        '
      security:
      - basicAuth: []
      tags:
      - Links
      parameters:
      - $ref: '#/components/parameters/pathIdentifier'
      - in: query
        name: query
        schema:
          type: string
        description: Query string to do full text search in schema types and attributes.
      - in: query
        name: status
        schema:
          type: string
          enum:
          - all
          - active
          - inactive
          - exceeded
        description: "Schema type:\n  * `all` - All links. (default value)\n  * `active` - Only active links. (Not expired, no issuance exceeded and not deactivated\n  * `inactive` - Only deactivated links\n  * `exceeded` - Expired or maximum issuance exceeded\n"
      responses:
        '200':
          description: Link collection
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Link'
        '400':
          $ref: '#/components/responses/400'
        '404':
          $ref: '#/components/responses/404'
        '500':
          $ref: '#/components/responses/500'
    post:
      summary: Create Link
      operationId: CreateLink
      description: Create a link for the provided identity. With this link, the identity can issue credentials.
      security:
      - basicAuth: []
      tags:
      - Links
      parameters:
      - $ref: '#/components/parameters/pathIdentifier'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateLinkRequest'
      responses:
        '201':
          description: Link created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UUIDResponse'
        '400':
          $ref: '#/components/responses/400'
        '500':
          $ref: '#/components/responses/500'
  /v2/identities/{identifier}/credentials/links/{id}:
    get:
      summary: Get Link
      operationId: GetLink
      description: 'Get a specific link for the provided identity.

        `deepLink` and `universalLink` fields are returned if the credential has an associated protocol message. <br/>

        To create an offer for the link, use the endpoint `/v2/identities/{identifier}/credentials/links/{id}/offer`.

        '
      security:
      - basicAuth: []
      tags:
      - Links
      parameters:
      - $ref: '#/components/parameters/pathIdentifier'
      - $ref: '#/components/parameters/id'
      responses:
        '200':
          description: Credential link response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Link'
        '400':
          $ref: '#/components/responses/400'
        '404':
          $ref: '#/components/responses/404'
        '500':
          $ref: '#/components/responses/500'
    patch:
      summary: Activate | Deactivate Link
      operationId: ActivateLink
      security:
      - basicAuth: []
      parameters:
      - $ref: '#/components/parameters/pathIdentifier'
      - $ref: '#/components/parameters/id'
      tags:
      - Links
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - active
              properties:
                active:
                  type: boolean
                  example: true
      responses:
        '200':
          description: Link updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericMessage'
        '400':
          $ref: '#/components/responses/400'
        '500':
          $ref: '#/components/responses/500'
    delete:
      summary: Delete Link
      operationId: DeleteLink
      description: Remove a specific link for the provided identity.
      security:
      - basicAuth: []
      parameters:
      - $ref: '#/components/parameters/pathIdentifier'
      - $ref: '#/components/parameters/id'
      tags:
      - Links
      responses:
        '200':
          description: Link deleted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericMessage'
        '400':
          $ref: '#/components/responses/400'
        '500':
          $ref: '#/components/responses/500'
  /v2/identities/{identifier}/credentials/links/{id}/offer:
    post:
      summary: Create a credential offer for a link
      operationId: CreateLinkOffer
      description: Create a credential offer for the provided link
      parameters:
      - $ref: '#/components/parameters/pathIdentifier'
      - $ref: '#/components/parameters/id'
      tags:
      - Links
      responses:
        '200':
          description: Link offer generated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CredentialLinkQrCodeResponse'
        '400':
          $ref: '#/components/responses/400'
        '404':
          $ref: '#/components/responses/404'
        '500':
          $ref: '#/components/responses/500'
  /v2/identities/{identifier}/credentials/links/callback:
    post:
      summary: Create Link QR Code Callback
      operationId: CreateLinkQrCodeCallback
      description: Process the callback from the QR code link
      tags:
      - Links
      parameters:
      - $ref: '#/components/parameters/pathIdentifier'
      - $ref: '#/components/parameters/linkID'
      requestBody:
        required: true
        content:
          text/plain:
            schema:
              type: string
              example: jwz-token
      responses:
        '200':
          description: 'Return the offer for fetching the credential if the link was created for a Signature Credential or just 200 http status if the link was created for MTP Credential.

            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Offer'
        '400':
          $ref: '#/components/responses/400'
        '500':
          $ref: '#/components/responses/500'
components:
  responses:
    '500':
      description: Internal Server  error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/GenericErrorMessage'
    '404':
      description: Not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/GenericErrorMessage'
    '400':
      description: Bad Request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/GenericErrorMessage'
  schemas:
    LinkSimple:
      type: object
      required:
      - id
      - schemaUrl
      - schemaType
      - proofTypes
      - schemaHash
      properties:
        id:
          type: string
          x-go-type: uuid.UUID
          x-go-type-import:
            name: uuid
            path: github.com/google/uuid
          example: 8edd8112-c415-11ed-b036-debe37e1cbd6
        schemaUrl:
          type: string
          example: https://someValidURL.com
        schemaType:
          type: string
          example: KYCAgeCredential
        schemaHash:
          type: string
          example: c9b2370371b7fa8b3dab2a5ba81b6838
        proofTypes:
          type: array
          items:
            type: string
          example:
          - BJJSignature2021
    UUIDResponse:
      type: object
      required:
      - id
      properties:
        id:
          type: string
          x-omitempty: false
          example: c79c9c04-8c98-40f2-a7a0-5eeabf08d836
    CredentialLinkQrCodeResponse:
      type: object
      required:
      - issuer
      - deepLink
      - universalLink
      - message
      - sessionID
      - linkID
      - linkDetail
      properties:
        issuer:
          $ref: '#/components/schemas/IssuerDescription'
        message:
          type: string
        deepLink:
          type: string
          example: iden3comm://?request_uri=https%3A%2F%2Fissuer-demo.privado.id%2Fapi%2Fqr-store%3Fid%3Df780a169-8959-4380-9461-f7200e2ed3f4
        universalLink:
          type: string
          example: https://wallet.privado.id#request_uri=url
        linkDetail:
          $ref: '#/components/schemas/LinkSimple'
    CredentialSubject:
      type: object
      x-omitempty: false
      example:
        birthday: 19960424
        documentType: 2
        type: KYCAgeCredential
    GenericErrorMessage:
      type: object
      required:
      - message
      properties:
        message:
          type: string
          example: Something happen
    Link:
      type: object
      required:
      - id
      - schemaUrl
      - schemaType
      - credentialSubject
      - issuedClaims
      - active
      - status
      - proofTypes
      - schemaHash
      - createdAt
      - deepLink
      - universalLink
      properties:
        id:
          type: string
          x-go-type: uuid.UUID
          x-go-type-import:
            name: uuid
            path: github.com/google/uuid
          example: 8edd8112-c415-11ed-b036-debe37e1cbd6
        schemaUrl:
          type: string
          example: https://someValidURL.com
        schemaType:
          type: string
          example: KYCAgeCredential
        schemaHash:
          type: string
          example: c9b2370371b7fa8b3dab2a5ba81b6838
        credentialSubject:
          $ref: '#/components/schemas/CredentialSubject'
        maxIssuance:
          type:
          - integer
          - 'null'
          x-omitempty: false
        issuedClaims:
          type: integer
        expiration:
          $ref: '#/components/schemas/TimeUTC'
          x-omitempty: false
        credentialExpiration:
          $ref: '#/components/schemas/TimeUTC'
          x-omitempty: false
        createdAt:
          $ref: '#/components/schemas/TimeUTC'
        active:
          type: boolean
        status:
          type: string
          enum:
          - active
          - inactive
          - exceeded
        proofTypes:
          type: array
          items:
            type: string
          example:
          - BJJSignature2021
        refreshService:
          $ref: '#/components/schemas/RefreshService'
        displayMethod:
          $ref: '#/components/schemas/DisplayMethod'
        deepLink:
          type: string
          x-omitempty: false
          example: iden3comm://?request_uri=https%3A%2F%2Fissuer-demo.privado.id%2Fapi%2Fqr-store%3Fid%3Df780a169-8959-4380-9461-f7200e2ed3f4
        universalLink:
          type: string
          x-omitempty: false
          example: https://wallet.privado.id#request_uri=url
    CreateLinkRequest:
      type: object
      required:
      - schemaID
      - signatureProof
      - mtProof
      - credentialSubject
      properties:
        schemaID:
          type: string
          x-go-type: uuid.UUID
          x-omitempty: false
        credentialExpiration:
          type: string
          format: date-time
          example: 2025-04-17 11:40:43.681857-03:00
        expiration:
          type: string
          format: date-time
          example: 2025-04-17 11:40:43.681857-03:00
        limitedClaims:
          type: integer
          example: 5
          x-omitempty: false
        signatureProof:
          type: boolean
          example: true
        mtProof:
          type: boolean
          example: false
        credentialSubject:
          $ref: '#/components/schemas/CredentialSubject'
        refreshService:
          $ref: '#/components/schemas/RefreshService'
        displayMethod:
          $ref: '#/components/schemas/DisplayMethod'
    IssuerDescription:
      type: object
      required:
      - displayName
      - logo
      properties:
        displayName:
          type: string
          example: my issuer
        logo:
          type: string
          example: http://my-public-logo/logo.jpg
    RefreshService:
      type: object
      required:
      - id
      - type
      properties:
        id:
          type: string
          x-omitempty: false
        type:
          type: string
          x-omitempty: false
          enum:
          - Iden3RefreshService2023
    GenericMessage:
      type: object
      required:
      - message
      properties:
        message:
          type: string
    DisplayMethod:
      type: object
      required:
      - id
      - type
      properties:
        id:
          type: string
          x-omitempty: false
        type:
          type: string
          x-omitempty: false
          enum:
          - Iden3BasicDisplayMethodV1
    Offer:
      type: object
      x-go-type: protocol.CredentialsOfferMessage
      x-go-type-import:
        name: protocol
        path: github.com/iden3/iden3comm/v2/protocol
    TimeUTC:
      type: string
      x-go-type: timeapi.Time
      x-go-type-import:
        name: timeapi
        path: github.com/polygonid/sh-id-platform/internal/timeapi
      example: '2023-10-26T10:59:08Z'
      x-omitempty: false
  parameters:
    pathIdentifier:
      name: identifier
      in: path
      required: true
      description: Issuer identifier
      schema:
        type: string
    linkID:
      name: linkID
      in: query
      required: true
      description: 'Session ID e.g: 89d298fa-15a6-4a1d-ab13-d1069467eedd

        '
      schema:
        type: string
        x-go-type: uuid.UUID
        x-go-type-import:
          name: uuid
          path: github.com/google/uuid
    id:
      name: id
      in: path
      required: true
      description: 'UUID parameter, e.g: 8edd8112-c415-11ed-b036-debe37e1cbd6

        '
      schema:
        type: string
        x-go-type: uuid.UUID
        x-go-type-import:
          name: uuid
          path: github.com/google/uuid
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic