Badgr

Badgr is an open digital badging and micro-credentialing platform built on the Open Badges standard. Originally created by Concentric Sky, Badgr is now operated by Instructure as Canvas Credentials (and folded into Parchment Digital Badges). It lets organizations issue verifiable, portable achievement badges and learners collect them in a shareable Backpack. The platform is backed by the open-source badgr-server (github.com/concentricsky/badgr-server), which implements Open Badges 2.0/2.1 (Badge Connect). The documented REST API (base https://api.badgr.io/v2, with regional deployments in the EU, Canada, and Australia) uses OAuth2 bearer tokens and exposes Issuers, BadgeClasses, Assertions (awarded badges), the learner Backpack, Collections, and Users.

7 APIs 0 Features
Digital BadgesOpen BadgesMicro-CredentialsCredentialingVerifiable CredentialsEducationOpen Source

APIs

Badgr Issuers API

Create, list, get, update, and delete Issuers - the organizations or programs that award badges. Includes nested access to an issuer's BadgeClasses and Assertions, plus an issue...

Badgr BadgeClasses API

Define and manage BadgeClasses - the reusable badge templates (name, description, image, criteria, alignments, and tags) that get awarded as Assertions. Supports single and batc...

Badgr Assertions (Awarded Badges) API

Issue, retrieve, update, and revoke Assertions - individual awards of a BadgeClass to a named recipient. Assertions are the verifiable Open Badges objects; supports single and b...

Badgr Backpack API

The learner-side Backpack for badges an earner has received or imported from any Open Badges issuer. List and manage held Assertions, import external badges, retrieve baked badg...

Badgr Collections API

Group Backpack Assertions into named Collections that learners can curate and publish. Create, list, get, update, and delete collections, and generate a public share URL for a c...

Badgr Users API

Read and update the authenticated user's profile via /users/self, manage account emails and the latest terms version. Governs the identity behind both issuing and earning.

Badgr Authentication API

OAuth2 authentication surface. Exchange credentials for a bearer token at /o/token (scopes rw:profile rw:issuer rw:backpack), run the authorization-code flow at /o/authorize and...

Collections

Badgr API

OPEN

Pricing Plans

Badgr Plans Pricing

4 plans

PLANS

Rate Limits

Badgr Rate Limits

4 limits

RATE LIMITS

FinOps

Badgr Finops

FINOPS

Resources

🔗
DomainSecurity
DomainSecurity
🔑
Authentication
Authentication
🔑
OAuthScopes
OAuthScopes
👥
GitHubOrganization
GitHubOrganization
🔗
LinkedIn
LinkedIn
🔗
Website
Website
🔗
Documentation
Documentation
🔗
Plans
Plans
🔗
RateLimits
RateLimits
🔗
FinOps
FinOps

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: Badgr API
  version: '2.0'
  description: Badgr open digital badging platform (Instructure Canvas Credentials), implementing the Open Badges standard.
    Core server is open source (github.com/concentricsky/badgr-server). Base URL https://api.badgr.io/v2. Auth is OAuth2 bearer
    token from /o/token with scopes rw:profile rw:issuer rw:backpack.
request:
  auth:
    type: bearer
    token: '{{accessToken}}'
items:
- info:
    name: Authentication
    type: folder
  items:
  - info:
      name: Obtain access token
      type: http
    http:
      method: POST
      url: https://api.badgr.io/o/token
      auth:
        type: none
      body:
        type: urlencoded
        data: grant_type=password&username=you@example.com&password=&scope=rw:profile rw:issuer rw:backpack
    docs: Exchange credentials (or a refresh token) for an OAuth2 bearer access token.
  - info:
      name: List access tokens
      type: http
    http:
      method: GET
      url: https://api.badgr.io/v2/auth/tokens
    docs: List application access tokens for the authenticated user.
  - info:
      name: Revoke access token
      type: http
    http:
      method: DELETE
      url: https://api.badgr.io/v2/auth/tokens/:entityId
      params:
      - name: entityId
        value: ''
        type: path
        description: Access token entityId.
    docs: Revoke a specific access token.
- info:
    name: Issuers
    type: folder
  items:
  - info:
      name: List issuers
      type: http
    http:
      method: GET
      url: https://api.badgr.io/v2/issuers
    docs: List issuers the authenticated user can access.
  - info:
      name: Create issuer
      type: http
    http:
      method: POST
      url: https://api.badgr.io/v2/issuers
      body:
        type: json
        data: '{"name":"Example Issuer","url":"https://example.com","email":"badges@example.com"}'
    docs: Create a new issuer.
  - info:
      name: Get issuer
      type: http
    http:
      method: GET
      url: https://api.badgr.io/v2/issuers/:entityId
      params:
      - name: entityId
        value: ''
        type: path
        description: Issuer entityId.
    docs: Retrieve a single issuer by entityId.
  - info:
      name: Update issuer
      type: http
    http:
      method: PUT
      url: https://api.badgr.io/v2/issuers/:entityId
      params:
      - name: entityId
        value: ''
        type: path
        description: Issuer entityId.
      body:
        type: json
        data: '{"name":"Example Issuer (updated)"}'
    docs: Update an issuer.
  - info:
      name: Delete issuer
      type: http
    http:
      method: DELETE
      url: https://api.badgr.io/v2/issuers/:entityId
      params:
      - name: entityId
        value: ''
        type: path
        description: Issuer entityId.
    docs: Delete an issuer.
  - info:
      name: List issuer badge classes
      type: http
    http:
      method: GET
      url: https://api.badgr.io/v2/issuers/:entityId/badgeclasses
      params:
      - name: entityId
        value: ''
        type: path
        description: Issuer entityId.
    docs: List badge classes belonging to an issuer.
  - info:
      name: List issuer assertions
      type: http
    http:
      method: GET
      url: https://api.badgr.io/v2/issuers/:entityId/assertions
      params:
      - name: entityId
        value: ''
        type: path
        description: Issuer entityId.
    docs: List all assertions awarded by an issuer.
- info:
    name: BadgeClasses
    type: folder
  items:
  - info:
      name: List all badge classes
      type: http
    http:
      method: GET
      url: https://api.badgr.io/v2/badgeclasses
    docs: List all badge classes visible to the user.
  - info:
      name: Create badge class under issuer
      type: http
    http:
      method: POST
      url: https://api.badgr.io/v2/issuers/:entityId/badgeclasses
      params:
      - name: entityId
        value: ''
        type: path
        description: Issuer entityId.
      body:
        type: json
        data: '{"name":"Example Badge","description":"Awarded for completing the example","criteriaNarrative":"Complete the
          example task."}'
    docs: Create a badge class under an issuer.
  - info:
      name: Get badge class
      type: http
    http:
      method: GET
      url: https://api.badgr.io/v2/badgeclasses/:entityId
      params:
      - name: entityId
        value: ''
        type: path
        description: BadgeClass entityId.
    docs: Retrieve a badge class by entityId.
  - info:
      name: Update badge class
      type: http
    http:
      method: PUT
      url: https://api.badgr.io/v2/badgeclasses/:entityId
      params:
      - name: entityId
        value: ''
        type: path
        description: BadgeClass entityId.
      body:
        type: json
        data: '{"description":"Updated description"}'
    docs: Update a badge class.
  - info:
      name: Delete badge class
      type: http
    http:
      method: DELETE
      url: https://api.badgr.io/v2/badgeclasses/:entityId
      params:
      - name: entityId
        value: ''
        type: path
        description: BadgeClass entityId.
    docs: Delete a badge class.
- info:
    name: Assertions
    type: folder
  items:
  - info:
      name: List badge class assertions
      type: http
    http:
      method: GET
      url: https://api.badgr.io/v2/badgeclasses/:entityId/assertions
      params:
      - name: entityId
        value: ''
        type: path
        description: BadgeClass entityId.
    docs: List assertions of a badge class.
  - info:
      name: Issue assertion
      type: http
    http:
      method: POST
      url: https://api.badgr.io/v2/badgeclasses/:entityId/assertions
      params:
      - name: entityId
        value: ''
        type: path
        description: BadgeClass entityId.
      body:
        type: json
        data: '{"recipient":{"identity":"earner@example.com","type":"email","hashed":true}}'
    docs: Issue (award) an assertion of a badge class to a recipient.
  - info:
      name: Batch issue assertions
      type: http
    http:
      method: POST
      url: https://api.badgr.io/v2/badgeclasses/:entityId/issue
      params:
      - name: entityId
        value: ''
        type: path
        description: BadgeClass entityId.
      body:
        type: json
        data: '{"assertions":[{"recipient":{"identity":"a@example.com","type":"email","hashed":true}}]}'
    docs: Batch issue multiple assertions of a badge class.
  - info:
      name: Get assertion
      type: http
    http:
      method: GET
      url: https://api.badgr.io/v2/assertions/:entityId
      params:
      - name: entityId
        value: ''
        type: path
        description: Assertion entityId.
    docs: Retrieve an assertion by entityId.
  - info:
      name: Revoke assertion
      type: http
    http:
      method: DELETE
      url: https://api.badgr.io/v2/assertions/:entityId
      params:
      - name: entityId
        value: ''
        type: path
        description: Assertion entityId.
    docs: Revoke an assertion.
  - info:
      name: Batch revoke assertions
      type: http
    http:
      method: POST
      url: https://api.badgr.io/v2/assertions/revoke
      body:
        type: json
        data: '{"assertions":[{"entityId":"","revocationReason":"Issued in error"}]}'
    docs: Batch revoke multiple assertions.
- info:
    name: Backpack
    type: folder
  items:
  - info:
      name: List backpack assertions
      type: http
    http:
      method: GET
      url: https://api.badgr.io/v2/backpack/assertions
    docs: List badges held in the authenticated earner's backpack.
  - info:
      name: Import external badge
      type: http
    http:
      method: POST
      url: https://api.badgr.io/v2/backpack/import
      body:
        type: json
        data: '{"url":"https://example.org/assertion.json"}'
    docs: Import an external Open Badge into the backpack.
  - info:
      name: Share backpack assertion
      type: http
    http:
      method: PUT
      url: https://api.badgr.io/v2/backpack/share/assertion/:entityId
      params:
      - name: entityId
        value: ''
        type: path
        description: Assertion entityId.
    docs: Create a public share URL for a backpack assertion.
- info:
    name: Collections
    type: folder
  items:
  - info:
      name: List collections
      type: http
    http:
      method: GET
      url: https://api.badgr.io/v2/backpack/collections
    docs: List the earner's collections.
  - info:
      name: Create collection
      type: http
    http:
      method: POST
      url: https://api.badgr.io/v2/backpack/collections
      body:
        type: json
        data: '{"name":"My Achievements","description":"A curated set of badges"}'
    docs: Create a collection.
  - info:
      name: Get collection
      type: http
    http:
      method: GET
      url: https://api.badgr.io/v2/backpack/collections/:entityId
      params:
      - name: entityId
        value: ''
        type: path
        description: Collection entityId.
    docs: Retrieve a collection by entityId.
  - info:
      name: Delete collection
      type: http
    http:
      method: DELETE
      url: https://api.badgr.io/v2/backpack/collections/:entityId
      params:
      - name: entityId
        value: ''
        type: path
        description: Collection entityId.
    docs: Delete a collection.
- info:
    name: Users
    type: folder
  items:
  - info:
      name: Get own profile
      type: http
    http:
      method: GET
      url: https://api.badgr.io/v2/users/self
    docs: Retrieve the authenticated user's profile.
  - info:
      name: Update own profile
      type: http
    http:
      method: PUT
      url: https://api.badgr.io/v2/users/self
      body:
        type: json
        data: '{"firstName":"Kin","lastName":"Lane"}'
    docs: Update the authenticated user's profile.