---
title: "Returns the courses for the specified provider."
method: GET
path: "/recruitment_cycles/{year}/providers/{provider_code}/courses"
tags: ["course"]
---

# Returns the courses for the specified provider.

`GET /recruitment_cycles/{year}/providers/{provider_code}/courses`

## Path parameters

- `year` string, required
- `provider_code` string, required

## Query parameters

- `filter` CourseFilter — This schema is used to search within collections to return more specific results.
  - `has_vacancies` boolean — Return courses that only have vacancies?
  - `findable` boolean — Return courses that are currently available on the Find Postgraduate Teacher Training service
  - `funding_type` 'salary' | 'apprenticeship' | 'fee' — Return courses depending on how it is funded. This is a comma delimited string. If multiple funding options are provided then any course matching any one of the options provided will be retuned, i.e. the OR operator is used.
  - `qualification` 'qts' | 'pgce_with_qts' | 'pgde' | 'pgce' | 'pgde_with_qts' — Search courses based on the award given on course completion. This is a comma delimited string. If multiple qualifications are given then any course matching any one of the qualifications provided will be returned, i.e. the OR operator is used.
  - `study_type` 'full_time' | 'part_time' | 'full_time_or_part_time' — Search full time or part time courses or both. This is a comma delimited string. If both full_time and part_time is specified we return courses that are either full time or part time.
  - `subjects` '00' | '01' | '02' | '03' | '04' | '06' | '07' | 'W1' | 'F0' | 'C1' | '08' | 'F1' | '09' | 'Q8' | 'P3' | '11' | '12' | 'DT' | '13' | 'L1' | 'Q3' | 'F8' | 'L5' | 'V1' | 'G1' | 'W3' | 'P1' | 'C6' | 'F3' | 'C8' | 'V6' | '14' | '15' | '16' | '17' | '18' | '19' | '20' | '21' | '22' | '41' | '24' — Returns courses that include at least one of the given subjects. This is a comma delimied string. If multiple subjects are given a course that has any one of the subjects specified will be returned, i.e. the OR operator is used.
  - `send_courses` boolean — Only return courses that have a SEND specialism.
  - `latitude` number — Latitude of origin when performing a search by radius.
  - `longitude` number — Longitude of origin when performing a search by radius.
  - `radius` number — Search radius in miles from given latitude and longitude.
  - `updated_since` string — Return courses have been updated since the date (ISO 8601 date format)
  - `degree_grade` 'two_one' | 'two_two' | 'third_class' | 'not_required' — Return courses based on their degree grade. This is a comma delimited string. If multiple degree grade types are provided then any course matching any one of the options provided will be returned, i.e. the OR operator is used.
  - `can_sponsor_visa` boolean — Only return courses where a skilled worker or student visa can be sponsored.
  - `campaign_name` 'engineers_teach_physics' | 'no_campaign' — Return courses which are part of a campaign.
- `sort` string[] — This schema is used to sort a collection.
- `page` Pagination — This schema used to paginate through a collection.
  - `page` integer — The page number to paginate to in the collection. If no value is specified it defaults to the first page.
  - `per_page` integer — The number items to display on a page. Defaults to 100. Maximum is 500, if the value is greater that the maximum allowed it will fallback to 500.
- `include` 'accredited_provider' | 'provider' | 'recruitment_cycle'

## Response `200`

The collection of courses.

