canonical: https://jentic.com/apis/cdcgov.local/cdcgov-local

# Cdcgov Prime ReportStream

Jentic publishes the only available OpenAPI specification for Prime ReportStream, keeping it validated and agent-ready. Prime ReportStream is the U.S. Centers for Disease Control and Prevention's data hub that routes public health data - case reports, lab results, immunization records - from senders such as labs and providers to receivers such as state and territorial health departments. The API exposes a reports submission endpoint and configuration endpoints for managing organizations, senders, and receivers in the routing topology. Authentication is either an Okta-issued OAuth 2.0 token or an Azure Functions API key for service-to-service callers.

## For AI agents

Submit public health reports to the CDC ReportStream hub and manage the organizations, senders, and receivers that route data between labs and health departments.

## Scope

Does not handle EHR record retrieval, patient appointment booking, or pharmacy operations - use for routing public health reports between senders and receivers through the CDC ReportStream hub only.

## Capabilities

- Submit public health reports to the ReportStream hub for routing to downstream receivers
- Manage organization records that group senders and receivers in the topology
- Configure sender profiles for labs and providers transmitting reports
- Configure receiver profiles for state, local, and territorial health departments
- Update existing organization, sender, and receiver settings as routing rules change
- Remove deprecated organization, sender, or receiver entries from the routing graph

## Use cases

### Lab Report Routing to Public Health

Clinical labs use the reports endpoint to send case reports, COVID test results, or immunization data into ReportStream, which then routes the records to the appropriate state, local, or territorial health departments. This replaces bespoke point-to-point integrations between every lab and every jurisdiction with a single CDC-operated hub.

Example prompt: POST a batch of lab results to /reports with the configured sender identifier and confirm the routing receipt

### Sender Onboarding Configuration

Health technology vendors integrating new clinical labs use the senders configuration endpoints to register the lab and define how its reports are formatted and validated. Agents can stand up the configuration on a vendor's behalf, then update it as the lab adds new test panels or jurisdictions.

Example prompt: PUT a sender configuration to /settings/organizations/{organizationName}/senders/{senderName} with the new lab's ELR format and topic

### Receiver Management for Health Departments

State and territorial health departments register as receivers in ReportStream, declaring which jurisdictions and report types they want delivered. Operations teams use the receivers endpoints to add new jurisdictions, change transport settings, or sunset old configurations as health department systems migrate.

Example prompt: List receivers under an organization via GET /settings/organizations/{organizationName}/receivers and update the transport for one receiver

### AI Agent Integration via Jentic

A public health integrations agent uses Jentic to discover ReportStream operations, load their schemas, and execute calls without holding the OAuth credentials or function key directly. This lets a single assistant span ReportStream and complementary public-health systems while CDC-issued credentials stay isolated in the vault.

Example prompt: Use Jentic to search 'submit a public health report to ReportStream', load the schema for POST /reports, and execute with the lab's payload

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | /reports | Submit a report to the data hub |
| GET | /settings/organizations | List all organizations |
| PUT | /settings/organizations/{organizationName} | Create or update an organization |
| GET | /settings/organizations/{organizationName}/senders | List senders for an organization |
| PUT | /settings/organizations/{organizationName}/senders/{senderName} | Configure a sender |
| GET | /settings/organizations/{organizationName}/receivers | List receivers for an organization |
| PUT | /settings/organizations/{organizationName}/receivers/{receiverName} | Configure a receiver |

## Key resources

- **Reports** — Submit public health reports for routing through the data hub
- **Organizations** — List, read, update, and delete organization records that group senders and receivers
- **Senders** — Configure the labs and providers that submit reports into ReportStream
- **Receivers** — Configure the state, local, and territorial health departments that receive routed reports

## Why Jentic

- **Setup:** Wiring Prime ReportStream by hand means handling its function-key header or its Okta OAuth2 authorization-code flow, then wiring report submission against the settings and organization endpoints yourself. Through Jentic you install once, import ReportStream from the API Directory, store the credential once, and your agent calls it.
- **Permission scoping:** ReportStream puts the organization name in the URL path for operations like /settings/organizations/{organizationName}/senders, so a rule can pin your agent to one organization's sender and receiver settings. You choose the operations it may call, so writes that update an organization are not included unless you add them.
- **Credential handling:** Your ReportStream function key or OAuth2 token is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'submit a public health report' or 'list an organization's receivers', and Jentic returns the matching ReportStream operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **cBioPortal Public API** — Cancer genomics cohort data that pairs with public health reporting workflows
- **US Census API** — Population denominators for normalising case rates from ReportStream feeds
- **CBP AESDirect WebLink API** — Different domain - included only as a corpus-verified neighbour US government API

## FAQ

### Why is there no official OpenAPI spec for Prime ReportStream?

ReportStream's Open API definition lives in the cdcgov/prime-reportstream GitHub project but is not published as a stable, validated artifact for general consumption. Jentic generates and maintains this spec so that AI agents and developers can call Prime ReportStream via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Prime ReportStream API use?

ReportStream supports two schemes: an Okta-issued OAuth 2.0 authorization code flow at hhs-prime.okta.com with org_admin, system_admin, and user scopes, and an Azure Functions API key passed in the `x-functions-key` header for service-to-service callers. Through Jentic both credential types are stored in the encrypted vault.

### Can I submit lab reports through ReportStream?

Yes. POST /reports accepts the report payload from a registered sender and routes it to all configured receivers that match the report's jurisdiction and topic. The sender must be onboarded via the senders configuration endpoints first.

### What are the rate limits for the Prime ReportStream API?

The OpenAPI spec does not declare specific rate limits. ReportStream is operated as a public health utility and applies throttling at the function-app and Okta token levels. Coordinate volume expectations with the ReportStream onboarding team rather than assuming a published limit.

### How do I onboard a new sender through Jentic?

Search Jentic for 'configure a ReportStream sender', load the schema for PUT /settings/organizations/{organizationName}/senders/{senderName}, and execute with the lab's organization name, sender name, and topic configuration.

### Is the Prime ReportStream API free?

Yes. ReportStream is operated by the CDC as public infrastructure and is free for senders and receivers in covered public health categories, subject to onboarding and approval.

### Can I limit what my agent is allowed to do with the Prime ReportStream API?

Yes. Because you run Jentic One yourself, your own rules decide which ReportStream operations and credentials the agent may use. Since ReportStream carries the organization name in the URL path for operations like GET and PUT /settings/organizations/{organizationName}/senders and /receivers, you can pin the agent to a single organization's sender and receiver settings. You also choose the specific operations it may call, so a write that submits a report to /reports or updates an organization is available only if you grant it.
