# Give Food

> Look up UK food banks and what they are asking to have donated, through Give Food's keyless public API. Find the food banks and distribution locations nearest a postcode or address, read any food bank's current shopping list as a list of items, watch the needs published across the country for a particular item, summarise what the food banks near a place want between them, and see the food banks in any parliamentary constituency. Every food bank comes with the constituency it sits in and the MP for it. Give Food keeps the largest public database of the UK's food banks, covering nearly 3,000 locations. No account or API key required.

App · Misc References · 11 actions. Web page: https://docs.lodol.com/docs/integrations/give-food

## Actions

### Find food bank locations near a place

Find the food bank locations closest to a UK postcode, address, place name or coordinate, nearest first, with the needs of the food bank behind each. Give Food answers with both kinds of place in one list: 'organisation' is a food bank's own address and 'location' is one of the places it runs, so the nearest way to reach help comes back whichever it is. No API key required.

**Inputs**

- Place (`location`, text, required): Where to search from, in the UK: a postcode, a full address, a place name, or a 'latitude,longitude' pair. Give Food looks up anything that is not a pair of numbers, and searches only the UK.
- Limit (`limit`, number): How many of the twenty nearest to return. Defaults to all twenty. From 1 to 20. Default: `20`.

**Outputs**

- `count` (number): How many places are in this response.
- `location` (text): The place that was searched from.
- `location_type` (text): 'coordinates' when a latitude and longitude were given, 'address' when Give Food looked the place up.
- `locations` (list): The nearest places, closest first.
- `total_count` (number): How many Give Food returned, before the limit.
- `truncated` (true/false): Whether the limit cut the list short.

**Example output**

```json
{
  "count": 1,
  "location": "Sidmouth",
  "location_type": "address",
  "locations": [
    {
      "address": "Church Lane, Sidbury, Sidmouth, Devon",
      "distance_km": 0.4,
      "distance_m": 402,
      "distance_mi": 0.25,
      "email": "info@sidvalleyfoodbank.org.uk",
      "foodbank": {
        "name": "Sid Valley",
        "network": "Independent",
        "slug": "sid-valley",
        "urls": {
          "homepage": "https://sidvalleyfoodbank.org.uk/",
          "html": "https://www.givefood.org.uk/needs/at/sid-valley/",
          "self": "https://www.givefood.org.uk/api/2/foodbank/sid-valley/",
          "shopping_list": "https://sidvalleyfoodbank.org.uk/what-we-need/"
        }
      },
      "foodbank_name": "Sid Valley",
      "foodbank_slug": "sid-valley",
      "homepage": "https://sidvalleyfoodbank.org.uk/",
      "id": "0c4d1a77-9e2b-4c1a-8f0b-2a5d3e6f1b04",
      "lat_lng": "50.73410,-3.21870",
      "latitude": 50.7341,
      "longitude": -3.2187,
      "mp": "Richard Foord",
      "mp_party": "Liberal Democrat",
      "name": "Sidbury Village Hall",
      "needs": {
        "excess": "Baked beans",
        "excess_item_count": 1,
        "excess_items": [
          "Baked beans"
        ],
        "found": "2026-08-18T09:41:02",
        "id": "6ecf9dbb-1c17-4c9e-a1c8-eb59fc3edf29",
        "item_count": 4,
        "items": [
          "Tinned tomatoes",
          "UHT milk",
          "Nappies (size 5)",
          "Tinned fruit"
        ],
        "needs": "Tinned tomatoes\nUHT milk\nNappies (size 5)\nTinned fruit",
        "number": 4,
        "status": "items"
      },
      "network": "Independent",
      "parliamentary_constituency": "Honiton and Sidmouth",
      "phone": "01395 597070",
      "politics": {
        "district": "East Devon",
        "mp": "Richard Foord",
        "mp_parl_id": 4869,
        "mp_party": "Liberal Democrat",
        "parliamentary_constituency": "Honiton and Sidmouth",
        "urls": {
          "html": "https://www.givefood.org.uk/needs/in/constituency/honiton-and-sidmouth/",
          "self": "https://www.givefood.org.uk/api/2/constituency/honiton-and-sidmouth/"
        },
        "ward": "Sidmouth Town"
      },
      "postcode": "EX10 0RB",
      "slug": "sidbury-village-hall",
      "type": "location",
      "url": "https://www.givefood.org.uk/needs/at/sid-valley/sidbury-village-hall/",
      "urls": {
        "html": "https://www.givefood.org.uk/needs/at/sid-valley/sidbury-village-hall/"
      }
    }
  ],
  "total_count": 20,
  "truncated": true
}
```

