---
title: "GET /api/v1/challenges"
method: GET
path: "/api/v1/challenges"
tags: ["challenges"]
---

# GET /api/v1/challenges

`GET /api/v1/challenges`

## Request

- Base URL: `https://prices.openfoodfacts.org` (the document declares no server; this is the origin it was published from)
- URL: `https://prices.openfoodfacts.org/api/v1/challenges`
- Auth: none declared

## Query parameters

- `end_date__gt` string, date
- `end_date__gte` string, date
- `end_date__lt` string, date
- `end_date__lte` string, date
- `end_date__month` number
- `end_date__year` number
- `id` integer
- `is_published` boolean
- `order_by` string
- `page` integer
- `size` integer
- `start_date__gt` string, date
- `start_date__gte` string, date
- `start_date__lt` string, date
- `start_date__lte` string, date
- `start_date__month` number
- `start_date__year` number
- `status` 'COMPLETED' | 'DRAFT' | 'ONGOING' | 'UPCOMING'

## Response `200`

- PaginatedChallengeList
  - `items` Challenge[], required
    - `id` integer, required
    - `locations` Location[], required
      - `id` integer, required
      - `osm_brand_logo_url` string, required
      - `type` 'OSM' | 'ONLINE', required: * `OSM` - OSM * `ONLINE` - ONLINE
      - `osm_id` integer, nullable
      - `osm_type` union
        - 'NODE' | 'WAY' | 'RELATION': * `NODE` - NODE * `WAY` - WAY * `RELATION` - RELATION
        - ''
        - unknown
      - `osm_name` string, nullable
      - `osm_display_name` string, nullable
      - `osm_tag_key` string, nullable
      - `osm_tag_value` string, nullable
      - `osm_tags` string[]
      - `osm_brand` string, nullable
      - `osm_address_postcode` string, nullable
      - `osm_address_city` string, nullable
      - `osm_address_country` string, nullable
      - `osm_address_country_code` string, nullable
      - `osm_lat` number, double, nullable
      - `osm_lon` number, double, nullable
      - `osm_version` integer, nullable
      - `osm_version_date` string, date-time, nullable
      - `website_url` string, uri, nullable
      - `price_count` integer
      - `user_count` integer
      - `product_count` integer
      - `proof_count` integer
      - `source` string, nullable
      - `created` string, date-time
      - `updated` string, date-time, required
    - `status` 'DRAFT' | 'UPCOMING' | 'ONGOING' | 'COMPLETED', required: * `DRAFT` - DRAFT * `UPCOMING` - UPCOMING * `ONGOING` - ONGOING * `COMPLETED` - COMPLETED
    - `tag` string, required
    - `title` string, nullable
    - `icon` string, nullable
    - `subtitle` string, nullable
    - `start_date` string, date, nullable
    - `end_date` string, date, nullable
    - `categories` string[]: Restrict to one or multiple categories (optional)
    - `categories_full` string[]: Full category tags with parents, used for matching & stats (readonly)
    - `example_proof_url` string, nullable
    - `promo_banner_image_url` string, nullable
    - `promo_banner_url` string, nullable
    - `promo_banner_alt_text` string, nullable
    - `is_published` boolean
    - `stats` unknown
    - `created` string, date-time
    - `updated` string, date-time, required
  - `page` integer, required: Current page number
  - `pages` integer, required: Total number of pages
  - `size` integer, required: Number of items per page
  - `total` integer, required: Total number of items

## Changes

- **2026-09-24** `cf7a76a46395`: 1 info
  - added the optional property `items/items/locations/items/osm_tags` to the response with the `200` status
- **2026-09-19** `595eae6f5ba3`: 3 info
  - added the optional property `items/items/promo_banner_alt_text` to the response with the `200` status
  - added the optional property `items/items/promo_banner_image_url` to the response with the `200` status
  - added the optional property `items/items/promo_banner_url` to the response with the `200` status
- **2026-09-16** `fd287e13ea64`: 1 info
  - added the optional property `items/items/locations/items/osm_version_date` to the response with the `200` status
- **2026-07-13** `f1bb01adae9b`: 1 breaking, 16 info
  - the `items/items/` response's property type changed from `array` to `object` for status `200`
  - added the optional property `items/items/categories` to the response with the `200` status
  - added the optional property `items/items/categories_full` to the response with the `200` status
  - added the optional property `items/items/created` to the response with the `200` status
  - …13 more
- …earlier changes not shown

[Operation history](https://skmtc.dev/openfoodfacts/apis/open-food-facts-open-prices-rest-api/changes/api/v1/challenges/get.md)

---

[API](https://skmtc.dev/openfoodfacts/apis/open-food-facts-open-prices-rest-api.md) - [All operations](https://skmtc.dev/openfoodfacts/apis/open-food-facts-open-prices-rest-api/llms.txt) - [OpenAPI document](https://skmtc.dev/openfoodfacts/apis/open-food-facts-open-prices-rest-api/revisions/d7c5d8b4c32e?raw)
