Skip to content

API reference

Endpoints

Every route is a GET under https://georgiacivicdata.org/api/v1. Per-dataset filter parameters are listed on each dataset page.

At a glance

EndpointPurpose
/datasetsList every dataset + dimension
/datasets/{main}/{topic}Full schema for one dataset (JSON)
/datasets/{main}/{topic}/contractRaw ODCS contract (YAML/JSON)
/{main}/{topic}Query a dataset’s rows
/education/_dimensions/{name}Read a dimension (districts/schools/demographics)
/education/_dimensions/{name}/schemaA dimension’s schema

Catalog

GET/api/v1/datasets

One summary per dataset (title, source, year range, detail levels, endpoint) plus a dimensions block. No parameters.

curl "https://georgiacivicdata.org/api/v1/datasets"

Dataset schema

GET/api/v1/datasets/{main_topic}/{topic}

The full schema: every column (name, type, role, unit, range, allowed values, description), the structured filters list, foreign keys, the key_metric pointer, available years, and the schema_hash. This is what powers these docs.

curl "https://georgiacivicdata.org/api/v1/datasets/education/act_scores"
GET/api/v1/datasets/{main_topic}/{topic}/contract

The authoritative ODCS v3.1 contract. ?format=yaml (default) returns it verbatim; ?format=json returns it parsed.

curl "https://georgiacivicdata.org/api/v1/datasets/education/act_scores/contract?format=yaml"

Dataset query

GET/api/v1/{main_topic}/{topic}

Query a dataset’s rows. Common parameters:

ParameterDescription
yearExact year. Mutually exclusive with the range below.
year_min / year_maxInclusive year range.
detailstates / districts / schools (whatever the dataset publishes).
district_code / school_code / demographicComma-separated code lists (where the dataset has the column).
per-categorical paramsOne parameter per categorical column (see the dataset page).
limit / offsetPage size (default 1000, max 10000) and offset.
formatjson (default) / csv / parquet.
curl "https://georgiacivicdata.org/api/v1/education/act_scores?year=2024&test_component=composite&detail=districts"

Dimensions

GET/api/v1/education/_dimensions/{name}

Read a shared lookup table — districts, schools, or demographics — paginated with limit / offset. These supply the label columns the fact queries join in.

curl "https://georgiacivicdata.org/api/v1/education/_dimensions/districts?limit=10"
GET/api/v1/education/_dimensions/{name}/schema

A dimension’s primary key, attributes, and link keys.