### Find food banks near a place

Find the food banks closest to a UK postcode, address, place name or coordinate, nearest first, each with how far away it is and what it is currently asking to have donated. Give Food returns the ten nearest. Use it to answer 'where is my nearest food bank and what do they need'. No API key required.

**Inputs**

- Place (`location`, text, required): Where to search from, in the UK: a postcode, a full address, a place name, or a 'latitude,longitude' pair. Give Food looks up anything that is not a pair of numbers, and searches only the UK.
- Limit (`limit`, number): How many of the ten nearest to return. Defaults to all ten. From 1 to 10. Default: `10`.

**Outputs**

- `count` (number): How many food banks are in this response.
- `foodbanks` (list): The nearest food banks, closest first.
- `location` (text): The place that was searched from.
- `location_type` (text): 'coordinates' when a latitude and longitude were given, 'address' when Give Food looked the place up.
- `total_count` (number): How many Give Food returned, before the limit.
- `truncated` (true/false): Whether the limit cut the list short.

**Example output**

```json
{
  "count": 1,
  "foodbanks": [
    {
      "address": "Church Street, Sidmouth, Devon",
      "alt_name": null,
      "charity": {
        "register_url": "https://register-of-charities.charitycommission.gov.uk/charity-search/-/charity-details/1160655/",
        "registration_id": "1160655"
      },
      "closed": false,
      "country": "England",
      "created": "2019-04-02T11:12:13",
      "distance_km": 1.61,
      "distance_m": 1609,
      "distance_mi": 1.0,
      "email": "info@sidvalleyfoodbank.org.uk",
      "homepage": "https://sidvalleyfoodbank.org.uk/",
      "id": "b3d0f2a4-6d19-4a0f-9f2e-1c9a0f4b7e21",
      "lat_lng": "50.68881,-3.23926",
      "latitude": 50.68881,
      "longitude": -3.23926,
      "mp": "Richard Foord",
      "mp_party": "Liberal Democrat",
      "name": "Sid Valley",
      "needs": {
        "excess": "Baked beans",
        "excess_item_count": 1,
        "excess_items": [
          "Baked beans"
        ],
        "found": "2026-08-18T09:41:02",
        "id": "6ecf9dbb-1c17-4c9e-a1c8-eb59fc3edf29",
        "item_count": 4,
        "items": [
          "Tinned tomatoes",
          "UHT milk",
          "Nappies (size 5)",
          "Tinned fruit"
        ],
        "needs": "Tinned tomatoes\nUHT milk\nNappies (size 5)\nTinned fruit",
        "number": 4,
        "status": "items"
      },
      "network": "Independent",
      "parliamentary_constituency": "Honiton and Sidmouth",
      "phone": "01395 597070",
      "politics": {
        "district": "East Devon",
        "mp": "Richard Foord",
        "mp_parl_id": 4869,
        "mp_party": "Liberal Democrat",
        "parliamentary_constituency": "Honiton and Sidmouth",
        "urls": {
          "html": "https://www.givefood.org.uk/needs/in/constituency/honiton-and-sidmouth/",
          "self": "https://www.givefood.org.uk/api/2/constituency/honiton-and-sidmouth/"
        },
        "ward": "Sidmouth Town"
      },
      "postcode": "EX10 8LY",
      "secondary_phone": null,
      "shopping_list_url": "https://sidvalleyfoodbank.org.uk/what-we-need/",
      "slug": "sid-valley",
      "url": "https://www.givefood.org.uk/needs/at/sid-valley/",
      "urls": {
        "homepage": "https://sidvalleyfoodbank.org.uk/",
        "html": "https://www.givefood.org.uk/needs/at/sid-valley/",
        "self": "https://www.givefood.org.uk/api/2/foodbank/sid-valley/",
        "shopping_list": "https://sidvalleyfoodbank.org.uk/what-we-need/"
      }
    }
  ],
  "location": "EX10 8LY",
  "location_type": "address",
  "total_count": 10,
  "truncated": true
}
```

### Get a constituency

