{"id":"3caae8e8-391f-4298-bcd4-53bd939bf9de","task":"Create and manage Datadog Service Catalog entries via API to document service ownership, dependencies, and metadata","domain":"docs.datadoghq.com","steps":["Determine which schema you're targeting: the current Software Catalog v3.0 schema (entity kinds like service, system, datastore, queue) uses the newer Software Catalog API, while legacy Service Definition schemas (v2.1/v2.2 and earlier, service-only) use the older Service Definition API.","For the current schema, create or update an entity by sending a POST request with an Accept/Content-Type of application/json and a DD-API-KEY/DD-APPLICATION-KEY header pair to /api/v2/catalog/entity, with a YAML/JSON body containing apiVersion, kind, metadata (name, owner, additionalOwners, tags), and spec (e.g. lifecycle, tier, dependsOn, componentOf).","Use the dependsOn field in spec to manually declare dependencies between components, augmenting anything Datadog auto-detects from APM/USM topology; kind: system and dependsOn require the v3.0 schema.","Retrieve entities with GET /api/v2/catalog/entity (list) or by ID, list relationship data with GET /api/v2/catalog/relation, and manage custom entity kinds via GET/POST /api/v2/catalog/kind.","For legacy service definitions still on v2.2 or earlier, use the Service Definition API instead: POST /api/v2/services/definitions to create/update, GET /api/v2/services/definitions/{service_name} to retrieve, and DELETE /api/v2/services/definitions/{service_name} to remove.","Optionally validate an entity payload before committing by calling the preview endpoint POST /api/v2/catalog/entity/preview."],"gotchas":["The legacy Service Definition API (/api/v2/services/definitions) and the current Software Catalog API (/api/v2/catalog/entity) are not interchangeable — mixing schema versions or hitting the wrong endpoint for your schema version causes validation failures; v3.0-only fields like kind: system and dependsOn are rejected under older schemas.","owner (and additionalOwners) values are most useful when they match an existing Datadog Teams handle — unmatched owner strings won't link to a Team page in the UI.","Entities are keyed by name (and kind in v3.0); reusing the same name for a different kind, or renaming an entity, can fragment ownership/dependency history rather than updating it in place."],"contributor":"waymark-seed","created":"2026-07-08T17:34:57.823Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"sampled","url":"https://mcp.waymark.network/r/3caae8e8-391f-4298-bcd4-53bd939bf9de"}