---
title: "Read Badges"
method: GET
path: "/v1/badge/"
tags: ["Badge"]
---

# Read Badges

`GET /v1/badge/`

## 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/`
- Auth: OAuth 2
  - Password
  - Token URL: `/v1/token`
- TypeScript: <https://skmtc.dev/navigatr/apis/navigatr-api/docs/v1/badge/get.ts> (a function with typed inputs; its response is checked against the schema)

Retrieve an array of badges filtered by a **Provider**, **Community**, **QA Community** or a **Badge Issuer**. Only one value is required.
On the public API, authentication is required and only badges for the current user's own provider or community may be listed.
Optional parameters may be passed to filter the query.

Results can be ordered by name or time_created, either ascending or descending by passing a value into `order_by`. See below.
By default, badges are ordered alphabetically.

| Filter | Description |
| --- | --- |
| `provider_id (int)` | Set the provider ID to get the badges that belong to a specific provider. You can find your provider ID in the URL of your provider profile. |
| `community_id (int)` | Set the community ID to get the badges that belong to a specific community. You can find your community ID in the URL of your community profile. |
| `qa_community_id (int)` | Set the QA community ID to get the badges that belong to a specific QA community. |
| `issuer_id (int)` | Set the issuer ID to get the badges that belong to a specific issuer. This is a rarely used filter.|
| `status (string)` | A comma separated list of badge statuses. Filter badges by status. If none are provided, all statuses the current user has access to will be returned. |
| `keyword (string)` | Get badges with names similar to the provided string. |
| `featured (bool)` | Get only featured or unfeatured badges. |
| `qa_locked (bool)` | Get only badges that are QA locked (an edit lock: only QA approvers can edit them). |
| `type (Badge_Type)` | Get only badges of a certain type. See below for the available types |
| `source (Source_Type)` | Get only badges of a certain sort. See below for available sources |

**Badge_Status**:

    Initialising, Draft, Awaiting_Approval, Published, Expired, Deleted

**Badge_Type**:

    Generic Types:

        Experience, Learning, Validation, Certification, Attendance, Work_Experience, Volunteering, Job,
        Apprenticeship, Course, Membership, Internship, Workshop, Campaigning, Activism, Other

    Navigatr Standard Types:

        Informal_Learning, Training, Certified, Qualification, Membership

**Recipient_Type**:

    User, Organisation

**Source_Type**:

    Internal, Credly

**Badge_Order_By**:

    Time_Created_Asc, Time_Created_Desc, Name_Asc, Name_Desc

## Query parameters

- `issuer_id` integer
- `community_id` integer
- `qa_community_id` integer
- `provider_id` integer
- `featured` boolean
- `qa_locked` boolean
- `type` 'Experience' | 'Learning' | 'Validation' | 'Certification' | 'Attendance' | 'Work_Experience' | 'Volunteering' | 'Job' | 'Apprenticeship' | 'Course' | 'Internship' | 'Workshop' | 'Campaigning' | 'Activism' | 'Other' | 'Informal_Learning' | 'Training' | 'Certified' | 'Qualification' | 'Membership'
- `recipient_type` 'User' | 'Organisation'
- `source` string
- `order_by` 'Time_Created_Asc' | 'Time_Created_Desc' | 'Time_Updated_Asc' | 'Time_Updated_Desc' | 'Name_Asc' | 'Name_Desc'
- `keyword` string
- `status` string
- `paginated` boolean
- `page` integer
- `size` integer

## Headers

- `X-Access-Token` string, nullable

## Response `200`

Successful Response