Get one parliamentary constituency and every food bank inside it, with what each is currently asking to have donated. Use it to cover a whole seat in one request rather than one food bank at a time, or to write to an MP about the food banks in their constituency. Give Food names the MP on each food bank's own record rather than on the constituency, so 'Get a food bank' or either search is where to read it. No API key required.

**Inputs**

- Constituency (`slug`, text, required): The constituency's slug, as returned by 'List parliamentary constituencies'. A name is accepted too and turned into a slug ('Islington North' becomes 'islington-north'). The 2024 boundaries are the ones in use.

**Outputs**

- `constituency` (object): The constituency and the food banks in it.

**Example output**

```json
{
  "constituency": {
    "country": "England",
    "foodbank_count": 1,
    "foodbanks": [
      {
        "excess": "Baked beans",
        "excess_item_count": 1,
        "excess_items": [
          "Baked beans"
        ],
        "homepage": "https://sidvalleyfoodbank.org.uk/",
        "item_count": 4,
        "items": [
          "Tinned tomatoes",
          "UHT milk",
          "Nappies (size 5)",
          "Tinned fruit"
        ],
        "lat_lng": "50.68881,-3.23926",
        "latitude": 50.68881,
        "longitude": -3.23926,
        "name": "Sid Valley",
        "needs": "Tinned tomatoes\nUHT milk\nNappies (size 5)\nTinned fruit",
        "shopping_list_url": "https://sidvalleyfoodbank.org.uk/what-we-need/",
        "slug": "sid-valley",
        "status": "items",
        "url": "https://www.givefood.org.uk/needs/at/sid-valley/"
      }
    ],
    "name": "Honiton and Sidmouth",
    "slug": "honiton-and-sidmouth",
    "url": "https://www.givefood.org.uk/needs/in/constituency/honiton-and-sidmouth/",
    "urls": {
      "html": "https://www.givefood.org.uk/needs/in/constituency/honiton-and-sidmouth/",
      "self": "https://www.givefood.org.uk/api/2/constituency/honiton-and-sidmouth/"
    }
  }
}
```

### Get a food bank

Get everything Give Food holds on one food bank: what it is currently asking to have donated, the places it operates from, the donation points it collects at, its charity registration, its MP and constituency, and the food banks nearest to it. Takes the slug from 'List food banks' or 'Find food banks near a place', or the food bank's name. No API key required.

**Inputs**

- Food bank (`slug`, text, required): The food bank's slug, as returned by the list and search actions. A name is accepted too and turned into a slug ('Sid Valley' becomes 'sid-valley').

**Outputs**

- `foodbank` (object): The food bank, with its needs, locations and neighbours.

**Example output**

