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

# Murph agent debug calls

> Inspect recent third-party sales-agent calls, including provenance for sandbox tests and live demand

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.

These rows describe observed AdCP calls. For external sales-agent sources, do
not treat an empty or failed component cache as the same evidence as a failed
live passthrough call. Cache diagnostics are about whether Interchange can reuse
raw products/components for merchandising; debug-call rows are about calls that
actually went to the source.

<Info>
  This endpoint is available only when Murph is enabled for the caller's
  account.
</Info>

## Endpoint

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

## Request

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

## Parameters

| Field          | Type    | Required | Notes                                                                               |
| -------------- | ------- | -------- | ----------------------------------------------------------------------------------- |
| `storefrontId` | integer | No       | Limit calls to one storefront.                                                      |
| `sourceId`     | string  | No       | Limit calls to one storefront inventory source.                                     |
| `taskId`       | string  | No       | Limit calls to one AdCP task ID.                                                    |
| `status`       | string  | No       | Limit calls to one task status, such as `COMPLETED`, `FAILED`, or `INPUT_REQUIRED`. |
| `take`         | integer | No       | Maximum number of rows to return.                                                   |

## Response

```json theme={null}
{
  "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"
    }
  ]
}
```

| Field                     | Type                                                           | Notes                                                                                                                                                                                                                   |
| ------------------------- | -------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `timestamp`               | string                                                         | When Interchange observed the request, response, webhook, or status activity.                                                                                                                                           |
| `userEmail`               | string \| null                                                 | Redacted email on the activity row when available.                                                                                                                                                                      |
| `initiatorEmail`          | string \| null                                                 | Redacted 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.testRunUid`       | string \| null                                                 | Test-run UID when the call can be matched to a Murph sandbox test run.                                                                                                                                                  |
| `origin.testRunStatus`    | `"passed"` \| `"partial"` \| `"failed"` \| `"planned"` \| null | Status of the matched sandbox test run.                                                                                                                                                                                 |
| `origin.testRunToolName`  | string \| null                                                 | Test-run tool name when available.                                                                                                                                                                                      |
| `origin.testRunCreatedAt` | string \| null                                                 | Creation 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](/v2/reference/errors) for the full error contract.
