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

# GET /api/v1/challenges/{id}

`GET /api/v1/challenges/{id}`

## 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/{id}`
- Auth: none declared

## Path parameters

- `id` integer, required

## Response `200`

- Challenge
  - `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

## Changes

- **2026-09-24** `cf7a76a46395`: 1 info
  - added the optional property `locations/items/osm_tags` to the response with the `200` status
- **2026-09-19** `595eae6f5ba3`: 3 info
  - added the optional property `promo_banner_alt_text` to the response with the `200` status
  - added the optional property `promo_banner_image_url` to the response with the `200` status
  - added the optional property `promo_banner_url` to the response with the `200` status
- **2026-09-16** `fd287e13ea64`: 1 info
  - added the optional property `locations/items/osm_version_date` to the response with the `200` status
- **2026-07-13** `f1bb01adae9b`: 1 breaking, 4 info
  - the `status` response's property type changed from `string` to no type for status `200`
  - added the optional property `categories_full` to the response with the `200` status
  - added the optional property `stats` to the response with the `200` status
  - added `#/components/schemas/ChallengeStatusEnum` to the `status` response property `allOf` list for the response status `200`
  - …1 more
- …earlier changes not shown

[Operation history](https://skmtc.dev/openfoodfacts/apis/open-food-facts-open-prices-rest-api/changes/api/v1/challenges/:id/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)
