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/datadog-apm-retention-filters-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no email required.
A second provider on the same verified email joins the account you already have.
openapi: 3.0.0
info:
title: Datadog APM Retention Filters API
description: The APM Retention Filters operations of the Datadog API, extracted verbatim from the OpenAPI
definition Datadog publishes for its own API clients.
version: '1.0'
contact:
email: support@datadoghq.com
name: Datadog Support
url: https://www.datadoghq.com/support/
x-source: https://raw.githubusercontent.com/DataDog/datadog-api-client-go/master/.generator/schemas/v2/openapi.yaml
x-extracted: '2026-09-05'
x-extraction-note: Path items, components and security schemes copied VERBATIM from the Datadog-published
OpenAPI at x-source; only the APM-relevant subset of paths is retained. No content was authored by
API Evangelist.
servers:
- url: https://{subdomain}.{site}
variables:
site:
default: datadoghq.com
description: The regional site for Datadog customers.
enum:
- datadoghq.com
- us3.datadoghq.com
- us5.datadoghq.com
- ap1.datadoghq.com
- ap2.datadoghq.com
- uk1.datadoghq.com
- datadoghq.eu
- ddog-gov.com
- us2.ddog-gov.com
- uk1.datadoghq.com
subdomain:
default: api
description: The subdomain where the API is deployed.
- url: '{protocol}://{name}'
variables:
name:
default: api.datadoghq.com
description: Full site DNS name.
protocol:
default: https
description: The protocol for accessing the API.
- url: https://{subdomain}.{site}
variables:
site:
default: datadoghq.com
description: Any Datadog deployment.
subdomain:
default: api
description: The subdomain where the API is deployed.
security:
- apiKeyAuth: []
appKeyAuth: []
tags:
- description: Manage configuration of [APM retention filters](https://app.datadoghq.com/apm/traces/retention-filters)
for your organization. You need an API and application key with Admin rights to interact with this
endpoint. See [retention filters](https://docs.datadoghq.com/tracing/trace_pipeline/trace_retention/#retention-filters)
on the Trace Retention page for more information.
externalDocs:
description: Find out more at
url: https://docs.datadoghq.com/tracing/trace_pipeline/trace_retention/
name: APM Retention Filters
paths:
/api/v2/apm/config/retention-filters:
get:
description: Get the list of APM retention filters.
operationId: ListApmRetentionFilters
responses:
'200':
content:
application/json:
examples:
default:
value:
data:
- attributes:
enabled: true
filter:
query: '@http.status_code:200 service:my-service'
filter_type: spans-sampling-processor
name: my retention filter
rate: 1.0
id: abc-123
type: apm_retention_filter
schema:
$ref: '#/components/schemas/RetentionFiltersResponse'
description: OK
'403':
$ref: '#/components/responses/NotAuthorizedResponse'
'429':
$ref: '#/components/responses/TooManyRequestsResponse'
summary: List all APM retention filters
tags:
- APM Retention Filters
x-permission:
operator: OR
permissions:
- apm_retention_filter_read
post:
description: 'Create a retention filter to index spans in your organization.
Returns the retention filter definition when the request is successful.
Default filters with types spans-errors-sampling-processor and spans-appsec-sampling-processor
cannot be created.'
operationId: CreateApmRetentionFilter
requestBody:
content:
application/json:
examples:
default:
value:
data:
attributes:
enabled: true
filter:
query: '@http.status_code:200 service:my-service'
filter_type: spans-sampling-processor
name: my retention filter
rate: 1.0
trace_rate: 1.0
type: apm_retention_filter
schema:
$ref: '#/components/schemas/RetentionFilterCreateRequest'
description: The definition of the new retention filter.
required: true
responses:
'200':
content:
application/json:
examples:
default:
value:
data:
attributes:
enabled: true
filter:
query: '@http.status_code:200 service:my-service'
filter_type: spans-sampling-processor
name: my retention filter
rate: 1.0
id: abc-123
type: apm_retention_filter
schema:
$ref: '#/components/schemas/RetentionFilterCreateResponse'
description: OK
'400':
$ref: '#/components/responses/BadRequestResponse'
'403':
$ref: '#/components/responses/NotAuthorizedResponse'
'409':
$ref: '#/components/responses/ConflictResponse'
'429':
$ref: '#/components/responses/TooManyRequestsResponse'
summary: Create a retention filter
tags:
- APM Retention Filters
x-codegen-request-body-name: body
x-permission:
operator: OR
permissions:
- apm_retention_filter_write
/api/v2/apm/config/retention-filters-execution-order:
put:
description: Re-order the execution order of retention filters.
operationId: ReorderApmRetentionFilters
requestBody:
content:
application/json:
examples:
default:
value:
data:
- id: 7RBOb7dLSYWI01yc3pIH8w
type: apm_retention_filter
schema:
$ref: '#/components/schemas/ReorderRetentionFiltersRequest'
description: The list of retention filters in the new order.
required: true
responses:
'200':
description: OK
'400':
$ref: '#/components/responses/BadRequestResponse'
'403':
$ref: '#/components/responses/NotAuthorizedResponse'
'429':
$ref: '#/components/responses/TooManyRequestsResponse'
summary: Re-order retention filters
tags:
- APM Retention Filters
x-codegen-request-body-name: body
x-permission:
operator: OR
permissions:
- apm_retention_filter_write
/api/v2/apm/config/retention-filters/{filter_id}:
delete:
description: 'Delete a specific retention filter from your organization.
Default filters with types spans-errors-sampling-processor and spans-appsec-sampling-processor
cannot be deleted.'
operationId: DeleteApmRetentionFilter
parameters:
- $ref: '#/components/parameters/RetentionFilterIdParam'
responses:
'200':
description: OK
'403':
$ref: '#/components/responses/NotAuthorizedResponse'
'404':
$ref: '#/components/responses/NotFoundResponse'
'429':
$ref: '#/components/responses/TooManyRequestsResponse'
summary: Delete a retention filter
tags:
- APM Retention Filters
x-permission:
operator: OR
permissions:
- apm_retention_filter_write
get:
description: Get an APM retention filter.
operationId: GetApmRetentionFilter
parameters:
- $ref: '#/components/parameters/RetentionFilterIdParam'
responses:
'200':
content:
application/json:
examples:
default:
value:
data:
attributes:
enabled: true
filter:
query: '@http.status_code:200 service:my-service'
filter_type: spans-sampling-processor
name: my retention filter
rate: 1.0
id: abc-123
type: apm_retention_filter
schema:
$ref: '#/components/schemas/RetentionFilterResponse'
description: OK
'403':
$ref: '#/components/responses/NotAuthorizedResponse'
'404':
$ref: '#/components/responses/NotFoundResponse'
'429':
$ref: '#/components/responses/TooManyRequestsResponse'
summary: Get a given APM retention filter
tags:
- APM Retention Filters
x-permission:
operator: OR
permissions:
- apm_retention_filter_read
put:
description: 'Update a retention filter from your organization.
Default filters (filters with types spans-errors-sampling-processor and spans-appsec-sampling-processor)
cannot be renamed or removed.'
operationId: UpdateApmRetentionFilter
parameters:
- $ref: '#/components/parameters/RetentionFilterIdParam'
requestBody:
content:
application/json:
examples:
default:
value:
data:
attributes:
enabled: true
filter:
query: '@http.status_code:200 service:my-service'
filter_type: spans-sampling-processor
name: my retention filter
rate: 1.0
trace_rate: 1.0
id: retention-filter-id
type: apm_retention_filter
schema:
$ref: '#/components/schemas/RetentionFilterUpdateRequest'
description: The updated definition of the retention filter.
required: true
responses:
'200':
content:
application/json:
examples:
default:
value:
data:
attributes:
enabled: true
filter:
query: '@http.status_code:200 service:my-service'
filter_type: spans-sampling-processor
name: my retention filter
rate: 1.0
id: abc-123
type: apm_retention_filter
schema:
$ref: '#/components/schemas/RetentionFilterResponse'
description: OK
'400':
$ref: '#/components/responses/BadRequestResponse'
'403':
$ref: '#/components/responses/NotAuthorizedResponse'
'404':
$ref: '#/components/responses/NotFoundResponse'
'429':
$ref: '#/components/responses/TooManyRequestsResponse'
summary: Update a retention filter
tags:
- APM Retention Filters
x-codegen-request-body-name: body
x-permission:
operator: OR
permissions:
- apm_retention_filter_write
components:
schemas:
RetentionFiltersResponse:
description: An ordered list of retention filters.
properties:
data:
description: A list of retention filters objects.
items:
$ref: '#/components/schemas/RetentionFilterAll'
type: array
required:
- data
type: object
RetentionFilterCreateRequest:
description: The body of the retention filter to be created.
properties:
data:
$ref: '#/components/schemas/RetentionFilterCreateData'
required:
- data
type: object
RetentionFilterResponse:
description: The retention filters definition.
properties:
data:
$ref: '#/components/schemas/RetentionFilterAll'
type: object
RetentionFilterAll:
description: The definition of the retention filter.
properties:
attributes:
$ref: '#/components/schemas/RetentionFilterAllAttributes'
id:
description: The ID of the retention filter.
example: 7RBOb7dLSYWI01yc3pIH8w
type: string
type:
$ref: '#/components/schemas/ApmRetentionFilterType'
required:
- id
- type
- attributes
type: object
RetentionFilterCreateData:
description: The body of the retention filter to be created.
properties:
attributes:
$ref: '#/components/schemas/RetentionFilterCreateAttributes'
type:
$ref: '#/components/schemas/ApmRetentionFilterType'
required:
- attributes
- type
type: object
RetentionFilterCreateResponse:
description: The retention filters definition.
properties:
data:
$ref: '#/components/schemas/RetentionFilter'
type: object
RetentionFilter:
description: The definition of the retention filter.
properties:
attributes:
$ref: '#/components/schemas/RetentionFilterAttributes'
id:
description: The ID of the retention filter.
example: 7RBOb7dLSYWI01yc3pIH8w
type: string
type:
$ref: '#/components/schemas/ApmRetentionFilterType'
required:
- id
- type
- attributes
type: object
ReorderRetentionFiltersRequest:
description: A list of retention filters to reorder.
properties:
data:
description: A list of retention filters objects.
items:
$ref: '#/components/schemas/RetentionFilterWithoutAttributes'
type: array
required:
- data
type: object
APIErrorResponse:
description: API error response.
properties:
errors:
description: A list of errors.
example:
- Bad Request
items:
description: A list of items.
example: Bad Request
type: string
type: array
required:
- errors
type: object
RetentionFilterCreateAttributes:
description: The object describing the configuration of the retention filter to create/update.
properties:
enabled:
description: Enable/Disable the retention filter.
example: true
type: boolean
filter:
$ref: '#/components/schemas/SpansFilterCreate'
filter_type:
$ref: '#/components/schemas/RetentionFilterType'
name:
description: The name of the retention filter.
example: my retention filter
type: string
rate:
description: 'Sample rate to apply to spans going through this retention filter.
A value of 1.0 keeps all spans matching the query.'
example: 1.0
format: double
type: number
trace_rate:
description: 'Sample rate to apply to traces containing spans going through this retention filter.
A value of 1.0 keeps all traces with spans matching the query.'
example: 1.0
format: double
type: number
required:
- name
- filter
- enabled
- filter_type
- rate
type: object
RetentionFilterUpdateRequest:
description: The body of the retention filter to be updated.
properties:
data:
$ref: '#/components/schemas/RetentionFilterUpdateData'
required:
- data
type: object
ApmRetentionFilterType:
default: apm_retention_filter
description: The type of the resource.
enum:
- apm_retention_filter
example: apm_retention_filter
type: string
x-enum-varnames:
- apm_retention_filter
RetentionFilterAttributes:
description: The attributes of the retention filter.
properties:
created_at:
description: The creation timestamp of the retention filter.
format: int64
type: integer
created_by:
description: The creator of the retention filter.
type: string
editable:
description: Shows whether the filter can be edited.
example: true
type: boolean
enabled:
description: The status of the retention filter (Enabled/Disabled).
example: true
type: boolean
execution_order:
description: The execution order of the retention filter.
format: int64
type: integer
filter:
$ref: '#/components/schemas/SpansFilter'
filter_type:
$ref: '#/components/schemas/RetentionFilterType'
modified_at:
description: The modification timestamp of the retention filter.
format: int64
type: integer
modified_by:
description: The modifier of the retention filter.
type: string
name:
description: The name of the retention filter.
example: my retention filter
type: string
rate:
description: 'Sample rate to apply to spans going through this retention filter.
A value of 1.0 keeps all spans matching the query.'
example: 1.0
format: double
type: number
trace_rate:
description: 'Sample rate to apply to traces containing spans going through this retention filter.
A value of 1.0 keeps all traces with spans matching the query.'
example: 1.0
format: double
type: number
type: object
SpansFilter:
description: The spans filter used to index spans.
properties:
query:
description: The search query - following the [span search syntax](https://docs.datadoghq.com/tracing/trace_explorer/query_syntax/).
example: '@http.status_code:200 service:my-service'
type: string
type: object
RetentionFilterAllAttributes:
description: The attributes of the retention filter.
properties:
created_at:
description: The creation timestamp of the retention filter.
format: int64
type: integer
created_by:
description: The creator of the retention filter.
type: string
editable:
description: Shows whether the filter can be edited.
example: true
type: boolean
enabled:
description: The status of the retention filter (Enabled/Disabled).
example: true
type: boolean
execution_order:
description: The execution order of the retention filter.
format: int64
type: integer
filter:
$ref: '#/components/schemas/SpansFilter'
filter_type:
$ref: '#/components/schemas/RetentionFilterAllType'
modified_at:
description: The modification timestamp of the retention filter.
format: int64
type: integer
modified_by:
description: The modifier of the retention filter.
type: string
name:
description: The name of the retention filter.
example: my retention filter
type: string
rate:
description: 'Sample rate to apply to spans going through this retention filter.
A value of 1.0 keeps all spans matching the query.'
example: 1.0
format: double
type: number
trace_rate:
description: 'Sample rate to apply to traces containing spans going through this retention filter.
A value of 1.0 keeps all traces with spans matching the query.'
example: 1.0
format: double
type: number
type: object
RetentionFilterWithoutAttributes:
description: The retention filter object .
properties:
id:
description: The ID of the retention filter.
example: 7RBOb7dLSYWI01yc3pIH8w
type: string
type:
$ref: '#/components/schemas/ApmRetentionFilterType'
required:
- id
- type
type: object
RetentionFilterUpdateData:
description: The body of the retention filter to be updated.
properties:
attributes:
$ref: '#/components/schemas/RetentionFilterUpdateAttributes'
id:
description: The ID of the retention filter.
example: retention-filter-id
type: string
type:
$ref: '#/components/schemas/ApmRetentionFilterType'
required:
- id
- attributes
- type
type: object
RetentionFilterType:
default: spans-sampling-processor
description: The type of retention filter. The value should always be spans-sampling-processor.
enum:
- spans-sampling-processor
example: spans-sampling-processor
type: string
x-enum-varnames:
- SPANS_SAMPLING_PROCESSOR
SpansFilterCreate:
description: The spans filter. Spans matching this filter will be indexed and stored.
properties:
query:
description: The search query - following the [span search syntax](https://docs.datadoghq.com/tracing/trace_explorer/query_syntax/).
example: '@http.status_code:200 service:my-service'
type: string
required:
- query
type: object
RetentionFilterAllType:
default: spans-sampling-processor
description: The type of retention filter.
enum:
- spans-sampling-processor
- spans-errors-sampling-processor
- spans-appsec-sampling-processor
example: spans-sampling-processor
type: string
x-enum-varnames:
- SPANS_SAMPLING_PROCESSOR
- SPANS_ERRORS_SAMPLING_PROCESSOR
- SPANS_APPSEC_SAMPLING_PROCESSOR
RetentionFilterUpdateAttributes:
description: The object describing the configuration of the retention filter to create/update.
properties:
enabled:
description: Enable/Disable the retention filter.
example: true
type: boolean
filter:
$ref: '#/components/schemas/SpansFilterCreate'
filter_type:
$ref: '#/components/schemas/RetentionFilterAllType'
name:
description: The name of the retention filter.
example: my retention filter
type: string
rate:
description: 'Sample rate to apply to spans going through this retention filter.
A value of 1.0 keeps all spans matching the query.'
example: 1.0
format: double
type: number
trace_rate:
description: 'Sample rate to apply to traces containing spans going through this retention filter.
A value of 1.0 keeps all traces with spans matching the query.'
example: 1.0
format: double
type: number
required:
- name
- filter
- enabled
- filter_type
- rate
type: object
parameters:
RetentionFilterIdParam:
description: The ID of the retention filter.
in: path
name: filter_id
required: true
schema:
type: string
responses:
NotFoundResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/APIErrorResponse'
description: Not Found
BadRequestResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/APIErrorResponse'
description: Bad Request
NotAuthorizedResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/APIErrorResponse'
description: Not Authorized
ConflictResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/APIErrorResponse'
description: Conflict
TooManyRequestsResponse:
content:
application/json:
schema:
$ref: '#/components/schemas/APIErrorResponse'
description: Too many requests
securitySchemes:
AuthZ:
description: This API uses OAuth 2 with the implicit grant flow.
flows:
authorizationCode:
authorizationUrl: /oauth2/v1/authorize
scopes:
ai_gateway_config_read: View AI Gateway configuration.
ai_gateway_config_write: Create, update, and delete AI Gateway configuration.
ai_gateway_usage: Use AI Gateway and view configuration applicable to the authenticated user.
apm_api_catalog_read: View API catalog and API definitions.
apm_api_catalog_write: Add, modify, and delete API catalog definitions.
apm_read: Read and query APM and Trace Analytics.
apm_service_catalog_read: View service catalog and service definitions.
apm_service_catalog_write: Add, modify, and delete service catalog definitions when those
definitions are maintained by Datadog.
appsec_vm_read: View infrastructure, application code, and library vulnerability findings.
aws_configurations_manage: Manage AWS integration account configurations and related integration
settings.
billing_edit: Edit your organization's billing information.
billing_read: View your organization's billing information.
bits_investigations_read: View Bits AI investigations.
bits_investigations_write: Create and manage Bits AI investigations.
cases_read: View Cases.
cases_shared_settings_write: Update shared case management settings.
cases_write: Create and update cases.
ci_visibility_pipelines_write: Create CI Visibility pipeline spans using the API.
ci_visibility_read: View CI Visibility.
cloud_cost_management_read: View Cloud Cost pages and the cloud cost data source in dashboards
and notebooks. For more details, see the Cloud Cost Management docs.
cloud_cost_management_write: Configure cloud cost accounts and global customizations. For
more details, see the Cloud Cost Management docs.
code_analysis_read: View Code Analysis.
code_coverage_read: View Code Coverage.
continuous_profiler_pgo_read: Read and query Continuous Profiler data for Profile-Guided Optimization
(PGO).
coterm_read: Read terminal recordings.
coterm_write: Write terminal recordings.
create_webhooks: Create webhooks integrations.
dashboards_embed_share: Create, modify, and delete shared dashboards with share type 'embed'.
dashboards_invite_share: Create, modify, and delete shared dashboards with share type 'invite'.
dashboards_public_share: Generate public and authenticated links to share dashboards or embeddable
graphs externally.
dashboards_read: View dashboards.
dashboards_write: Create and change dashboards.
data_scanner_read: View Data Scanner configurations.
data_scanner_write: Edit Data Scanner configurations.
embeddable_graphs_share: Generate public links to share embeddable graphs externally.
error_tracking_read: Read Error Tracking data.
error_tracking_write: Edit Error Tracking issues.
event_correlation_config_read: View event correlation configurations.
event_correlation_config_write: Create and update event correlation configurations.
events_read: Read Events data.
hosts_read: List hosts and their attributes.
incident_notification_settings_read: View Incident Notification Rule Settings.
incident_notification_settings_write: Configure Incidents Notification Rule settings.
incident_read: View incidents in Datadog.
incident_settings_read: View Incident Settings.
incident_settings_write: Configure Incident Settings.
incident_write: Create, view, and manage incidents in Datadog.
integrations_read: View configured integrations and their settings.
logs_modify_indexes: Modify log indexes, filters, exclusion filters, and configurations.
logs_read_data: Read log data.
logs_read_index_data: Read indexed log data.
manage_integrations: Install, uninstall, and configure integrations.
metrics_read: View custom metrics.
monitors_downtime: Set downtimes to suppress alerts from any monitor in an organization. Mute
and unmute monitors. The ability to write monitors is not required to set downtimes.
monitors_read: View monitors.
monitors_write: Edit, delete, and resolve individual monitors.
network_connections_read: Read cloud network connections.
org_connections_read: Read cross organization connections.
org_connections_write: Create, edit, and delete cross organization connections.
org_management: Edit org configurations, including authentication and certain security preferences
such as configuring SAML, renaming an org, configuring allowed login methods, creating child
orgs, subscribing & unsubscribing from apps in the marketplace, and enabling & disabling
Remote Configuration for the entire organization.
security_comments_read: Read comments of vulnerabilities.
security_monitoring_critical_assets_read: Read Critical Assets.
security_monitoring_critical_assets_write: Write Critical Assets.
security_monitoring_filters_read: Read Security Filters.
security_monitoring_filters_write: Create, edit, and delete Security Filters.
security_monitoring_findings_read: View a list of findings that include both misconfigurations
and identity risks.
security_monitoring_rules_read: Read Detection Rules.
security_monitoring_rules_write: Create and edit Detection Rules.
security_monitoring_signals_read: View Security Signals.
security_monitoring_suppressions_read: Read Rule Suppressions.
security_monitoring_suppressions_write: Write Rule Suppressions.
security_pipelines_read: View Security Pipelines.
security_pipelines_write: Create, edit, and delete CSM Security Pipelines.
siem_entities_read: View Cloud SIEM entities.
slos_corrections: Apply, edit, and delete SLO status corrections. A user with this permission
can make status corrections, even if they do not have permission to edit those SLOs.
slos_read: View SLOs and status corrections.
slos_write: Create, edit, and delete SLOs.
synthetics_global_variable_read: View, search, and use Synthetics global variables.
synthetics_global_variable_write: Create, edit, and delete global variables for Synthetics.
synthetics_private_location_read: View, search, and use Synthetics private locations.
synthetics_private_location_write: Create and delete private locations in addition to having
access to the associated installation guidelines.
synthetics_read: List and view configured Synthetic tests and test results.
synthetics_write: Create, edit, and delete Synthetic tests.
teams_manage: Manage Teams. Create, delete, rename, and edit metadata of all Teams. To control
Team membership across all Teams, use the User Access Manage permission.
teams_read: Read Teams data. A User with this permission can view Team names, metadata, and
which Users are on each Team.
test_optimization_read: View Test Optimization.
test_optimization_settings_write: Update service settings in Test Optimization.
test_optimization_write: Update flaky tests from Flaky Tests Management of Test Optimization.
timeseries_query: Query Timeseries data.
usage_read: View your organization's usage and usage attribution.
user_access_invite: Invite other users to yo
# --- truncated at 32 KB (32 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/datadog-apm/refs/heads/main/openapi/datadog-apm-retention-filters-api-openapi.yml