- CourseListResponse — This schema is used to return a collection of courses.
  - `data` CourseResource[], required
    - `id` string, required
    - `type` string, required
    - `attributes` CourseAttributes, required — This schema presents the information about a course.
      - `about_accredited_body` string, markdown, nullable — Description of the accredited provider for this course.
      - `about_course` string, markdown, nullable — Short factual summary of the course. Returns null for courses published or updated from the 2026 recruitment cycle onwards, where this information is instead split across `placement_school_activities`, `theoretical_training_activities`, `assessment_methods` and `support_and_mentorship`.
      - `accredited_provider_code` string, nullable — Unique provider-code for the accredited provider of this course. Only present if the provider delivering the course is not the accredited body.
      - `additional_fees` string, markdown, nullable — Further information about any additional course fees or costs.
      - `age_minimum` integer, required — The minimum age of pupils this course is specified for.
      - `age_maximum` integer, required — The maximum age of pupils this course is specified for.
      - `applications_open_from` string, date — Date from which applications can be submitted. This field is being deprecated after 2025 recruitment cycle.
      - `assessment_methods` string, markdown, nullable — Information about how trainees will be assessed.
      - `bursary_amount` integer, nullable — Bursary amount in GBP for this course.
      - `bursary_requirements` string[] — Description of requirements to be eligible for a bursary.
      - `changed_at` string, date-time — Date-time timestamp of when this course or any of its related data changed.
      - `code` string, required — Code that uniquely identifies this course within its training provider's list of courses.
      - `course_length` string, nullable — Text describing how long the course runs.
      - `created_at` string, date-time — Timestamp of when this course was created.
      - `duration_per_school` string, markdown, nullable — Information about how much time trainees will spend in each placement school.
      - `fee_details` string, markdown, nullable — Further details about the fees for this course, if applicable. Returns null for courses published or updated from the 2026 recruitment cycle onwards, where this information is instead split across `additional_fees`, `fee_schedule` and `salary_fee_details`.
      - `fee_international` integer, nullable — Fee in GBP for international students (optional).
      - `fee_domestic` integer, nullable — Fee in GBP for UK students.
      - `fee_schedule` string, markdown, nullable — Information about when fees are due.
      - `financial_support` string, markdown, nullable — Details about financial support offered, if any.
      - `findable` boolean — Is this course currently visible on the Find Postgraduate Teacher Training service.
      - `funding_type` 'salary' | 'apprenticeship' | 'fee' — The type of funding that may be provided to candidates, if any.
      - `gcse_subjects_required`  | maths,english | maths,english,science — GSCEs, or equivalent, required for this level of course.
      - `has_bursary` boolean — Are any bursaries available for this course?
      - `has_early_career_payments` boolean — Are early career payments available for this course?
      - `has_scholarship` boolean — Are scholarships available for this course?
      - `has_vacancies` boolean — Do any of the locations for this course have vacancies?
      - `how_school_placements_work` string, markdown, nullable — Additional information about the schools applicants will be teaching in. Returns null for courses published or updated from the 2026 recruitment cycle onwards, where this information is instead split across `placement_selection_criteria`, `duration_per_school`, `theoretical_training_location` and `theoretical_training_duration`.
      - `interview_process` string, markdown, nullable — Additional information about how the interview process will work for applicants.
      - `interview_location` 'online' | 'in person' | 'both', nullable — Information about where interviews will take place.
      - `is_send` boolean — Does this course have a SEND specialism?
      - `last_published_at` string, date-time, nullable — Timestamp of when changes to this course's additional information sections were last published.
      - `level` 'further_education' | 'primary' | 'secondary' — The educational level this course is designed for.
      - `name` string — Name of the course.
      - `open_for_applications` boolean — Is the course currently open for applications?
      - `other_requirements` string, markdown, nullable — This field is being deprecated after 2024 recruitment cycle.
      - `personal_qualities` string, markdown, nullable — This field is being deprecated after 2024 recruitment cycle.
      - `placement_school_activities` string, markdown, nullable — Information about what trainees will do in their placement schools.
      - `placement_selection_criteria` string, markdown, nullable — Information about how placement schools are selected for trainees.
      - `program_type` 'higher_education_programme' | 'scitt_programme' | 'school_direct_training_programme' | 'school_direct_salaried_training_programme' | 'pg_teaching_apprenticeship' | 'teacher_degree_apprenticeship' — The teacher training route that this course follows.
      - `qualifications` qts | pgce | pgde | qts,pgce | qts,pgde | qts,undergraduate_degree — The qualifications as an outcome of the course.
      - `required_qualifications` string, markdown, nullable — The minimum academic qualifications needed for this course.
      - `required_qualifications_english` '' | 'must_have_qualification_at_application_time' | 'expect_to_achieve_before_training_begins' | 'equivalence_test' | 'not_required' — English GCSE requirements for applicants.
      - `required_qualifications_maths` '' | 'must_have_qualification_at_application_time' | 'expect_to_achieve_before_training_begins' | 'equivalence_test' | 'not_required' — Maths GCSE requirements for applicants.
      - `required_qualifications_science` '' | 'must_have_qualification_at_application_time' | 'expect_to_achieve_before_training_begins' | 'equivalence_test' | 'not_required' — Science GCSE requirements for applicants.
      - `running` boolean — Is the course currently running.
      - `salary_details` string, nullable — Salary details about this course. This field is being deprecated after the 2026 recruitment cycle, and is not populated for 2027 recruitment cycle courses onwards, where `salary_fee_details` is used instead.
      - `salary_fee_details` string, markdown, nullable — Information about course fees for salaried courses. Populated for 2027 recruitment cycle courses onwards, where it replaces `salary_details`.
      - `school_experience_required` boolean, nullable — Whether school experience is required or strongly recommended for this course. Only included from the 2027 recruitment cycle onwards.
      - `school_experience_required_content` string, markdown, nullable — Details of the school experience expected for this course. Only included from the 2027 recruitment cycle onwards.
      - `scholarship_amount` integer, nullable — The scholarship amount a candidate may be eligible for for this course.
      - `start_date` string, date — Date that the course starts.
      - `state` 'rolled_over' | 'draft' | 'published' | 'withdrawn' — The state of the course in the Publish teacher training courses system.
      - `study_mode` 'both' | 'full_time' | 'part_time' — Whether the course is full-time, part-time or both.
      - `summary` string — Generated summary of the course.
      - `subject_codes` string[] — The course’s subject codes, corresponding to subjects available on the `/subjects` endpoint
      - `support_and_mentorship` string, markdown, nullable — Information about how trainees will be supported and mentored during school placements.
      - `theoretical_training_activities` string, markdown, nullable — Information about what trainees will do during theoretical training.
      - `theoretical_training_duration` string, markdown, nullable — Information about how much time trainees will spend in theoretical training.
      - `theoretical_training_location` string, markdown, nullable — Information about where theoretical training will take place.
      - `visa_sponsorship_application_deadline_at` string, date-time, nullable — The application deadline for candidates who require visa sponsorship.
      - `degree_grade` 'two_one' | 'two_two' | 'third_class' | 'not_required', nullable — Minimum degree grade required for this course
      - `degree_subject_requirements` string, nullable — Degree subject requirements
      - `accept_pending_gcse` boolean, nullable — Does the provider consider candidates with pending GCSEs for this course?
      - `accept_gcse_equivalency` boolean, nullable — Does the provider consider candidates who need to take an equivalency test in English, maths or science?
      - `accept_english_gcse_equivalency` boolean, nullable — Does the provider consider candidates who need to take an equivalency test in English?
      - `accept_maths_gcse_equivalency` boolean, nullable — Does the provider consider candidates who need to take an equivalency test in maths?
      - `accept_science_gcse_equivalency` boolean, nullable — Does the provider consider candidates who need to take an equivalency test in science?
      - `additional_gcse_equivalencies` string, nullable — Details about equivalency tests the provider offers or accepts
      - `can_sponsor_skilled_worker_visa` boolean — Does this course provide sponsorship for a skilled worker visa?
      - `can_sponsor_student_visa` boolean — Does this course provide sponsorship for a student visa?
      - `campaign_name` 'engineers_teach_physics' | 'no_campaign', nullable — The course’s campaign code, corresponding to campaigns to help improve recruitment.
      - `application_status` 'open' | 'closed' — The courses application status, corresponding to whether applications are open or not
      - `training_route` 'fee_funded_initial_teacher_training' | 'school_direct_salaried' | 'postgraduate_teacher_apprenticeship' | 'teacher_degree_apprenticeship' — The course training route corresponding to different combinations of course types and funding types
      - `degree_type` 'postgraduate' | 'undergraduate' — The type of degree on the course
    - `relationships` CourseRelationshipList — This schema is used to describe associations that can be returned with a course.
      - `recruitment_cycle` RecruitmentCycleRelationship
        - `data` object
          - `type` string, required
          - `id` string, required
      - `accredited_body` AccreditedBodyRelationship
        - `data` object
          - `type` string, required
          - `id` string, required
      - `provider` ProviderRelationship
        - `data` object
          - `type` string, required
          - `id` string, required
  - `included` union[] — This returns the requested associated data.
    - union
      - RecruitmentCycleResource — This schema provides metadata about a recruitment cycle.
        - `id` string, required
        - `type` string, required
        - `attributes` RecruitmentCycleAttributes, required — This schema is used to describe a recruitment cycle.
          - `year` integer — The year that this recruitment cycle applies to.
          - `application_start_date` string, date — The default date applications start being taken for this recruitment cycle.
          - `application_end_date` string, date — The default date applications stop being taken for this recruitment cycle.
      - ProviderResource — This schema provides metadata about a provider.
        - `id` string, required
        - `type` string, required
        - `attributes` ProviderAttributes, required — This schema is used to describe a provider.
          - `accredited_body` boolean — Is this provider an accredited provider for other provider's courses.
          - `city` string — Town or city
          - `county` string — County
          - `changed_at` string, date-time — Date-time timestamp of when this provider or any of its related data changed.
          - `code` string, required — Code that uniquely identifies this provider within a recruitment cycle.
          - `ukprn` string — UK Provider Reference Number. A unique number allocated to teacher training providers.
          - `urn` string — Unique Reference Number. A unique number allocated to educational establishments.
          - `created_at` string, date-time — Timestamp of when this provider was created.
          - `postcode` string, uk-postcode — The provider's postcode
          - `latitude` string — The latitude of the provider's address
          - `longitude` string — The longitude of the provider's address
          - `telephone` string — The provider's telephone number.
          - `email` string — The provider's email address.
          - `name` string, required — The name of the training provider.
          - `provider_type` 'scitt' | 'lead_school' | 'university' — The type of provider.
          - `region_code` 'no_region' | 'london' | 'south_east' | 'south_west' | 'wales' | 'west_midlands' | 'east_midlands' | 'eastern' | 'north_west' | 'yorkshire_and_the_humber' | 'north_east' | 'scotland' — The NUTS 1 region code for the provider's address.
          - `street_address_1` string — Building or street line one.
          - `street_address_2` string — Building or street line two.
          - `street_address_3` string — Building or street line three.
          - `train_with_disability` string, markdown — How candidates with disabilities and other needs will be supported.
          - `train_with_us` string, markdown — Information about the training provider.
          - `website` string, url — A link to the initial teacher training or course pages of your website.
          - `can_sponsor_skilled_worker_visa` boolean — Can this provider sponsor Skilled Worker visas?
          - `can_sponsor_student_visa` boolean — Can this provider sponsor Student visas?
          - `discarded_at` string, date-time, nullable — Timestamp of when this provider was decomissioned
          - `selectable_school` boolean — Can candidates choose their placement school
        - `relationships` ProviderRelationshipList — This schema is used to describe associations that can be returned with a provider.
          - `recruitment_cycle` RecruitmentCycleRelationship
            - `data` object
              - …
  - `jsonapi` JSONAPI — This returns the version of JSON API in use.
    - `version` string, required

---

[API](https://skmtc.net/department-for-education/apis/teacher-training-courses-api.md) · [All operations](https://skmtc.net/department-for-education/apis/teacher-training-courses-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/department-for-education/teacher-training-courses-api/revisions/d0f22bbc13e4/schema)
