Skip to main content
Murph agent debug calls show recent AdCP activity for storefront inventory sources backed by third-party sales agents. Use this endpoint when you need to understand what Interchange sent to a source, what the source returned, and whether the call came from a sandbox test run or live buyer demand.
This endpoint is available only when Murph is enabled for the caller’s customer account.

Endpoint

GET /api/v2/murph/agent-debug-calls

Request

curl
curl "https://api.interchange.io/api/v2/murph/agent-debug-calls?sourceId=retail-adcp&take=25" \
  -H "Authorization: Bearer $SCOPE3_API_KEY"

Parameters

FieldTypeRequiredNotes
storefrontIdintegerNoLimit calls to one storefront.
sourceIdstringNoLimit calls to one storefront inventory source.
taskIdstringNoLimit calls to one AdCP task ID.
statusstringNoLimit calls to one task status, such as COMPLETED, FAILED, or INPUT_REQUIRED.
takeintegerNoMaximum number of rows to return.

Response

{
  "calls": [
    {
      "id": 98765,
      "storefrontId": 42,
      "sourceId": "retail-adcp",
      "sourceName": "Retail AdCP Agent",
      "agentId": "agent_retail",
      "agentName": "Retail AdCP Agent",
      "operationId": "op_456",
      "contextId": "ctx_789",
      "idempotencyKey": "murph-test-abc",
      "taskId": "task_123",
      "taskStatus": "FAILED",
      "rawTaskStatus": "create_media_buy rejected",
      "tool": "create_media_buy",
      "activityType": "RESPONSE",
      "rawActivityType": "response",
      "payload": {
        "error": "Billing field is required."
      },
      "userEmail": "s***@example.com",
      "initiatorEmail": "s***@example.com",
      "origin": {
        "kind": "sandbox_test",
        "testRunUid": "run_abc",
        "testRunStatus": "failed",
        "testRunToolName": "create_media_buy",
        "testRunCreatedAt": "2026-06-18T12:45:00Z"
      },
      "timestamp": "2026-06-18T12:45:30Z"
    }
  ]
}
FieldTypeNotes
timestampstringWhen Interchange observed the request, response, webhook, or status activity.
userEmailstring | nullRedacted email on the activity row when available.
initiatorEmailstring | nullRedacted email for the user who initiated the call. For sandbox tests, this is the Murph test-run user when the call can be matched to a test run.
origin.kind"sandbox_test" | "live_demand"sandbox_test means the call was linked to a Murph sandbox test run or uses Murph’s sandbox test idempotency marker. live_demand means no sandbox test provenance was found, so treat it as non-test demand traffic.
origin.testRunUidstring | nullTest-run UID when the call can be matched to a Murph sandbox test run.
origin.testRunStatus"passed" | "partial" | "failed" | "planned" | nullStatus of the matched sandbox test run.
origin.testRunToolNamestring | nullTest-run tool name when available.
origin.testRunCreatedAtstring | nullCreation timestamp for the matched sandbox test run.

Provenance

Use origin.kind before interpreting a failure:
  • sandbox_test calls were created by a technical validation flow. A failed sandbox call usually means the source or adapter needs setup, protocol, or credential work before launch.
  • live_demand calls were not matched to Murph sandbox test metadata. Treat them as actual demand or other non-test traffic unless you have separate evidence that the caller was testing manually.
When origin.kind is sandbox_test, initiatorEmail identifies the redacted test-run user when that user is available. When the test-run join is not available, Murph falls back to the redacted activity-row user email.

Errors

  • 400 VALIDATION_ERROR — invalid query parameter.
  • 401 UNAUTHORIZED — missing or invalid bearer token.
  • 403 FORBIDDEN — Murph is not enabled for the caller’s account.
See Errors for the full error contract.