Badge Assertion

Read Open Badge Assertion

Changed on

Retrieve a badge assertion using the Open Badges Schema.

Imported wallet assertions (source == Imported) are returned as a verbatim passthrough of the original raw_payload so the recipient identity hash, salt, and source URLs match the original assertion bit-for-bit. Re-building the wrapper from the local database would roll a fresh salt and re-hash the user's primary email, breaking the cryptographic tie back to the source issuer. (Imports are served in their original version regardless of the version param.)

version=3.0 emits a signed OB 3.0 OpenBadgeCredential for Navigatr-issued assertions: a JSON-LD credential with an embedded Data Integrity proof (format=json, application/ld+json) or a VC-JWT (format=jwt, application/jwt). A revoked assertion is NOT refused: the credential is emitted (200) with a credentialStatus entry pointing at the hosted BitstringStatusList, where the assertion's bit is set — the cryptographic-revocation mechanism OB 3.0 expects (a verifier dereferences the list and sees the revocation). Returns 400 for an unknown format and 422 when OB 3.0 emission is not enabled / keys are not provisioned / the assertion is not provider-issued. (410 still applies to deleted or otherwise unavailable assertions, as for 2.0.)

All other (2.0) assertions are built fresh from the database — raw_payload is NULL for those rows by design.

get/v1/badge_assertion/{badge_assertion_id}/open_badges

Request

Path parameters

badge_assertion_idinteger required

Query parameters

versionstring

Open Badges version: '2.0' (default) or '3.0'

formatstring

For version=3.0 only: 'json' (JSON-LD with an eddsa-rdfc-2022 Data Integrity proof) or 'jwt' (VC-JWT Compact JWS)

Headers

X-Access-Tokenstring nullable

Response

Successful Response

idstring required
@contextstring
typestring
issuedOnstring date-time required
narrativestring nullable
expiresstring date-time nullable
revokedboolean
revocationReasonstring nullable

Example response

{
  "badge": {
    "id": "https://navigatr.app/badge/12345/Learn-Your-ABCs",
    "name": "Learn Your ABCs",
    "description": "This badge is awarded to earners who have demonstrated their knowledge of all letters of the English alphabet."
  }
}

Changes

    • breaking

      the response's property type changed from array to string for status

    • info

      api operation id read_open_badge_assertion_v1_badge_assertion__badge_assertion_id__open_badges_get removed and replaced with badge_assertion_read_open_badge_assertion

    • info

      added the new optional header request parameter X-Access-Token

    • info

      added the new optional query request parameter format

    • info

      added the new optional query request parameter version

    • info

      added the non-success response with the status

    • info

      added the optional property //// to the response with the status

    • info

      the response's property default value Unprocessable data was added for the status

    • info

      the response's property default value changed from Unauthorized access to Insufficient permissions for the status

    • info

      the response's property default value changed from HostedBadge to hosted for the status

    • info

      added the required property / to the response with the status

    • breaking

      the response property / became optional for the status

    • breaking

      the response property / became optional for the status

    • breaking

      the response property / became optional for the status

    • breaking

      response property badge/alignment list-of-types was widened by adding types null to media type application/json of response 200

    • breaking

      response property badge/issuer/description list-of-types was widened by adding types null to media type application/json of response 200

    • breaking

      response property badge/issuer/image list-of-types was widened by adding types null to media type application/json of response 200

    • breaking

      response property badge/tags list-of-types was widened by adding types null to media type application/json of response 200

    • breaking

      response property evidence list-of-types was widened by adding types null to media type application/json of response 200

    • breaking

      response property expires list-of-types was widened by adding types null to media type application/json of response 200

    • breaking

      response property narrative list-of-types was widened by adding types null to media type application/json of response 200

    • breaking

      response property recipient/salt list-of-types was widened by adding types null to media type application/json of response 200

    • breaking

      response property revocationReason list-of-types was widened by adding types null to media type application/json of response 200

    • breaking

      the / response's property type changed from object to no type for status

    • breaking

      the response's property type changed from object to no type for status

    • breaking

      removed the required property // from the response with the status

    • breaking

      removed the required property // from the response with the status

    • breaking

      removed the required property / from the response with the status

    • info

      removed from the / response property allOf list for the response status

    • info

      added subschema #2 to the / response property anyOf list for the response status

    • info

      added subschema #2 to the / response property anyOf list for the response status

    • info

      added subschema #2 to the response property anyOf list for the response status

    • info

      the response's property default value was added for the status