Accredible Credentials API

Issue, retrieve, update, delete, search, and verify digital credentials.

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/accredible-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 email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

accredible-credentials-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Accredible Analytics Credentials API
  description: The Accredible API issues, manages, and verifies digital credentials - certificates and Open Badges - programmatically. Credentials are issued to a recipient against a Group (a course or achievement) and rendered with a reusable Design. The API also manages Evidence Items and References attached to credentials, generates credential PDFs and blockchain-verifiable records, returns engagement analytics, administers Departments and Team Members, and generates recipient SSO links. All requests are authenticated with an API key sent in the Authorization header using the scheme `Token token=YOUR_API_KEY`. Production base URL is https://api.accredible.com/v1; a sandbox is available at https://sandbox.api.accredible.com/v1. Endpoints and paths are grounded in Accredible's published API reference; request and response schemas are modeled and simplified.
  version: '1.0'
  contact:
    name: Accredible
    url: https://www.accredible.com
  license:
    name: Proprietary
    url: https://www.accredible.com/terms-of-service
servers:
- url: https://api.accredible.com/v1
  description: Production
- url: https://sandbox.api.accredible.com/v1
  description: Sandbox
security:
- tokenAuth: []
tags:
- name: Credentials
  description: Issue, retrieve, update, delete, search, and verify digital credentials.
paths:
  /credentials:
    post:
      operationId: createCredential
      tags:
      - Credentials
      summary: Create a credential
      description: Issues a new credential (certificate or badge) to a recipient against a Group, optionally with custom attributes, evidence items, and references.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - credential
              properties:
                credential:
                  $ref: '#/components/schemas/CredentialInput'
      responses:
        '200':
          description: The created credential.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CredentialEnvelope'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /credentials/bulk_create:
    post:
      operationId: bulkCreateCredentials
      tags:
      - Credentials
      summary: Bulk create credentials
      description: Issues many credentials in a single request.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                credentials:
                  type: array
                  items:
                    $ref: '#/components/schemas/CredentialInput'
      responses:
        '200':
          description: The created credentials.
        '401':
          $ref: '#/components/responses/Unauthorized'
  /credentials/{id}:
    parameters:
    - $ref: '#/components/parameters/CredentialId'
    get:
      operationId: getCredential
      tags:
      - Credentials
      summary: View a credential
      description: Retrieves a single credential by its ID.
      responses:
        '200':
          description: The requested credential.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CredentialEnvelope'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updateCredential
      tags:
      - Credentials
      summary: Update a credential
      description: Updates an existing credential.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                credential:
                  $ref: '#/components/schemas/CredentialInput'
      responses:
        '200':
          description: The updated credential.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CredentialEnvelope'
        '401':
          $ref: '#/components/responses/Unauthorized'
    delete:
      operationId: deleteCredential
      tags:
      - Credentials
      summary: Delete a credential
      description: Deletes a credential by ID.
      responses:
        '200':
          description: The credential was deleted.
        '401':
          $ref: '#/components/responses/Unauthorized'
  /credentials/search:
    post:
      operationId: searchCredentials
      tags:
      - Credentials
      summary: Search for credentials
      description: Searches credentials by group, recipient email, recipient ID, and other attributes, with pagination.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                group_id:
                  type: integer
                email:
                  type: string
                recipient_id:
                  type: string
                page:
                  type: integer
                page_size:
                  type: integer
      responses:
        '200':
          description: Matching credentials.
        '401':
          $ref: '#/components/responses/Unauthorized'
  /all_credentials:
    get:
      operationId: listAllCredentials
      deprecated: true
      tags:
      - Credentials
      summary: View many credentials (deprecated)
      description: Lists credentials filtered by group, email, or recipient. Deprecated in favor of the search endpoint.
      parameters:
      - name: group_id
        in: query
        schema:
          type: integer
      - name: email
        in: query
        schema:
          type: string
      - name: recipient_id
        in: query
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: integer
      - name: page_size
        in: query
        schema:
          type: integer
      responses:
        '200':
          description: A list of credentials.
        '401':
          $ref: '#/components/responses/Unauthorized'
  /credentials/generate_pdf:
    post:
      operationId: generateCredentialPdfs
      tags:
      - Credentials
      summary: Generate PDFs for credentials
      description: Generates certificate PDFs for a set of credentials.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                credential_ids:
                  type: array
                  items:
                    type: integer
      responses:
        '200':
          description: PDF generation result.
        '401':
          $ref: '#/components/responses/Unauthorized'
  /credentials/generate_single_pdf/{id}:
    parameters:
    - $ref: '#/components/parameters/CredentialId'
    post:
      operationId: generateSingleCredentialPdf
      tags:
      - Credentials
      summary: Generate PDF for a single credential
      description: Generates a certificate PDF for one credential.
      responses:
        '200':
          description: PDF generation result.
        '401':
          $ref: '#/components/responses/Unauthorized'
  /credentials/blockchain_data/{encoded_id}:
    get:
      operationId: getBlockchainCredential
      tags:
      - Credentials
      summary: Verify blockchain credential
      description: Returns the blockchain verification record for an encoded credential ID.
      parameters:
      - name: encoded_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Blockchain verification data.
        '404':
          $ref: '#/components/responses/NotFound'
  /issuer/credential_redirect:
    get:
      operationId: credentialRedirect
      tags:
      - Credentials
      summary: Redirect to a credential
      description: Resolves and redirects to a credential's public page.
      parameters:
      - name: issuer_id
        in: query
        schema:
          type: integer
      - name: id
        in: query
        schema:
          type: string
      responses:
        '302':
          description: Redirect to the credential page.
components:
  schemas:
    Credential:
      allOf:
      - $ref: '#/components/schemas/CredentialInput'
      - type: object
        properties:
          id:
            type: integer
            description: The unique credential ID.
          url:
            type: string
            description: The public credential page URL.
          created_at:
            type: string
            format: date-time
    CredentialInput:
      type: object
      required:
      - group_id
      properties:
        recipient:
          $ref: '#/components/schemas/Recipient'
        group_id:
          type: integer
          description: The Group the credential belongs to.
        group_name:
          type: string
          description: The Group name
          usable in place of a Group ID.: null
        name:
          type: string
          description: The credential/course name shown to recipients.
        description:
          type: string
          description: The credential/course description shown to recipients.
        issued_on:
          type: string
          description: 'Date of issue. Format: DD/MM/YYYY.'
        expired_on:
          type: string
          description: 'Expiry date. Format: DD/MM/YYYY.'
        complete:
          type: boolean
          description: Whether the achievement is complete.
        private:
          type: boolean
          description: Whether the credential is private.
        custom_attributes:
          type: object
          description: Custom variables displayed on the credential's design.
        meta_data:
          type: object
          description: Arbitrary key-value strings stored on the credential.
    CredentialEnvelope:
      type: object
      properties:
        credential:
          $ref: '#/components/schemas/Credential'
    Error:
      type: object
      properties:
        error:
          type: string
          description: A human-readable error message.
        errors:
          type: array
          items:
            type: string
    Recipient:
      type: object
      properties:
        name:
          type: string
          description: The recipient's name.
        email:
          type: string
          description: The recipient's email address.
        id:
          type: string
          description: The recipient's ID as defined by your organization.
  parameters:
    CredentialId:
      name: id
      in: path
      required: true
      description: The unique ID of the credential.
      schema:
        type: integer
  responses:
    Unauthorized:
      description: Invalid or missing API key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: The requested resource was not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    tokenAuth:
      type: apiKey
      in: header
      name: Authorization
      description: API key sent in the Authorization header using the scheme `Token token=YOUR_API_KEY`.