Centers for Disease Control and Prevention Configurations API
The configurations API from Centers for Disease Control and Prevention — 22 operation(s) for configurations.
The configurations API from Centers for Disease Control and Prevention — 22 operation(s) for configurations.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/centers-for-disease-control-and-prevention-configurations-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: DIBBs eCR Refiner Configurations API
description: 'Please visit the repo for more info: https://github.com/CDCgov/dibbs-ecr-refiner'
version: 1.0.0
tags:
- name: Configurations
paths:
/api/v1/configurations/:
get:
tags:
- Configurations
summary: Get Configurations
description: 'Returns a list of configurations based on the logged-in user.
Returns:
List of configuration objects.'
operationId: getConfigurations
responses:
'200':
description: Successful Response
content:
application/json:
schema:
items:
$ref: '#/components/schemas/GetConfigurationsResponse'
type: array
title: Response Getconfigurations
post:
tags:
- Configurations
summary: Create Configuration
description: Create a new configuration for a jurisdiction.
operationId: createConfiguration
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateConfigInput'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/CreateConfigurationResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/configurations/{configuration_id}/serialized:
get:
tags:
- Configurations
summary: Get Serialized Configuration
description: 'Given an active configuration ID, fetches and returns the serialized configuration file content from S3.
Args:
configuration_id (UUID): The active configuration ID
user (DbUser): The logged-in user
app_config (AppConfig): The required application environment variables
db (AsyncDatabaseConnection): The database connection
logger (Logger): The standard app logger
Raises:
HTTPException: 403 if not running locally
HTTPException: 404 if configuration cannot be found in the user''s jurisdiction
HTTPException: 400 if the configuration''s status is not `active`
HTTPException: 404 if the configuration''s primary condition is not found
Returns:
Response: The serialized configuration file content'
operationId: getSerializedConfiguration
parameters:
- name: configuration_id
in: path
required: true
schema:
type: string
format: uuid
title: Configuration Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/SerializedFiles'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/configurations/{configuration_id}:
get:
tags:
- Configurations
summary: Get Configuration
description: Get a single configuration by its ID including all associated conditions.
operationId: getConfiguration
parameters:
- name: configuration_id
in: path
required: true
schema:
type: string
format: uuid
title: Configuration Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/GetConfigurationResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/configurations/{configuration_id}/code-sets:
put:
tags:
- Configurations
summary: Associate Condition Codeset With Configuration
description: 'Associate a specified code set with the given configuration.
Args:
configuration_id (UUID): ID of the configuration
body (AssociateCodesetInput): payload containing a condition_id
user (dict[str, Any], optional): User making the request
db (AsyncDatabaseConnection, optional): Database connection
Raises:
HTTPException: 404 if configuration is not found in JD
HTTPException: 404 if configuration is not found
HTTPException: 409 if configuration is not a draft and therefore not editable
HTTPException: 500 if configuration cannot be updated
Returns:
AssociateCodesetResponse: ID of updated configuration, the full list of included conditions,
and the condition_name'
operationId: associateConditionWithConfiguration
parameters:
- name: configuration_id
in: path
required: true
schema:
type: string
format: uuid
title: Configuration Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AssociateCodesetInput'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/AssociateCodesetResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/configurations/{configuration_id}/code-sets/{condition_id}:
delete:
tags:
- Configurations
summary: Remove Condition Codeset From Configuration
description: 'Remove a specified code set from the given configuration.
Args:
configuration_id (UUID): ID of the configuration
condition_id (UUID): ID of the condition to remove
user (DbUser): User making the request
db (AsyncDatabaseConnection): Database connection
Raises:
HTTPException: 404 if configuration is not found in JD
HTTPException: 404 if condition is not found
HTTPException: 409 if trying to remove the main condition
HTTPException: 409 if configuration is not a draft and therefore not editable
HTTPException: 500 if configuration is cannot be updated
Returns:
AssociateCodesetResponse: ID of updated configuration and the full list
of included conditions plus condition_name'
operationId: disassociateConditionWithConfiguration
parameters:
- name: configuration_id
in: path
required: true
schema:
type: string
format: uuid
title: Configuration Id
- name: condition_id
in: path
required: true
schema:
type: string
format: uuid
title: Condition Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/AssociateCodesetResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/configurations/{configuration_id}/custom-codes/{id}:
get:
tags:
- Configurations
summary: Get Custom Code
description: 'Fetch a custom code by its ID.
Args:
configuration_id (UUID): The associated configuration ID
id (UUID): The custom code ID
user (DbUser): The logged-in user
db (AsyncDatabaseConnection): The database connection
Raises:
HTTPException: 404 if configuration can''t be found
Returns:
CustomCodeResponse: The custom code response object'
operationId: getCustomCode
parameters:
- name: configuration_id
in: path
required: true
schema:
type: string
format: uuid
title: Configuration Id
- name: id
in: path
required: true
schema:
type: string
format: uuid
title: Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/CustomCodeResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
delete:
tags:
- Configurations
summary: Delete Custom Code
description: 'Delete a custom code from a configuration.
Args:
configuration_id (UUID): The ID of the configuration to modify.
id (str): The ID of the custom code.
user (dict[str, Any]): The logged-in user.
db (AsyncDatabaseConnection): The database connection.
Raises:
HTTPException: 400 if id is not provided
HTTPException: 404 if configuration can''t be found
HTTPException: 409 if configuration is not a draft and therefore not editable
HTTPException: 500 if configuration can''t be updated
Returns:
ConfigurationCustomCodeResponse: The updated configuration'
operationId: deleteCustomCodeFromConfiguration
parameters:
- name: id
in: path
required: true
schema:
type: string
format: uuid
title: Id
- name: configuration_id
in: path
required: true
schema:
type: string
format: uuid
title: Configuration Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/CustomCodeResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/configurations/{configuration_id}/custom-codes:
post:
tags:
- Configurations
summary: Add Custom Code
description: 'Add a user-defined custom code to a configuration.
Args:
configuration_id (UUID): The ID of the configuration to update.
body (AddCustomCodeInput): The custom code information provided by the user.
user (dict[str, Any]): The logged-in user.
db (AsyncDatabaseConnection): The database connection.
Raises:
HTTPException: 404 if configuration isn''t found
HTTPException: 409 if configuration is not a draft and therefore not editable
HTTPException: 500 if custom code can''t be added
Returns:
ConfigurationCustomCodeResponse: Updated configuration'
operationId: addCustomCodeToConfiguration
parameters:
- name: configuration_id
in: path
required: true
schema:
type: string
format: uuid
title: Configuration Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AddCustomCodeInput'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/CustomCodeResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
put:
tags:
- Configurations
summary: Edit Custom Code
description: 'Modify a configuration''s custom code based on system_key/code pair.
Args:
configuration_id (UUID): The ID of the configuration to modify.
body (UpdateCustomCodeInput): User-provided object containing custom code info.
user (dict[str, Any]): The logged-in user.
db (AsyncDatabaseConnection): The database connection.
logger (Logger): The system logger.
Raises:
HTTPException: 409 if configuration is not a draft and therefore not editable
HTTPException: 500 if the configuration can''t be updated
Returns:
ConfigurationCustomCodeResponse: The updated configuration.'
operationId: editCustomCodeFromConfiguration
parameters:
- name: configuration_id
in: path
required: true
schema:
type: string
format: uuid
title: Configuration Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateCustomCodeInput'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/CustomCodeResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/configurations/{configuration_id}/custom-codes/upload:
post:
tags:
- Configurations
summary: Upload Custom Codes Csv
description: 'Accepts a CSV payload in JSON body.
Expected CSV headers:
code,code_system,display_name
Returns:
UploadCustomCodesResponse'
operationId: uploadCustomCodesCsv
parameters:
- name: configuration_id
in: path
required: true
schema:
type: string
format: uuid
title: Configuration Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UploadCustomCodesCsvInput'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/UploadCustomCodesPreviewResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/configurations/{configuration_id}/custom-codes/confirm:
post:
tags:
- Configurations
summary: Confirm Upload Custom Codes Csv
description: Confirm and save custom codes from preview list.
operationId: confirmUploadCustomCodesCsv
parameters:
- name: configuration_id
in: path
required: true
schema:
type: string
format: uuid
title: Configuration Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ConfirmUploadCustomCodesInput'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CustomCodeResponse'
title: Response Confirmuploadcustomcodescsv
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/configurations/{configuration_id}/custom-codes/bulk-delete:
post:
tags:
- Configurations
summary: Bulk Delete Custom Codes
description: 'Deletes custom codes in bulk for a given configuration.
Args:
configuration_id (UUID): The ID of the configuration to modify.
body (BulkDeleteCustomCodesInput): The input body containing IDs of the custom codes.
user (DbUser): The logged-in user.
db (AsyncDatabaseConnection): The database connection.
Raises:
HTTPException: 404 if configuration can''t be found
HTTPException: 409 if configuration is not a draft and therefore not editable
HTTPException: 500 if configuration can''t be updated
Returns:
ConfigurationCustomCodeResponse: The updated configuration'
operationId: deleteCustomCodes
parameters:
- name: configuration_id
in: path
required: true
schema:
type: string
format: uuid
title: Configuration Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/BulkDeleteCustomCodesInput'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CustomCodeResponse'
title: Response Deletecustomcodes
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/configurations/{configuration_id}/custom-codes/validate:
post:
tags:
- Configurations
summary: Validate Custom Code
description: 'Determines whether a custom code update is valid or not.
If the desired code is already associated with the configuration, then the update is
invalid.
Args:
configuration_id (UUID): The configuration ID
body (ValidateCustomCodeInput): Body including the code to validate
user (DbUser, optional): The logged in user
db (AsyncDatabaseConnection, optional): The database connection
Returns:
bool: Returns True if the code has not been used, otherwise returns False'
operationId: validateCustomCodeFromConfiguration
parameters:
- name: configuration_id
in: path
required: true
schema:
type: string
format: uuid
title: Configuration Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ValidateCustomCodeInput'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ValidateCustomCodeResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/configurations/{configuration_id}/export:
get:
tags:
- Configurations
summary: Get Configuration Export
description: Create a CSV export of a configuration and all associated codes.
operationId: getConfigurationExport
parameters:
- name: configuration_id
in: path
required: true
schema:
type: string
format: uuid
title: Configuration Id
responses:
'200':
description: Successful Response
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/configurations/test:
post:
tags:
- Configurations
summary: Run Configuration Test
description: 'Runs an inline test of a given configuration against an eICR/RR pair.
This endpoint orchestrates the validation and refinement process by:
1. Handling file input, either from a user upload or a default sample file.
2. Calling the `inline_testing` service, which validates that the specified
configuration''s condition is reportable in the provided file.
3. Handling the service response:
- If validation fails, raises a 400 Bad Request with a specific error.
- If successful, proceeds with the returned refined document.
4. Packaging the original eICR, RR, and the single refined eICR into a
new in-memory zip archive.
5. Uploading the archive to S3 and generating a pre-signed download URL.
6. Returning a `ConfigurationTestResponse` with the download URL and details
of the successful refinement.
Args:
id: The ID of the configuration to test.
uploaded_file: An optional user-provided zip file with an eICR and RR.
create_output_zip: Dependency to create a zip archive in memory.
upload_zip: Dependency to upload the archive to S3.
user: The authenticated user making the request.
db: The database connection.
sample_zip_path: Path to the default sample zip file.
logger: The application logger.
Returns:
A response object containing the original eICR, a URL to download the
zipped results, and details about the refined condition.'
operationId: runInlineConfigurationTest
requestBody:
content:
multipart/form-data:
schema:
$ref: '#/components/schemas/Body_runInlineConfigurationTest'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ConfigurationTestResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/configurations/{configuration_id}/sections:
post:
tags:
- Configurations
summary: Insert Custom Section
description: 'Create a new custom section for a given configuration ID.
Args:
configuration_id (UUID): The ID of the configuration
section_input (CustomSectionInput): Desired properties of the section
user (DbUser): The logged-in user
db (AsyncDatabaseConnection): The database connection'
operationId: addCustomSection
parameters:
- name: configuration_id
in: path
required: true
schema:
type: string
format: uuid
title: Configuration Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AddSectionInput'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
type: string
title: Response Addcustomsection
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
delete:
tags:
- Configurations
summary: Delete Custom Section
description: 'Delete a custom section.
Args:
configuration_id (UUID): ID of the configuration with custom section to delete
section_input (DeleteCustomSectionInput): Custom section deletion input
user (DbUser): The logged in user
db (AsyncDatabaseConnection): The database connection
Raises:
HTTPException: 404 if configuration isn''t found
HTTPException: 409 if configuration isn''t a draft
HTTPException: 404 if custom section code to delete isn''t found
Returns:
str: Deleted custom section code'
operationId: deleteCustomSection
parameters:
- name: configuration_id
in: path
required: true
schema:
type: string
format: uuid
title: Configuration Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DeleteSectionInput'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
type: string
title: Response Deletecustomsection
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
patch:
tags:
- Configurations
summary: Update Section
description: 'Update a section entry for a configuration.
Args:
configuration_id (UUID): ID of the configuration to update
section_input (SectionUpdateInput): Updated section info
user (DbUser): The logged-in user
db (AsyncDatabaseConnection): Database connection
Raises:
HTTPException: 400 if the code is not valid, code is in use,
name is in use, the section is system-skipped
(`DisabledSection`) and therefore not configurable, the
narrative/action combination is unsupported (e.g.
narrative="reconstruct" or "keep_on_match" with
action="retain"), narrative "reconstruct" targets a
section without a registered reconstructor, or the
section can carry a trigger code and was sent with
include=False
HTTPException: 404 if configuration isn''t found
HTTPException: 409 if configuration is not a draft and therefore not editable
HTTPException: 500 if section processing can''t be updated
Returns:
UpdateSectionProcessingResponse: The message to show the user'
operationId: updateSection
parameters:
- name: configuration_id
in: path
required: true
schema:
type: string
format: uuid
title: Configuration Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SectionUpdateInput'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateSectionProcessingResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/configurations/{configuration_id}/activate:
patch:
tags:
- Configurations
summary: Activate Configuration
description: 'Activate the specified configuration.
Args:
configuration_id (UUID): ID of the configuration to update
user (DbUser): The logged-in user
logger (Logger): The standard logger
db (AsyncDatabaseConnection): Database connection
Raises:
HTTPException: 400 if configuration can''t be activated because of its current state
HTTPException: 404 if configuration can''t be found
HTTPException: 500 if configuration can''t be activated by the server
Returns:
ActivateConfigurationResponse: Metadata about the activated condition for confirmation'
operationId: activateConfiguration
parameters:
- name: configuration_id
in: path
required: true
schema:
type: string
format: uuid
title: Configuration Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ConfigurationStatusUpdateResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/configurations/{configuration_id}/deactivate:
patch:
tags:
- Configurations
summary: Deactivate Configuration
description: 'Deactivate the specified configuration.
Args:
configuration_id (UUID): ID of the configuration to update
user (DbUser): The logged-in user
logger (Logger): The standard application logger
db (AsyncDatabaseConnection): Database connection
Raises:
HTTPException: 400 if configuration can''t be deactivated because of its current state
HTTPException: 404 if configuration can''t be found
HTTPException: 500 if configuration can''t be deactivated by the server
Returns:
ConfigurationStatusUpdateResponse: Metadata about the activated condition for confirmation'
operationId: deactivateConfiguration
parameters:
- name: configuration_id
in: path
required: true
schema:
type: string
format: uuid
title: Configuration Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ConfigurationStatusUpdateResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/configurations/{configuration_id}/acquire-lock:
post:
tags:
- Configurations
summary: Acquire Configuration Lock
description: 'Acquire config lock for user.
Args:
configuration_id (UUID): ID of the configuration to lock
user (DbUser): The logged-in user
db (AsyncDatabaseConnection): Database connection
Returns:
Response: 204 No Content on success'
operationId: acquireConfigurationLock
parameters:
- name: configuration_id
in: path
required: true
schema:
type: string
format: uuid
title: Configuration Id
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/configurations/{configuration_id}/release-lock:
post:
tags:
- Configurations
summary: Release Configuration Lock
description: 'Release config lock if held by user.
Args:
configuration_id (UUID): ID of the configuration to update
user (DbUser): The logged-in user
db (AsyncDatabaseConnection): Database connection'
operationId: releaseConfigurationLock
parameters:
- name: configuration_id
in: path
required: true
schema:
type: string
format: uuid
title: Configuration Id
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/configurations/{configuration_id}/set-status:
post:
tags:
- Configurations
summary: Set Codes Status
description: 'Sets selected codes to the specified `status` for the given configuration ID.
If `update_beyond_rendered_set` is false, we update status for only the specified
`code_ids` within the rendered page.
If `update_beyond_rendered_set` is true, we skip any codes within `code_ids_to_skip`
and update status for all other codes that don''t get clipped away by the passed-in filters
Args:
configuration_id (UUID): ID of the configuration to update
update_beyond_rendered_set (bool): Whether the action should be only within the rendered codes or include all codes.
# --- truncated at 32 KB (71 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/centers-for-disease-control-and-prevention/refs/heads/main/openapi/centers-for-disease-control-and-prevention-configurations-api-openapi.yml