The Datadog connector lets your AI agent act in each user's Datadog account. Each user connects their own Datadog API key once, and Scalekit sends it with every call, so your agent never handles credentials. It comes with 105 tools.
- Tools
- 105
- What they doRead · write · destructive
- 54 · 38 · 1354 read38 write13 destructive
- Users sign in with
- API key
Setup
Install the SDK
Terminal window npm install @scalekit-sdk/node dotenvTerminal window pip install scalekit-sdk-python python-dotenvSet your credentials
Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret>Create the Datadog connection
In AgentKit > Connections, create a Datadog connection. The name you give it is the
connection_nameyour code passes. See Configure connections.Console steps with screenshots
Register your Datadog API credentials with Scalekit so Scalekit can proxy API requests and inject your keys automatically. Datadog uses API key authentication.
-
Find your Datadog site
Datadog hosts accounts on regional sites. You must provide your site when creating a connected account — Scalekit uses it to route API calls to the correct endpoint.
Site identifier Region datadoghq.comUS1 (default) us3.datadoghq.comUS3 us5.datadoghq.comUS5 datadoghq.euEU1 ap1.datadoghq.comAP1 ddog-gov.comUS1-FED (GovCloud) If you are unsure which site your account uses, check the URL when you sign in to Datadog — for example,
app.datadoghq.eumeans your site isdatadoghq.eu. See the Datadog site documentation for details. -
Get your Datadog API key and Application key
- Sign in to Datadog and go to Organization Settings → API Keys.
- Copy an existing API key or click + New Key to create one dedicated to this integration.

- Go to Organization Settings → Application Keys.
- Copy an existing Application key or click + New Key to create a dedicated one. Copy the key value immediately — Datadog will not show it again.

-
Create a connection in Scalekit
- In Scalekit dashboard, go to AgentKit → Connections → Create Connection. Find Datadog and click Create.

- Note the Connection name — you will use this as
connection_namein your code (e.g.,datadog). - Click Save.

