Accredible Departments API

Independent sub-organizations within an issuer account.

Operations 5

POST /v1/departments Create a New Department #
GET /v1/departments/{department_id} View a Department #
PUT /v1/departments/{department_id} Update a Department #
DELETE /v1/departments/{department_id} Delete a Department #
POST /v1/departments/search Search for Departments #

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:accredible-departments-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

accredible-departments-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Accredible Credential Departments API
  version: 25.08.0
  description: 'The Accredible Credential API allows you to create and interact with badges and certificates called Accredible Credentials. There are 3 main objects in Accredible: Credentials, Groups and Designs. ### Getting Started with the API - Video Walkthrough


    ![Getting Started with the API Video Walkthrough](https://us06web.zoom.us/clips/share/_p4jjy0LQ-WOaQPviLor1A)


    # Objects Overview

    ## Credentials

    Credentials are the core object in the API. They collect all of the data related to a course, training activity or achievement and the recipient/participant information. You should create a credential for each achievement completion that a recipient has. For example if John Doe finishes the Programming 101 course we should create one credential to represent that. If John Doe achieves something else then he would need a new credential. ## Groups


    Groups represent an achievement such as a course or qualification. They contain information about the achievement and have multiple Credentials attached to them. For example you should create a group for the Introduction to Programming course. You''d provide the Course Name, Course Description and Course URL. In the future you can pass the name or ID of this group when creating a credential so that the credential is passed all the information relating to the achievement. ## Designs


    Designs provide a visual specification for how a Credential should be rendered. Designs can be used across multiple Groups. For example if we have three courses: Intro to Basic Programming, Intro to Advanced Programming and Intro to DevOps each of these may have the same design for their Credentials. When creating or updating their corresponding Groups you would attach the desired design accordingly. ## Departments


    Departments, if enabled for your account allow you to manage multiple, independent organization groups. Each Department is entirely separate with its own Designs, Groups, Branding, etc. You cannot share data between Departments except Billing and Administrators. ## Attributes


    Attributes, are used to merge information with your badge or certificate designs and email templates. Attributes act as placeholders for information and can be added to certificate designs and email templates. ## Skills Frameworks


    Skills Frameworks are structured taxonomies of skills — Accredible-maintained ones such as O*NET, ESCO and NACE, plus any your organization uploads itself. Tagging a Group against a framework version replaces the Group''s free-text `learning_outcomes` with skills that carry a stable identifier and a known position in a recognized taxonomy. For example, instead of listing `"Reading Books"` on your Introduction to Programming group, you can attach the O*NET skill `Reading Comprehension` together with the trail it sits on — Worker Requirements → Basic Skills → Content. Frameworks are read-only over the API: you discover the frameworks enabled for a department, search their skills, then select those skills when creating or updating a Group. Uploading and managing frameworks is done in the Accredible Dashboard. # API Keys


    API keys are used as Authorization tokens in the header in all authenticated API endpoints. These Keys are managed in the Accredible Dashboard. There are two types of API Keys, those that are account wide and work on all assets and those that are related to a specific department. API keys scoped to a specific department can only access the resources (Credentials, Groups, Designs etc.) belonging to that department. # Single sign-on options


    Single sign-on in addition to the student authentication provided by Accredible, you can also use single sign-on to authenticate your student into Accredible and they can directly sign-in. SSO is also available via our Integrations and via SAML 2.0. # Rate Limiting


    We allow up to 2000 requests every 5 minutes from a single IP address, but some higher security endpoints have stricter rate limiting. Requests are counted in 30 second periods.'
servers:
- url: https://api.accredible.com/
  description: Production environment - US
- url: https://eu.api.accredible.com/
  description: Production environment - EU
- url: https://sandbox.api.accredible.com/
  description: Sandbox environment - Testing environment
tags:
- name: Departments
  description: Resources related to Departments. If enabled for your account, Departments allow you to manage multiple independent organization groups. Each Department is entirely separate with it's own Designs, Groups, Branding, etc. You cannot share data between Departments excepting Billing and Administrators.
paths:
  /v1/departments:
    post:
      responses:
        '200':
          description: OK
          headers: {}
          content:
            application/json:
              schema:
                type: object
                properties:
                  department:
                    type: object
                    properties:
                      id:
                        type: number
                      name:
                        type: string
                      description:
                        type: string
                      url:
                        type: string
                      logo:
                        type: string
                      page_banner:
                        type: string
                      whitelabel_logo:
                        type: string
                      linkedin_company_id:
                        type: string
                      meta_data:
                        type: object
                        properties:
                          internal_id:
                            type: string
                          faculty:
                            type: string
                      generate_private_credential:
                        type: boolean
              example:
                department:
                  id: 1234
                  name: New Department
                  description: Example description text.
                  url: https://www.example.com
                  logo: https://images.credential.net/example/department_logo.png
                  page_banner: https://images.credential.net/example/banner_image.png
                  whitelabel_logo: https://images.credential.net/example/whitelabel_logo.png
                  linkedin_company_id: '5098253'
                  meta_data:
                    internal_id: R12
                    faculty: physics
                  generate_private_credential: false
      summary: Create a New Department
      operationId: CreateANewDepartment
      description: 'You may create a Department using this action. It takes a JSON object containing a Department.


        Authorization depends on the type of API key you use:


        | Account-wide key | Department-specific key |

        | --- | --- |

        | Allowed | Not permitted |'
      tags:
      - Departments
      requestBody:
        content:
          application/json:
            example:
              department:
                name: New Department
                description: Example description text.
                url: https://www.example.com
                logo: https://www.website.com/example-logo.png
                page_banner: https://www.website.com/example-banner.png
                whitelabel_logo: https://www.website.com/example-whitelabel-logo.png
                linkedin_company_id: '5098253'
                meta_data:
                  internal_id: R12
                  faculty: physics
                generate_private_credential: false
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: A name for the Department. This may be displayed publicly on Credentials.
                description:
                  type: string
                  description: A description for the Department. This may be displayed publicly.
                url:
                  type: string
                  description: URL for directing users to the website for the given Department. This may be used publicly.
                logo:
                  type: string
                  description: URL of an image representing the Department logo. Accredible will copy the given image and store the logo within it's own platform. Images should be square, at least 120px wide by 120px tall. PNG format preferred.
                page_banner:
                  type: string
                  description: URL of an image to display as the Department Banner. Accredible will copy the given image and store the logo within it's own platform. The image should be at least 1920px wide by 300px tall. PNG format preferred.
                whitelabel_logo:
                  type: string
                  description: URL of an image to display in the header and footer of the white-labeled recipient website. The image should be at least 208px wide by 32px tall. PNG format preferred.
                linkedin_company_id:
                  type: string
                  description: The LinkedIn company ID for the given Department.
                meta_data:
                  type: object
                  properties: {}
                  description: You can use this parameter to attach key-value strings to the object. Meta data is useful for storing additional, structured information on an object.
                generate_private_credential:
                  type: boolean
                  description: This boolean value will be used as the default of `Credential.private` when creating a new Credential unless it's overridden by `Group.generate_private_credential` that is set to `true` or `false`.
              required:
              - name
              - url
              - logo
      security:
      - ApiKeyAuth: []
      x-code-samples:
      - lang: cURL
        label: cURL
        source: "curl -X POST \\\n  \"https://api.accredible.com/v1/departments\" \\\n  -H \"Authorization: Token token=YOUR_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n  \"department\": {\n    \"name\": \"New Department\",\n    \"description\": \"Example description text.\",\n    \"url\": \"https://www.example.com\",\n    \"logo\": \"https://www.website.com/example-logo.png\",\n    \"page_banner\": \"https://www.website.com/example-banner.png\",\n    \"whitelabel_logo\": \"https://www.website.com/example-whitelabel-logo.png\",\n    \"linkedin_company_id\": \"5098253\",\n    \"meta_data\": {\n      \"internal_id\": \"R12\",\n      \"faculty\": \"physics\"\n    },\n    \"generate_private_credential\": false\n  }\n}'"
      x-operation-id-source: normalized
      x-operation-id-original: Create a New Department
  /v1/departments/{department_id}:
    get:
      responses:
        '200':
          description: OK
          headers: {}
          content:
            application/json:
              schema:
                type: object
                properties:
                  department:
                    type: object
                    properties:
                      id:
                        type: number
                      name:
                        type: string
                      description:
                        type: string
                      url:
                        type: string
                      logo:
                        type: string
                      page_banner:
                        type: string
                      whitelabel_logo:
                        type: string
                      linkedin_company_id:
                        type: string
                      meta_data:
                        type: object
                        properties:
                          internal_id:
                            type: string
                          faculty:
                            type: string
                      generate_private_credential:
                        type: boolean
              example:
                department:
                  id: 1234
                  name: New Department
                  description: Example description text.
                  url: https://www.example.com
                  logo: https://images.credential.net/example/department_logo.png
                  page_banner: https://images.credential.net/example/banner_image.png
                  whitelabel_logo: https://images.credential.net/example/whitelabel_logo.png
                  linkedin_company_id: '5098253'
                  meta_data:
                    internal_id: R12
                    faculty: physics
                  generate_private_credential: false
      summary: View a Department
      operationId: ViewADepartment
      description: 'View a single Department.


        Authorization depends on the type of API key you use:


        | Account-wide key | Department-specific key |

        | --- | --- |

        | Any Department in the account | Its own Department only |'
      tags:
      - Departments
      security:
      - ApiKeyAuth: []
      x-code-samples:
      - lang: cURL
        label: cURL
        source: "curl -X GET \\\n  \"https://api.accredible.com/v1/departments/12345\" \\\n  -H \"Authorization: Token token=YOUR_API_KEY\""
      x-operation-id-source: normalized
      x-operation-id-original: View a Department
    put:
      responses:
        '200':
          description: OK
          headers: {}
          content:
            application/json:
              schema:
                type: object
                properties:
                  department:
                    type: object
                    properties:
                      id:
                        type: number
                      name:
                        type: string
                      description:
                        type: string
                      url:
                        type: string
                      logo:
                        type: string
                      page_banner:
                        type: string
                      whitelabel_logo:
                        type: string
                      linkedin_company_id:
                        type: string
                      meta_data:
                        type: object
                        properties:
                          internal_id:
                            type: string
                          faculty:
                            type: string
                      generate_private_credential:
                        type: boolean
              example:
                department:
                  id: 1234
                  name: New Department Name
                  description: Example description text.
                  url: https://www.example.com
                  logo: https://images.credential.net/example/department_logo.png
                  page_banner: https://images.credential.net/example/banner_image.png
                  whitelabel_logo: https://images.credential.net/example/whitelabel_logo.png
                  linkedin_company_id: '5098253'
                  meta_data:
                    internal_id: R12
                    faculty: physics
                  generate_private_credential: false
      summary: Update a Department
      operationId: UpdateADepartment
      description: 'Update a Department using this action. It takes a JSON object containing a Department.


        Authorization depends on the type of API key you use:


        | Account-wide key | Department-specific key |

        | --- | --- |

        | Any Department in the account | Its own Department only |'
      tags:
      - Departments
      parameters:
      - name: department_id
        in: path
        description: ID of the Department in the form of an integer for the particular Department requested.
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            example:
              department:
                name: New Department Name
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: A name for the Department. This may be displayed publicly on Credentials.
                description:
                  type: string
                  description: A description for the Department. This may be displayed publicly.
                url:
                  type: string
                  description: URL for directing users to the website for the given Department. This may be used publicly.
                logo:
                  type: string
                  description: URL of an image representing the Department logo. Accredible will copy the given image and store the logo within it's own platform. Images should be square, at least 120px wide by 120px tall. PNG format preferred.
                page_banner:
                  type: string
                  description: URL of an image to display as the Department Banner. Accredible will copy the given image and store the logo within it's own platform. The image should be at least 1920px wide by 300px tall. PNG format preferred.
                whitelabel_logo:
                  type: string
                  description: URL of an image to display in the header and footer of the white-labeled recipient website. The image should be at least 208px wide by 32px tall. PNG format preferred.
                linkedin_company_id:
                  type: string
                  description: The LinkedIn company ID for the given Department.
                meta_data:
                  type: object
                  properties: {}
                  description: You can use this parameter to attach key-value strings to the object. Meta data is useful for storing additional, structured information on an object.
                generate_private_credential:
                  type: boolean
                  description: This boolean value will be used as the default of `Credential.private` when creating a new Credential unless it's overridden by `Group.generate_private_credential` that is set to `true` or `false`.
      security:
      - ApiKeyAuth: []
      x-code-samples:
      - lang: cURL
        label: cURL
        source: "curl -X PUT \\\n  \"https://api.accredible.com/v1/departments/12345\" \\\n  -H \"Authorization: Token token=YOUR_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n  \"department\": {\n    \"name\": \"New Department Name\"\n  }\n}'"
      x-operation-id-source: normalized
      x-operation-id-original: Update a Department
    delete:
      responses:
        '200':
          description: OK
          headers: {}
          content:
            application/json:
              schema:
                type: object
                properties:
                  department:
                    type: object
                    properties:
                      id:
                        type: number
                      name:
                        type: string
                      description:
                        type: string
                      url:
                        type: string
                      logo:
                        type: string
                      page_banner:
                        type: string
                      whitelabel_logo:
                        type: string
                      linkedin_company_id:
                        type: string
                      meta_data:
                        type: object
                        properties:
                          internal_id:
                            type: string
                          faculty:
                            type: string
                      generate_private_credential:
                        type: boolean
              example:
                department:
                  id: 1234
                  name: New Department Name
                  description: Example description text.
                  url: https://www.example.com
                  logo: https://images.credential.net/example/department_logo.png
                  page_banner: https://images.credential.net/example/banner_image.png
                  whitelabel_logo: https://images.credential.net/example/whitelabel_logo.png
                  linkedin_company_id: '5098253'
                  meta_data:
                    internal_id: R12
                    faculty: physics
                  generate_private_credential: false
      summary: Delete a Department
      operationId: DeleteADepartment
      description: 'Delete a Department using this action.


        Authorization depends on the type of API key you use:


        | Account-wide key | Department-specific key |

        | --- | --- |

        | Allowed | Not permitted |'
      tags:
      - Departments
      parameters:
      - name: department_id
        in: path
        description: ID of the Department in the form of an integer for the particular Department requested.
        required: true
        schema:
          type: string
      security:
      - ApiKeyAuth: []
      x-code-samples:
      - lang: cURL
        label: cURL
        source: "curl -X DELETE \\\n  \"https://api.accredible.com/v1/departments/12345\" \\\n  -H \"Authorization: Token token=YOUR_API_KEY\""
      x-operation-id-source: normalized
      x-operation-id-original: Delete a Department
  /v1/departments/search:
    post:
      responses:
        '200':
          description: OK
          headers: {}
          content:
            application/json:
              schema:
                type: object
                properties:
                  departments:
                    type: object
                    properties:
                      id:
                        type: number
                      name:
                        type: string
                      description:
                        type: string
                      url:
                        type: string
                      logo:
                        type: string
                      page_banner:
                        type: string
                      whitelabel_logo:
                        type: string
                      linkedin_company_id:
                        type: string
                      meta_data:
                        type: object
                        properties:
                          internal_id:
                            type: string
                          faculty:
                            type: string
                      generate_private_credential:
                        type: boolean
              example:
                departments:
                  id: 1234
                  name: New Department Name
                  description: Example description text.
                  url: https://www.example.com
                  logo: https://images.credential.net/example/department_logo.png
                  page_banner: https://images.credential.net/example/banner_image.png
                  whitelabel_logo: https://images.credential.net/example/whitelabel_logo.png
                  linkedin_company_id: '5098253'
                  meta_data:
                    internal_id: R12
                    faculty: physics
                  generate_private_credential: false
      summary: Search for Departments
      operationId: SearchForDepartments
      description: 'You can search for departments by various search criteria.


        Authorization depends on the type of API key you use:


        | Account-wide key | Department-specific key |

        | --- | --- |

        | All Departments in the account | Its own Department only |'
      tags:
      - Departments
      requestBody:
        content:
          application/json:
            example:
              meta_data:
                faculty: physics
              page_size: 50
              page: 1
            schema:
              type: object
              properties:
                meta_data:
                  type: object
                page_size:
                  type: number
                  description: The pagination response size, default of 50.
                page:
                  type: number
                  description: The pagination page.
      security:
      - ApiKeyAuth: []
      x-code-samples:
      - lang: cURL
        label: cURL
        source: "curl -X POST \\\n  \"https://api.accredible.com/v1/departments/search\" \\\n  -H \"Authorization: Token token=YOUR_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n  \"meta_data\": {\n    \"faculty\": \"physics\"\n  },\n  \"page_size\": 50,\n  \"page\": 1\n}'"
      x-operation-id-source: normalized
      x-operation-id-original: Search for Departments
components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: 'Use the format: Token token=YOUR_API_KEY'
x-provenance:
  method: harvested
  publisher: Accredible
  source: https://docs.api.accredible.com/openapi.json
  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)