ModernLoop Internal API
Apidatadog

Search Datadog APM spans

Read operation: does not mutate upstream state.

curl -X POST "https://api.modernloop.dev/rest/v1/datadog/spans/search" \  -H "Authorization: Bearer $MLOOP_INTERNAL_MCP_API_KEY" \  -H "Content-Type: application/json" \  -d '{    "query": "string"  }'
{  "spans": [    {      "id": "string",      "spanId": "string",      "traceId": "string",      "parentId": "string",      "service": "string",      "resourceName": "string",      "type": "string",      "status": "string",      "startTimestamp": "string",      "endTimestamp": "string",      "tags": [        "string"      ],      "attributes": {        "property1": null,        "property2": null      }    }  ],  "nextCursor": "string"}
{  "error": {    "code": "string",    "message": "string",    "upstreamStatus": 0  }}
{  "error": {    "code": "string",    "message": "string",    "upstreamStatus": 0  }}
{  "error": {    "code": "string",    "message": "string",    "upstreamStatus": 0  }}
{  "error": {    "code": "string",    "message": "string",    "upstreamStatus": 0  }}

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

query*string

Datadog span search query

Length1 <= length
traceId?string

Filter by trace ID (appends trace_id: to the query)

from?string

Start time as ISO timestamp (default: 1 day ago)

to?string

End time as ISO timestamp (default: now)

limit?integer

Maximum number of spans to return (max 1000)

Range1 <= value <= 1000
Default100
cursor?string

Pagination cursor from a previous response (nextCursor)

Response Body

application/json

application/json

application/json

application/json

application/json