-
Add a connected account
Connected accounts link a specific user identifier in your system to a set of Datadog credentials. Add one in the dashboard to test. In production, each user adds their own through the authorization link: they enter their credentials on the page it opens.
In the dashboard, to test
- Open the connection you created and click the Connected Accounts tab → Add account.
- Fill in:
- Your User’s ID — a unique identifier for this user in your system (e.g.,
user_123) - API Key — the Datadog API key from step 2
- Application Key — the Datadog Application key from step 2
- Datadog Site — your site identifier from step 1 (e.g.,
datadoghq.com)
- Your User’s ID — a unique identifier for this user in your system (e.g.,
- Click Create Account.

From your backend, if your app already has the credentials
For example, when users enter them on a settings page in your app:
import { Scalekit, ConnectorStatus } from '@scalekit-sdk/node';const scalekit = new Scalekit(process.env.SCALEKIT_ENVIRONMENT_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,);// Never hard-code credentials — read from secure storage or user inputconst datadogApiKey = getUserDatadogApiKey(); // retrieve from your secure storeconst datadogAppKey = getUserDatadogAppKey();const datadogSite = getUserDatadogSite(); // e.g. 'datadoghq.com'const authorizationDetails = {details: {case: 'staticAuth',value: {details: {api_key: datadogApiKey,app_key: datadogAppKey,dd_site: datadogSite,},},},};let { connectedAccount } = await scalekit.actions.upsertConnectedAccount({connectionName: 'datadog',identifier: 'user_123',authorizationDetails,});// Make sure the account is ACTIVE before the first tool call.if (connectedAccount?.status !== ConnectorStatus.ACTIVE) {({ connectedAccount } = await scalekit.actions.upsertConnectedAccount({connectionName: 'datadog',identifier: 'user_123',authorizationDetails,}));}import osfrom scalekit import ScalekitClientscalekit_client = ScalekitClient(env_url=os.environ["SCALEKIT_ENVIRONMENT_URL"],client_id=os.environ["SCALEKIT_CLIENT_ID"],client_secret=os.environ["SCALEKIT_CLIENT_SECRET"],)# Never hard-code credentials — read from secure storage or user inputdatadog_api_key = get_user_datadog_api_key() # retrieve from your secure storedatadog_app_key = get_user_datadog_app_key()datadog_site = get_user_datadog_site() # e.g. 'datadoghq.com'authorization_details = {"static_auth": {"api_key": datadog_api_key,"app_key": datadog_app_key,"dd_site": datadog_site,},}response = scalekit_client.actions.upsert_connected_account(connection_name="datadog",identifier="user_123",authorization_details=authorization_details,)# Make sure the account is ACTIVE before the first tool call.if response.connected_account.status != "ACTIVE":response = scalekit_client.actions.upsert_connected_account(connection_name="datadog",identifier="user_123",authorization_details=authorization_details,)
-
Authorize a user and make your first call
quickstart.mts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'import { createInterface } from 'node:readline/promises'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENVIRONMENT_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'datadog'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize Datadog:', link)const rl = createInterface({ input: process.stdin, output: process.stdout })await rl.question('Press Enter after authorizing...')rl.close()// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'datadog_current_user_get',toolInput: {},})console.log(result)Terminal window npx tsx quickstart.mtsquickstart.py import osfrom scalekit import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "datadog"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize Datadog:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="datadog_current_user_get",connection_name=connection_name,identifier=identifier,)print(result)Terminal window python quickstart.pyEach user opens the link once and enters their Datadog credentials there. If your app already has a user's credentials, add the account from your backend instead, as the console steps above show. See Authorize a user for the full flow and statuses.
Getting resource IDs
Section titled “Getting resource IDs”Most tools require IDs that must be fetched from the API — never guess or hard-code them.
| Resource | Tool to get ID | Field in response |
|---|---|---|
| Monitor ID | datadog_monitors_list | array[].id |
| Dashboard ID | datadog_dashboards_list | dashboards[].id |
| Downtime ID | datadog_downtime_create response | data.id (UUID — not included[].id) |
| Notebook ID | datadog_notebooks_list | data[].id |
| Incident ID | datadog_incidents_list | data[].id |
| SLO ID | datadog_slos_list | data[].id |
| Role ID | datadog_roles_list | data[].id |
| User ID | datadog_users_list | data[].id |
| RUM App ID | datadog_rum_applications_list | data[].id |
| Event ID | datadog_event_create response | event.id_str (use id_str, not id — see note below) |
| Metric name | datadog_metrics_list | metrics[] (requires from Unix timestamp) |
| Log pipeline ID | datadog_log_pipelines_list | array[].id |
Why event IDs must come from id_str
Datadog event IDs are 64-bit integers (e.g. 8610103547030771722) that exceed the float64 precision limit (~9 × 10¹⁵). When the numeric id field is parsed as a JSON number, it loses precision and the path resolves to a wrong ID, causing a 400 “No event matches” error. Always read event.id_str from the response and pass it as a string to datadog_event_get.
Tools
Pass the exact name toexecute_tooldatadog_api_key_validateValidate the current Datadog API key.Read-onlyValidate API Key
Validate the current Datadog API key.
Inputs
This tool takes no inputs.
datadog_containers_listList all containers running on your infrastructure.Read-onlyList Containers
List all containers running on your infrastructure.
Inputs
filter_tagsstring- Filter containers by tag.
page_cursorstring- Cursor for pagination to get the next page of results.
page_sizeinteger- Maximum number of containers to return per page.
datadog_current_user_getGet the current authenticated Datadog user.Read-onlyGet Current User
Get the current authenticated Datadog user.
Inputs
This tool takes no inputs.
datadog_dashboard_getGet a specific Datadog dashboard by ID.Read-onlyGet Dashboard
Get a specific Datadog dashboard by ID.
Inputs
dashboard_idstringrequired- ID of the dashboard to retrieve.
datadog_dashboards_listList all Datadog dashboards.Read-onlyList Dashboards
List all Datadog dashboards.
Inputs
countinteger- Maximum number of dashboards to return.
filter_deletedstring- Filter deleted dashboards (true/false).
filter_sharedstring- Filter shared dashboards (true/false).
startinteger- Start index for pagination.
datadog_downtime_getGet a specific Datadog downtime by ID.Read-onlyGet Downtime
Get a specific Datadog downtime by ID.
Inputs
downtime_idstringrequired- ID of the downtime to retrieve.
datadog_downtimes_listList all Datadog downtimes.Read-onlyList Downtimes
List all Datadog downtimes.
Inputs
filter_monitor_idinteger- Filter downtimes by monitor ID.
page_limitinteger- Number of items to return per page.
page_offsetinteger- Offset for pagination.
datadog_event_getGet a specific Datadog event by ID.Read-onlyGet Event
Get a specific Datadog event by ID.
Inputs
event_idstringrequired- ID of the event to retrieve. Use the id_str value from event_create or events_list_v2 to avoid float precision loss.
datadog_events_list_v2List Datadog events using the v2 API with filtering and pagination.Read-onlyList Events (v2)
List Datadog events using the v2 API with filtering and pagination.
Inputs
filter_fromstring- ISO 8601 datetime for start of the filter range.
filter_querystring- Search query to filter events.
filter_tostring- ISO 8601 datetime for end of the filter range.
page_cursorstring- Cursor for pagination.
page_limitinteger- Maximum number of events to return.
sortstring- Sort order for events (timestamp or asc).
datadog_events_queryQuery Datadog events within a time range.Read-onlyQuery Events
Query Datadog events within a time range.
Inputs
endintegerrequired- Unix timestamp for end of query window.
startintegerrequired- Unix timestamp for start of query window.
countinteger- Maximum number of events to return.
pageinteger- Page number for pagination.
prioritystring- Priority filter: normal or low.
sourcesstring- Comma-separated event sources to filter by.
tagsstring- Comma-separated tags to filter events by.
unaggregatedstring- Whether to return unaggregated events (true/false).
datadog_graph_snapshotTake a snapshot of a metric graph in Datadog.Read-onlyTake Graph Snapshot
Take a snapshot of a metric graph in Datadog.
Inputs
endintegerrequired- End of the time window as a Unix timestamp (seconds).
metric_querystringrequired- The Datadog metric query for the graph snapshot.
startintegerrequired- Start of the time window as a Unix timestamp (seconds).
event_querystring- Query string to add event bands to the snapshot graph.
titlestring- Title for the snapshot graph.
datadog_hosts_listList Datadog hosts with optional filtering and sorting.Read-onlyList Hosts
List Datadog hosts with optional filtering and sorting.
Inputs
countinteger- Maximum number of hosts to return.
filterstring- Filter string to search hosts.
include_muted_hosts_datastring- Whether to include muted hosts data (true/false).
sort_dirstring- Sort direction: asc or desc.
sort_fieldstring- Field to sort hosts by.
startinteger- Starting offset for pagination.
datadog_hosts_totalsGet the total number of active and up Datadog hosts.Read-onlyGet Host Totals
Get the total number of active and up Datadog hosts.
Inputs
This tool takes no inputs.
datadog_incident_getGet a specific Datadog incident by ID.Read-onlyGet Incident
Get a specific Datadog incident by ID.
Inputs
incident_idstringrequired- ID of the incident to retrieve.
datadog_incidents_listList Datadog incidents with optional filtering.Read-onlyList Incidents
List Datadog incidents with optional filtering.
Inputs
filterstring- Search query to filter incidents.
page_offsetinteger- Offset for pagination.
page_sizeinteger- Number of incidents per page.
sortstring- Sort field: created or modified.
datadog_ip_ranges_listGet all IP ranges used by Datadog agents and services.Read-onlyList IP Ranges
Get all IP ranges used by Datadog agents and services.
Inputs
This tool takes no inputs.
datadog_log_indexes_listList all Datadog log indexes.Read-onlyList Log Indexes
List all Datadog log indexes.
Inputs
This tool takes no inputs.
datadog_log_pipeline_getGet a specific Datadog log processing pipeline by ID.Read-onlyGet Log Pipeline
Get a specific Datadog log processing pipeline by ID.
Inputs
pipeline_idstringrequired- ID of the log pipeline to retrieve.
datadog_log_pipelines_listList all Datadog log processing pipelines.Read-onlyList Log Pipelines
List all Datadog log processing pipelines.
Inputs
This tool takes no inputs.
datadog_logs_aggregateAggregate Datadog log events with grouping and compute operations.Read-onlyAggregate Logs
Aggregate Datadog log events with grouping and compute operations.
Inputs
computestringrequired- JSON array of compute objects defining aggregations.
fromstringrequired- ISO 8601 start time for log aggregation.
tostringrequired- ISO 8601 end time for log aggregation.
group_bystring- JSON array of group_by objects.
querystring- Log filter query string.
datadog_logs_searchSearch and filter Datadog log events.Read-onlySearch Logs
Search and filter Datadog log events.
Inputs
fromstringrequired- ISO 8601 start time for the log search.
tostringrequired- ISO 8601 end time for the log search.
cursorstring- Pagination cursor for fetching next page.
limitinteger- Maximum number of log events to return (max 1000).
querystring- Log search query string.
sortstring- Sort order: timestamp (newest first) or asc (oldest first).
datadog_metric_metadata_getGet metadata for a specific Datadog metric.Read-onlyGet Metric Metadata
Get metadata for a specific Datadog metric.
Inputs
metric_namestringrequired- Name of the metric to retrieve metadata for.
datadog_metrics_listList active metrics reported from a given Unix timestamp.Read-onlyList Active Metrics
List active metrics reported from a given Unix timestamp.
Inputs
fromintegerrequired- Unix timestamp from which to start the search.
hoststring- Hostname to filter the list of metrics to those active on this host.
tag_filterstring- Filter metrics by tag.
datadog_metrics_queryQuery timeseries metric data from Datadog.Read-onlyQuery Metrics
Query timeseries metric data from Datadog.
Inputs
fromintegerrequired- Unix timestamp for start of query window.
querystringrequired- Datadog metric query string.
tointegerrequired- Unix timestamp for end of query window.
datadog_monitor_getGet a specific Datadog monitor by ID.Read-onlyGet Monitor
Get a specific Datadog monitor by ID.
Inputs
monitor_idintegerrequired- ID of the monitor to retrieve.
datadog_monitor_searchSearch Datadog monitors using a query string.Read-onlySearch Monitors
Search Datadog monitors using a query string.
Inputs
pageinteger- Page number for pagination.
per_pageinteger- Number of results per page.
querystring- Search query string.
sortstring- Sort field and direction.
datadog_monitors_listList all Datadog monitors with optional filtering.Read-onlyList Monitors
List all Datadog monitors with optional filtering.
Inputs
group_statesstring- Comma-separated list of group states to filter by (e.g. alert,warn).
monitor_tagsstring- Comma-separated list of monitor tags.
namestring- Filter monitors by name.
pageinteger- Page number for pagination.
page_sizeinteger- Number of monitors to return per page.
tagsstring- Comma-separated list of tags to filter monitors.
with_downtimesstring- Whether to include downtime information (true/false).
datadog_notebook_getGet a specific Datadog notebook by its ID.Read-onlyGet Notebook
Get a specific Datadog notebook by its ID.
Inputs
notebook_idintegerrequired- The ID of the notebook to retrieve.
datadog_notebooks_listList all notebooks available in your Datadog account.Read-onlyList Notebooks
List all notebooks available in your Datadog account.
Inputs
author_handlestring- Filter notebooks by the author's handle.
countinteger- The number of notebooks to return per page.
include_cellsstring- Whether to include notebook cells in the response. Use 'true' or 'false'.
querystring- Filter notebooks by a text query string.
startinteger- The offset for pagination (number of notebooks to skip).
datadog_permissions_listList all available Datadog permissions.Read-onlyList Permissions
List all available Datadog permissions.
Inputs
This tool takes no inputs.
datadog_processes_listList live processes running on your infrastructure.Read-onlyList Live Processes
List live processes running on your infrastructure.
Inputs
frominteger- Start of the time window as a Unix timestamp (seconds).
page_cursorstring- Cursor for pagination to get the next page of results.
page_limitinteger- Maximum number of processes to return (max 1000).
searchstring- Filter processes by name or command.
tagsstring- Comma-separated list of tags to filter processes.
tointeger- End of the time window as a Unix timestamp (seconds).
datadog_role_getGet a specific Datadog role by ID.Read-onlyGet Role
Get a specific Datadog role by ID.
Inputs
role_idstringrequired- UUID of the role to retrieve.
datadog_roles_listList all Datadog roles.Read-onlyList Roles
List all Datadog roles.
Inputs
filterstring- Filter roles by name.
page_numberinteger- Page number for pagination.
page_sizeinteger- Number of roles per page.
sortstring- Field to sort roles by.
datadog_rum_application_getGet a specific RUM application by its ID.Read-onlyGet RUM Application
Get a specific RUM application by its ID.
Inputs
idstringrequired- The ID of the RUM application to retrieve.
datadog_rum_applications_listList all Datadog RUM applications.Read-onlyList RUM Applications
List all Datadog RUM applications.
Inputs
This tool takes no inputs.
datadog_slo_correction_getGet a single Datadog SLO correction by ID.Read-onlyGet SLO Correction
Get a single Datadog SLO correction by ID.
Inputs
slo_correction_idstringrequired- ID of the SLO correction to retrieve.
datadog_slo_correction_listList all Datadog SLO corrections (maintenance-window exclusions) across the organization.Read-onlyList SLO Corrections
List all Datadog SLO corrections (maintenance-window exclusions) across the organization.
Inputs
This tool takes no inputs.
datadog_slo_getGet a specific Datadog Service Level Objective by ID.Read-onlyGet SLO
Get a specific Datadog Service Level Objective by ID.
Inputs
slo_idstringrequired- ID of the SLO to retrieve.
datadog_slo_historyGet historical data for a specific Datadog SLO.Read-onlyGet SLO History
Get historical data for a specific Datadog SLO.
Inputs
from_tsintegerrequired- Unix timestamp for start of the history range.
slo_idstringrequired- ID of the SLO.
to_tsintegerrequired- Unix timestamp for end of the history range.
targetstring- Custom target value for the history calculation.
datadog_slos_listList Service Level Objectives (SLOs) in Datadog.Read-onlyList SLOs
List Service Level Objectives (SLOs) in Datadog.
Inputs
idsstring- Comma-separated list of SLO IDs to retrieve.
limitinteger- Maximum number of SLOs to return.
offsetinteger- Offset for pagination.
querystring- Search query to filter SLOs by name.
tags_querystring- Filter SLOs by tags.
datadog_synthetics_api_test_getGet a specific Datadog Synthetics API test by public ID.Read-onlyGet Synthetics API Test
Get a specific Datadog Synthetics API test by public ID.
Inputs
public_idstringrequired- Public ID of the Synthetics API test.
datadog_synthetics_browser_test_getGet a specific Datadog Synthetics browser test by public ID.Read-onlyGet Synthetics Browser Test
Get a specific Datadog Synthetics browser test by public ID.
Inputs
public_idstringrequired- Public ID of the Synthetics browser test.
datadog_synthetics_global_variables_listList all Datadog Synthetics global variables.Read-onlyList Synthetics Global Variables
List all Datadog Synthetics global variables.
Inputs
This tool takes no inputs.
datadog_synthetics_locations_listList all Datadog Synthetics locations (public and private).Read-onlyList Synthetics Locations
List all Datadog Synthetics locations (public and private).
Inputs
This tool takes no inputs.
datadog_synthetics_test_results_getGet the latest results for a specific Datadog Synthetics test.Read-onlyGet Synthetics Test Results
Get the latest results for a specific Datadog Synthetics test.
Inputs
public_idstringrequired- Public ID of the Synthetics test.
from_tsinteger- Unix timestamp for start of results range.
to_tsinteger- Unix timestamp for end of results range.
datadog_synthetics_tests_listList all Datadog Synthetics tests.Read-onlyList Synthetics Tests
List all Datadog Synthetics tests.
Inputs
page_numberinteger- Page number for pagination.
page_sizeinteger- Number of tests to return per page.
datadog_team_getGet a specific Datadog team by ID.Read-onlyGet Team
Get a specific Datadog team by ID.
Inputs
team_idstringrequired- ID of the team to retrieve.
datadog_team_memberships_listGet a paginated list of members for a Datadog team.Read-onlyList Team Memberships
Get a paginated list of members for a Datadog team.
Inputs
team_idstringrequired- ID of the team to list memberships for.
filter_keywordstring- Search query, can be user email or name.
page_numberinteger- Page number for pagination.
page_sizeinteger- Number of memberships per page.
sortstring- Sort order for returned memberships: name, -name, handle, -handle, email, -email, manager_name, -manager_name.
datadog_teams_listList all Datadog teams, with optional keyword search and pagination.Read-onlyList Teams
List all Datadog teams, with optional keyword search and pagination.
Inputs
filter_keywordstring- Search query. Can be team name, team handle, or email of a team member.
filter_mestring- When true, only returns teams the current user belongs to.
page_numberinteger- Page number for pagination.
page_sizeinteger- Number of teams per page.
sortstring- Sort order for returned teams: name, -name, user_count, or -user_count.
datadog_user_getGet a specific Datadog user by UUID.Read-onlyGet User
Get a specific Datadog user by UUID.
Inputs
user_idstringrequired- UUID of the user to retrieve.
datadog_user_roles_listGet all roles assigned to a specific Datadog user.Read-onlyGet User Roles
Get all roles assigned to a specific Datadog user.
Inputs
user_idstringrequired- UUID of the user.
datadog_users_listList Datadog users with optional filtering.Read-onlyList Users
List Datadog users with optional filtering.
Inputs
filterstring- Filter string to search users by name or email.
page_numberinteger- Page number for pagination.
page_sizeinteger- Number of users per page.
sortstring- Field to sort users by.
sort_dirstring- Sort direction: asc or desc.
datadog_audit_logs_searchSearch audit log events in Datadog for a given time window.WriteSearch Audit Logs
Search audit log events in Datadog for a given time window.
Inputs
fromstringrequired- Start of the time window in ISO 8601 format, e.g. 'now-1h' or '2023-01-01T00:00:00Z'.
tostringrequired- End of the time window in ISO 8601 format, e.g. 'now' or '2023-01-02T00:00:00Z'.
cursorstring- Pagination cursor from a previous response to fetch the next page.
limitinteger- Maximum number of audit events to return (max 1000).
querystring- Filter query for the audit log search.
sortstring- Sort order: 'timestamp' for ascending, '-timestamp' for descending.
datadog_dashboard_createCreate a new Datadog dashboard.WriteCreate Dashboard
Create a new Datadog dashboard.
Inputs
layout_typestringrequired- Layout type for the dashboard (ordered or free).
titlestringrequired- Title of the dashboard.
descriptionstring- Description of the dashboard.
tagsstring- JSON array of tags for the dashboard.
template_variablesstring- JSON array of template variable objects.
widgetsstring- JSON array of widget objects for the dashboard.
datadog_dashboard_updateUpdate an existing Datadog dashboard.WriteUpdate Dashboard
Update an existing Datadog dashboard.
- Idempotent
Inputs
dashboard_idstringrequired- ID of the dashboard to update.
layout_typestringrequired- Layout type for the dashboard (ordered or free).
titlestringrequired- Title of the dashboard.
descriptionstring- Description of the dashboard.
widgetsstring- JSON array of widget objects for the dashboard.
datadog_downtime_createCreate a new Datadog downtime to suppress alerts.WriteCreate Downtime
Create a new Datadog downtime to suppress alerts.
Inputs
scopestringrequired- Scope of the downtime, e.g. * or env:prod.
endstring- ISO-8601 UTC datetime when the downtime ends, e.g. 2026-04-28T12:00:00+00:00.
messagestring- Message to include with the downtime.
monitor_idinteger- Monitor ID to apply the downtime to. Omit to apply to all monitors.
monitor_tagsstring- JSON array of monitor tags to match for the downtime, e.g. ["*"] for all monitors.
startstring- ISO-8601 UTC datetime when the downtime starts, e.g. 2026-04-28T10:00:00+00:00.
timezonestring- Timezone for the downtime schedule (IANA format).
datadog_downtime_updateUpdate an existing Datadog downtime.WriteUpdate Downtime
Update an existing Datadog downtime.
- Idempotent
Inputs
downtime_idstringrequired- ID of the downtime to update.
messagestring- Updated message for the downtime.
scopestring- Updated scope of the downtime.
datadog_event_createCreate a new event in Datadog.WriteCreate Event
Create a new event in Datadog.
Inputs
textstringrequired- Body text of the event.
titlestringrequired- Title of the event.
aggregation_keystring- Key to aggregate related events.
alert_typestring- Alert type: info, error, warning, success, user_update, recommendation, snapshot.
date_happenedinteger- Unix timestamp when the event occurred.
hoststring- Host name to associate with the event.
prioritystring- Priority of the event: normal or low.
tagsstring- JSON array of tags for the event.
datadog_host_muteMute a Datadog host to suppress alerts.WriteMute Host
Mute a Datadog host to suppress alerts.
- Idempotent
Inputs
host_namestringrequired- Name of the host to mute.
endinteger- Unix timestamp when the mute ends.
messagestring- Message describing why the host is being muted.
overridestring- Whether to override an existing mute (true/false).
datadog_host_unmuteUnmute a Datadog host.WriteUnmute Host
Unmute a Datadog host.
- Idempotent
Inputs
host_namestringrequired- Name of the host to unmute.
datadog_incident_createCreate a new Datadog incident.WriteCreate Incident
Create a new Datadog incident.
Inputs
customer_impactedstringrequired- Whether customers are impacted (true/false).
titlestringrequired- Title of the incident.
severitystring- Severity level: SEV-1, SEV-2, SEV-3, SEV-4, SEV-5, or UNKNOWN.
statestring- Initial state: active, stable, or resolved.
datadog_incident_updateUpdate an existing Datadog incident.WriteUpdate Incident
Update an existing Datadog incident. Only the attributes provided are changed.
- Idempotent
Inputs
incident_idstringrequired- ID of the incident to update.
customer_impactedstring- Whether customers are impacted (true/false).
severitystring- Severity level: SEV-1, SEV-2, SEV-3, SEV-4, SEV-5, or UNKNOWN.
statestring- State: active, stable, or resolved.
titlestring- Title of the incident.
datadog_metric_metadata_updateUpdate metadata for a specific Datadog metric.WriteUpdate Metric Metadata
Update metadata for a specific Datadog metric.
- Idempotent
Inputs
metric_namestringrequired- Name of the metric to update metadata for.
descriptionstring- Description of the metric.
short_namestring- Short name for the metric.
typestring- Metric type: gauge, rate, or count.
unitstring- Unit of the metric.
datadog_metric_tag_configuration_createCreate and define a list of queryable tag keys for a Datadog count/gauge/rate/distribution metric.WriteCreate Metric Tag Configuration
Create and define a list of queryable tag keys for a Datadog count/gauge/rate/distribution metric.
Inputs
metric_namestringrequired- Name of the metric to configure tags for.
metric_typestringrequired- The metric's type: gauge, count, rate, or distribution.
tagsstringrequired- JSON array of tag keys that will be queryable for the metric.
exclude_tags_modestring- When true, the configured tags are excluded (deny-list) instead of included (allow-list).
include_percentilesstring- Toggle to include/exclude percentiles for a distribution metric. Only applies when metric_type is distribution.
datadog_metric_tag_configuration_updateUpdate the tag configuration for a Datadog metric.WriteUpdate Metric Tag Configuration
Update the tag configuration for a Datadog metric.
- Idempotent
Inputs
metric_namestringrequired- Name of the metric whose tag configuration should be updated.
exclude_tags_modestring- When true, the configured tags are excluded (deny-list) instead of included (allow-list).
include_percentilesstring- Toggle to include/exclude percentiles for a distribution metric.
tagsstring- JSON array of tag keys that will be queryable for the metric.
datadog_metrics_submitSubmit metric data points to Datadog.WriteSubmit Metrics
Submit metric data points to Datadog.
Inputs
metric_namestringrequired- Name of the metric to submit.
metric_typeintegerrequired- Metric type: 0=unspecified, 1=count, 2=rate, 3=gauge.
points_timestampsstringrequired- JSON array of Unix timestamps for the data points.
points_valuesstringrequired- JSON array of float values corresponding to each timestamp.
hoststring- Host name to associate with the metric.
tagsstring- JSON array of tag strings to associate with the metric.
datadog_monitor_createCreate a new Datadog monitor.WriteCreate Monitor
Create a new Datadog monitor.
Inputs
namestringrequired- Name of the monitor.
querystringrequired- The monitor query string.
typestringrequired- Type of the monitor (e.g. metric alert, service check, event alert, query alert).
messagestring- Notification message for the monitor.
no_data_timeframeinteger- Number of minutes before notifying on missing data.
notify_no_datastring- Whether to notify when no data is received (true/false).
priorityinteger- Monitor priority from 1 (highest) to 5 (lowest).
tagsstring- JSON array of tags to associate with the monitor.
datadog_monitor_muteMute a Datadog monitor, optionally with a scope and end time.WriteMute Monitor
Mute a Datadog monitor, optionally with a scope and end time.
- Idempotent
Inputs
monitor_idintegerrequired- ID of the monitor to mute.
endinteger- Unix timestamp when the mute should end.
scopestring- Scope to apply the mute to, e.g. role:db.
datadog_monitor_unmuteUnmute a Datadog monitor.WriteUnmute Monitor
Unmute a Datadog monitor.
- Idempotent
Inputs
monitor_idintegerrequired- ID of the monitor to unmute.
datadog_monitor_updateUpdate an existing Datadog monitor.WriteUpdate Monitor
Update an existing Datadog monitor.
- Idempotent
Inputs
monitor_idintegerrequired- ID of the monitor to update.
messagestring- Updated notification message for the monitor.
namestring- New name for the monitor.
priorityinteger- Monitor priority from 1 (highest) to 5 (lowest).
querystring- Updated query string for the monitor.
tagsstring- JSON array of tags to associate with the monitor.
datadog_notebook_createCreate a new notebook in Datadog.WriteCreate Notebook
Create a new notebook in Datadog.
Inputs
namestringrequired- The name of the notebook.
cellsstring- JSON array of notebook cell objects to include in the notebook.
datadog_role_createCreate a new Datadog role.WriteCreate Role
Create a new Datadog role.
Inputs
namestringrequired- Name for the new role.
permissionsstring- JSON array of permission objects to assign to the role.
datadog_rum_application_createCreate a new Datadog RUM application.WriteCreate RUM Application
Create a new Datadog RUM application.
Inputs
namestringrequired- Name of the RUM application.
typestringrequired- Type of the RUM application: browser, ios, android, react-native, flutter, or roku.
datadog_service_check_submitSubmit a service check result to Datadog.WriteSubmit Service Check
Submit a service check result to Datadog.
Inputs
checkstringrequired- The name of the service check, e.g. 'app.is_ok'.
host_namestringrequired- The hostname associated with this service check.
statusintegerrequired- The status of the service check. 0=OK, 1=WARNING, 2=CRITICAL, 3=UNKNOWN.
messagestring- A message describing the current state of the service check.
tagsstring- JSON array of tag strings to associate with the service check. E.g. ["env:prod","role:db"].
datadog_slo_correction_createCreate a Datadog SLO correction to exclude a time window (e.g.WriteCreate SLO Correction
Create a Datadog SLO correction to exclude a time window (e.g. planned maintenance) from an SLO's error budget.
Inputs
categorystringrequired- Category the correction belongs to: Scheduled Maintenance, Outside Business Hours, Deployment, or Other.
startintegerrequired- Starting time of the correction in epoch seconds.
descriptionstring- Description of the correction being made.
endinteger- Ending time of the correction in epoch seconds.
slo_idstring- ID of the single SLO that this correction applies to.
slo_querystring- Query that matches the SLOs this correction applies to, using SLO tag search syntax.
timezonestring- The timezone to display in the UI for the correction times (defaults to UTC).
datadog_slo_correction_updateUpdate an existing Datadog SLO correction, such as extending or shortening the excluded time window, or changing its category or description.WriteUpdate SLO Correction
Update an existing Datadog SLO correction, such as extending or shortening the excluded time window, or changing its category or description.
- Idempotent
Inputs
slo_correction_idstringrequired- ID of the SLO correction to update.
categorystring- Category the correction belongs to: Scheduled Maintenance, Outside Business Hours, Deployment, or Other.
descriptionstring- Description of the correction being made.
endinteger- Ending time of the correction in epoch seconds.
startinteger- Starting time of the correction in epoch seconds.
timezonestring- The timezone to display in the UI for the correction times.
datadog_slo_createCreate a new Service Level Objective (SLO) in Datadog.WriteCreate SLO
Create a new Service Level Objective (SLO) in Datadog.
Inputs
namestringrequired- Name of the SLO.
thresholdsstringrequired- JSON array of threshold objects, e.g. [{"timeframe":"7d","target":99.9}].
typestringrequired- Type of SLO: metric or monitor.
descriptionstring- Description of the SLO.
monitor_idsstring- JSON array of monitor IDs for a monitor-based SLO.
querystring- JSON object with numerator and denominator for metric-based SLOs.
tagsstring- JSON array of tags for the SLO.
datadog_slo_updateUpdate an existing Datadog Service Level Objective.WriteUpdate SLO
Update an existing Datadog Service Level Objective.
- Idempotent
Inputs
slo_idstringrequired- ID of the SLO to update.
typestringrequired- Type of SLO: metric or monitor. Required by the Datadog API on update.
descriptionstring- Updated description for the SLO.
namestring- Updated name for the SLO.
querystring- JSON object with numerator and denominator for metric-type SLOs.
tagsstring- JSON array of updated tags.
thresholdsstring- JSON array of updated threshold objects.
datadog_synthetics_api_test_createCreate a new Datadog Synthetics API test.WriteCreate Synthetics API Test
Create a new Datadog Synthetics API test.
Inputs
configstringrequired- JSON object with the request and assertions configuration for the test.
locationsstringrequired- JSON array of locations to run the test from.
messagestringrequired- Notification message associated with the test.
namestringrequired- Name of the test.
optionsstringrequired- JSON object with test options such as tick_every, min_failure_duration, and min_location_failed.
statusstring- Test status: live or paused.
subtypestring- Test subtype: http, ssl, tcp, dns, icmp, udp, websocket, grpc, or multi.
tagsstring- JSON array of tags attached to the test.
datadog_synthetics_private_location_createCreate a new Datadog Synthetics private location.WriteCreate Synthetics Private Location
Create a new Datadog Synthetics private location.
Inputs
descriptionstringrequired- Description of the private location.
namestringrequired- Name of the private location.
tagsstringrequired- JSON array of tags attached to the private location.
datadog_synthetics_test_pause_resumePause or resume a Datadog Synthetics test.WritePause or Resume Synthetics Test
Pause or resume a Datadog Synthetics test.
- Idempotent
Inputs
new_statusstringrequired- New status for the test: live or paused.
public_idstringrequired- Public ID of the Synthetics test.
datadog_synthetics_test_triggerTrigger one or more Datadog Synthetics tests to run immediately.WriteTrigger Synthetics Tests
Trigger one or more Datadog Synthetics tests to run immediately.
Inputs
testsstringrequired- JSON array of test objects with public_id.
datadog_team_createCreate a new Datadog team.WriteCreate Team
Create a new Datadog team.
Inputs
handlestringrequired- The team's identifier.
namestringrequired- The name of the team.
avatarstring- Unicode emoji representation of the avatar for the team, limited to a single grapheme.
descriptionstring- Free-form markdown description/content for the team's homepage.
user_idsstring- JSON array of user UUIDs to add to the team on creation.
datadog_team_membership_addAdd a user to a Datadog team.WriteAdd Team Membership
Add a user to a Datadog team.
Inputs
team_idstringrequired- ID of the team to add the user to.
user_idstringrequired- UUID of the user to add to the team.
rolestring- The user's role within the team. Currently only "admin" is supported; omit for a regular member.
datadog_team_updateUpdate a Datadog team by ID.WriteUpdate Team
Update a Datadog team by ID.
- Idempotent
Inputs
handlestringrequired- The team's identifier. Required by the Datadog API even on update.
namestringrequired- The name of the team. Required by the Datadog API even on update.
team_idstringrequired- ID of the team to update.
avatarstring- Unicode emoji representation of the avatar for the team, limited to a single grapheme.
descriptionstring- Free-form markdown description/content for the team's homepage.
datadog_user_createCreate a new Datadog user.WriteCreate User
Create a new Datadog user.
Inputs
emailstringrequired- Email address of the new user.
namestring- Display name of the user.
rolesstring- JSON array of role IDs to assign to the user.
titlestring- Job title of the user.
datadog_user_invitation_createSend or resend a Datadog organization invitation email to an existing user.WriteSend User Invitation
Send or resend a Datadog organization invitation email to an existing user.
Inputs
user_idstringrequired- UUID of the user to invite or re-invite.
datadog_user_updateUpdate an existing Datadog user.WriteUpdate User
Update an existing Datadog user.
- Idempotent
Inputs
user_idstringrequired- UUID of the user to update.
disabledstring- Whether to disable the user (true/false).
namestring- Updated display name for the user.
titlestring- Updated job title for the user.
datadog_dashboard_deleteDelete a Datadog dashboard by ID.DestructiveDelete Dashboard
Delete a Datadog dashboard by ID.
- Idempotent
Inputs
dashboard_idstringrequired- ID of the dashboard to delete.
datadog_downtime_cancelCancel a Datadog downtime by ID.DestructiveCancel Downtime
Cancel a Datadog downtime by ID.
- Idempotent
Inputs
downtime_idstringrequired- ID of the downtime to cancel.
datadog_incident_deleteDelete an existing Datadog incident.DestructiveDelete Incident
Delete an existing Datadog incident.
- Idempotent
Inputs
incident_idstringrequired- ID of the incident to delete.
datadog_metric_tag_configuration_deleteDelete a Datadog metric's tag configuration.DestructiveDelete Metric Tag Configuration
Delete a Datadog metric's tag configuration. This operation is irreversible.
- Idempotent
Inputs
metric_namestringrequired- Name of the metric whose tag configuration should be deleted.
datadog_monitor_deleteDelete a Datadog monitor by ID.DestructiveDelete Monitor
Delete a Datadog monitor by ID.
- Idempotent
Inputs
monitor_idintegerrequired- ID of the monitor to delete.
datadog_notebook_deleteDelete a specific notebook by its ID.DestructiveDelete Notebook
Delete a specific notebook by its ID.
- Idempotent
Inputs
notebook_idintegerrequired- The ID of the notebook to delete.
datadog_slo_correction_deleteDelete a Datadog SLO correction by ID, restoring the previously excluded time window to the SLO's error budget calculation.DestructiveDelete SLO Correction
Delete a Datadog SLO correction by ID, restoring the previously excluded time window to the SLO's error budget calculation.
- Idempotent
Inputs
slo_correction_idstringrequired- ID of the SLO correction to delete.
datadog_slo_deleteDelete a Datadog Service Level Objective by ID.DestructiveDelete SLO
Delete a Datadog Service Level Objective by ID.
- Idempotent
Inputs
slo_idstringrequired- ID of the SLO to delete.
datadog_synthetics_test_deleteDelete one or more Datadog Synthetics tests by public ID.DestructiveDelete Synthetics Tests
Delete one or more Datadog Synthetics tests by public ID.
- Idempotent
Inputs
public_idsstringrequired- JSON array of public IDs of Synthetics tests to delete.
datadog_team_deleteRemove a Datadog team by ID.DestructiveDelete Team
Remove a Datadog team by ID.
- Idempotent
Inputs
team_idstringrequired- ID of the team to remove.
datadog_team_membership_removeRemove a user from a Datadog team.DestructiveRemove Team Membership
Remove a user from a Datadog team.
- Idempotent
Inputs
team_idstringrequired- ID of the team to remove the user from.
user_idstringrequired- UUID of the user to remove from the team.
datadog_user_disableDisable a Datadog user account by UUID.DestructiveDisable User
Disable a Datadog user account by UUID.
- Idempotent
Inputs
user_idstringrequired- UUID of the user to disable.
No tools match.
Workflows
Proxy API call
const result = await actions.request({ connectionName: 'datadog', identifier: 'user_123', path: '/api/v1/monitor', method: 'GET',});console.log(result);result = actions.request( connection_name='datadog', identifier='user_123', path="/api/v1/monitor", method="GET")print(result)Create a monitor
const monitor = await actions.executeTool({ connector: 'datadog', identifier: 'user_123', toolName: 'datadog_monitor_create', toolInput: { name: 'High CPU Usage', type: 'metric alert', query: 'avg(last_5m):avg:system.cpu.user{*} > 90', message: 'CPU usage is high on {{host.name}}. @slack-alerts', },});console.log('Monitor created:', monitor.id);monitor = actions.execute_tool( connection_name='datadog', identifier='user_123', tool_name="datadog_monitor_create", tool_input={ "name": "High CPU Usage", "type": "metric alert", "query": "avg(last_5m):avg:system.cpu.user{*} > 90", "message": "CPU usage is high on {{host.name}}. @slack-alerts", },)print("Monitor created:", monitor["id"])Search logs
const logs = await actions.executeTool({ connector: 'datadog', identifier: 'user_123', toolName: 'datadog_logs_search', toolInput: { query: 'service:web status:error', from: '2024-01-01T00:00:00Z', to: '2024-01-02T00:00:00Z', limit: 50, },});console.log('Log count:', logs.data?.length);logs = actions.execute_tool( connection_name='datadog', identifier='user_123', tool_name="datadog_logs_search", tool_input={ "query": "service:web status:error", "from": "2024-01-01T00:00:00Z", "to": "2024-01-02T00:00:00Z", "limit": 50, },)print("Log count:", len(logs.get("data", [])))Query metrics
const metrics = await actions.executeTool({ connector: 'datadog', identifier: 'user_123', toolName: 'datadog_metrics_query', toolInput: { query: 'avg:system.cpu.user{*}', from: 1704067200, // Unix timestamp to: 1704153600, },});console.log('Series:', metrics.series);metrics = actions.execute_tool( connection_name='datadog', identifier='user_123', tool_name="datadog_metrics_query", tool_input={ "query": "avg:system.cpu.user{*}", "from": 1704067200, "to": 1704153600, },)print("Series:", metrics.get("series"))Create an incident
const incident = await actions.executeTool({ connector: 'datadog', identifier: 'user_123', toolName: 'datadog_incident_create', toolInput: { title: 'Database connection failures', customer_impacted: true, severity: 'SEV-2', },});console.log('Incident ID:', incident.data?.id);incident = actions.execute_tool( connection_name='datadog', identifier='user_123', tool_name="datadog_incident_create", tool_input={ "title": "Database connection failures", "customer_impacted": True, "severity": "SEV-2", },)print("Incident ID:", incident.get("data", {}).get("id"))Create a scheduled downtime
The start and end fields use ISO 8601 format, not Unix timestamps.
const downtime = await actions.executeTool({ connector: 'datadog', identifier: 'user_123', toolName: 'datadog_downtime_create', toolInput: { scope: 'env:production', start: '2026-06-01T02:00:00Z', end: '2026-06-01T04:00:00Z', message: 'Scheduled maintenance window', },});// Use data.id (UUID), not included[].id (user UUID)const downtimeId = downtime.data?.id;console.log('Downtime ID:', downtimeId);downtime = actions.execute_tool( connection_name='datadog', identifier='user_123', tool_name="datadog_downtime_create", tool_input={ "scope": "env:production", "start": "2026-06-01T02:00:00Z", "end": "2026-06-01T04:00:00Z", "message": "Scheduled maintenance window", },)# Use data["id"] (UUID), not included[0]["id"] (user UUID)downtime_id = downtime["data"]["id"]print("Downtime ID:", downtime_id)Create a metric SLO
The query field must be a JSON string containing numerator and denominator metric queries. Pass thresholds as a JSON string too.
const slo = await actions.executeTool({ connector: 'datadog', identifier: 'user_123', toolName: 'datadog_slo_create', toolInput: { name: 'API Success Rate', type: 'metric', query: JSON.stringify({ numerator: 'sum:requests.success{*}.as_count()', denominator: 'sum:requests.total{*}.as_count()', }), thresholds: JSON.stringify([{ target: 99.5, timeframe: '30d' }]), },});const sloId = slo.data?.[0]?.id;import json
slo = actions.execute_tool( connection_name='datadog', identifier='user_123', tool_name="datadog_slo_create", tool_input={ "name": "API Success Rate", "type": "metric", "query": json.dumps({ "numerator": "sum:requests.success{*}.as_count()", "denominator": "sum:requests.total{*}.as_count()", }), "thresholds": json.dumps([{"target": 99.5, "timeframe": "30d"}]), },)slo_id = slo["data"][0]["id"]Retrieve an event
Datadog event IDs are 64-bit integers that exceed the float64 precision limit. Always use the id_str field from event_create or events_list_v2 — not the numeric id field — to avoid silent precision loss.
// Create an event and capture its string IDconst created = await actions.executeTool({ connector: 'datadog', identifier: 'user_123', toolName: 'datadog_event_create', toolInput: { title: 'Deployment completed', text: 'v2.3.1 deployed to production', date_happened: Math.floor(Date.now() / 1000), },});const eventId = created.event?.id_str; // use id_str, not id
// Retrieve itconst event = await actions.executeTool({ connector: 'datadog', identifier: 'user_123', toolName: 'datadog_event_get', toolInput: { event_id: eventId },});console.log(event.event?.title);import time
created = actions.execute_tool( connection_name='datadog', identifier='user_123', tool_name="datadog_event_create", tool_input={ "title": "Deployment completed", "text": "v2.3.1 deployed to production", "date_happened": int(time.time()), },)event_id = created["event"]["id_str"] # use id_str, not id
event = actions.execute_tool( connection_name='datadog', identifier='user_123', tool_name="datadog_event_get", tool_input={"event_id": event_id},)print(event["event"]["title"])Submit custom metrics
datadog_metrics_submit takes separate array parameters for timestamps and values — not a serialized series object.
await actions.executeTool({ connector: 'datadog', identifier: 'user_123', toolName: 'datadog_metrics_submit', toolInput: { metric_name: 'app.request.duration', metric_type: 3, // 3 = gauge points_timestamps: JSON.stringify([Math.floor(Date.now() / 1000)]), points_values: JSON.stringify([142.5]), tags: JSON.stringify(['env:production', 'service:api']), },});import time, json
actions.execute_tool( connection_name='datadog', identifier='user_123', tool_name="datadog_metrics_submit", tool_input={ "metric_name": "app.request.duration", "metric_type": 3, # 3 = gauge "points_timestamps": json.dumps([int(time.time())]), "points_values": json.dumps([142.5]), "tags": json.dumps(["env:production", "service:api"]), },)