# Amsterdam grants register

Every grant awarded by the City of Amsterdam: to whom, under which scheme, and how much was requested, granted and finally settled.

- Publisher: Gemeente Amsterdam
- Area: Amsterdam · Finest detail: grant file
- Period: 2015 – 2027 · Refreshed: daily
- Access: Open · Licence: CC0
- Join keys: dossiernummer, naam aanvrager
- Status: ok (2026-10-15)
- URL: https://data.amsterdam.nl

## What can you do with it?
- **How much does an organisation get?.** Search by name and total what was awarded per year. Compare with what was requested.
- **Where does the money go?.** Group by policy area or scheme. Divide multi-year grants by their term first.
- **Spotting anomalies.** Find organisations whose grants grew fast, or where the settled amount is much lower than awarded.

## How to process it
1. **Download everything.** The register is a few tens of thousands of rows: one CSV or a few API pages.
   `https://api.data.amsterdam.nl/v1/subsidies/v1/openbaar_subsidieregister/?_format=csv`
2. **Normalise names.** Lowercase, remove 'Stichting' and punctuation. Check doubtful cases by hand.
3. **Spread multi-year amounts.** Recognise multi-year schemes by name ('2025-2028', 'meerjarig') and spread the amount over the years.
4. **Awarded, settled or both.** Use awarded for recent years and settled for completed ones. Always state which.

## Interesting combinations
- Who is behind the recipients? → [kvk-handelsregister](http://localhost:3471/en/bron/kvk-handelsregister.md) via naam → KvK-nummer. With the company number you find directors, addresses and linked companies.
- What did the council discuss about this recipient? → [openraadsinformatie](http://localhost:3471/en/bron/openraadsinformatie.md) via naam organisatie. Search the name in council papers around the year of the award.
- Are there FOI documents? → [open-overheid-woo](http://localhost:3471/en/bron/open-overheid-woo.md) via naam organisatie. Sometimes the correspondence about a grant has already been released.

## Similar sources
- [Subsidieregisters van andere gemeenten](https://data.overheid.nl): Rotterdam, Utrecht and The Hague also publish, each in its own format.
- [Rijksbegroting en RVO-subsidies](https://www.rijksfinancien.nl): Grants from central government instead of the city.

## What to watch out for
- **Multi-year grants sit in one year.** A four-year grant counts in its first grant year. Divide by the term when comparing years.
- **Awarded is not the same as paid.** The settled amount comes only afterwards and is often lower. For recent years it is still missing.
- **No company number.** You link on name, and names are spelled inconsistently ('Stichting X', 'St. X'). Verify in the business register.
- **The current year is incomplete.** Grants for 2026 and 2027 are still being awarded. Those bars are shown lighter.

## API (OpenAPI 3.0.3)

- Base: https://api.data.amsterdam.nl/v1/subsidies
- Access: The description lists oauth2 (oauth2), but this endpoint works without logging in (tested). (tested)
- Formats: JSON, CSV, GeoJSON
- Size: 56863 records (tested)
- Filtering: per field as query parameter: field=value or field[operator]=value; eq, in, isempty, isnull, like, not, gt, gte, lt, lte

### Endpoints
- `GET /openbaar_subsidieregister`: Het openbaar subsidieregister bevat informatie over de verleende subsidies van de gemeente Amsterdam.
- `GET /openbaar_subsidieregister/{id}`: 

### Parameters
- `_count`: Include a count of the total result set and the number of pages.Only works for responses that return a page. (from the description)
- `_csv_header`: Specify type of header for csv file (id, title, none) (from the description)
- `_csv_separator`: Specify type of separator for csv file (,, ;) (from the description)
- `_expand`: Allow to expand relations. (from the description)
- `_expandScope`: Comma separated list of named relations to expand. (from the description)
- `_fields`: Comma-separated list of fields to display (from the description)
- `_format`: Select the export format (json, csv, geojson) (from the description)
- `_pageSize`: Number of results to return per page. (from the description)
- `_sort`: Which field to use when ordering the results. (from the description)

### Fields (15)
`id` integer/int64, `dossiernummer` string, `aanvrager` string, `regelingnaam` string, `beleidsterrein` string, `organisatieonderdeel` string, `projectnaam` string, `typePeriodiciteit` string, `bedragAangevraagd` number/double, `bedragVerleend` number/double, `publicatiedatumVerleningsbesluit` string/date, `bedragVastgesteld` number/double, `publicatiedatumVaststellingsbesluit` string/date, `subsidiejaar` integer/int64, `datumOverzicht` string/date

### Limits and pitfalls
- No hard page size found; _pageSize=5000 worked (15 Oct 2026). The total is in the X-Total-Count header when you send _count=true. (tested)
- servers in the OpenAPI points to the root (api.data.amsterdam.nl/); the real path starts with /v1/subsidies/. (tested)
- Requesting openapi.json with only Accept: application/json gives 406. Also send application/vnd.oai.openapi+json. (experience)

### Example
```
https://api.data.amsterdam.nl/v1/subsidies/openbaar_subsidieregister/?subsidiejaar=2025&bedragVerleend[gte]=1000000&_fields=aanvrager,regelingnaam,bedragVerleend&_sort=-bedragVerleend&_pageSize=3&_format=json
```

## How to fetch it
```bash
curl "https://api.data.amsterdam.nl/v1/subsidies/v1/openbaar_subsidieregister/?subsidiejaar=2025&_format=json&_pageSize=100"
```