How AI is applied across API Evangelist and APIs.io. Read my AI disclosure →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

CDC DIBBs eCR Refiner API

The DIBBs eCR Refiner reduces electronic initial case report (eICR) and Reportability Response (RR) documents down to the data a given reportable condition actually needs, easing storage and performance pressure on eCR pipelines and disease surveillance systems. CDC publishes a 44-operation OpenAPI 3.1.0 contract covering conditions, configurations, custom code sets, section processing, an audit event log and an eCR simulator. The product is self-hosted: public health jurisdictions run the Apache-2.0 container from ghcr.io/cdcgov/dibbs-ecr-refiner, so the spec declares no servers[] block and the base URL is whatever the jurisdiction deploys.

CDC DIBBs eCR Refiner API is one of 10 APIs that Centers for Disease Control and Prevention publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

Tagged areas include eCR, eICR, HL7 CDA, Public Health Surveillance, and Reportable Conditions. The published artifact set on APIs.io includes an OpenAPI specification and a changelog.

This API exposes 44 operations across 39 paths, organized into 9 resource areas, and defines 85 schemas. It is described by OpenAPI 3.1.0, at version 1.0.0.

44 operations 39 paths 85 schemas 3 DELETE22 GET4 PATCH13 POST2 PUT

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.1.0
API Version
1.0.0
Resource Areas
9

Paths & Operations 44

Across 39 paths, the API surfaces 44 operations — 3 DELETE, 22 GET, 4 PATCH, 13 POST, 2 PUT. They span 9 resource areas: user, conditions, configurations, simulator, events, releases, code-systems, app-notifications, tes. Each is listed below with its method, path, parameters, and response codes.