```json
{
  "foodbank": {
    "address": "Church Street, Sidmouth, Devon",
    "alt_name": null,
    "charity": {
      "register_url": "https://register-of-charities.charitycommission.gov.uk/charity-search/-/charity-details/1160655/",
      "registration_id": "1160655"
    },
    "closed": false,
    "country": "England",
    "created": "2019-04-02T11:12:13",
    "delivery_address": "",
    "delivery_lat_lng": "",
    "donationpoint_count": 1,
    "donationpoints": [
      {
        "address": "Church Street, Sidmouth, Devon",
        "id": "f27a8c31-5b6e-4d02-9a13-7c8e0d4f5a92",
        "lat_lng": "50.68930,-3.24010",
        "latitude": 50.6893,
        "longitude": -3.2401,
        "name": "Co-op Sidmouth",
        "opening_hours": "Mon-Sat 07:00-22:00, Sun 10:00-16:00",
        "parliamentary_constituency": "Honiton and Sidmouth",
        "phone": null,
        "postcode": "EX10 8LY",
        "slug": "co-op-sidmouth",
        "url": "https://www.coop.co.uk/store-finder",
        "wheelchair_accessible": true
      }
    ],
    "email": "info@sidvalleyfoodbank.org.uk",
    "homepage": "https://sidvalleyfoodbank.org.uk/",
    "id": "b3d0f2a4-6d19-4a0f-9f2e-1c9a0f4b7e21",
    "lat_lng": "50.68881,-3.23926",
    "latitude": 50.68881,
    "location_count": 1,
    "locations": [
      {
        "address": "Church Lane, Sidbury, Sidmouth, Devon",
        "id": "0c4d1a77-9e2b-4c1a-8f0b-2a5d3e6f1b04",
        "is_donation_point": true,
        "lat_lng": "50.73410,-3.21870",
        "latitude": 50.7341,
        "longitude": -3.2187,
        "mp": "Richard Foord",
        "mp_party": "Liberal Democrat",
        "name": "Sidbury Village Hall",
        "parliamentary_constituency": "Honiton and Sidmouth",
        "phone": null,
        "politics": {
          "district": "East Devon",
          "mp": "Richard Foord",
          "mp_parl_id": 4869,
          "mp_party": "Liberal Democrat",
          "parliamentary_constituency": "Honiton and Sidmouth",
          "urls": {
            "html": "https://www.givefood.org.uk/needs/in/constituency/honiton-and-sidmouth/",
            "self": "https://www.givefood.org.uk/api/2/constituency/honiton-and-sidmouth/"
          },
          "ward": "Sidmouth Town"
        },
        "postcode": "EX10 0RB",
        "slug": "sidbury-village-hall",
        "url": null
      }
    ],
    "longitude": -3.23926,
    "mp": "Richard Foord",
    "mp_party": "Liberal Democrat",
    "name": "Sid Valley",
    "nearby_foodbanks": [
      {
        "address": "Beaufort Road, Exeter, Devon",
        "homepage": "https://exeter.foodbank.org.uk/",
        "lat_lng": "50.71090,-3.54120",
        "latitude": 50.7109,
        "longitude": -3.5412,
        "name": "Exeter",
        "shopping_list_url": "https://exeter.foodbank.org.uk/give-help/donate-food/",
        "slug": "exeter",
        "url": "https://www.givefood.org.uk/needs/at/exeter/"
      }
    ],
    "need": {
      "excess": "Baked beans",
      "excess_item_count": 1,
      "excess_items": [
        "Baked beans"
      ],
      "found": "2026-08-18T09:41:02",
      "id": "6ecf9dbb-1c17-4c9e-a1c8-eb59fc3edf29",
      "item_count": 4,
      "items": [
        "Tinned tomatoes",
        "UHT milk",
        "Nappies (size 5)",
        "Tinned fruit"
      ],
      "needs": "Tinned tomatoes\nUHT milk\nNappies (size 5)\nTinned fruit",
      "number": 4,
      "status": "items"
    },
    "network": "Independent",
    "parliamentary_constituency": "Honiton and Sidmouth",
    "phone": "01395 597070",
    "politics": {
      "district": "East Devon",
      "mp": "Richard Foord",
      "mp_parl_id": 4869,
      "mp_party": "Liberal Democrat",
      "parliamentary_constituency": "Honiton and Sidmouth",
      "urls": {
        "html": "https://www.givefood.org.uk/needs/in/constituency/honiton-and-sidmouth/",
        "self": "https://www.givefood.org.uk/api/2/constituency/honiton-and-sidmouth/"
      },
      "ward": "Sidmouth Town"
    },
    "postcode": "EX10 8LY",
    "secondary_phone": null,
    "shopping_list_url": "https://sidvalleyfoodbank.org.uk/what-we-need/",
    "slug": "sid-valley",
    "url": "https://www.givefood.org.uk/needs/at/sid-valley/",
    "urls": {
      "homepage": "https://sidvalleyfoodbank.org.uk/",
      "html": "https://www.givefood.org.uk/needs/at/sid-valley/",
      "self": "https://www.givefood.org.uk/api/2/foodbank/sid-valley/",
      "shopping_list": "https://sidvalleyfoodbank.org.uk/what-we-need/"
    }
  }
}
```

### Get a food bank's needs

Get what one food bank is asking to have donated, as a list of items ready to write into a message, a document or a shopping list, along with anything it has too much of and where to take a donation. 'status' says whether the list is real ('items'), deliberately empty ('nothing') or not known to Give Food ('unknown'), so a workflow never reports 'we could not find their list' as 'they need nothing'. No API key required.

**Inputs**

- Food bank (`slug`, text, required): The food bank's slug, as returned by the list and search actions. A name is accepted too and turned into a slug ('Sid Valley' becomes 'sid-valley').

**Outputs**

- `excess_item_count` (number): How many items there are too much of.
- `excess_items` (list): What they already have too much of.
- `excess_text` (text): The excess list exactly as published.
- `foodbank` (object): Who published this list, and how to reach them.
- `found` (text): When Give Food found this list.
- `item_count` (number): How many items are asked for.
- `items` (list): What to donate, in the order the food bank wrote it. Give Food asks that this order is kept.
- `need_id` (text): The id of this shopping list, which 'Get a need' takes.
- `needs_text` (text): The shopping list exactly as published, one item per line.
- `status` (text): 'items' when there is a list, 'nothing' when the food bank is asking for nothing right now, 'unknown' when Give Food has not found their list.

