Badge

Creates a new badge. This is metadata describing a Badge provided on a digital credentialing platform. A provider_id can be specified for internal and Open University badges. That provider will have access to edit and issue the badge. More providers can be added later by platform admins.

available_to_all (bool) : Defaults to True.
availability (str): Optional field. If not None, available_to_all is automatically set to False.
type (Badge_Type): Mandatory field.
recipient_type (Recipient_Type): Optional field. Defaults to User.
source (Source_Type): Optional field. Defaults to Internal. Other options are Credly and Open_University. If External, external_id and external_url are mandatory.
external_id (str): Optional field. The unique ID on the external platform. If the badge already exists on Navigatr, it will be updated. If not, it will be created. External ID is required for all external badges.
external_url (str): Optional field. URL of the badge on the external platform. External URL is required for all external badges.
earn_url (str): Optional field. URL to earn the badge. Defaults to None.
information_url (str): Optional field. A link to display additional information about this badge. Defaults to None.
cost (Badge_Cost): Optional field. Defaults to Free
level (Badge_Level): Optional field. Defaults to Foundational
time_to_earn (Time_To_Earn): Optional field. Defaults to Hours
participation_type (Participation_Type): Optional field. Defaults to In_Person
end_date (datetime): Optional field. Defaults to None
time_created (datetime): Optional field. Defaults to the current time. For external badges, set the time created to match with the external platform.
tags (List[Tag]): Optional field. Defaults to None.
criteria (List[Criteria]): Optional field. Defaults to None.
alignments (List[Alignment]): Optional field. Defaults to None.
endorsements (List[Endorsement]): Optional field. Defaults to None.
design_parameters (object): Optional field. An object or null. Its `qa` (the QA mark, a bool) may be set to true only by a platform admin (403 otherwise); false, null or omitted is accepted from anyone.
qualification_code (str): Optional field, max 100 characters. Emitted in Open Badges 3.0 as otherIdentifier.
credits_available (float): Optional field, >= 0, stored rounded to two decimal places. Also used for CPD points.
credits_unit (str): Optional field, max 20 characters. What credits_available counts; null means "credits".
qualification_type (Qualification_Type): Optional field. Only accepted when type is Qualification (422 otherwise).
qualification_framework (Qualification_Framework): Optional field. RQF, CQFW, SCQF, EQF or QFEmirates. Defaults to RQF only when a qualification_level is sent without it; sent as null with a level is a 422.
qualification_level (str): Optional field. Must be valid for the framework (RQF and CQFW: Entry 1-3 and 1-8; SCQF 1-12; EQF and QFEmirates 1-8), 422 otherwise. Adds one system-managed alignment for the framework, replacing any alignment of that framework in the body.
grade (Badge_Grade): Optional field. Pass, Merit, Distinction or Distinction*. Shown on every issued badge of this badge, which cannot then be issued with a different grade.
field_of_study_id (int): Optional field, any badge type. An active tier 2 Ofqual Sector Subject Area id from GET /sector_subject_area (a tier 1, inactive or unknown id is a 422). Returned embedded as field_of_study and emitted in Open Badges 3.0 as fieldOfStudy.

generate_image (bool): Query param, defaults to False. If True, renders and uploads the Navigatr Badge Framework image immediately after creation, using provider_id's default branding. Requires design_standard=Navigatr, source=Internal (the default), no explicit image_url/image_url_2x/image_url_original, and no design_parameters.subtitle override in the body unless the subtitle query param is also passed - any mismatch 422s up front, before any write. A failure in the render itself (e.g. the provider's logo URL is unreachable) does not fail badge creation - the badge is still created without an image.

title / subtitle (str, optional query params): the artwork text saved in design_parameters at creation, before any render, in both this and the AI route. They override the same keys in the body's design_parameters. Per key: omit to leave the body's value as sent, pass "" to remove it (title then falls back to the auto-filled field of study and qualification type on a Qualification badge that has both, else the badge name; subtitle to the auto-filled qualification line, if any), pass any other string to save it. A subtitle supplied here is the caller's own, so it is not subject to the saved-subtitle guard. Not validated against the render limits below (each param is capped at 200 characters); the renderer fits a title on at most 2 lines of 23 characters (17 on a Training badge); a subtitle is upper-cased and cut to 22 characters, then wrapped at 22 per line (16 on a Training badge). An over-long second line is cut to end in "...". Those are character counts calibrated for common English letters, so wide letters can still overflow: keep the title to one or two short words. A forced line break in the TITLE is the two-character sequence backslash-n stored in the string (%5Cn in the query string; no JSON escaping applies to a query parameter); the segment before it is not length-checked, and a real newline is drawn inline over the subtitle. The marker does not work in a subtitle, which is upper-cased before the check. Saved whether or not generate_image is set, so the website's first-view render uses them. Internal-source, Navigatr-standard badges only (422 otherwise, with or without generate_image): external-source badges carry their own image and Generic badges have no framework render.

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

Source_Type:

Internal, Credly, Open_University

