Read Open Badge Assertion
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.
Path parameters
Query parameters
Open Badges version: '2.0' (default) or '3.0'
Open Badges version: '2.0' (default) or '3.0'
For version=3.0 only: 'json' (JSON-LD with an eddsa-rdfc-2022 Data Integrity proof) or 'jwt' (VC-JWT Compact JWS)
For version=3.0 only: 'json' (JSON-LD with an eddsa-rdfc-2022 Data Integrity proof) or 'jwt' (VC-JWT Compact JWS)
Headers
Response
Successful Response
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."
}
}