**Example output**

```json
{
  "excess_item_count": 1,
  "excess_items": [
    "Baked beans"
  ],
  "excess_text": "Baked beans",
  "foodbank": {
    "address": "Church Street, Sidmouth, Devon",
    "email": "info@sidvalleyfoodbank.org.uk",
    "homepage": "https://sidvalleyfoodbank.org.uk/",
    "name": "Sid Valley",
    "network": "Independent",
    "phone": "01395 597070",
    "postcode": "EX10 8LY",
    "shopping_list_url": "https://sidvalleyfoodbank.org.uk/what-we-need/",
    "slug": "sid-valley",
    "url": "https://www.givefood.org.uk/needs/at/sid-valley/"
  },
  "found": "2026-08-18T09:41:02",
  "item_count": 4,
  "items": [
    "Tinned tomatoes",
    "UHT milk",
    "Nappies (size 5)",
    "Tinned fruit"
  ],
  "need_id": "6ecf9dbb-1c17-4c9e-a1c8-eb59fc3edf29",
  "needs_text": "Tinned tomatoes\nUHT milk\nNappies (size 5)\nTinned fruit",
  "status": "items"
}
```

### Get a need

Get one published shopping list by its id: what the food bank asked for, what it had too much of, when Give Food found it, and who published it. Ids come from 'List recent needs', from 'Get a food bank' or from 'Get a food bank's needs', each of which prints the id in its own step summary as well as returning it. Each need is a fixed record of a moment, so it can be quoted later without changing. No API key required.

**Inputs**

- Need (`need_id`, text, required): The need's id, a UUID. Take one from 'List recent needs', or from the 'need_id' a food bank's needs come back with. Both print it in the step summary too.

**Outputs**

- `need` (object): The shopping list, parsed into items.

**Example output**

```json
{
  "need": {
    "excess": "Baked beans",
    "excess_item_count": 1,
    "excess_items": [
      "Baked beans"
    ],
    "foodbank": {
      "name": "Sid Valley",
      "slug": "sid-valley",
      "urls": {
        "html": "https://www.givefood.org.uk/needs/at/sid-valley/",
        "self": "https://www.givefood.org.uk/api/2/foodbank/sid-valley/"
      }
    },
    "foodbank_name": "Sid Valley",
    "foodbank_slug": "sid-valley",
    "found": "2026-08-18T09:41:02",
    "id": "6ecf9dbb-1c17-4c9e-a1c8-eb59fc3edf29",
    "item_count": 4,
    "items": [
      "Tinned tomatoes",
      "UHT milk",
      "Nappies (size 5)",
      "Tinned fruit"
    ],
    "needs": "Tinned tomatoes\nUHT milk\nNappies (size 5)\nTinned fruit",
    "self": "https://www.givefood.org.uk/api/2/need/6ecf9dbb-1c17-4c9e-a1c8-eb59fc3edf29/",
    "status": "items",
    "url": "https://www.givefood.org.uk/api/2/need/6ecf9dbb-1c17-4c9e-a1c8-eb59fc3edf29/"
  }
}
```

### List food bank locations

List the places food banks operate from: the church halls, community centres and shops where food is handed out or collected, each with its address, postcode and the food bank behind it. There are about twice as many locations as there are food banks. Narrow by name, town, postcode or network. No API key required.

**Inputs**

- Search (`query`, text): Optional. Keep only locations whose name, address, postcode, food bank or constituency contains this text.
- Network (`network`, text): Optional. Keep only food banks in one network. Leave empty for all of them. One of: `Trussell` (Trussell (formerly the Trussell Trust)), `IFAN` (IFAN (Independent Food Aid Network)), `Independent` (Independent (in neither network)).
- Limit (`limit`, number): How many records to return. Give Food publishes the whole country in one response, so this decides how much of it comes back: 'total_count' always says how many matched. Defaults to 50. From 1 to 5000. Default: `50`.

**Outputs**

- `count` (number): How many locations are in this response.
- `known_count` (number): How many open locations Give Food holds in total.
- `locations` (list): The locations that matched, up to the limit.
- `network` (text): The network this list was filtered to.
- `query` (text): The search text this list was filtered by.
- `total_count` (number): How many matched the filters, before the limit.
- `truncated` (true/false): Whether the limit cut the list short.

