What cities plan to build.
Capital budgets and capital improvement programmes from city and county open-data portals and budget documents, in one schema: each project with its department, category and status where the source gives them, and every published amount by fiscal year, amount type and funding source. Every amount says which dataset row or PDF page it was read from.
curl -s "https://api.olympus.new-odyssey.com/v1/municipal-capital-projects/projects?government=$GEOID&fiscal_year=2027" \
-H "X-API-Key: $OLYMPUS_API_KEY"{
"data": [{
"project_id": "municap:…",
"government": { "geoid": "…", "scheme": "OLY-US-CENSUS-PLACE", "name": "…", "state": "…", "government_type": "city" },
"source_kind": "socrata",
"name": "…", "department": "…", "category": "…",
"status": "construction", "status_as_published": "…",
"location": { "description": "…", "latitude": …, "longitude": …, "district": "…" },
"fiscal_year_min": …, "fiscal_year_max": …, "amount_lines": …,
"provenance": { … }
}],
"meta": {
"datasets": [ … ],
"notices": [{ "code": "as_published", "message": "…" }],
"pagination": { "limit": 25, "has_more": true, "next_cursor": "…" }
}
}As each government publishes it.
Each city and county publishes its capital plan its own way: a table of budget lines, a project tracker or a PDF budget document. Names, amounts, statuses and fiscal years are kept as published and mapped onto one schema. Nothing is estimated, inflated or reconciled between a government's datasets.
Amounts of different types (a year's budget, spending to date, a loan authorization) must not be added together. Totals this API computes, normalised statuses and fiscal years worked out from a column definition or a document title are marked as derived.
Projects, governments, coverage.
Coverage lists every source with its licence or terms as the publisher states them, and the rows that were not published.
| Endpoint | What it returns |
|---|---|
| GET/v1/municipal-capital-projects/projects | Search projects |
| GET/v1/municipal-capital-projects/projects/{project_id} | One project with every published amount |
| GET/v1/municipal-capital-projects/governments/{geoid} | One government's published capital data |
| GET/v1/municipal-capital-projects/coverage | What is served, from which sources, under which terms |
Seven amount types.
Each amount names the column or printed heading it came from. Governments are identified by their Census GEOID and carry the shared entity_id, identifiers and related blocks.
| amount_type | Meaning |
|---|---|
| budget | Budgeted, appropriated, adopted or programmed for the fiscal year or years given. |
| cumulative_budget | Budget or appropriation to date, over the project's life. |
| actual | Spent in the fiscal year. |
| cumulative_actual | Spent to date. |
| committed | Encumbered or committed. |
| authorization | Borrowing or loan authorization. |
| total_cost | A stated total project cost. |
Limits
Some governments only
Only the cities and counties listed by the coverage endpoint, for the fiscal years their sources publish. Sources differ in what they give: some publish status and location, some only amounts.
Documents are checked
Rows read from PDF budget documents are published only when every check passes for the document, including the printed totals. Anything held for review is counted, not served.
No people
Columns naming people, such as project managers and their contact details, are never read.
Source: City of Roseville, CA · Source: Office of the City Manager, City of Worcester, MA · Fulton County Government (GA), licensed under CC BY 4.0