user 1
GET
/api/user
Get User
getUser → 200
conditions 2
GET
/api/v1/conditions/
Get Conditions
getConditions → 200
GET
/api/v1/conditions/{condition_id}
Get Condition
getCondition 1 param → 200422
configurations 27
GET
/api/v1/configurations/
Get Configurations
getConfigurations → 200
POST
/api/v1/configurations/
Create Configuration
createConfiguration body → 200422
GET
/api/v1/configurations/{configuration_id}/serialized
Get Serialized Configuration
getSerializedConfiguration 1 param → 200422
GET
/api/v1/configurations/{configuration_id}
Get Configuration
getConfiguration 1 param → 200422
PUT
/api/v1/configurations/{configuration_id}/code-sets
Associate Condition Codeset With Configuration
associateConditionWithConfiguration 1 param body → 200422
DELETE
/api/v1/configurations/{configuration_id}/code-sets/{condition_id}
Remove Condition Codeset From Configuration
disassociateConditionWithConfiguration 2 params → 200422
GET
/api/v1/configurations/{configuration_id}/custom-codes/{id}
Get Custom Code
getCustomCode 2 params → 200422
DELETE
/api/v1/configurations/{configuration_id}/custom-codes/{id}
Delete Custom Code
deleteCustomCodeFromConfiguration 2 params → 200422
POST
/api/v1/configurations/{configuration_id}/custom-codes
Add Custom Code
addCustomCodeToConfiguration 1 param body → 200422
PUT
/api/v1/configurations/{configuration_id}/custom-codes
Edit Custom Code
editCustomCodeFromConfiguration 1 param body → 200422
POST
/api/v1/configurations/{configuration_id}/custom-codes/upload
Upload Custom Codes Csv
uploadCustomCodesCsv 1 param body → 200422
POST
/api/v1/configurations/{configuration_id}/custom-codes/confirm
Confirm Upload Custom Codes Csv
confirmUploadCustomCodesCsv 1 param body → 200422
POST
/api/v1/configurations/{configuration_id}/custom-codes/bulk-delete
Bulk Delete Custom Codes
deleteCustomCodes 1 param body → 200422
POST
/api/v1/configurations/{configuration_id}/custom-codes/validate
Validate Custom Code
validateCustomCodeFromConfiguration 1 param body → 200422
GET
/api/v1/configurations/{configuration_id}/export
Get Configuration Export
getConfigurationExport 1 param → 200422
POST
/api/v1/configurations/test
Run Configuration Test
runInlineConfigurationTest body → 200422
POST
/api/v1/configurations/{configuration_id}/sections
Insert Custom Section
addCustomSection 1 param body → 200422
DELETE
/api/v1/configurations/{configuration_id}/sections
Delete Custom Section
deleteCustomSection 1 param body → 200422
PATCH
/api/v1/configurations/{configuration_id}/sections
Update Section
updateSection 1 param body → 200422
PATCH
/api/v1/configurations/{configuration_id}/activate
Activate Configuration
activateConfiguration 1 param → 200422
PATCH
/api/v1/configurations/{configuration_id}/deactivate
Deactivate Configuration
deactivateConfiguration 1 param → 200422
POST
/api/v1/configurations/{configuration_id}/acquire-lock
Acquire Configuration Lock
acquireConfigurationLock 1 param → 200422
POST
/api/v1/configurations/{configuration_id}/release-lock
Release Configuration Lock
releaseConfigurationLock 1 param → 200422
POST
/api/v1/configurations/{configuration_id}/set-status
Set Codes Status
setCodesStatus 7 params body → 200422
GET
/api/v1/configurations/{configuration_id}/codes
Get Codes
getCodes 6 params → 200422
GET
/api/v1/configurations/{configuration_id}/code-counts
Get Code Counts
getCodeCounts 1 param → 200422
GET
/api/v1/configurations/{configuration_id}/filters
Get Code Filters
getCodeFilters 1 param → 200422
simulator 3
POST
/api/v1/simulator/discover-configurations
Discover Configurations
discoverConfigurations body → 200422
POST
/api/v1/simulator/upload
Simulator Upload
uploadEcr body → 200422
GET
/api/v1/simulator/download/{filename}
Download Refined Ecr
downloadRefinedEcr 1 param → 200422
events 4
GET
/api/v1/events/
Get Events
getEvents 2 params → 200422
GET
/api/v1/events/{event_id}/custom-code-uploads
Get Custom Code Upload Events
getCustomCodeUploadEvents 1 param → 200422
GET
/api/v1/events/export
Get Events Export
get_events_export_api_v1_events_export_get 2 params → 200422
GET
/api/v1/events/{event_id}/codes/export
Get Event Codes Export
get_event_codes_export_api_v1_events__event_id__codes_export_get 1 param → 200422
releases 1
GET
/api/v1/releases/
Get Releases Data
getReleases → 200
code-systems 1
GET
/api/v1/code-systems/
Get Code Systems
getCodeSystems → 200
app-notifications 1
PATCH
/api/v1/notifications
Update User Notifications
updateUserNotifications body → 200422
tes 4
GET
/api/v1/tes/diff-details
Get Tes Updates
getTesUpdates → 200
GET
/api/v1/tes/
Get Tes Diff Details
getTesDiffDetails 2 params → 200422
GET
/api/v1/tes/export
Export Tes Condition Diff
exportConditionDiff 3 params → 200422
GET
/api/v1/tes/configurations-to-update
Get Configurations To Update
getConfigurationsToUpdate → 200

Schemas 85

The contract defines 85 schemas that model the data the API accepts and returns. The most detailed are GetConfigurationResponse (19 properties), CodeResponse (10 properties), AuditEvent (9 properties), GetConfigurationResponseVersion (8 properties). Each schema is shown below with its type and property counts.

