Skip to main content
GET
/
pending-operations
List everything waiting on someone
curl --request GET \
  --url https://api.interchange.io/api/v2/storefront/pending-operations \
  --header 'Authorization: Bearer <token>'
import requests

url = "https://api.interchange.io/api/v2/storefront/pending-operations"

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers)

print(response.text)
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

fetch('https://api.interchange.io/api/v2/storefront/pending-operations', options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));
{
  "approvals": {
    "count": 4503599627370496,
    "items": [
      {
        "mediaBuyId": "<string>",
        "buyer": {
          "customerId": 0,
          "name": "<string>"
        },
        "submittedAt": "2023-11-07T05:31:56Z"
      }
    ]
  },
  "creativeReviews": {
    "count": 4503599627370496,
    "items": [
      {
        "creativeId": "<string>",
        "mediaBuyId": "<string>",
        "buyer": {
          "customerId": 0,
          "name": "<string>"
        },
        "submittedAt": "2023-11-07T05:31:56Z"
      }
    ]
  },
  "failedForwards": {
    "count": 4503599627370496,
    "groups": [
      {
        "errorCode": "<string>",
        "count": 4503599627370496,
        "items": [
          {
            "mediaBuyId": "<string>",
            "buyer": {
              "customerId": 0,
              "name": "<string>"
            },
            "since": "2023-11-07T05:31:56Z",
            "terminalized": true,
            "references": {
              "idempotencyKey": "<string>",
              "requestedAt": "<string>"
            }
          }
        ]
      }
    ]
  },
  "awaitingSource": {
    "count": 4503599627370496,
    "items": [
      {
        "mediaBuyId": "<string>",
        "sourceId": "<string>",
        "sourceName": "<string>",
        "buyer": {
          "customerId": 0,
          "name": "<string>"
        },
        "since": "2023-11-07T05:31:56Z",
        "taskId": "<string>"
      }
    ]
  },
  "sourceDegradations": {
    "count": 4503599627370496,
    "items": [
      {
        "sourceId": "<string>",
        "sourceName": "<string>",
        "headline": "<string>"
      }
    ]
  }
}
{
  "data": null,
  "error": {
    "code": "<string>",
    "message": "<string>",
    "field": "<string>",
    "details": {}
  }
}
{
  "data": null,
  "error": {
    "code": "<string>",
    "message": "<string>",
    "field": "<string>",
    "details": {}
  }
}
{
  "data": null,
  "error": {
    "code": "<string>",
    "message": "<string>",
    "field": "<string>",
    "details": {}
  }
}
{
  "data": null,
  "error": {
    "code": "<string>",
    "message": "<string>",
    "field": "<string>",
    "details": {}
  }
}

Authorizations

Authorization
string
header
required

API key or access token

Response

List everything waiting on someone

The union of things waiting on someone: pending approvals, pending creative reviews, failed forwards (grouped by error code), async-pending source acceptance, and seller-owned source degradations. Groups appear only when non-empty.

approvals
object

Media buys waiting on operator approval.

creativeReviews
object

Creatives waiting on operator review.

failedForwards
object

Forwards that failed, grouped by structured error code with the recovery-class-gated action.

awaitingSource
object

Buys a source accepted asynchronously and is still moderating ("waiting on source moderation since T").

sourceDegradations
object

Seller-owned source-health diagnoses (a degraded ad-server or sales-agent source) surfaced here so they are visible without opening the source directly. Scope3/vendor-owned diagnoses never appear.