- union
  - PageBadge
    - `items` Badge[], required
      - `name` string, nullable
      - `design_standard` 'Generic' | 'Navigatr'
      - `type` 'Experience' | 'Learning' | 'Validation' | 'Certification' | 'Attendance' | 'Work_Experience' | 'Volunteering' | 'Job' | 'Apprenticeship' | 'Course' | 'Internship' | 'Workshop' | 'Campaigning' | 'Activism' | 'Other' | 'Informal_Learning' | 'Training' | 'Certified' | 'Qualification' | 'Membership'
      - `language` 'Arabic_Modern_Standard' | 'Bengali' | 'Bulgarian' | 'Chinese_Cantonese' | 'Chinese_Mandarin' | 'Chinese_Simplified' | 'Chinese_Traditional' | 'Croatian' | 'Czech' | 'Dutch' | 'English' | 'French' | 'German' | 'Greek' | 'Hungarian' | 'Irish_Gaeilge' | 'Italian' | 'Kurdish_Kurmanji' | 'Kurdish_Sorani' | 'Latvian' | 'Lithuanian' | 'Pashto' | 'Persian' | 'Polish' | 'Portuguese' | 'Punjabi' | 'Romanian' | 'Scottish_Gaelic_Gaidhlig' | 'Slovak' | 'Somali' | 'Spanish' | 'Tigrinya' | 'Turkish' | 'Ukrainian' | 'Urdu' | 'Welsh_Cymraeg'
      - `provider_ids` integer[], nullable
      - `community_ids` integer[], nullable
      - `recipient_type` 'User' | 'Organisation'
      - `description` string, nullable
      - `issuer_id` integer, nullable
      - `image_url` string, nullable
      - `image_url_2x` string, nullable
      - `image_url_original` string, nullable
      - `design_parameters` unknown
      - `source` 'Internal' | 'Credly' | 'Open_University' | 'Imported'
      - `earn_url` string, nullable
      - `external_url` string, nullable
      - `information_url` string, nullable
      - `embed` string, nullable
      - `external_id` string, nullable
      - `latitude` number, nullable
      - `longitude` number, nullable
      - `city` string, nullable
      - `country` string, nullable
      - `config` unknown
      - `address` string, nullable
      - `available_to_all` boolean, nullable
      - `availability` string, nullable
      - `end_date` string, date-time, nullable
      - `cost` 'Free' | 'Paid' | 'Other'
      - `level` 'Foundational' | 'Intermediate' | 'Advanced' | 'Other' | 'Explore' | 'Deepen' | 'Apply' | 'Teach' | 'Lead'
      - `time_to_earn` 'Hours' | 'Days' | 'Weeks' | 'Months' | 'Years' | 'Other'
      - `participation_type` 'Online' | 'Hybrid' | 'In_Person'
      - `qa_locked` boolean, nullable
      - `job_titles` string[], nullable
      - `specialized_occupations` string[], nullable
      - `title_names` string[], nullable
      - `is_demo` boolean, nullable
      - `certificates_enabled` boolean
      - `industries` string[], nullable
      - `occupation_groups` string[], nullable
      - `skill_category_names` string[], nullable
      - `edu_levels` string[], nullable
      - `qualification_code` string, nullable
      - `credits_available` number, nullable
      - `credits_unit` string, nullable
      - `qualification_type` 'Award' | 'Certificate' | 'Diploma'
      - `qualification_framework` 'RQF' | 'CQFW' | 'SCQF' | 'EQF' | 'QFEmirates'
      - `qualification_level` string, nullable
      - `grade` 'Pass' | 'Merit' | 'Distinction' | 'Distinction*'
      - `field_of_study_id` integer, nullable
      - `id` integer
      - `status` 'Initialising' | 'Draft' | 'Awaiting_Approval' | 'Published' | 'Deleted' | 'Expired'
      - `created_by` UserDetailPublic
        - `id` integer
        - `firstname` string, nullable, required
        - `lastname` string, nullable, required
        - `avatar_url` string, nullable
        - `avatar_url_2x` string, nullable
        - `avatar_url_original` string, nullable
        - `interests` string[], nullable
        - `noindex_enabled` boolean, nullable
        - `visibility` 'Public' | 'Private': Who may see a user's human-readable public pages (profile, badge and pathway assertion). Deliberately NOT a User_Status value: a Private user is still Active, they can sign in, earn badges and be issued to exactly as before. Also independent of `noindex_enabled`, which only asks search engines not to index a page that stays publicly reachable. Enforced in crud_user_detail.can_read, so every existing "view this user" gate inherits it.
        - `time_created` string, date-time
        - `time_updated` string, date-time, nullable
        - `seo_keywords` string[], nullable
        - `seo_title` string, nullable
        - `seo_description` string, nullable
        - `social_handle_linkedin` string, nullable
        - `social_handle_twitter` string, nullable
        - `social_handle_facebook` string, nullable
        - `social_handle_instagram` string, nullable
      - `submitted_by` UserDetailPublic
        - `id` integer
        - `firstname` string, nullable, required
        - `lastname` string, nullable, required
        - `avatar_url` string, nullable
        - `avatar_url_2x` string, nullable
        - `avatar_url_original` string, nullable
        - `interests` string[], nullable
        - `noindex_enabled` boolean, nullable
        - `visibility` 'Public' | 'Private': Who may see a user's human-readable public pages (profile, badge and pathway assertion). Deliberately NOT a User_Status value: a Private user is still Active, they can sign in, earn badges and be issued to exactly as before. Also independent of `noindex_enabled`, which only asks search engines not to index a page that stays publicly reachable. Enforced in crud_user_detail.can_read, so every existing "view this user" gate inherits it.
        - `time_created` string, date-time
        - `time_updated` string, date-time, nullable
        - `seo_keywords` string[], nullable
        - `seo_title` string, nullable
        - `seo_description` string, nullable
        - `social_handle_linkedin` string, nullable
        - `social_handle_twitter` string, nullable
        - `social_handle_facebook` string, nullable
        - `social_handle_instagram` string, nullable
      - `published_by` UserDetailPublic
        - `id` integer
        - `firstname` string, nullable, required
        - `lastname` string, nullable, required
        - `avatar_url` string, nullable
        - `avatar_url_2x` string, nullable
        - `avatar_url_original` string, nullable
        - `interests` string[], nullable
        - `noindex_enabled` boolean, nullable
        - `visibility` 'Public' | 'Private': Who may see a user's human-readable public pages (profile, badge and pathway assertion). Deliberately NOT a User_Status value: a Private user is still Active, they can sign in, earn badges and be issued to exactly as before. Also independent of `noindex_enabled`, which only asks search engines not to index a page that stays publicly reachable. Enforced in crud_user_detail.can_read, so every existing "view this user" gate inherits it.
        - `time_created` string, date-time
        - `time_updated` string, date-time, nullable
        - `seo_keywords` string[], nullable
        - `seo_title` string, nullable
        - `seo_description` string, nullable
        - `social_handle_linkedin` string, nullable
        - `social_handle_twitter` string, nullable
        - `social_handle_facebook` string, nullable
        - `social_handle_instagram` string, nullable
      - `updated_by` UserDetailPublic
        - `id` integer
        - `firstname` string, nullable, required
        - `lastname` string, nullable, required
        - `avatar_url` string, nullable
        - `avatar_url_2x` string, nullable
        - `avatar_url_original` string, nullable
        - `interests` string[], nullable
        - `noindex_enabled` boolean, nullable
        - `visibility` 'Public' | 'Private': Who may see a user's human-readable public pages (profile, badge and pathway assertion). Deliberately NOT a User_Status value: a Private user is still Active, they can sign in, earn badges and be issued to exactly as before. Also independent of `noindex_enabled`, which only asks search engines not to index a page that stays publicly reachable. Enforced in crud_user_detail.can_read, so every existing "view this user" gate inherits it.
        - `time_created` string, date-time
        - `time_updated` string, date-time, nullable
        - `seo_keywords` string[], nullable
        - `seo_title` string, nullable
        - `seo_description` string, nullable
        - `social_handle_linkedin` string, nullable
        - `social_handle_twitter` string, nullable
        - `social_handle_facebook` string, nullable
        - `social_handle_instagram` string, nullable
      - `issuer` BadgeIssuerPublic
        - `id` integer
        - `name` string, nullable
        - `type` 'Employer' | 'Learning_Provider' | 'Other'
        - `status` 'Active' | 'Suspended' | 'Deleted'
        - `external_url` string, nullable
        - `email` string, nullable
        - `image_url` string, nullable
        - `banner_url` string, nullable
        - `image_url_2x` string, nullable
        - `banner_url_2x` string, nullable
      - `ranking` integer, nullable
      - `time_created` string, date-time
      - `time_updated` string, date-time, nullable
      - `time_submitted` string, date-time, nullable
      - `time_published` string, date-time, nullable
      - `quality_assured_at` string, date-time, nullable
      - `time_issued` string, date-time, nullable
      - `postal_address` Address
        - `full_address` string, nullable
        - `name` string, nullable
        - `number` string, nullable
        - `street` string, nullable
        - `postcode` string, nullable
        - `locality` string, nullable
        - `city` string, nullable
        - `district` string, nullable
        - `region` string, nullable
        - `country` string, nullable
      - `created_by_id` integer, nullable
      - `submitted_by_id` integer, nullable
      - `published_by_id` integer, nullable
      - `updated_by_id` integer, nullable
      - `criteria` BadgeCriteria[], nullable
        - `external_id` string, nullable
        - `description` string, nullable
        - `type` 'Application' | 'Assessment' | 'Award' | 'Badge' | 'Course' | 'Credential' | 'Education_Experience' | 'Leadership' | 'Member' | 'Participant' | 'Pathway' | 'Payment' | 'Portfolio' | 'Presenter' | 'Project' | 'Professional_Experience' | 'Schedule_Registration' | 'Volunteer' | 'Other'
        - `external_url` string, nullable
        - `badge_id` integer, nullable
        - `id` integer, nullable
      - `tags` BadgeTag[], nullable
        - `name` string, nullable
        - `external_id` string, nullable
        - `type` string, nullable
        - `source` string, nullable
      - `alignments` BadgeAlignment[], nullable
        - `external_id` string, nullable
        - `name` string, nullable
        - `description` string, nullable
        - `url` string, nullable
        - `framework` string, nullable
        - `code` string, nullable
        - `id` integer, nullable
        - `badge_id` integer, nullable
      - `endorsements` BadgeEndorsement[], nullable
        - `external_id` string, nullable
        - `name` string, nullable
        - `description` string, nullable
        - `url` string, nullable
        - `image_url` string, nullable
        - `image_url_2x` string, nullable
        - `image_url_original` string, nullable
        - `id` integer, nullable
        - `badge_id` integer, nullable
      - `collections` CollectionLight[], nullable
        - `id` integer, required
        - `name` string, nullable
        - `badge_issuer_id` integer, nullable
      - `providers` ProviderLight[], nullable
        - `id` integer, required
        - `status` 'Active' | 'Suspended' | 'Deleted'
        - `type` 'Learning_Provider' | 'Training_Provider' | 'Awarding_Body' | 'Employer' | 'Local_Authority' | 'University' | 'College' | 'Charity' | 'Department' | 'Project' | 'Other'
        - `name` string, nullable
        - `short_name` string, nullable
        - `external_url` string, nullable
        - `is_verified` boolean, nullable
        - `verification_text` string, nullable
        - `verification_url` string, nullable
        - `is_demo` boolean, nullable
        - `open_access` boolean
        - `community_id` integer, nullable
        - `community` CommunityLight, required
          - `id` integer, required
          - `status` 'Active' | 'Suspended' | 'Deleted'
          - `type` 'City' | 'Region' | 'Local_Authority' | 'Membership_Organisation' | 'Awarding_Body' | 'Partnership' | 'Corporate' | 'Association' | 'University' | 'College' | 'Charity' | 'Other'
          - `name` string, nullable
          - `short_name` string, nullable
          - `is_verified` boolean, nullable
          - `image_url` string, nullable
          - `image_url_2x` string, nullable
          - `image_url_original` string, nullable
          - `linkedin_organisation_id` integer, nullable
          - `social_handle_linkedin` string, nullable
          - `social_handle_twitter` string, nullable
          - `social_handle_facebook` string, nullable
          - `social_handle_instagram` string, nullable
          - `url` string, nullable
        - `image_url` string, nullable
        - `banner_url` string, nullable
        - `image_url_2x` string, nullable
        - `banner_url_2x` string, nullable
        - `image_url_original` string, nullable
        - `banner_url_original` string, nullable
        - `qa_community_id` integer, nullable
        - `linkedin_organisation_id` integer, nullable
        - `social_handle_linkedin` string, nullable
        - `social_handle_twitter` string, nullable
        - `social_handle_facebook` string, nullable
        - `social_handle_instagram` string, nullable
        - `url` string, nullable
      - `interacted_with` boolean, nullable
      - `featured` boolean
      - `ai_generated` boolean
      - `url` string
      - `seo_keywords` string[], nullable
      - `seo_title` string, nullable
      - `seo_description` string, nullable
      - `field_of_study` SectorSubjectAreaEmbedded: A badge's field of study as embedded in badge reads and the Ofqual lookup (#1946). The website editor and the CLI read these names, so they are a contract.
        - `id` integer, required
        - `code` string, required
        - `name` string, required
        - `tier_1_name` string, nullable
        - `image_label` string, nullable
      - `display_level` string, nullable, required: The one level to show: the qualification level label when set, else `level` (#1915).
    - `total` integer, required
    - `page` integer, required
    - `size` integer, required
    - `pages` integer, required
  - Badge[]
    - `name` string, nullable
    - `design_standard` 'Generic' | 'Navigatr'
    - `type` 'Experience' | 'Learning' | 'Validation' | 'Certification' | 'Attendance' | 'Work_Experience' | 'Volunteering' | 'Job' | 'Apprenticeship' | 'Course' | 'Internship' | 'Workshop' | 'Campaigning' | 'Activism' | 'Other' | 'Informal_Learning' | 'Training' | 'Certified' | 'Qualification' | 'Membership'
    - `language` 'Arabic_Modern_Standard' | 'Bengali' | 'Bulgarian' | 'Chinese_Cantonese' | 'Chinese_Mandarin' | 'Chinese_Simplified' | 'Chinese_Traditional' | 'Croatian' | 'Czech' | 'Dutch' | 'English' | 'French' | 'German' | 'Greek' | 'Hungarian' | 'Irish_Gaeilge' | 'Italian' | 'Kurdish_Kurmanji' | 'Kurdish_Sorani' | 'Latvian' | 'Lithuanian' | 'Pashto' | 'Persian' | 'Polish' | 'Portuguese' | 'Punjabi' | 'Romanian' | 'Scottish_Gaelic_Gaidhlig' | 'Slovak' | 'Somali' | 'Spanish' | 'Tigrinya' | 'Turkish' | 'Ukrainian' | 'Urdu' | 'Welsh_Cymraeg'
    - `provider_ids` integer[], nullable
    - `community_ids` integer[], nullable
    - `recipient_type` 'User' | 'Organisation'
    - `description` string, nullable
    - `issuer_id` integer, nullable
    - `image_url` string, nullable
    - `image_url_2x` string, nullable
    - `image_url_original` string, nullable
    - `design_parameters` unknown
    - `source` 'Internal' | 'Credly' | 'Open_University' | 'Imported'
    - `earn_url` string, nullable
    - `external_url` string, nullable
    - `information_url` string, nullable
    - `embed` string, nullable
    - `external_id` string, nullable
    - `latitude` number, nullable
    - `longitude` number, nullable
    - `city` string, nullable
    - `country` string, nullable
    - `config` unknown
    - `address` string, nullable
    - `available_to_all` boolean, nullable
    - `availability` string, nullable
    - `end_date` string, date-time, nullable
    - `cost` 'Free' | 'Paid' | 'Other'
    - `level` 'Foundational' | 'Intermediate' | 'Advanced' | 'Other' | 'Explore' | 'Deepen' | 'Apply' | 'Teach' | 'Lead'
    - `time_to_earn` 'Hours' | 'Days' | 'Weeks' | 'Months' | 'Years' | 'Other'
    - `participation_type` 'Online' | 'Hybrid' | 'In_Person'
    - `qa_locked` boolean, nullable
    - `job_titles` string[], nullable
    - `specialized_occupations` string[], nullable
    - `title_names` string[], nullable
    - `is_demo` boolean, nullable
    - `certificates_enabled` boolean
    - `industries` string[], nullable
    - `occupation_groups` string[], nullable
    - `skill_category_names` string[], nullable
    - `edu_levels` string[], nullable
    - `qualification_code` string, nullable
    - `credits_available` number, nullable
    - `credits_unit` string, nullable
    - `qualification_type` 'Award' | 'Certificate' | 'Diploma'
    - `qualification_framework` 'RQF' | 'CQFW' | 'SCQF' | 'EQF' | 'QFEmirates'
    - `qualification_level` string, nullable
    - `grade` 'Pass' | 'Merit' | 'Distinction' | 'Distinction*'
    - `field_of_study_id` integer, nullable
    - `id` integer
    - `status` 'Initialising' | 'Draft' | 'Awaiting_Approval' | 'Published' | 'Deleted' | 'Expired'
    - `created_by` UserDetailPublic
      - `id` integer
      - `firstname` string, nullable, required
      - `lastname` string, nullable, required
      - `avatar_url` string, nullable
      - `avatar_url_2x` string, nullable
      - `avatar_url_original` string, nullable
      - `interests` string[], nullable
      - `noindex_enabled` boolean, nullable
      - `visibility` 'Public' | 'Private': Who may see a user's human-readable public pages (profile, badge and pathway assertion). Deliberately NOT a User_Status value: a Private user is still Active, they can sign in, earn badges and be issued to exactly as before. Also independent of `noindex_enabled`, which only asks search engines not to index a page that stays publicly reachable. Enforced in crud_user_detail.can_read, so every existing "view this user" gate inherits it.
      - `time_created` string, date-time
      - `time_updated` string, date-time, nullable
      - `seo_keywords` string[], nullable
      - `seo_title` string, nullable
      - `seo_description` string, nullable
      - `social_handle_linkedin` string, nullable
      - `social_handle_twitter` string, nullable
      - `social_handle_facebook` string, nullable
      - `social_handle_instagram` string, nullable
    - `submitted_by` UserDetailPublic
      - `id` integer
      - `firstname` string, nullable, required
      - `lastname` string, nullable, required
      - `avatar_url` string, nullable
      - `avatar_url_2x` string, nullable
      - `avatar_url_original` string, nullable
      - `interests` string[], nullable
      - `noindex_enabled` boolean, nullable
      - `visibility` 'Public' | 'Private': Who may see a user's human-readable public pages (profile, badge and pathway assertion). Deliberately NOT a User_Status value: a Private user is still Active, they can sign in, earn badges and be issued to exactly as before. Also independent of `noindex_enabled`, which only asks search engines not to index a page that stays publicly reachable. Enforced in crud_user_detail.can_read, so every existing "view this user" gate inherits it.
      - `time_created` string, date-time
      - `time_updated` string, date-time, nullable
      - `seo_keywords` string[], nullable
      - `seo_title` string, nullable
      - `seo_description` string, nullable
      - `social_handle_linkedin` string, nullable
      - `social_handle_twitter` string, nullable
      - `social_handle_facebook` string, nullable
      - `social_handle_instagram` string, nullable
    - `published_by` UserDetailPublic
      - `id` integer
      - `firstname` string, nullable, required
      - `lastname` string, nullable, required
      - `avatar_url` string, nullable
      - `avatar_url_2x` string, nullable
      - `avatar_url_original` string, nullable
      - `interests` string[], nullable
      - `noindex_enabled` boolean, nullable
      - `visibility` 'Public' | 'Private': Who may see a user's human-readable public pages (profile, badge and pathway assertion). Deliberately NOT a User_Status value: a Private user is still Active, they can sign in, earn badges and be issued to exactly as before. Also independent of `noindex_enabled`, which only asks search engines not to index a page that stays publicly reachable. Enforced in crud_user_detail.can_read, so every existing "view this user" gate inherits it.
      - `time_created` string, date-time
      - `time_updated` string, date-time, nullable
      - `seo_keywords` string[], nullable
      - `seo_title` string, nullable
      - `seo_description` string, nullable
      - `social_handle_linkedin` string, nullable
      - `social_handle_twitter` string, nullable
      - `social_handle_facebook` string, nullable
      - `social_handle_instagram` string, nullable
    - `updated_by` UserDetailPublic
      - `id` integer
      - `firstname` string, nullable, required
      - `lastname` string, nullable, required
      - `avatar_url` string, nullable
      - `avatar_url_2x` string, nullable
      - `avatar_url_original` string, nullable
      - `interests` string[], nullable
      - `noindex_enabled` boolean, nullable
      - `visibility` 'Public' | 'Private': Who may see a user's human-readable public pages (profile, badge and pathway assertion). Deliberately NOT a User_Status value: a Private user is still Active, they can sign in, earn badges and be issued to exactly as before. Also independent of `noindex_enabled`, which only asks search engines not to index a page that stays publicly reachable. Enforced in crud_user_detail.can_read, so every existing "view this user" gate inherits it.
      - `time_created` string, date-time
      - `time_updated` string, date-time, nullable
      - `seo_keywords` string[], nullable
      - `seo_title` string, nullable
      - `seo_description` string, nullable
      - `social_handle_linkedin` string, nullable
      - `social_handle_twitter` string, nullable
      - `social_handle_facebook` string, nullable
      - `social_handle_instagram` string, nullable
    - `issuer` BadgeIssuerPublic
      - `id` integer
      - `name` string, nullable
      - `type` 'Employer' | 'Learning_Provider' | 'Other'
      - `status` 'Active' | 'Suspended' | 'Deleted'
      - `external_url` string, nullable
      - `email` string, nullable
      - `image_url` string, nullable
      - `banner_url` string, nullable
      - `image_url_2x` string, nullable
      - `banner_url_2x` string, nullable
    - `ranking` integer, nullable
    - `time_created` string, date-time
    - `time_updated` string, date-time, nullable
    - `time_submitted` string, date-time, nullable
    - `time_published` string, date-time, nullable
    - `quality_assured_at` string, date-time, nullable
    - `time_issued` string, date-time, nullable
    - `postal_address` Address
      - `full_address` string, nullable
      - `name` string, nullable
      - `number` string, nullable
      - `street` string, nullable
      - `postcode` string, nullable
      - `locality` string, nullable
      - `city` string, nullable
      - `district` string, nullable
      - `region` string, nullable
      - `country` string, nullable
    - `created_by_id` integer, nullable
    - `submitted_by_id` integer, nullable
    - `published_by_id` integer, nullable
    - `updated_by_id` integer, nullable
    - `criteria` BadgeCriteria[], nullable
      - `external_id` string, nullable
      - `description` string, nullable
      - `type` 'Application' | 'Assessment' | 'Award' | 'Badge' | 'Course' | 'Credential' | 'Education_Experience' | 'Leadership' | 'Member' | 'Participant' | 'Pathway' | 'Payment' | 'Portfolio' | 'Presenter' | 'Project' | 'Professional_Experience' | 'Schedule_Registration' | 'Volunteer' | 'Other'
      - `external_url` string, nullable
      - `badge_id` integer, nullable
      - `id` integer, nullable
    - `tags` BadgeTag[], nullable
      - `name` string, nullable
      - `external_id` string, nullable
      - `type` string, nullable
      - `source` string, nullable
    - `alignments` BadgeAlignment[], nullable
      - `external_id` string, nullable
      - `name` string, nullable
      - `description` string, nullable
      - `url` string, nullable
      - `framework` string, nullable
      - `code` string, nullable
      - `id` integer, nullable
      - `badge_id` integer, nullable
    - `endorsements` BadgeEndorsement[], nullable
      - `external_id` string, nullable
      - `name` string, nullable
      - `description` string, nullable
      - `url` string, nullable
      - `image_url` string, nullable
      - `image_url_2x` string, nullable
      - `image_url_original` string, nullable
      - `id` integer, nullable
      - `badge_id` integer, nullable
    - `collections` CollectionLight[], nullable
      - `id` integer, required
      - `name` string, nullable
      - `badge_issuer_id` integer, nullable
    - `providers` ProviderLight[], nullable
      - `id` integer, required
      - `status` 'Active' | 'Suspended' | 'Deleted'
      - `type` 'Learning_Provider' | 'Training_Provider' | 'Awarding_Body' | 'Employer' | 'Local_Authority' | 'University' | 'College' | 'Charity' | 'Department' | 'Project' | 'Other'
      - `name` string, nullable
      - `short_name` string, nullable
      - `external_url` string, nullable
      - `is_verified` boolean, nullable
      - `verification_text` string, nullable
      - `verification_url` string, nullable
      - `is_demo` boolean, nullable
      - `open_access` boolean
      - `community_id` integer, nullable
      - `community` CommunityLight, required
        - `id` integer, required
        - `status` 'Active' | 'Suspended' | 'Deleted'
        - `type` 'City' | 'Region' | 'Local_Authority' | 'Membership_Organisation' | 'Awarding_Body' | 'Partnership' | 'Corporate' | 'Association' | 'University' | 'College' | 'Charity' | 'Other'
        - `name` string, nullable
        - `short_name` string, nullable
        - `is_verified` boolean, nullable
        - `image_url` string, nullable
        - `image_url_2x` string, nullable
        - `image_url_original` string, nullable
        - `linkedin_organisation_id` integer, nullable
        - `social_handle_linkedin` string, nullable
        - `social_handle_twitter` string, nullable
        - `social_handle_facebook` string, nullable
        - `social_handle_instagram` string, nullable
        - `url` string, nullable
      - `image_url` string, nullable
      - `banner_url` string, nullable
      - `image_url_2x` string, nullable
      - `banner_url_2x` string, nullable
      - `image_url_original` string, nullable
      - `banner_url_original` string, nullable
      - `qa_community_id` integer, nullable
      - `linkedin_organisation_id` integer, nullable
      - `social_handle_linkedin` string, nullable
      - `social_handle_twitter` string, nullable
      - `social_handle_facebook` string, nullable
      - `social_handle_instagram` string, nullable
      - `url` string, nullable
    - `interacted_with` boolean, nullable
    - `featured` boolean
    - `ai_generated` boolean
    - `url` string
    - `seo_keywords` string[], nullable
    - `seo_title` string, nullable
    - `seo_description` string, nullable
    - `field_of_study` SectorSubjectAreaEmbedded: A badge's field of study as embedded in badge reads and the Ofqual lookup (#1946). The website editor and the CLI read these names, so they are a contract.
      - `id` integer, required
      - `code` string, required
      - `name` string, required
      - `tier_1_name` string, nullable
      - `image_label` string, nullable
    - `display_level` string, nullable, required: The one level to show: the qualification level label when set, else `level` (#1915).

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `422`: Validation Error

## Changes

- **2026-11-06** `04bf6727d360`: 2 info
  - added the optional property `anyOf[subschema #1: Page[Badge]]/items/items/quality_assured_at` to the response with the `200` status
  - added the optional property `anyOf[subschema #2]/items/quality_assured_at` to the response with the `200` status
- **2026-10-22** `5b575d75af2b`: 20 info
  - added the optional property `anyOf[subschema #1: Page[Badge]]/items/items/credits_available` to the response with the `200` status
  - added the optional property `anyOf[subschema #1: Page[Badge]]/items/items/credits_unit` to the response with the `200` status
  - added the optional property `anyOf[subschema #1: Page[Badge]]/items/items/field_of_study` to the response with the `200` status
  - added the optional property `anyOf[subschema #1: Page[Badge]]/items/items/field_of_study_id` to the response with the `200` status
  - …16 more
- **2026-10-06** `d2127ead6e50`: 3 warning, 3 info
  - deleted the `query` request parameter `qa_required`
  - removed the optional property `anyOf[subschema #1: Page[Badge]]/items/items/qa_required` from the response with the `200` status
  - removed the optional property `anyOf[subschema #2]/items/qa_required` from the response with the `200` status
  - added the new optional `query` request parameter `qa_locked`
  - …2 more
- …earlier changes not shown

[Operation history](https://skmtc.dev/navigatr/apis/navigatr-api/changes/v1/badge/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)