Recipient_Type:

User, Organisation

Badge_Cost:

Free, Paid, Other

Badge_Level:

Generic Levels:

    Foundational, Intermediate, Advanced, Other

Navigatr Standard Levels:

    Explore, Deepen, Apply, Teach, Lead

Time_To_Earn:

Hours, Days, Weeks, Months, Years, Other

Participation_Type:

In_Person, Hybrid, Online

Qualification_Type:

Award, Certificate, Diploma
post/v1/badge/

Request

Query parameters

provider_idinteger
generate_imageboolean
titlestring nullable
subtitlestring nullable

Headers

X-Access-Tokenstring nullable

Request body

namestring required
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' required
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_idsinteger[] nullable
community_idsinteger[] nullable
recipient_type'User' | 'Organisation'
descriptionstring required
issuer_idinteger nullable
image_urlstring nullable
image_url_2xstring nullable
image_url_originalstring nullable
design_parametersunknown
source'Internal' | 'Credly' | 'Open_University' | 'Imported'
earn_urlstring nullable
external_urlstring nullable
information_urlstring nullable
embedstring nullable
external_idstring nullable
latitudenumber nullable
longitudenumber nullable
citystring nullable
countrystring nullable
configunknown
addressstring nullable
available_to_allboolean
availabilitystring nullable
end_datestring 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_lockedboolean nullable
job_titlesstring[] nullable
specialized_occupationsstring[] nullable
title_namesstring[] nullable
is_demoboolean nullable
certificates_enabledboolean
industriesstring[] nullable
occupation_groupsstring[] nullable
skill_category_namesstring[] nullable
edu_levelsstring[] nullable
qualification_codestring nullable
credits_availablenumber nullable
credits_unitstring nullable
qualification_type'Award' | 'Certificate' | 'Diploma'
qualification_framework'RQF' | 'CQFW' | 'SCQF' | 'EQF' | 'QFEmirates'
qualification_levelstring nullable
grade'Pass' | 'Merit' | 'Distinction' | 'Distinction*'
field_of_study_idinteger nullable
featuredboolean
ai_generatedboolean
time_createdstring date-time

Example request

{
  "image_url": "https://media.navigatr.app/image.webp",
  "image_url_2x": "https://media.navigatr.app/image_2x.webp",
  "address": "123 Example Street, Leeds, West Yorkshire, England, LS1 EXA",
  "availability": "This badge is available to students of the University of Leeds",
  "end_date": "2023-11-18T13:33:01.201Z",
  "qualification_code": "603/1234/5",
  "credits_available": 60,
  "credits_unit": "credits",
  "qualification_level": "3",
  "field_of_study_id": 3,
  "criteria": [
    {
      "external_id": "ABCD-EFG-HIJK-LMNOPQRS",
      "external_url": "https://apply.org"
    }
  ],
  "alignments": [
    {
      "external_id": "123-45678-90"
    }
  ],
  "endorsements": [
    {
      "external_id": "zyxw-vut-srq-ponmlkjih",
      "url": "https://Endorsement/Example.org",
      "image_url": "https://media.navigatr.app/endorsement.webp",
      "image_url_2x": "https://media.navigatr.app/endorsement_2x.webp",
      "image_url_original": "https://media.navigatr.app/endorsement_original.webp"
    }
  ]
}

Response

Successful Response

namestring 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_idsinteger[] nullable
community_idsinteger[] nullable
recipient_type'User' | 'Organisation'
descriptionstring nullable
issuer_idinteger nullable
image_urlstring nullable
image_url_2xstring nullable
image_url_originalstring nullable
design_parametersunknown
source'Internal' | 'Credly' | 'Open_University' | 'Imported'
earn_urlstring nullable
external_urlstring nullable
information_urlstring nullable
embedstring nullable
external_idstring nullable
latitudenumber nullable
longitudenumber nullable
citystring nullable
countrystring nullable
configunknown
addressstring nullable
available_to_allboolean nullable
availabilitystring nullable
end_datestring 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_lockedboolean nullable
job_titlesstring[] nullable
specialized_occupationsstring[] nullable
title_namesstring[] nullable
is_demoboolean nullable
certificates_enabledboolean
industriesstring[] nullable
occupation_groupsstring[] nullable
skill_category_namesstring[] nullable
edu_levelsstring[] nullable
qualification_codestring nullable
credits_availablenumber nullable
credits_unitstring nullable
qualification_type'Award' | 'Certificate' | 'Diploma'
qualification_framework'RQF' | 'CQFW' | 'SCQF' | 'EQF' | 'QFEmirates'
qualification_levelstring nullable
grade'Pass' | 'Merit' | 'Distinction' | 'Distinction*'
field_of_study_idinteger nullable
idinteger
status'Initialising' | 'Draft' | 'Awaiting_Approval' | 'Published' | 'Deleted' | 'Expired'
rankinginteger nullable
time_createdstring date-time
time_updatedstring date-time nullable
time_submittedstring date-time nullable
time_publishedstring date-time nullable
quality_assured_atstring date-time nullable
time_issuedstring date-time nullable
created_by_idinteger nullable
submitted_by_idinteger nullable
published_by_idinteger nullable
updated_by_idinteger nullable
interacted_withboolean nullable
featuredboolean
ai_generatedboolean
urlstring
seo_keywordsstring[] nullable
seo_titlestring nullable
seo_descriptionstring nullable
display_levelstring nullable required