**Example output**

```json
{
  "count": 1,
  "known_count": 2986,
  "locations": [
    {
      "address": "Church Lane, Sidbury, Sidmouth, Devon",
      "email": "info@sidvalleyfoodbank.org.uk",
      "foodbank": {
        "name": "Sid Valley",
        "network": "Independent",
        "slug": "sid-valley",
        "urls": {
          "homepage": "https://sidvalleyfoodbank.org.uk/",
          "html": "https://www.givefood.org.uk/needs/at/sid-valley/",
          "self": "https://www.givefood.org.uk/api/2/foodbank/sid-valley/",
          "shopping_list": "https://sidvalleyfoodbank.org.uk/what-we-need/"
        }
      },
      "foodbank_name": "Sid Valley",
      "foodbank_slug": "sid-valley",
      "id": "0c4d1a77-9e2b-4c1a-8f0b-2a5d3e6f1b04",
      "lat_lng": "50.73410,-3.21870",
      "latitude": 50.7341,
      "longitude": -3.2187,
      "mp": "Richard Foord",
      "mp_party": "Liberal Democrat",
      "name": "Sidbury Village Hall",
      "network": "Independent",
      "parliamentary_constituency": "Honiton and Sidmouth",
      "phone": "01395 597070",
      "politics": {
        "district": "East Devon",
        "mp": "Richard Foord",
        "mp_parl_id": 4869,
        "mp_party": "Liberal Democrat",
        "parliamentary_constituency": "Honiton and Sidmouth",
        "urls": {
          "html": "https://www.givefood.org.uk/needs/in/constituency/honiton-and-sidmouth/",
          "self": "https://www.givefood.org.uk/api/2/constituency/honiton-and-sidmouth/"
        },
        "ward": "Sidmouth Town"
      },
      "postcode": "EX10 0RB",
      "slug": "sidbury-village-hall",
      "url": "https://www.givefood.org.uk/needs/at/sid-valley/sidbury-village-hall/",
      "urls": {
        "html": "https://www.givefood.org.uk/needs/at/sid-valley/sidbury-village-hall/"
      }
    }
  ],
  "network": null,
  "query": "Sidmouth",
  "total_count": 1,
  "truncated": false
}
```

### List food banks

List the UK food banks Give Food knows of, with the address, phone number, website and constituency of each, and the slug the other actions take. Narrow the list by name, country or network, or leave the filters empty for the whole country. This is how a food bank's name becomes the slug 'Get a food bank' needs. No API key required.

**Inputs**

- Search (`query`, text): Optional. Keep only food banks whose name, address, postcode or constituency contains this text. Exact name matches come first.
- Country (`country`, text): Optional. Keep only records in one country of the UK. Leave empty for all of them. One of: `England`, `Wales`, `Scotland`, `Northern Ireland`, `Isle of Man`, `Jersey`, `Guernsey`.
- Network (`network`, text): Optional. Keep only food banks in one network. Leave empty for all of them. One of: `Trussell` (Trussell (formerly the Trussell Trust)), `IFAN` (IFAN (Independent Food Aid Network)), `Independent` (Independent (in neither network)).
- Limit (`limit`, number): How many records to return. Give Food publishes the whole country in one response, so this decides how much of it comes back: 'total_count' always says how many matched. Defaults to 50. From 1 to 5000. Default: `50`.

**Outputs**

- `count` (number): How many food banks are in this response.
- `country` (text): The country this list was filtered to.
- `foodbanks` (list): The food banks that matched, up to the limit.
- `known_count` (number): How many open food banks Give Food holds in total.
- `network` (text): The network this list was filtered to.
- `query` (text): The search text this list was filtered by.
- `total_count` (number): How many matched the filters, before the limit.
- `truncated` (true/false): Whether the limit cut the list short.

**Example output**

