> ## Documentation Index
> Fetch the complete documentation index at: https://docs.modulex.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Datadog Integration for AI Agents & Workflows

> Infrastructure monitoring, log management, and application performance platform

{/* Self-hosted logo — build-time vendored from modulex.json / Iconify (see scripts/lib/logo.js). */}

<img src="https://mintcdn.com/modulexaillc/zKB2qsP6Q61VNLfB/logos/datadog.svg?fit=max&auto=format&n=zKB2qsP6Q61VNLfB&q=85&s=a8a58f57e91f82db73c925d396fa4f69" alt="Datadog logo" width="72" height="72" data-path="logos/datadog.svg" />

## Overview

Add **Datadog** to any ModuleX agent or workflow. Infrastructure monitoring, log management, and application performance platform via the Datadog REST API (`api.{region}/api`).

<Info>
  **Categories**: Monitoring & Observability · Developer Tools & Infrastructure · **Auth**: Datadog API Keys · **Actions**: 11
</Info>

## Authentication

### Datadog API Keys

Authenticate using your Datadog API key and Application key

<Steps>
  <Step title="Step 1">
    Go to [https://app.datadoghq.com/organization-settings/api-keys](https://app.datadoghq.com/organization-settings/api-keys) and sign in
  </Step>

  <Step title="Step 2">
    Copy or create a new API key
  </Step>

  <Step title="Step 3">
    Go to [https://app.datadoghq.com/organization-settings/application-keys](https://app.datadoghq.com/organization-settings/application-keys)
  </Step>

  <Step title="Step 4">
    Copy or create a new Application key
  </Step>

  <Step title="Step 5">
    Paste both keys below
  </Step>
</Steps>

#### Required Credentials

| Field           | Description                                                                | Required | Format                                     |
| --------------- | -------------------------------------------------------------------------- | -------- | ------------------------------------------ |
| API Key         | Your Datadog API key from Organization Settings > API Keys                 | Yes      | `xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx`         |
| Application Key | Your Datadog Application key from Organization Settings > Application Keys | Yes      | `xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx` |

## Available Actions

<AccordionGroup>
  <Accordion title="get_account_info — Detect the Datadog region for the connected account by validating the API key across all regions">
    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "region": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Region"
        },
        "label": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Label"
        },
        "api_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Api Url"
        }
      },
      "required": [
        "success"
      ],
      "title": "GetAccountInfoOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="get_metric_data — Query time-series metric data for analyzing trends and system performance">
    ### Parameters

    <ResponseField name="region" type="string" required>
      The regional site for the Datadog account (e.g. datadoghq.com, us3.datadoghq.com, us5.datadoghq.com, datadoghq.eu, ddog-gov.com)
    </ResponseField>

    <ResponseField name="query" type="string" required>
      Metric query string (e.g. avg:system.cpu.user\{\*} or sum:my.metric\{env:prod} by \{host})
    </ResponseField>

    <ResponseField name="from_ts" type="integer" required>
      Start of the query window as POSIX timestamp in seconds
    </ResponseField>

    <ResponseField name="to_ts" type="integer" required>
      End of the query window as POSIX timestamp in seconds
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "series": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Series",
          "type": "array"
        },
        "from_date": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "From Date"
        },
        "to_date": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "To Date"
        },
        "query": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Query"
        }
      },
      "required": [
        "success"
      ],
      "title": "GetMetricDataOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="post_metric_data — Post custom time-series metric data points to Datadog">
    ### Parameters

    <ResponseField name="region" type="string" required>
      The regional site for the Datadog account (e.g. datadoghq.com, us3.datadoghq.com, us5.datadoghq.com, datadoghq.eu, ddog-gov.com)
    </ResponseField>

    <ResponseField name="metric" type="string" required>
      The name of the timeseries metric
    </ResponseField>

    <ResponseField name="points" type="object" required>
      Points as a JSON object where keys are Unix timestamps (seconds) and values are numeric (e.g. \{"1640995200": 1.0})
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "errors": {
          "items": {
            "type": "string"
          },
          "title": "Errors",
          "type": "array"
        }
      },
      "required": [
        "success"
      ],
      "title": "PostMetricDataOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="search_dashboards — List and search Datadog dashboards with their IDs, titles, and URLs">
    ### Parameters

    <ResponseField name="region" type="string" required>
      The regional site for the Datadog account (e.g. datadoghq.com, us3.datadoghq.com, us5.datadoghq.com, datadoghq.eu, ddog-gov.com)
    </ResponseField>

    <ResponseField name="filter_shared" type="boolean">
      If true, only return dashboards that are shared
    </ResponseField>

    <ResponseField name="count" type="integer">
      Maximum number of dashboards to return
    </ResponseField>

    <ResponseField name="start" type="integer">
      Offset for pagination
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "dashboards": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Dashboards",
          "type": "array"
        }
      },
      "required": [
        "success"
      ],
      "title": "SearchDashboardsOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="search_events — Search Datadog events including monitor state changes, deployment markers, and error spikes">
    ### Parameters

    <ResponseField name="region" type="string" required>
      The regional site for the Datadog account (e.g. datadoghq.com, us3.datadoghq.com, us5.datadoghq.com, datadoghq.eu, ddog-gov.com)
    </ResponseField>

    <ResponseField name="start" type="integer">
      POSIX timestamp (seconds) for the start of the query window; defaults to 24 hours ago
    </ResponseField>

    <ResponseField name="end" type="integer">
      POSIX timestamp (seconds) for the end of the query window; defaults to now
    </ResponseField>

    <ResponseField name="priority" type="string">
      Filter by event priority: normal or low
    </ResponseField>

    <ResponseField name="sources" type="string">
      Comma-separated list of sources to filter events (e.g. nagios,hudson)
    </ResponseField>

    <ResponseField name="tags" type="string">
      Comma-separated list of tags to filter events (e.g. env:prod,role:db)
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "events": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Events",
          "type": "array"
        }
      },
      "required": [
        "success"
      ],
      "title": "SearchEventsOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="search_hosts — Search monitored infrastructure hosts with filtering by tag, name, or partial match">
    ### Parameters

    <ResponseField name="region" type="string" required>
      The regional site for the Datadog account (e.g. datadoghq.com, us3.datadoghq.com, us5.datadoghq.com, datadoghq.eu, ddog-gov.com)
    </ResponseField>

    <ResponseField name="filter" type="string">
      Filter hosts by name, alias, or tag (e.g. env:production or host:web-01)
    </ResponseField>

    <ResponseField name="sort_field" type="string">
      Field to sort hosts by: status, apps, cpu, iowait, or load
    </ResponseField>

    <ResponseField name="sort_dir" type="string">
      Direction of sort: asc or desc
    </ResponseField>

    <ResponseField name="count" type="integer">
      Number of hosts to return (max 1000)
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "host_list": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Host List",
          "type": "array"
        },
        "total_matching": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Total Matching"
        }
      },
      "required": [
        "success"
      ],
      "title": "SearchHostsOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="search_incidents — Search Datadog incidents by state, severity, and metadata">
    ### Parameters

    <ResponseField name="region" type="string" required>
      The regional site for the Datadog account (e.g. datadoghq.com, us3.datadoghq.com, us5.datadoghq.com, datadoghq.eu, ddog-gov.com)
    </ResponseField>

    <ResponseField name="query" type="string">
      Search query to filter incidents using field:value syntax (e.g. state:active or severity:SEV-1)
    </ResponseField>

    <ResponseField name="page_size" type="integer">
      Number of incidents per page (default 10)
    </ResponseField>

    <ResponseField name="page_offset" type="integer">
      Offset for pagination
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "incidents": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Incidents",
          "type": "array"
        }
      },
      "required": [
        "success"
      ],
      "title": "SearchIncidentsOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="search_logs — Search Datadog logs matching a query with support for facets and time ranges">
    ### Parameters

    <ResponseField name="region" type="string" required>
      The regional site for the Datadog account (e.g. datadoghq.com, us3.datadoghq.com, us5.datadoghq.com, datadoghq.eu, ddog-gov.com)
    </ResponseField>

    <ResponseField name="query" type="string" required>
      Search query following log search syntax (e.g. service:web-app status:error) (Default: `*`)
    </ResponseField>

    <ResponseField name="from_time" type="string">
      Minimum timestamp for logs; supports date math (now-15m), ISO-8601, or epoch ms; defaults to 15 minutes ago
    </ResponseField>

    <ResponseField name="to_time" type="string">
      Maximum timestamp for logs; supports date math (now), ISO-8601, or epoch ms; defaults to now
    </ResponseField>

    <ResponseField name="indexes" type="array">
      List of log index names to search (defaults to all indexes); element type: string
    </ResponseField>

    <ResponseField name="limit" type="integer">
      Maximum number of logs to return per page (default 10, max 1000)
    </ResponseField>

    <ResponseField name="sort" type="string">
      Sort order for results: -timestamp (newest first) or timestamp (oldest first)
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "logs": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Logs",
          "type": "array"
        }
      },
      "required": [
        "success"
      ],
      "title": "SearchLogsOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="search_metrics — List available Datadog metric names, optionally filtered by host">
    ### Parameters

    <ResponseField name="region" type="string" required>
      The regional site for the Datadog account (e.g. datadoghq.com, us3.datadoghq.com, us5.datadoghq.com, datadoghq.eu, ddog-gov.com)
    </ResponseField>

    <ResponseField name="host" type="string">
      Filter metrics by host name
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "metrics": {
          "items": {
            "type": "string"
          },
          "title": "Metrics",
          "type": "array"
        }
      },
      "required": [
        "success"
      ],
      "title": "SearchMetricsOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="search_monitors — Search Datadog monitors (alerting rules) including status, thresholds, and conditions">
    ### Parameters

    <ResponseField name="region" type="string" required>
      The regional site for the Datadog account (e.g. datadoghq.com, us3.datadoghq.com, us5.datadoghq.com, datadoghq.eu, ddog-gov.com)
    </ResponseField>

    <ResponseField name="query" type="string">
      Filter monitors by name, tag, or other attributes (e.g. tag:env:production or type:metric)
    </ResponseField>

    <ResponseField name="tags" type="string">
      Comma-separated list of tags to filter monitors (e.g. env:prod,team:backend)
    </ResponseField>

    <ResponseField name="page" type="integer">
      Page number to return (0-indexed)
    </ResponseField>

    <ResponseField name="page_size" type="integer">
      Number of monitors per page (default 100)
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "monitors": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Monitors",
          "type": "array"
        }
      },
      "required": [
        "success"
      ],
      "title": "SearchMonitorsOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="search_services — List services from Datadog Service Catalog with ownership, metadata, and team info">
    ### Parameters

    <ResponseField name="region" type="string" required>
      The regional site for the Datadog account (e.g. datadoghq.com, us3.datadoghq.com, us5.datadoghq.com, datadoghq.eu, ddog-gov.com)
    </ResponseField>

    <ResponseField name="page_size" type="integer">
      Number of services per page (default 10)
    </ResponseField>

    <ResponseField name="page_number" type="integer">
      Page number (0-indexed)
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "services": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Services",
          "type": "array"
        }
      },
      "required": [
        "success"
      ],
      "title": "SearchServicesOutput",
      "type": "object"
    }
    ```
  </Accordion>
</AccordionGroup>

## Limits & Quotas

* **Rate limits**: Datadog enforces per-endpoint rate limits; default is 300 requests/minute for most endpoints, 60/min for logs search, and 120/hour for metric submission.
* **Pagination**: Most list endpoints support pagination via `count`/`start` or `page`/`page_size` parameters.
* **Regions**: The API base URL varies by account region. Use `get_account_info` to auto-detect the correct region before calling other tools.
* **Error model**: Non-2xx responses and timeouts are caught and returned as `success=False` + `error` rather than raising.

## Related integrations

<CardGroup cols={3}>
  <Card title="PagerDuty" href="/integrations/tools/pagerduty" />

  <Card title="Sentry" href="/integrations/tools/sentry" />

  <Card title="Algolia" href="/integrations/tools/algolia" />
</CardGroup>

## Links

* [Datadog](https://www.datadoghq.com)