The one level to show: the qualification level label when set, else level (#1915).

Example response

{
  "name": "Learn your ABCs",
  "description": "This badge is awarded to earners who have demonstrated their knowledge of all letters of the English alphabet.",
  "image_url": "https://media.navigatr.app/image.webp",
  "image_url_2x": "https://media.navigatr.app/image_2x.webp",
  "address": "123 Example Street, Leeds, West Yorkshire, England, LS1 EXA",
  "availability": "This badge is available to students of the University of Leeds",
  "end_date": "2023-11-18T13:33:01.201Z",
  "qualification_code": "603/1234/5",
  "credits_available": 60,
  "credits_unit": "credits",
  "qualification_level": "3",
  "field_of_study_id": 3,
  "created_by": {
    "firstname": "John",
    "lastname": "Doe",
    "avatar_url": "https://media.navigatr.app/avatar.webp",
    "avatar_url_2x": "https://media.navigatr.app/avatar_2x.webp",
    "avatar_url_original": "https://media.navigatr.app/avatar_original.webp",
    "interests": [
      "Coding, Web Development, Engineering"
    ]
  },
  "submitted_by": {
    "firstname": "John",
    "lastname": "Doe",
    "avatar_url": "https://media.navigatr.app/avatar.webp",
    "avatar_url_2x": "https://media.navigatr.app/avatar_2x.webp",
    "avatar_url_original": "https://media.navigatr.app/avatar_original.webp",
    "interests": [
      "Coding, Web Development, Engineering"
    ]
  },
  "published_by": {
    "firstname": "John",
    "lastname": "Doe",
    "avatar_url": "https://media.navigatr.app/avatar.webp",
    "avatar_url_2x": "https://media.navigatr.app/avatar_2x.webp",
    "avatar_url_original": "https://media.navigatr.app/avatar_original.webp",
    "interests": [
      "Coding, Web Development, Engineering"
    ]
  },
  "updated_by": {
    "firstname": "John",
    "lastname": "Doe",
    "avatar_url": "https://media.navigatr.app/avatar.webp",
    "avatar_url_2x": "https://media.navigatr.app/avatar_2x.webp",
    "avatar_url_original": "https://media.navigatr.app/avatar_original.webp",
    "interests": [
      "Coding, Web Development, Engineering"
    ]
  },
  "criteria": [
    {
      "external_id": "ABCD-EFG-HIJK-LMNOPQRS",
      "description": "Earners must have completed a three stage interview process before they can earn this badge.",
      "external_url": "https://apply.org"
    }
  ],
  "tags": [
    {
      "name": "Test Driven Development"
    }
  ],
  "alignments": [
    {
      "external_id": "123-45678-90",
      "name": "Null Badging Standard - Example Layer",
      "description": "This badge has been mapped to the Example Layer of the Null Badging Standard",
      "url": "https://Null_Badging/Example.org"
    }
  ],
  "endorsements": [
    {
      "external_id": "zyxw-vut-srq-ponmlkjih",
      "name": "Endorsement Example",
      "description": "This is an example of a badge endorsement",
      "url": "https://Endorsement/Example.org",
      "image_url": "https://media.navigatr.app/endorsement.webp",
      "image_url_2x": "https://media.navigatr.app/endorsement_2x.webp",
      "image_url_original": "https://media.navigatr.app/endorsement_original.webp"
    }
  ],
  "providers": [
    {
      "name": "Horace's Haberdashery Academy",
      "short_name": "HHA",
      "community": {
        "name": "Fordwich Town Council",
        "short_name": "FTC",
        "image_url": "https://media.navigatr.app/Fordwich.webp",
        "image_url_2x": "https://media.navigatr.app/Fordwich_2x.webp",
        "image_url_original": "https://media.navigatr.app/Fordwich_original.webp",
        "url": "https://navigatr.app/community/5/fordwich-town-council"
      },
      "image_url": "https://media.navigatr.app/HHA.webp",
      "banner_url": "https://media.navigatr.app/HHA_banner.webp",
      "image_url_2x": "https://media.navigatr.app/HHA_2x.webp",
      "banner_url_2x": "https://media.navigatr.app/HHA_banner_2x.webp",
      "image_url_original": "https://media.navigatr.app/HHA_original.webp",
      "banner_url_original": "https://media.navigatr.app/HHA_banner_original.webp",
      "url": "https://navigatr.app/provider/2922/horaces-haberdashery"
    }
  ],
  "url": "https://navigatr.app/badge/12345/Learn-Your-ABCs"
}

Changes

    • info

      added the optional property to the response with the status

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the required property to the response with the status