---
title: "Search published opportunities through the programs alias"
method: GET
path: "/api/v1/programs"
tags: ["Discovery"]
---

# Search published opportunities through the programs alias

`GET /api/v1/programs`

## Request

- Base URL: `https://openmedici.com`
- URL: `https://openmedici.com/api/v1/programs`
- Auth: none required

Returns only published opportunities. Unsupported filter values are omitted and reported in meta.invalid.

## Query parameters

- `q` string
- `type` string[]
- `topic` string[]
- `field` string[]
- `applicant` string[]
- `career` string[]
- `audience` string[]
- `education` string[]
- `enrollment` string[]
- `citizenship` string[]
- `residence` string[]
- `country` string[]
- `destination` string[]
- `benefit` string[]
- `fundingShape` string[]
- `durationUnit` string[]
- `openState` string[]
- `lifecycle` string[]
- `ageMin` number
- `ageMax` number
- `deadlineFrom` string, date
- `deadlineTo` string, date
- `rolling` boolean
- `funded` boolean
- `fundingMin` number
- `fundingMax` number
- `durationMin` number
- `durationMax` number
- `open` boolean
- `locale` 'en' | 'es'
- `lang` 'en' | 'es'
- `sort` 'rank' | 'deadline' | 'name' | 'recent'
- `page` integer
- `limit` integer
- `offset` integer
- `facets` boolean

## Response `200`

Successful response

- SearchResponse
  - `data` ProgramSummary[], required
    - `id` string, uuid, required
    - `slug` string, required
    - `name` string, required
    - `summary` string, nullable, required
    - `type` string, required
    - `lifecycle` 'active_accepting' | 'active_between_cycles' | 'active_no_applications' | 'paused' | 'ended' | 'renamed_or_moved' | 'inaccessible' | 'unclear', required
    - `lifecycleCheckedAt` string, date-time, nullable, required
    - `fields` string[], required
    - `eligibleCountries` string[], required
    - `destinationCountries` string[], required
    - `careerStages` string[], required
    - `fundingMinUsd` number, nullable, required
    - `fundingMaxUsd` number, nullable, required
    - `officialUrl` string, uri, required
    - `sourceCheckedAt` string, date-time, nullable, required
    - `organization` OrganizationSummary, required
      - `id` string, uuid, required
      - `slug` string, required
      - `name` string, required
      - `pageAvailable` boolean, required
    - `nextDeadline` string, date, nullable, required
    - `ranking` ProgramRanking, required
      - `position` integer, required
      - `tier` 'S' | 'A' | 'B' | 'Unscored', required
      - `score` number, nullable, required
      - `badge` string, nullable, required
      - `reason` string, nullable, required
  - `meta` object, required
    - `limit` integer, required
    - `offset` integer, required
    - `count` integer, required
    - `total` integer, required
    - `page` integer, required
    - `pages` integer, required
    - `sort` 'rank' | 'deadline' | 'name' | 'recent', required
    - `invalid` string[], required
    - `facets` FacetCollection

## Other responses

- `4XX`: The request could not be fulfilled because of a client error.

---

[API](https://skmtc.dev/openmedici/apis/open-medici-public-api.md) · [All operations](https://skmtc.dev/openmedici/apis/open-medici-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/openmedici/apis/open-medici-public-api/revisions/3b7a349ded21?raw)