```json
{
  "count": 1,
  "country": null,
  "foodbanks": [
    {
      "address": "Church Street, Sidmouth, Devon",
      "alt_name": null,
      "charity": {
        "register_url": "https://register-of-charities.charitycommission.gov.uk/charity-search/-/charity-details/1160655/",
        "registration_id": "1160655"
      },
      "closed": false,
      "country": "England",
      "created": "2019-04-02T11:12:13",
      "email": "info@sidvalleyfoodbank.org.uk",
      "homepage": "https://sidvalleyfoodbank.org.uk/",
      "id": "b3d0f2a4-6d19-4a0f-9f2e-1c9a0f4b7e21",
      "lat_lng": "50.68881,-3.23926",
      "latitude": 50.68881,
      "longitude": -3.23926,
      "mp": "Richard Foord",
      "mp_party": "Liberal Democrat",
      "name": "Sid Valley",
      "network": "Independent",
      "parliamentary_constituency": "Honiton and Sidmouth",
      "phone": "01395 597070",
      "politics": {
        "district": "East Devon",
        "mp": "Richard Foord",
        "mp_parl_id": 4869,
        "mp_party": "Liberal Democrat",
        "parliamentary_constituency": "Honiton and Sidmouth",
        "urls": {
          "html": "https://www.givefood.org.uk/needs/in/constituency/honiton-and-sidmouth/",
          "self": "https://www.givefood.org.uk/api/2/constituency/honiton-and-sidmouth/"
        },
        "ward": "Sidmouth Town"
      },
      "postcode": "EX10 8LY",
      "secondary_phone": null,
      "shopping_list_url": "https://sidvalleyfoodbank.org.uk/what-we-need/",
      "slug": "sid-valley",
      "url": "https://www.givefood.org.uk/needs/at/sid-valley/",
      "urls": {
        "homepage": "https://sidvalleyfoodbank.org.uk/",
        "html": "https://www.givefood.org.uk/needs/at/sid-valley/",
        "self": "https://www.givefood.org.uk/api/2/foodbank/sid-valley/",
        "shopping_list": "https://sidvalleyfoodbank.org.uk/what-we-need/"
      }
    }
  ],
  "known_count": 1372,
  "network": null,
  "query": "Sid Valley",
  "total_count": 1,
  "truncated": false
}
```

### List parliamentary constituencies

List the UK parliamentary constituencies Give Food records food banks against, on the 2024 boundaries, each with the country it is in and the slug 'Get a constituency' takes. This is how a constituency's name becomes the id for the food banks inside it. No API key required.

**Inputs**

- Search (`query`, text): Optional. Keep only constituencies whose name or slug contains this text. Exact name matches come first.
- Country (`country`, text): Optional. Keep only records in one country of the UK. Leave empty for all of them. One of: `England`, `Wales`, `Scotland`, `Northern Ireland`, `Isle of Man`, `Jersey`, `Guernsey`.
- Limit (`limit`, number): How many records to return. Give Food publishes the whole country in one response, so this decides how much of it comes back: 'total_count' always says how many matched. Defaults to 50. From 1 to 5000. Default: `50`.

**Outputs**

- `constituencies` (list): The constituencies that matched, up to the limit.
- `count` (number): How many constituencies are in this response.
- `country` (text): The country this list was filtered to.
- `known_count` (number): How many constituencies Give Food holds in total.
- `query` (text): The search text this list was filtered by.
- `total_count` (number): How many matched the filters, before the limit.
- `truncated` (true/false): Whether the limit cut the list short.

**Example output**

```json
{
  "constituencies": [
    {
      "country": "England",
      "name": "Honiton and Sidmouth",
      "slug": "honiton-and-sidmouth",
      "url": "https://www.givefood.org.uk/needs/in/constituency/honiton-and-sidmouth/",
      "urls": {
        "html": "https://www.givefood.org.uk/needs/in/constituency/honiton-and-sidmouth/",
        "self": "https://www.givefood.org.uk/api/2/constituency/honiton-and-sidmouth/"
      }
    }
  ],
  "count": 1,
  "country": null,
  "known_count": 650,
  "query": "Honiton",
  "total_count": 1,
  "truncated": false
}
```

### List recent needs

List the most recent shopping lists published by food banks anywhere in the UK, newest first, each parsed into items with the food bank that asked for them. Give Food publishes the hundred most recent. Filter by item to watch for something in particular ('nappies', 'UHT milk'), or by food bank to follow one. No API key required.

**Inputs**

- Item (`item`, text): Optional. Keep only needs asking for something whose wording contains this text.
- Food bank (`foodbank`, text): Optional. Keep only needs from one food bank, by name or slug.
- Limit (`limit`, number): How many needs to return, out of the hundred most recent. Defaults to 25. From 1 to 100. Default: `25`.

