Atlas documentation

API, MCP, and access

Use the public Atlas REST API, and see the current status of MCP and API keys.

Atlas publishes one public HTTP contract. Human guides on this site explain how to use it. They do not copy a second schema. The API reference is generated from the pinned public OpenAPI contract and links the raw spec. Machine-readable definitions stay on the API service.

What is available

SurfaceStatusWhere it lives
Public REST API, version 1Available nowAnonymous read-only JSON at https://api.onehealthatlas.org
OpenAPI schemaAvailable nowOpenAPI schema
API referenceAvailable nowGenerated API reference from that same public contract
Interactive referenceAvailable nowSwagger reference for approved public GET requests
Read-only referenceAvailable nowReDoc reference
Bounded public MCP evidence toolsAvailable nowAnonymous read-only atlas_discover_indicators, atlas_get_county_profile, and atlas_get_evidence_provenance on the production MCP service. The public evidence tool contract owns arguments and limits.
MCP county identityAvailable nowatlas_resolve_geographies resolves a county identity. Identity is not evidence availability, evidence adequacy, or comparability.
MCP operational toolsAvailable nowserver_status and atlas_smoke_test remain registered. They report status and a smoke message. They do not read Atlas evidence.
User API keys in SettingsNot availableThe public API does not use a key, and Settings does not create one

The OpenAPI application version and the /v1 contract are different identifiers. Use the response fields below when you need to cite a result.

Public reads do not use an API key

The canonical public API serves current-release metadata and county observations without an API key and without a signed-in session. A request is an HTTPS GET. Collections return data, meta, and links. A single resource returns data. Errors use application/problem+json with code, HTTP status, detail, and request_id.

These routes do not select historical releases, aggregate arbitrary geographies, or return geometry. Account profile and privacy requests are separate account operations. Feedback submission accepts an optional account and still accepts a report when no account is present. Literature chat does not depend on an account session; /assistant and the legacy assistant drawer stay public and appear when that feature is enabled. The professional workspace at /app requires sign-in. Those operations sit outside this canonical public GET-read contract, so this page does not copy them as public examples.

Settings can save a default jurisdiction for a signed-in reviewer. That preference is not an API credential. See the professional workspace.

Task-oriented requests, pagination, geography, and citation are in the developer guides. Start with the quickstart.

Examples from the public contract

These requests use measure and county identifiers published for the current production release. County FIPS codes are five characters, with any leading zero preserved. case_count_floor_2023 is a privacy-protected case floor in cases, not a complete incidence count and not a diagnosis.

curl -fsS 'https://api.onehealthatlas.org/v1/indicators?page_size=10'
curl -fsS 'https://api.onehealthatlas.org/v1/measures?indicator_id=human_disease_burden&page_size=10'
curl -fsS 'https://api.onehealthatlas.org/v1/measures/case_count_floor_2023'
curl -fsS 'https://api.onehealthatlas.org/v1/observations?measure_id=case_count_floor_2023&geography_type=county&geography_id=08001&year=2023'

Compare two counties by repeating geography_id. Use year or a complete start_date and end_date pair. The published county observations for this release are the annual 2023 period.

curl -fsS 'https://api.onehealthatlas.org/v1/observations?measure_id=case_count_floor_2023&geography_type=county&geography_id=08001&geography_id=08003&year=2023&page_size=1'

If meta.next_page_token is present, send it back as page_token with every other query parameter unchanged. Stop when the token is null. Tokens are opaque and bound to that query and release. A changed or rejected token means you start again at the first page. A page token is not a citation.

Follow source_id and methodology_id on an observation when you need publisher, vintage, and method limitations:

curl -fsS 'https://api.onehealthatlas.org/v1/sources/human'
curl -fsS 'https://api.onehealthatlas.org/v1/methodologies/human_confirmed_probable_case_floor_v1'

Read value_state with value and unit. The public states are OBSERVED, ZERO, MISSING, SUPPRESSED, UNAVAILABLE, and NO_COUNTY_LINKED_RECORD. MISSING, UNAVAILABLE, and NO_COUNTY_LINKED_RECORD are gaps. SUPPRESSED is a privacy-protected observation: the value was withheld, and the workspace shows Suppressed rather than a number. Do not replace a gap or a suppressed observation with zero. A published ZERO stays a real zero. The same rule is explained for reviewers in evidence, provenance, and uncertainty.

