Read Open Badge Assertion
Changed onRetrieve 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.
Request
- Base URLhttps://api.navigatr.app (the document declares no server; this is the origin it was published from)
- AuthOAuth 2PasswordToken URL/v1/token
- TypeScriptA function with typed inputs. Its response is checked against the schema.
Path parameters
Query parameters
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)
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."
}
}Changes
- breaking
the
response's property type changed fromarraytostringfor status - info
api operation id
read_open_badge_assertion_v1_badge_assertion__badge_assertion_id__open_badges_getremoved and replaced withbadge_assertion_read_open_badge_assertion - info
added the new optional
headerrequest parameterX-Access-Token - info
added the new optional
queryrequest parameterformat - info
added the new optional
queryrequest parameterversion - 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 valueUnprocessable datawas added for the status - info
the
response's property default value changed fromUnauthorized accesstoInsufficient permissionsfor the status - info
the
response's property default value changed fromHostedBadgetohostedfor the status - info
added the required property
/to the response with the status
- breaking
- 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/alignmentlist-of-types was widened by adding typesnullto media typeapplication/jsonof response200 - breaking
response property
badge/issuer/descriptionlist-of-types was widened by adding typesnullto media typeapplication/jsonof response200 - breaking
response property
badge/issuer/imagelist-of-types was widened by adding typesnullto media typeapplication/jsonof response200 - breaking
response property
badge/tagslist-of-types was widened by adding typesnullto media typeapplication/jsonof response200 - breaking
response property
evidencelist-of-types was widened by adding typesnullto media typeapplication/jsonof response200 - breaking
response property
expireslist-of-types was widened by adding typesnullto media typeapplication/jsonof response200 - breaking
response property
narrativelist-of-types was widened by adding typesnullto media typeapplication/jsonof response200 - breaking
response property
recipient/saltlist-of-types was widened by adding typesnullto media typeapplication/jsonof response200 - breaking
response property
revocationReasonlist-of-types was widened by adding typesnullto media typeapplication/jsonof response200 - breaking
the
/response's property type changed fromobjectto no type for status - breaking
the
response's property type changed fromobjectto 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 propertyallOflist for the response status - info
added
subschema #2to the/response propertyanyOflist for the response status - info
added
subschema #2to the/response propertyanyOflist for the response status - info
added
subschema #2to theresponse propertyanyOflist for the response status - info
the
response's property default valuewas added for the status
- breaking