**Outputs**

- `count` (number): How many needs are in this response.
- `foodbank` (text): The food bank this list was filtered to.
- `item` (text): The item this list was filtered by.
- `needs` (list): The needs that matched, newest first.
- `published_count` (number): How many needs Give Food published in this feed.
- `total_count` (number): How many matched the filters, before the limit.
- `truncated` (true/false): Whether the limit cut the list short.

**Example output**

```json
{
  "count": 1,
  "foodbank": null,
  "item": "nappies",
  "needs": [
    {
      "excess": "Baked beans",
      "excess_item_count": 1,
      "excess_items": [
        "Baked beans"
      ],
      "foodbank": {
        "name": "Sid Valley",
        "slug": "sid-valley",
        "urls": {
          "html": "https://www.givefood.org.uk/needs/at/sid-valley/",
          "self": "https://www.givefood.org.uk/api/2/foodbank/sid-valley/"
        }
      },
      "foodbank_name": "Sid Valley",
      "foodbank_slug": "sid-valley",
      "found": "2026-08-18T09:41:02",
      "id": "6ecf9dbb-1c17-4c9e-a1c8-eb59fc3edf29",
      "item_count": 4,
      "items": [
        "Tinned tomatoes",
        "UHT milk",
        "Nappies (size 5)",
        "Tinned fruit"
      ],
      "needs": "Tinned tomatoes\nUHT milk\nNappies (size 5)\nTinned fruit",
      "self": "https://www.givefood.org.uk/api/2/need/6ecf9dbb-1c17-4c9e-a1c8-eb59fc3edf29/",
      "status": "items",
      "url": "https://www.givefood.org.uk/api/2/need/6ecf9dbb-1c17-4c9e-a1c8-eb59fc3edf29/"
    }
  ],
  "published_count": 100,
  "total_count": 1,
  "truncated": false
}
```

### Summarise what food banks near a place need

Read the shopping lists of the food banks nearest a UK place together, and return the items they are asking for with how many of them want each: the 'what should I put in the trolley' answer for an area, in one request instead of a search followed by a lookup per food bank. Food banks whose list Give Food has not found are counted separately rather than read as needing nothing. No API key required.

**Inputs**

- Place (`location`, text, required): Where to search from, in the UK: a postcode, a full address, a place name, or a 'latitude,longitude' pair. Give Food looks up anything that is not a pair of numbers, and searches only the UK.
- Food banks to read (`foodbank_limit`, number): How many of the nearest food banks to read, up to the ten Give Food returns. Defaults to 5. From 1 to 10. Default: `5`.

**Outputs**

- `asking_count` (number): How many of them published a list of items.
- `foodbank_count` (number): How many food banks were read.
- `foodbanks` (list): The food banks that were read, nearest first.
- `item_count` (number): How many different items are wanted between them.
- `items` (list): Every item asked for nearby, most-wanted first. Items are grouped by their exact wording, ignoring case and surrounding punctuation, since each food bank writes its own list.
- `location` (text): The place that was searched from.
- `location_type` (text): 'coordinates' when a latitude and longitude were given, 'address' when Give Food looked the place up.
- `nothing_count` (number): How many are asking for nothing right now.
- `unknown_count` (number): How many have no list Give Food could find. Their needs are not zero, they are unknown.

**Example output**

```json
{
  "asking_count": 3,
  "foodbank_count": 5,
  "foodbanks": [
    {
      "distance_km": 1.61,
      "distance_mi": 1.0,
      "item_count": 2,
      "items": [
        "Tinned tomatoes",
        "UHT milk"
      ],
      "name": "Sid Valley",
      "shopping_list_url": "https://sidvalleyfoodbank.org.uk/what-we-need/",
      "slug": "sid-valley",
      "status": "items",
      "url": "https://www.givefood.org.uk/needs/at/sid-valley/"
    }
  ],
  "item_count": 2,
  "items": [
    {
      "foodbank_count": 3,
      "foodbanks": [
        "Sid Valley",
        "Exeter",
        "Honiton"
      ],
      "item": "UHT milk"
    },
    {
      "foodbank_count": 2,
      "foodbanks": [
        "Sid Valley",
        "Exeter"
      ],
      "item": "Tinned tomatoes"
    }
  ],
  "location": "EX10 8LY",
  "location_type": "address",
  "nothing_count": 1,
  "unknown_count": 1
}
```
