Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/georgiacivicdata-org:georgiacivicdata-org-meta-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Georgia Civic Data Meta API
description: 'Read-only REST API serving cleaned, standardized tabular data for the state of Georgia: **education**, **census**, **health** and **immigration**, driven entirely by git-tracked ODCS data contracts — so every dataset''s columns, units, ranges, and allowed values are stable and documented.
**Base path:** all data routes live under `/api/v1`. Every dataset is addressed by its bare name (names are unique), e.g. `act_scores`.
**Discover, don''t hard-code.** `GET /api/v1/datasets` lists every dataset (compact; `?fields=full` for everything); `GET /api/v1/search?q=` finds one by meaning; `GET /api/v1/datasets/{name}` returns its schema (columns, units, the exact filter parameters with their allowed values, and a runnable `recommended_query` URL); `GET /api/v1/datasets/{name}/rows` returns the data.
**Note on filters:** every categorical column of a dataset is its own filter parameter, so the filters differ per dataset and are listed in the dataset''s schema (`filters`), not in this generic document. `GET /api/v1/datasets/{name}/openapi.json` is a per-dataset OpenAPI document with every filter and its allowed values, for function-calling clients that need one. Human docs: https://georgiacivicdata.org/api; agent reference: https://georgiacivicdata.org/llms-full.txt.
**R and Python packages:** `georgiacivicdata` on CRAN and PyPI wraps this API and returns data frames. Docs: https://georgiacivicdata.org/r/ and https://georgiacivicdata.org/py/ (overview: https://georgiacivicdata.org/packages).
**License:** data and documentation are licensed CC BY 4.0. Credit "Georgia Civic Data (georgiacivicdata.org)" and the original source. The license covers our cleaning, standardization, compilation, and documentation; source data stays under its original publisher''s terms (each dataset names its source). Every response carries a `Link: ; rel="license"` header, and `GET /api/v1/datasets` returns the terms as a `license` object. Details: https://georgiacivicdata.org/about#license.'
contact:
name: Georgia Civic Data
url: https://georgiacivicdata.org/api
email: shane@georgiacivicdata.org
license:
name: Creative Commons Attribution 4.0 International (CC BY 4.0)
url: https://creativecommons.org/licenses/by/4.0/
version: 0.2.0
servers:
- url: https://georgiacivicdata.org
description: Production (brand domain, same-origin proxy)
- url: https://georgia-civic-data-production.up.railway.app
description: Production (origin)
tags:
- name: Meta
description: 'Discovery + health: the dataset catalog, each dataset''s schema, ODCS contract and OpenAPI document, and the liveness probe.'
paths:
/:
get:
tags:
- Meta
summary: Service info / root
description: Tiny landing pointer so the bare URL is useful, not a 404.
operationId: root__get
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
/healthz:
get:
tags:
- Meta
summary: Liveness probe + registry status
operationId: healthz_healthz_get
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
/api/v1/datasets:
get:
tags:
- Meta
summary: The dataset catalog
description: Every served dataset. Compact by default (name, title, summary, kind, main_topic, detail_levels, year_min, year_max); `fields=full` adds descriptions, search aliases, sources, grain and coverage. Filter with `main_topic`, `level` (a detail level such as counties), `year` (a year the dataset publishes) and `kind` (table or geometry). Also lists the lookup tables (`dimensions`) and the data `license`. `/api/v1/search?q=` finds datasets by meaning.
operationId: list_datasets_api_v1_datasets_get
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
/api/v1/datasets/{name}:
get:
tags:
- Meta
summary: One dataset's schema
description: Columns (type, role, unit, range, what a NULL means), the exact filter parameters with their allowed values, the headline `key_metric`, a runnable `recommended_query.url`, `example_requests`, how the figures may and may not be combined (non_additive, partitions, pooled_rates, series_breaks, year_window), usage and limitations. `verbosity=schema` drops the prose.
operationId: get_dataset_api_v1_datasets__name__get
parameters:
- name: name
in: path
required: true
schema:
type: string
title: Name
- name: verbosity
in: query
required: false
schema:
enum:
- full
- schema
type: string
default: full
title: Verbosity
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/datasets/{name}/contract:
get:
tags:
- Meta
summary: One dataset's ODCS data contract
description: '`format=yaml` (default) returns the contract verbatim; `format=json` returns it parsed.'
operationId: get_dataset_contract_api_v1_datasets__name__contract_get
parameters:
- name: name
in: path
required: true
schema:
type: string
title: Name
- name: format
in: query
required: false
schema:
enum:
- yaml
- json
type: string
default: yaml
title: Format
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/datasets/{name}/openapi.json:
get:
tags:
- Meta
summary: A per-dataset OpenAPI document
description: OpenAPI 3.1 for this dataset's rows and aggregate routes, listing every filter parameter and its allowed values (for function-calling clients that need an accurate OpenAPI; the generic document cannot list them).
operationId: get_dataset_openapi_api_v1_datasets__name__openapi_json_get
parameters:
- name: name
in: path
required: true
schema:
type: string
title: Name
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
components:
schemas:
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
type: object
required:
- loc
- msg
- type
title: ValidationError