---
title: "Read Open Badge"
method: GET
path: "/v1/badge/{badge_id}/open_badges"
tags: ["Badge"]
---

# Read Open Badge

`GET /v1/badge/{badge_id}/open_badges`

## Request

- Base URL: `https://api.navigatr.app` (the document declares no server; this is the origin it was published from)
- URL: `https://api.navigatr.app/v1/badge/{badge_id}/open_badges`
- Auth: OAuth 2
  - Password
  - Token URL: `/v1/token`

Retrieve a badge using the Open Badges Schema.

## Path parameters

- `badge_id` integer, required

## Headers

- `X-Access-Token` string, nullable

## Response `200`

Successful Response

- OpenBadge
  - `@context` string
  - `type` string
  - `id` string
  - `name` string
  - `description` string
  - `image` OpenBadgeImage
    - `id` string, required
  - `criteria` OpenBadgeCriteria
    - `id` string, required
    - `narrative` string, required
  - `tags` string[], nullable
  - `issuer` OpenBadgeIssuer, required
    - `id` string, required
    - `@context` string
    - `type` string
    - `name` string, required
    - `url` string, required
    - `email` string, required
    - `description` string, nullable
    - `image` string, nullable
  - `alignment` OpenBadgeAlignment[], nullable
    - `targetName` string, required
    - `targetUrl` string, required
    - `targetDescription` string, required
    - `targetFramework` string, nullable
    - `targetCode` string, nullable

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `422`: Unprocessable Content

## Changes

- **2026-08-06** `4039d06e340b`: 4 info
  - api operation id `read_open_badge_v1_badge__badge_id__open_badges_get` removed and replaced with `badge_read_open_badge`
  - added the new optional `header` request parameter `X-Access-Token`
  - added the optional property `alignment/anyOf[subschema #1]/items/targetCode` to the response with the `200` status
  - the `detail` response's property default value changed from `Unauthorized access` to `Insufficient permissions` for the status `403`
- **2025-11-20** `6eb631bcc695`: 10 breaking, 3 info
  - the response property `description` became optional for the status `200`
  - the response property `id` became optional for the status `200`
  - the response property `name` became optional for the status `200`
  - response property `alignment` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - …9 more

[Operation history](https://skmtc.dev/navigatr/apis/navigatr-api/changes/v1/badge/:badge_id/open_badges/get.md)

---

[API](https://skmtc.dev/navigatr/apis/navigatr-api.md) - [All operations](https://skmtc.dev/navigatr/apis/navigatr-api/llms.txt) - [OpenAPI document](https://skmtc.dev/navigatr/apis/navigatr-api/revisions/efbd3c328549?raw)