Limits and errors

The observation query needs one measure, geography_type=county, one or more five-digit county FIPS codes, and either year or both dates. The service rejects unsupported filters, strata, sorting, and aggregation instead of ignoring them. Problem code values include RESOURCE_NOT_FOUND, INVALID_REQUEST, UNSUPPORTED_FILTER, and UNSUPPORTED_STRATIFICATION. Keep request_id if you need support.

429 and 503 responses include Retry-After when the service supplies it. The header is a number of seconds. The public OpenAPI document does not publish a numeric quota or concurrency cap, so this guide does not state one. Wait for Retry-After, then retry the same request. Discovery collections use a short public cache. Stable detail responses may include an ETag; send If-None-Match to receive 304 when the representation is unchanged. The OpenAPI schema is the authority for parameters, status codes, and schema fields. The REST API guide explains pagination, problem codes, and version fields.

Reproduce a result

Save the request URL, measure id, county FIPS codes, period, release_id, semantic_version, methodology id and version, source id, lineage source id, dataset id, source vintage, and limitations. These routes read the current release. The same URL can change after a later release. A saved response, or a checksum of that response, is the record of what you retrieved.

A practical attribution names Atlas, the public API V1, the measure id, county FIPS, period, release id, semantic version, retrieval date, and the upstream publisher and dataset from the source resource you received. Replace every example identifier with the values in your response.

Canonical evidence for API and MCP consumers

Public REST reads return governed Atlas resources. Indicators, measures, observations, sources, and methodologies are that contract for current-release evidence. Clients are intended to use those resources rather than a schema that changes with each upstream source. The OpenAPI schema remains authoritative for HTTP fields. The generated API reference is rendered from the pinned public contract.

MCP tool definitions stay in the Atlas MCP repository and its tests. The released evidence tools return the same canonical evidence and provenance, including source identity and value state, rather than a schema that changes with each source. Sources and canonical evidence describes that design, the open-data boundary, and the clinical connections that are not released. Provenance and evidence lists the fields to keep with a value.

MCP

The MCP server is owned by the Atlas MCP repository. ADR 0003 accepts three anonymous read-only evidence tools and supersedes the historical smoke-only exposure constraint for that bounded surface. The production receipt records deployment of SHA d26ef2b72a2f9203a26ff45a3ad13f0f2ac104c9 and official-SDK discovery of exactly six tools at https://mcp.onehealthatlas.org/mcp. This guide does not re-invoke those tools.

ToolWhat the contract allows
atlas_discover_indicatorsPublished indicators and their associated measures. Discovery states published definitions. It is not county availability.
atlas_get_county_profilePublished observations for one exact five-digit county FIPS and one to three explicit measure-period selections. An empty selection is not a missing row, a zero, biological absence, or proof of county identity.
atlas_get_evidence_provenanceA published source or methodology for the expected current release. It does not resolve an arbitrary observation ID or a historical release.
atlas_resolve_geographiesCounty identity only, from the CDC/ATSDR SVI 2022 county source. Identity does not establish observations, evidence adequacy, or comparability, and it is not a current legal-boundary file.
server_status, atlas_smoke_testOperational status and a smoke message. These tools do not read Atlas evidence.

The public evidence tool contract is authoritative for arguments, bounds, and error codes. This page does not copy those schemas. Evidence tools keep canonical API value states, units, denominators, source identity, and limitations. They do not score, diagnose, compare scientifically, write, or accept private data or a caller-supplied URL. They are not a live EHR, TEFCA, patient-level, PHI, or production clinical-laboratory connection.

The 2026-09-26 development record accepted server_status and atlas_smoke_test in server.py. That smoke-only receipt is historical. It is not the current production tool list.

REST remains the HTTP contract for the same canonical resources. OpenAPI remains authoritative for HTTP schemas. MCP does not replace that document.

API keys

Do not send an API key, bearer token, or Settings secret on the public read routes. They are not authenticated that way.

The professional workspace Settings page does not generate, show, copy, revoke, or regenerate a user API key. Planned key-management controls, including any future one-time secret display, are outside this release. Do not store a guessed credential in the browser or in a docs example.

Signed-in product features use the account session inside Atlas. That session is not a public API key and is not a substitute for the anonymous /v1 reads above.