dogcrud: Save and Restore Datadog Resources

dogcrud is a command line application for saving and restoring Datadog resources: Dashboards, Monitors, Log Pipelines, SLOs, metric configuration, and a few others.

There is frequently a large amount of hand-edited configuration in Datadog that has no version history. dogcrud downloads all of it in one command, and restores individual resources as needed.

Why not Terraform?

If you already manage your Datadog configuration with the Terraform provider, keep doing that. In practice though, a lot of Datadog configuration gets hand-edited in the web UI and never makes it into Terraform. dogcrud is for that configuration. It gives you a snapshot you can commit and restore from without first adopting every resource into IaC.

Install

uv tool install dogcrud

Save

dogcrud authenticates with a Datadog API key and application key, which it reads from DD_API_KEY and DD_APP_KEY.

export DD_API_KEY=...
export DD_APP_KEY=...
mkdir saved
dogcrud save all

Each resource is written to a JSON file under the data directory (saved by default), named after its Datadog REST path and ID, like saved/v1/dashboard/abc-def-ghi.json. Commit that directory to git and you have the version history Datadog doesn't give you.

Restore

dogcrud restore takes a file and works out the resource type and ID from its path.

dogcrud restore saved/v1/dashboard/abc-def-ghi.json

Refactor

Since the saved resources are plain JSON, you can also use dogcrud to refactor your Datadog entities by:

  1. Downloading the entities with dogcrud save all.
  2. Doing a local modification on them (e.g. updating a metric name across all dashboards).
  3. Restoring the modified entities.

Last updated August 30, 2026