AddCustomCodeInput
object
Input model for adding a custom code to a configuration.
3 properties 3 required
AddSectionInput
object
Request body for adding a section.
2 properties 2 required
AssociateCodesetInput
object
Condition association input model.
1 property 1 required
AssociateCodesetResponse
object
Response from adding a code set to a config.
3 properties 3 required
AuditEvent
object
An event returned by the DB function.
9 properties 9 required
Body_discoverConfigurations
object
1 property
Body_runInlineConfigurationTest
object
2 properties 1 required
Body_setCodesStatus
object
2 properties 2 required
Body_uploadEcr
object
2 properties 1 required
BulkDeleteCustomCodesInput
object
Input model for a bulk custom codes deletion request.
3 properties 3 required
CodeCategoryCompletenessStatus
object
Code category completeness status model.
3 properties 3 required
CodeCategoryStatus
string
CodeCountsResponse
object
Code count information to return to the client.
5 properties 5 required
CodeFilterOptions
object
Model to represent all filter options available to the client.
3 properties 3 required
CodeResponse
object
Code object to return to the client.
10 properties 10 required
CodeSetStatus
string
CodeSystemFilterOption
object
Model to represent a code system filter option.
3 properties 3 required
CodeSystemsReponse
object
Display information needed for code system information on the frontend.
4 properties 4 required
CodedConcept
object
Code / display name minimal representation of a codeable concept.
2 properties 2 required
CodedDataLabels
object
Enum class to type the narrative actions possible for the frontend.
2 properties
CodesLimitResponse
object
Utility class to help Orval ship these values to the frontend.
1 property
CodesResponse
object
Codes and metadata to return to the client.
3 properties 3 required
CompletenessStatus
object
Condition completeness status model.
2 properties 2 required
Condition
object
Model for a Condition.
5 properties 5 required
ConfigurationStatusUpdateResponse
object
Response model for updating the status a configuration.
2 properties 2 required
ConfigurationTestResponse
object
Model to represent the response provided to the client when in-line testing is run.
3 properties 3 required
ConfirmUploadCustomCodesInput
object
Payload used to confirm a previously validated CSV import.
1 property 1 required
CreateConfigInput
object
Body required to create a new configuration.
1 property 1 required
CreateConfigurationResponse
object
Configuration creation response model.
2 properties 2 required
CustomCodeResponse
object
Custom code object to return to the client.
5 properties 5 required
CustomCodeUploadEventResponse
object
Response model for a custom code upload event.
4 properties 4 required
DbCode
object
Model for all coded information stored in the codes table.
4 properties 4 required
DbCodeSystem
object
A code system row from the systems table.
4 properties 4 required
DbConfigurationSectionProcessing
object
Section Processing instructions for a Configuration. name is the section's name. code is the LOINC code for the section. versions is a list of versions this se…
7 properties 7 required
DbConfigurationStatus
string
DbNarrativeAction
string
DbSectionAction
string
DbSectionType
string
DbTotalConditionCodeCount
object
Total code count model.
3 properties 3 required
DeleteSectionInput
object
Request body to delete a section.
1 property 1 required
DisabledSection
string
These sections are preserved intact in every refined document. They sit outside the normal refinement workflow not because the refiner needs to protect them, b…
DiscoveredConfigurationSet
object
Model to represent a set of discovered configurations.
3 properties 3 required
DiscoveredConfigurationVersion
object
Model to represent individual discovered configurations.
3 properties 3 required
DiscoveredConfigurationsResponse
object
Model to represent the sets of discovered configurations to return to the client.
1 property 1 required
EventFilterOption
object
Conditions returned to the user to be used for filtering events.
3 properties 3 required
EventsResponse
object
Response needed for the audit log page.
3 properties 3 required
FileInfoResponse
object
Utility class to help Orval ship these values to the frontend.
2 properties
GetConditionResponse
object
Condition response model.
5 properties 5 required
GetConditionsResponse
object
Conditions response model.
3 properties 3 required
GetConfigurationResponse
object
Model for a configuration response.
19 properties 19 required
GetConfigurationResponseVersion
object
Model representing a version of a configuration.
8 properties 8 required
GetConfigurationsResponse
object
Model for a user-defined configuration.
3 properties 3 required
HTTPValidationError
object
1 property
IncludedCondition
object
Model for a condition that is associated with a configuration.
6 properties 6 required
LockedByUser
object
LockedByUser response to provide user information.
3 properties 3 required
NarrativeDataLabels
object
Enum class to type the narrative actions possible for the frontend.
4 properties
NarrativeOnlySection
string
These sections have no entry match rules in the eICR specification. They are conveyed via the narrative block only. Configuring them for "refine" is meaningles…
NotificationKeys
string
Enum class to type the values of the notifications possible for actioning on the frontend.
NotificationsToRender
object
Map of booleans for each of the notificaiton keys as to whether to render frontend banners.
1 property 1 required
ReconstructableSection
string
These sections support the "reconstruct" narrative action. Results, Problems, Immunizations, Medications Administered, and Plan of Treatment are enabled. Make…
Release
object
Type for release information sent to the frontend.
6 properties 6 required
ReleaseNotes
object
Content of a release note from GitHub.
3 properties 3 required
ReleasesResponse
object
Response for releases as returned through the GitHub API.
1 property 1 required
SectionUpdateInput
object
Input model for updating a section's processing instructions.
6 properties 1 required
SerializedFile
object
An individual serialized file.
2 properties 2 required
SerializedFiles
object
Dataclass for serialized file data.
3 properties 3 required
SimulatorUploadResponse
object
Model for the response when uploading a document in the simulate testing suite.
6 properties 6 required
SourceFilterOption
object
Model to represent a source filter option.
3 properties 3 required
StatusFilterOption
object
Model to represent a status filter option.
3 properties 3 required
TesConfigToUpdate
object
A configuration to update with new TES codes.
4 properties 4 required
TesConfigsToUpdateResponse
object
The response needed for rendering of the TES update configuration page.
2 properties 2 required
TesDiffConditionDetails
object
A condition within a TES diff, with details for the diff page to display.
5 properties 5 required
TesResponse
object
Response needed for the TES updates page.
1 property 1 required
TesUpdate
object
All metadata for a TES update needed for the frontend.
3 properties 3 required
TriggerCodeSection
string
These sections can carry an eICR trigger code template. The eICR IG defines trigger code templates for these sections, so a trigger code — the coded evidence o…
UpdateCustomCodeInput
object
Input model when updating a config's custom code.
4 properties 4 required
UpdateSectionProcessingResponse
object
Section with information for a custom section update.
7 properties 7 required
UpdateUserNotificationsRequest
object
Request to update notification acknowledgement state for the current user.
1 property 1 required
UploadCustomCodesCsvInput
object
Input model for Custom Code CSV.
2 properties 1 required
UploadCustomCodesPreviewItem
object
Validated CSV row ready for confirmation.
6 properties 5 required
UploadCustomCodesPreviewResponse
object
Validated CSV preview for delayed confirmation; only valid if preview.
4 properties 2 required
UserResponse
object
User information to send to the client.
4 properties 4 required
ValidateCustomCodeInput
object
Input model when validating a config's custom code.
2 properties 2 required
ValidateCustomCodeResponse
object
Validation response model.
1 property 1 required
ValidationError
object
5 properties 3 required

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

centers-for-disease-control-and-prevention-dibbs-ecr-refiner-openapi.json Raw ↑

Other APIs Centers for Disease Control and Prevention publishes across the network.

CDC Socrata Open Data API (data.cdc.gov)
CDC WONDER API
CDC PLACES / 500 Cities API
CDC Environmental Public Health Tracking Network API
CDC Public Health Media Library (Content Syndication)
CDC NNDSS / MMWR Socrata Data
Centers for Disease Control and Prevention SODA v2.1 API
Centers for Disease Control and Prevention SODA v3 API
CDC DIBBs Query Connector API
Where this information came from

This is an independent, third-party profile of CDC DIBBs eCR Refiner API, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.

The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.

Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.

info@apievangelist.com · Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.