Skip to content

Discovering Cohorts

Before your integration can submit applications, it needs to know which cohort to submit to. The platform identifies cohorts by a unique ID — a string like 665f1a2b3c4d5e6f7a8b9c0d. This page explains how to retrieve those IDs programmatically.


To list cohorts via the API, your key needs the programs:read scope. Make sure you’ve selected it when creating the key — see API Keys.


Send a GET request to:

GET /v1/api/programs
Authorization: Bearer inc_live_xxxxxxxxxxxx

Response:

{
"programs": [
{
"id": "665f1a2b3c4d5e6f7a8b9c0d",
"name": "Cohort 4 — Q1 2026",
"status": "open"
},
{
"id": "664e9f1a2b3c4d5e6f7a8b9c",
"name": "Cohort 3 — 2025",
"status": "closed"
}
]
}

This returns all cohorts for your programme, regardless of status. Filter on status: "open" to find the cohorts currently accepting applications.


Status Meaning for your integration
draft Not yet open. Submissions will be rejected with 403.
open Accepting applications. Submit here.
closed No longer accepting applications. Submissions will be rejected with 403.
completed Archived.

Attempting to submit to a cohort that isn’t open returns:

{ "error": "This cohort is not currently accepting applications" }

If your programme runs one cohort at a time, filter the list for status: "open" and use that ID. If you run multiple overlapping cohorts, match by name or keep a mapping of cohort IDs in your system configuration.


If you already know the cohort ID and just want to confirm it’s still open before submitting:

GET /v1/api/programs
Authorization: Bearer inc_live_xxxxxxxxxxxx

Filter the response for your ID and check the status field. There’s no single-cohort lookup endpoint — use the list and find your cohort within it.