---
title: "Read Provider Badges"
method: GET
path: "/v1/provider/{provider_id}/badges"
tags: ["Provider"]
---

# Read Provider Badges

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

Retrieve an array of badges created by a **Provider**. 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 |
| --- | --- |
| `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

## Path parameters

- `provider_id` integer, required

## Query parameters

- `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/provider/:provider_id/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)
