← All API operations

PUT /api/v1/connections/{key}/dossier

Read or maintain supplier access evidence

Supplier dossiers record account identity, commercial access, supported operations and reviewed provenance. Saving a draft is not verification; authorized human review is required.

Authenticated and advertiser scoped. Cross-tenant resource access returns 404. Product/channel entitlements also apply.

Requires an authenticated human with supplier:authorize permission. Delegated agents cannot perform this operator action.

The request schema is generated from the runtime Zod input validator. Cross-field refinements and state-dependent constraints are additionally enforced by the API.

Request

HTTP
PUT /api/v1/connections/{key}/dossier

Use the configured API origin. Private requests require a verified Bearer credential; an agent mutation can additionally require exact approval headers. Authentication guide →

ParameterLocationRequiredDescription
keypathYes
Parameter schemas
JSON Schema
[
  {
    "name": "key",
    "in": "path",
    "required": true,
    "schema": {
      "type": "string"
    }
  }
]
Request body contract
{
  "required": true,
  "content": {
    "application/json": {
      "schema": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "draft",
              "blocked"
            ],
            "default": "draft"
          },
          "accessClass": {
            "type": "string",
            "enum": [
              "open",
              "own-account",
              "approved",
              "contract",
              "infrastructure"
            ]
          },
          "content": {
            "type": "object",
            "properties": {
              "schemaVersion": {
                "type": "number",
                "const": 1
              },
              "summary": {
                "type": "string",
                "minLength": 1,
                "maxLength": 4000
              },
              "identity": {
                "type": "object",
                "properties": {
                  "supplierName": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 500
                  },
                  "productName": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 500
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "officialWebsiteUrl": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "uri",
                        "maxLength": 2048
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "developerDocsUrl": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "uri",
                        "maxLength": 2048
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "termsUrl": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "uri",
                        "maxLength": 2048
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "privacyUrl": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "uri",
                        "maxLength": 2048
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "supportUrl": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "uri",
                        "maxLength": 2048
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "channels": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "ctv",
                        "audio",
                        "tv",
                        "cinema",
                        "dooh",
                        "search",
                        "social"
                      ]
                    },
                    "maxItems": 7
                  },
                  "availableMarkets": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 500
                    },
                    "maxItems": 100
                  },
                  "notes": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 500
                    },
                    "maxItems": 100
                  }
                },
                "required": [
                  "supplierName",
                  "productName",
                  "officialWebsiteUrl",
                  "developerDocsUrl",
                  "termsUrl",
                  "privacyUrl",
                  "supportUrl",
                  "channels",
                  "availableMarkets",
                  "notes"
                ],
                "additionalProperties": false
              },
              "commercialAccess": {
                "type": "object",
                "properties": {
                  "accessClass": {
                    "type": "string",
                    "enum": [
                      "open",
                      "own-account",
                      "approved",
                      "contract",
                      "infrastructure"
                    ]
                  },
                  "accountScope": {
                    "type": "string",
                    "enum": [
                      "unknown",
                      "own-account-only",
                      "agency-multi-advertiser",
                      "reseller",
                      "managed-service"
                    ]
                  },
                  "currentState": {
                    "type": "string",
                    "enum": [
                      "unknown",
                      "not-started",
                      "application-pending",
                      "approved",
                      "contracted",
                      "suspended",
                      "rejected",
                      "not-available"
                    ]
                  },
                  "signupUrl": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "uri",
                        "maxLength": 2048
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "applicationUrl": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "uri",
                        "maxLength": 2048
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "contractRequired": {
                    "type": [
                      "boolean",
                      "null"
                    ]
                  },
                  "multiAdvertiserUseApproved": {
                    "type": [
                      "boolean",
                      "null"
                    ]
                  },
                  "resaleApproved": {
                    "type": [
                      "boolean",
                      "null"
                    ]
                  },
                  "onboardingLeadTime": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "minimumBusinessDays": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 365
                          },
                          "maximumBusinessDays": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 365
                          }
                        },
                        "required": [
                          "minimumBusinessDays",
                          "maximumBusinessDays"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "minimumCommitment": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "amountMinor": {
                            "type": "integer",
                            "minimum": 0
                          },
                          "currency": {
                            "type": "string",
                            "enum": [
                              "GBP",
                              "USD",
                              "EUR"
                            ]
                          }
                        },
                        "required": [
                          "amountMinor",
                          "currency"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "requiredLegalEntities": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 500
                    },
                    "maxItems": 100
                  },
                  "requiredAgreements": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 500
                    },
                    "maxItems": 100
                  },
                  "usageRestrictions": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 500
                    },
                    "maxItems": 100
                  },
                  "evidenceIds": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 256,
                      "pattern": "^[^\\u0000-\\u001f\\u007f]+$"
                    },
                    "maxItems": 100
                  },
                  "notes": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 500
                    },
                    "maxItems": 100
                  }
                },
                "required": [
                  "accessClass",
                  "accountScope",
                  "currentState",
                  "signupUrl",
                  "applicationUrl",
                  "contractRequired",
                  "multiAdvertiserUseApproved",
                  "resaleApproved",
                  "onboardingLeadTime",
                  "minimumCommitment",
                  "requiredLegalEntities",
                  "requiredAgreements",
                  "usageRestrictions",
                  "evidenceIds",
                  "notes"
                ],
                "additionalProperties": false
              },
              "operations": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "operation": {
                      "anyOf": [
                        {
                          "type": "string",
                          "enum": [
                            "forecast",
                            "activate",
                            "pause",
                            "resume",
                            "creative",
                            "report",
                            "audienceSync",
                            "deals",
                            "keywordSuggestions",
                            "analytics",
                            "conversionGoals",
                            "providerForecast",
                            "postcodeClassification",
                            "identityMapping",
                            "identityOptOut",
                            "studyCatalog",
                            "studyRead",
                            "studyDraft",
                            "studyLaunch",
                            "studyResults",
                            "customerMatchCatalog",
                            "customerMatchIngest",
                            "customerMatchRemove",
                            "customerMatchStatus"
                          ]
                        },
                        {
                          "type": "string",
                          "const": "inventory"
                        }
                      ]
                    },
                    "verificationStatus": {
                      "anyOf": [
                        {
                          "type": "string",
                          "const": "unknown"
                        },
                        {
                          "type": "string",
                          "enum": [
                            "sandbox-only",
                            "stub",
                            "client-built",
                            "contract-tested",
                            "spend-tested",
                            "report-verified"
                          ]
                        }
                      ]
                    },
                    "liveAccess": {
                      "type": "string",
                      "enum": [
                        "unknown",
                        "not-approved",
                        "approved",
                        "suspended",
                        "not-applicable"
                      ]
                    },
                    "executionMode": {
                      "type": "string",
                      "enum": [
                        "unknown",
                        "rest-api",
                        "graphql-api",
                        "official-mcp",
                        "file-transfer",
                        "portal-workflow",
                        "email-workflow",
                        "managed-service",
                        "none"
                      ]
                    },
                    "risk": {
                      "type": "string",
                      "enum": [
                        "read-only",
                        "non-spend-write",
                        "spend-authorizing",
                        "personal-data-transfer"
                      ]
                    },
                    "requiredOAuthScopes": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 500
                      },
                      "maxItems": 100
                    },
                    "requiredCredentialFields": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 256,
                        "pattern": "^[^\\u0000-\\u001f\\u007f]+$"
                      },
                      "maxItems": 100
                    },
                    "sandboxAvailable": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "supportsIdempotency": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "supportsMultiAdvertiser": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "evidenceIds": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 256,
                        "pattern": "^[^\\u0000-\\u001f\\u007f]+$"
                      },
                      "maxItems": 100
                    },
                    "blockers": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 500
                      },
                      "maxItems": 100
                    },
                    "notes": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 500
                      },
                      "maxItems": 100
                    }
                  },
                  "required": [
                    "operation",
                    "verificationStatus",
                    "liveAccess",
                    "executionMode",
                    "risk",
                    "requiredOAuthScopes",
                    "requiredCredentialFields",
                    "sandboxAvailable",
                    "supportsIdempotency",
                    "supportsMultiAdvertiser",
                    "evidenceIds",
                    "blockers",
                    "notes"
                  ],
                  "additionalProperties": false
                },
                "maxItems": 20
              },
              "billing": {
                "type": "object",
                "properties": {
                  "billingModel": {
                    "type": "string",
                    "enum": [
                      "unknown",
                      "prepaid",
                      "card-on-file",
                      "postpaid-invoice",
                      "platform-billed",
                      "managed-service",
                      "mixed",
                      "not-applicable"
                    ]
                  },
                  "supportedCurrencies": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "GBP",
                        "USD",
                        "EUR"
                      ]
                    },
                    "maxItems": 3
                  },
                  "requiresPreFunding": {
                    "type": [
                      "boolean",
                      "null"
                    ]
                  },
                  "paymentTermsDays": {
                    "anyOf": [
                      {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 365
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "spendCapBehavior": {
                    "type": "string",
                    "enum": [
                      "unknown",
                      "vendor-hard-cap",
                      "vendor-soft-cap",
                      "platform-only",
                      "not-supported",
                      "not-applicable"
                    ]
                  },
                  "minimumCampaignSpend": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "amountMinor": {
                            "type": "integer",
                            "minimum": 0
                          },
                          "currency": {
                            "type": "string",
                            "enum": [
                              "GBP",
                              "USD",
                              "EUR"
                            ]
                          }
                        },
                        "required": [
                          "amountMinor",
                          "currency"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "minimumMonthlyCommitment": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "amountMinor": {
                            "type": "integer",
                            "minimum": 0
                          },
                          "currency": {
                            "type": "string",
                            "enum": [
                              "GBP",
                              "USD",
                              "EUR"
                            ]
                          }
                        },
                        "required": [
                          "amountMinor",
                          "currency"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "invoiceCadence": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 500
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "billableMetrics": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 500
                    },
                    "maxItems": 100
                  },
                  "feesAndMarkups": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 500
                    },
                    "maxItems": 100
                  },
                  "taxHandling": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 500
                    },
                    "maxItems": 100
                  },
                  "refundAndCreditTerms": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 500
                    },
                    "maxItems": 100
                  },
                  "reconciliationFields": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 500
                    },
                    "maxItems": 100
                  },
                  "evidenceIds": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 256,
                      "pattern": "^[^\\u0000-\\u001f\\u007f]+$"
                    },
                    "maxItems": 100
                  },
                  "notes": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 500
                    },
                    "maxItems": 100
                  }
                },
                "required": [
                  "billingModel",
                  "supportedCurrencies",
                  "requiresPreFunding",
                  "paymentTermsDays",
                  "spendCapBehavior",
                  "minimumCampaignSpend",
                  "minimumMonthlyCommitment",
                  "invoiceCadence",
                  "billableMetrics",
                  "feesAndMarkups",
                  "taxHandling",
                  "refundAndCreditTerms",
                  "reconciliationFields",
                  "evidenceIds",
                  "notes"
                ],
                "additionalProperties": false
              },
              "technical": {
                "type": "object",
                "properties": {
                  "integrationModes": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "unknown",
                        "rest-api",
                        "graphql-api",
                        "official-mcp",
                        "file-transfer",
                        "portal-workflow",
                        "email-workflow",
                        "managed-service",
                        "none"
                      ]
                    },
                    "maxItems": 20
                  },
                  "apiBaseUrl": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "uri",
                        "maxLength": 2048
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "apiVersion": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 500
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "authMethod": {
                    "type": "string",
                    "enum": [
                      "unknown",
                      "none",
                      "api-key",
                      "basic",
                      "oauth2-authorization-code",
                      "oauth2-client-credentials",
                      "rsa-signature",
                      "mutual-tls",
                      "vendor-session",
                      "manual"
                    ]
                  },
                  "oauthAuthorizationUrl": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "uri",
                        "maxLength": 2048
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "oauthTokenUrl": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "uri",
                        "maxLength": 2048
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "credentialFields": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 256,
                          "allOf": [
                            {
                              "pattern": "^[^\\u0000-\\u001f\\u007f]+$"
                            },
                            {
                              "pattern": "^[A-Za-z][A-Za-z0-9_.-]*$"
                            }
                          ]
                        },
                        "label": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 500
                        },
                        "required": {
                          "type": "boolean"
                        },
                        "secret": {
                          "type": "boolean"
                        },
                        "rotates": {
                          "type": [
                            "boolean",
                            "null"
                          ]
                        },
                        "acquisition": {
                          "anyOf": [
                            {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 500
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "notes": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 500
                          },
                          "maxItems": 100
                        }
                      },
                      "required": [
                        "name",
                        "label",
                        "required",
                        "secret",
                        "rotates",
                        "acquisition",
                        "notes"
                      ],
                      "additionalProperties": false
                    },
                    "maxItems": 100
                  },
                  "sandboxClass": {
                    "type": "string",
                    "enum": [
                      "unknown",
                      "true-sandbox",
                      "test-account",
                      "production-test-only",
                      "synthetic-only",
                      "unavailable"
                    ]
                  },
                  "idempotencyClass": {
                    "type": "string",
                    "enum": [
                      "unknown",
                      "native-key",
                      "request-header",
                      "natural-key-only",
                      "not-supported",
                      "not-applicable"
                    ]
                  },
                  "paginationClass": {
                    "type": "string",
                    "enum": [
                      "unknown",
                      "cursor",
                      "page",
                      "offset",
                      "stream",
                      "none"
                    ]
                  },
                  "supportsWebhooks": {
                    "type": [
                      "boolean",
                      "null"
                    ]
                  },
                  "usesAsynchronousJobs": {
                    "type": [
                      "boolean",
                      "null"
                    ]
                  },
                  "rateLimitSummary": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 500
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "reportingLatencySummary": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 500
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "timeoutGuidance": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 500
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "versioningPolicy": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 500
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "productionTestingRequired": {
                    "type": [
                      "boolean",
                      "null"
                    ]
                  },
                  "mcp": {
                    "type": "object",
                    "properties": {
                      "availability": {
                        "type": "string",
                        "enum": [
                          "unknown",
                          "not-offered",
                          "supplier-hosted-beta",
                          "supplier-hosted-ga",
                          "official-self-hosted",
                          "third-party-only"
                        ]
                      },
                      "endpointUrl": {
                        "anyOf": [
                          {
                            "type": "string",
                            "format": "uri",
                            "maxLength": 2048
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "signupUrl": {
                        "anyOf": [
                          {
                            "type": "string",
                            "format": "uri",
                            "maxLength": 2048
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "transports": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "enum": [
                            "unknown",
                            "streamable-http",
                            "stdio",
                            "sse"
                          ]
                        },
                        "maxItems": 4
                      },
                      "protocolVersions": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 256,
                          "pattern": "^[^\\u0000-\\u001f\\u007f]+$"
                        },
                        "maxItems": 20
                      },
                      "authMethod": {
                        "type": "string",
                        "enum": [
                          "unknown",
                          "none",
                          "api-key",
                          "basic",
                          "oauth2-authorization-code",
                          "oauth2-client-credentials",
                          "rsa-signature",
                          "mutual-tls",
                          "vendor-session",
                          "manual"
                        ]
                      },
                      "tools": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 256,
                              "pattern": "^[^\\u0000-\\u001f\\u007f]+$"
                            },
                            "description": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 4000
                            },
                            "risk": {
                              "type": "string",
                              "enum": [
                                "read-only",
                                "non-spend-write",
                                "spend-authorizing",
                                "personal-data-transfer"
                              ]
                            },
                            "evidenceIds": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 256,
                                "pattern": "^[^\\u0000-\\u001f\\u007f]+$"
                              },
                              "maxItems": 100
                            }
                          },
                          "required": [
                            "name",
                            "description",
                            "risk",
                            "evidenceIds"
                          ],
                          "additionalProperties": false
                        },
                        "maxItems": 500
                      },
                      "toolSchemaDigest": {
                        "anyOf": [
                          {
                            "type": "string",
                            "pattern": "^[a-f0-9]{64}$"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "evidenceIds": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 256,
                          "pattern": "^[^\\u0000-\\u001f\\u007f]+$"
                        },
                        "maxItems": 100
                      },
                      "notes": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 500
                        },
                        "maxItems": 100
                      }
                    },
                    "required": [
                      "availability",
                      "endpointUrl",
                      "signupUrl",
                      "transports",
                      "protocolVersions",
                      "authMethod",
                      "tools",
                      "toolSchemaDigest",
                      "evidenceIds",
                      "notes"
                    ],
                    "additionalProperties": false
                  },
                  "evidenceIds": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 256,
                      "pattern": "^[^\\u0000-\\u001f\\u007f]+$"
                    },
                    "maxItems": 100
                  },
                  "blockers": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 500
                    },
                    "maxItems": 100
                  },
                  "notes": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 500
                    },
                    "maxItems": 100
                  }
                },
                "required": [
                  "integrationModes",
                  "apiBaseUrl",
                  "apiVersion",
                  "authMethod",
                  "oauthAuthorizationUrl",
                  "oauthTokenUrl",
                  "credentialFields",
                  "sandboxClass",
                  "idempotencyClass",
                  "paginationClass",
                  "supportsWebhooks",
                  "usesAsynchronousJobs",
                  "rateLimitSummary",
                  "reportingLatencySummary",
                  "timeoutGuidance",
                  "versioningPolicy",
                  "productionTestingRequired",
                  "mcp",
                  "evidenceIds",
                  "blockers",
                  "notes"
                ],
                "additionalProperties": false
              },
              "creative": {
                "type": "object",
                "properties": {
                  "submissionMode": {
                    "type": "string",
                    "enum": [
                      "unknown",
                      "api",
                      "portal",
                      "email",
                      "managed-service",
                      "not-applicable"
                    ]
                  },
                  "formats": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 500
                        },
                        "mimeTypes": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 500
                          },
                          "maxItems": 50
                        },
                        "fileExtensions": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 500
                          },
                          "maxItems": 50
                        },
                        "dimensions": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 500
                          },
                          "maxItems": 100
                        },
                        "durationsSeconds": {
                          "type": "array",
                          "items": {
                            "type": "integer",
                            "exclusiveMinimum": 0,
                            "maximum": 86400
                          },
                          "maxItems": 100
                        },
                        "maximumBytes": {
                          "anyOf": [
                            {
                              "type": "integer",
                              "exclusiveMinimum": 0
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "notes": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 500
                          },
                          "maxItems": 100
                        }
                      },
                      "required": [
                        "name",
                        "mimeTypes",
                        "fileExtensions",
                        "dimensions",
                        "durationsSeconds",
                        "maximumBytes",
                        "notes"
                      ],
                      "additionalProperties": false
                    },
                    "maxItems": 200
                  },
                  "requiresPreApproval": {
                    "type": [
                      "boolean",
                      "null"
                    ]
                  },
                  "externalCreativeRefReturned": {
                    "type": [
                      "boolean",
                      "null"
                    ]
                  },
                  "approvalStatusReadable": {
                    "type": [
                      "boolean",
                      "null"
                    ]
                  },
                  "approvalBoundToExactBytes": {
                    "type": [
                      "boolean",
                      "null"
                    ]
                  },
                  "reviewSlaBusinessDays": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "minimumBusinessDays": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 365
                          },
                          "maximumBusinessDays": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 365
                          }
                        },
                        "required": [
                          "minimumBusinessDays",
                          "maximumBusinessDays"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "approvalExpiryDays": {
                    "anyOf": [
                      {
                        "type": "integer",
                        "exclusiveMinimum": 0,
                        "maximum": 3650
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "reusePolicy": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 500
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "clearanceRequirements": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 500
                    },
                    "maxItems": 100
                  },
                  "contentRestrictions": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 500
                    },
                    "maxItems": 100
                  },
                  "evidenceIds": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 256,
                      "pattern": "^[^\\u0000-\\u001f\\u007f]+$"
                    },
                    "maxItems": 100
                  },
                  "blockers": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 500
                    },
                    "maxItems": 100
                  },
                  "notes": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 500
                    },
                    "maxItems": 100
                  }
                },
                "required": [
                  "submissionMode",
                  "formats",
                  "requiresPreApproval",
                  "externalCreativeRefReturned",
                  "approvalStatusReadable",
                  "approvalBoundToExactBytes",
                  "reviewSlaBusinessDays",
                  "approvalExpiryDays",
                  "reusePolicy",
                  "clearanceRequirements",
                  "contentRestrictions",
                  "evidenceIds",
                  "blockers",
                  "notes"
                ],
                "additionalProperties": false
              },
              "privacy": {
                "type": "object",
                "properties": {
                  "supplierRole": {
                    "type": "string",
                    "enum": [
                      "unknown",
                      "controller",
                      "processor",
                      "joint-controller",
                      "independent-controller",
                      "not-applicable"
                    ]
                  },
                  "chorusRole": {
                    "type": "string",
                    "enum": [
                      "unknown",
                      "controller",
                      "processor",
                      "joint-controller",
                      "independent-controller",
                      "not-applicable"
                    ]
                  },
                  "dpaState": {
                    "type": "string",
                    "enum": [
                      "unknown",
                      "not-reviewed",
                      "available",
                      "executed",
                      "not-offered",
                      "not-applicable"
                    ]
                  },
                  "dpaUrl": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "uri",
                        "maxLength": 2048
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "personalDataHandled": {
                    "type": [
                      "boolean",
                      "null"
                    ]
                  },
                  "acceptedIdentifierClasses": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "household-key",
                        "maid-hash",
                        "euid",
                        "postcode-sector",
                        "full-postcode",
                        "email-hash",
                        "phone-hash",
                        "raw-device-id",
                        "other",
                        "none"
                      ]
                    },
                    "maxItems": 20
                  },
                  "rawDeviceIdentifiersRequired": {
                    "type": [
                      "boolean",
                      "null"
                    ]
                  },
                  "retentionDays": {
                    "anyOf": [
                      {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 36500
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "dataResidencyRegions": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 500
                    },
                    "maxItems": 100
                  },
                  "internationalTransferMechanism": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 500
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "subprocessorListUrl": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "uri",
                        "maxLength": 2048
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "deletionMechanism": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 500
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "consentAndLawfulBasisRequirements": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 500
                    },
                    "maxItems": 100
                  },
                  "purposeRestrictions": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 500
                    },
                    "maxItems": 100
                  },
                  "sensitiveCategoryRestrictions": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 500
                    },
                    "maxItems": 100
                  },
                  "evidenceIds": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 256,
                      "pattern": "^[^\\u0000-\\u001f\\u007f]+$"
                    },
                    "maxItems": 100
                  },
                  "blockers": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 500
                    },
                    "maxItems": 100
                  },
                  "notes": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 500
                    },
                    "maxItems": 100
                  }
                },
                "required": [
                  "supplierRole",
                  "chorusRole",
                  "dpaState",
                  "dpaUrl",
                  "personalDataHandled",
                  "acceptedIdentifierClasses",
                  "rawDeviceIdentifiersRequired",
                  "retentionDays",
                  "dataResidencyRegions",
                  "internationalTransferMechanism",
                  "subprocessorListUrl",
                  "deletionMechanism",
                  "consentAndLawfulBasisRequirements",
                  "purposeRestrictions",
                  "sensitiveCategoryRestrictions",
                  "evidenceIds",
                  "blockers",
                  "notes"
                ],
                "additionalProperties": false
              },
              "support": {
                "type": "object",
                "properties": {
                  "accessState": {
                    "type": "string",
                    "enum": [
                      "unknown",
                      "not-established",
                      "established",
                      "unavailable"
                    ]
                  },
                  "channels": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "unknown",
                        "email",
                        "ticket",
                        "phone",
                        "chat",
                        "account-manager",
                        "community"
                      ]
                    },
                    "maxItems": 20
                  },
                  "supportEmail": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "email",
                        "maxLength": 320
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "supportPortalUrl": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "uri",
                        "maxLength": 2048
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "statusPageUrl": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "uri",
                        "maxLength": 2048
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "businessHours": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 500
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "responseSla": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 500
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "escalationProcedure": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 500
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "onboardingContact": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 500
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "evidenceIds": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 256,
                      "pattern": "^[^\\u0000-\\u001f\\u007f]+$"
                    },
                    "maxItems": 100
                  },
                  "blockers": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 500
                    },
                    "maxItems": 100
                  },
                  "notes": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 500
                    },
                    "maxItems": 100
                  }
                },
                "required": [
                  "accessState",
                  "channels",
                  "supportEmail",
                  "supportPortalUrl",
                  "statusPageUrl",
                  "businessHours",
                  "responseSla",
                  "escalationProcedure",
                  "onboardingContact",
                  "evidenceIds",
                  "blockers",
                  "notes"
                ],
                "additionalProperties": false
              },
              "evidence": {
                "type": "object",
                "properties": {
                  "state": {
                    "type": "string",
                    "enum": [
                      "unverified",
                      "partially-verified",
                      "verified",
                      "stale",
                      "disputed"
                    ]
                  },
                  "lastReviewedOn": {
                    "anyOf": [
                      {
                        "type": "string",
                        "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "nextReviewOn": {
                    "anyOf": [
                      {
                        "type": "string",
                        "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "reviewedBy": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 500
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "items": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 256,
                          "pattern": "^[^\\u0000-\\u001f\\u007f]+$"
                        },
                        "kind": {
                          "type": "string",
                          "enum": [
                            "official-documentation",
                            "supplier-terms",
                            "supplier-correspondence",
                            "signed-contract",
                            "credentialed-read",
                            "contract-test",
                            "test-buy",
                            "delivery-report",
                            "invoice",
                            "support-case",
                            "other"
                          ]
                        },
                        "title": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 500
                        },
                        "publisher": {
                          "anyOf": [
                            {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 500
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "sourceUrl": {
                          "anyOf": [
                            {
                              "type": "string",
                              "format": "uri",
                              "maxLength": 2048
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "artifactRef": {
                          "anyOf": [
                            {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 500
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "observedOn": {
                          "type": "string",
                          "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
                        },
                        "validUntil": {
                          "anyOf": [
                            {
                              "type": "string",
                              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "contentDigest": {
                          "anyOf": [
                            {
                              "type": "string",
                              "pattern": "^[a-f0-9]{64}$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "assertedFacts": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 500
                          },
                          "maxItems": 100
                        },
                        "notes": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 500
                          },
                          "maxItems": 100
                        }
                      },
                      "required": [
                        "id",
                        "kind",
                        "title",
                        "publisher",
                        "sourceUrl",
                        "artifactRef",
                        "observedOn",
                        "validUntil",
                        "contentDigest",
                        "assertedFacts",
                        "notes"
                      ],
                      "additionalProperties": false
                    },
                    "maxItems": 500
                  },
                  "openQuestions": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 500
                    },
                    "maxItems": 100
                  }
                },
                "required": [
                  "state",
                  "lastReviewedOn",
                  "nextReviewOn",
                  "reviewedBy",
                  "items",
                  "openQuestions"
                ],
                "additionalProperties": false
              },
              "readinessBlockers": {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 500
                },
                "maxItems": 100
              }
            },
            "required": [
              "schemaVersion",
              "summary",
              "identity",
              "commercialAccess",
              "operations",
              "billing",
              "technical",
              "creative",
              "privacy",
              "support",
              "evidence",
              "readinessBlockers"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "accessClass",
          "content"
        ],
        "additionalProperties": false
      }
    }
  }
}

Responses

Reference schemas resolve through the downloadable OpenAPI components. The specification marks unmodeled success payloads; an unrestricted payload is not a promise that arbitrary fields exist.

400Invalid request or unsupported fields
Response contract
{
  "description": "Invalid request or unsupported fields",
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/Error"
      }
    }
  }
}
401Missing or invalid authentication
Response contract
{
  "description": "Missing or invalid authentication",
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/Error"
      }
    }
  }
}
403Permission or product scope refused
Response contract
{
  "description": "Permission or product scope refused",
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/Error"
      }
    }
  }
}
404Route or tenant-scoped resource not found
Response contract
{
  "description": "Route or tenant-scoped resource not found",
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/Error"
      }
    }
  }
}
409State, revision, approval, funding or idempotency conflict
Response contract
{
  "description": "State, revision, approval, funding or idempotency conflict",
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/Error"
      }
    }
  }
}
422Supplier configuration, capability or upstream refusal
Response contract
{
  "description": "Supplier configuration, capability or upstream refusal",
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/Error"
      }
    }
  }
}
429Rate limit reached; wait before retrying
Response contract
{
  "description": "Rate limit reached; wait before retrying",
  "headers": {
    "x-ratelimit-limit": {
      "description": "Maximum requests permitted in the current rate-limit window.",
      "schema": {
        "type": "integer"
      }
    },
    "x-ratelimit-remaining": {
      "description": "Requests remaining in the current window.",
      "schema": {
        "type": "integer"
      }
    },
    "x-ratelimit-reset": {
      "description": "Seconds until the current rate-limit window resets.",
      "schema": {
        "type": "integer"
      }
    },
    "retry-after": {
      "description": "Minimum seconds to wait before retrying.",
      "schema": {
        "type": "integer"
      }
    }
  },
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/Error"
      }
    }
  }
}
500Internal error; inspect state before retrying a mutation
Response contract
{
  "description": "Internal error; inspect state before retrying a mutation",
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/Error"
      }
    }
  }
}
503Dependency or authentication verifier unavailable
Response contract
{
  "description": "Dependency or authentication verifier unavailable",
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/Error"
      }
    }
  }
}
2XXSuccessful response. Response schema completeness: unmodeled. The request contract is complete; nested service payloads are not yet fully modeled in OpenAPI. Inspect returned fields before generating a typed SDK.
Response contract
{
  "description": "Successful response. Response schema completeness: unmodeled. The request contract is complete; nested service payloads are not yet fully modeled in OpenAPI. Inspect returned fields before generating a typed SDK.",
  "headers": {
    "x-ratelimit-limit": {
      "description": "Maximum requests permitted in the current rate-limit window.",
      "schema": {
        "type": "integer"
      }
    },
    "x-ratelimit-remaining": {
      "description": "Requests remaining in the current window.",
      "schema": {
        "type": "integer"
      }
    },
    "x-ratelimit-reset": {
      "description": "Seconds until the current rate-limit window resets.",
      "schema": {
        "type": "integer"
      }
    }
  },
  "content": {
    "application/json": {
      "schema": {}
    }
  }
}

Operation constraints

Machine-readable metadata
{
  "x-response-schema-completeness": "unmodeled",
  "x-rate-limit": {
    "requests": 300,
    "windowMilliseconds": 60000,
    "key": "request IP",
    "headers": [
      "x-ratelimit-limit",
      "x-ratelimit-remaining",
      "x-ratelimit-reset"
    ]
  },
  "x-idempotency": {
    "policy": "not-generalized",
    "note": "There is no universal Idempotency-Key middleware. Only the documented endpoint mechanisms protect retries."
  },
  "x-human-only": true,
  "x-required-human-permissions": [
    "supplier:authorize"
  ]
}

Complete operation

OpenAPI
{
  "operationId": "put_api_v1_connections_key_dossier",
  "summary": "Read or maintain supplier access evidence",
  "description": "Supplier dossiers record account identity, commercial access, supported operations and reviewed provenance. Saving a draft is not verification; authorized human review is required.\n\nAuthenticated and advertiser scoped. Cross-tenant resource access returns 404. Product/channel entitlements also apply.\n\nRequires an authenticated human with supplier:authorize permission. Delegated agents cannot perform this operator action.\n\nThe request schema is generated from the runtime Zod input validator. Cross-field refinements and state-dependent constraints are additionally enforced by the API.",
  "tags": [
    "Connections"
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "parameters": [
    {
      "name": "key",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "properties": {
            "status": {
              "type": "string",
              "enum": [
                "draft",
                "blocked"
              ],
              "default": "draft"
            },
            "accessClass": {
              "type": "string",
              "enum": [
                "open",
                "own-account",
                "approved",
                "contract",
                "infrastructure"
              ]
            },
            "content": {
              "type": "object",
              "properties": {
                "schemaVersion": {
                  "type": "number",
                  "const": 1
                },
                "summary": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 4000
                },
                "identity": {
                  "type": "object",
                  "properties": {
                    "supplierName": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 500
                    },
                    "productName": {
                      "anyOf": [
                        {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 500
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "officialWebsiteUrl": {
                      "anyOf": [
                        {
                          "type": "string",
                          "format": "uri",
                          "maxLength": 2048
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "developerDocsUrl": {
                      "anyOf": [
                        {
                          "type": "string",
                          "format": "uri",
                          "maxLength": 2048
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "termsUrl": {
                      "anyOf": [
                        {
                          "type": "string",
                          "format": "uri",
                          "maxLength": 2048
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "privacyUrl": {
                      "anyOf": [
                        {
                          "type": "string",
                          "format": "uri",
                          "maxLength": 2048
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "supportUrl": {
                      "anyOf": [
                        {
                          "type": "string",
                          "format": "uri",
                          "maxLength": 2048
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "channels": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "ctv",
                          "audio",
                          "tv",
                          "cinema",
                          "dooh",
                          "search",
                          "social"
                        ]
                      },
                      "maxItems": 7
                    },
                    "availableMarkets": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 500
                      },
                      "maxItems": 100
                    },
                    "notes": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 500
                      },
                      "maxItems": 100
                    }
                  },
                  "required": [
                    "supplierName",
                    "productName",
                    "officialWebsiteUrl",
                    "developerDocsUrl",
                    "termsUrl",
                    "privacyUrl",
                    "supportUrl",
                    "channels",
                    "availableMarkets",
                    "notes"
                  ],
                  "additionalProperties": false
                },
                "commercialAccess": {
                  "type": "object",
                  "properties": {
                    "accessClass": {
                      "type": "string",
                      "enum": [
                        "open",
                        "own-account",
                        "approved",
                        "contract",
                        "infrastructure"
                      ]
                    },
                    "accountScope": {
                      "type": "string",
                      "enum": [
                        "unknown",
                        "own-account-only",
                        "agency-multi-advertiser",
                        "reseller",
                        "managed-service"
                      ]
                    },
                    "currentState": {
                      "type": "string",
                      "enum": [
                        "unknown",
                        "not-started",
                        "application-pending",
                        "approved",
                        "contracted",
                        "suspended",
                        "rejected",
                        "not-available"
                      ]
                    },
                    "signupUrl": {
                      "anyOf": [
                        {
                          "type": "string",
                          "format": "uri",
                          "maxLength": 2048
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "applicationUrl": {
                      "anyOf": [
                        {
                          "type": "string",
                          "format": "uri",
                          "maxLength": 2048
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "contractRequired": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "multiAdvertiserUseApproved": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "resaleApproved": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "onboardingLeadTime": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "minimumBusinessDays": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 365
                            },
                            "maximumBusinessDays": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 365
                            }
                          },
                          "required": [
                            "minimumBusinessDays",
                            "maximumBusinessDays"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "minimumCommitment": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "amountMinor": {
                              "type": "integer",
                              "minimum": 0
                            },
                            "currency": {
                              "type": "string",
                              "enum": [
                                "GBP",
                                "USD",
                                "EUR"
                              ]
                            }
                          },
                          "required": [
                            "amountMinor",
                            "currency"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "requiredLegalEntities": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 500
                      },
                      "maxItems": 100
                    },
                    "requiredAgreements": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 500
                      },
                      "maxItems": 100
                    },
                    "usageRestrictions": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 500
                      },
                      "maxItems": 100
                    },
                    "evidenceIds": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 256,
                        "pattern": "^[^\\u0000-\\u001f\\u007f]+$"
                      },
                      "maxItems": 100
                    },
                    "notes": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 500
                      },
                      "maxItems": 100
                    }
                  },
                  "required": [
                    "accessClass",
                    "accountScope",
                    "currentState",
                    "signupUrl",
                    "applicationUrl",
                    "contractRequired",
                    "multiAdvertiserUseApproved",
                    "resaleApproved",
                    "onboardingLeadTime",
                    "minimumCommitment",
                    "requiredLegalEntities",
                    "requiredAgreements",
                    "usageRestrictions",
                    "evidenceIds",
                    "notes"
                  ],
                  "additionalProperties": false
                },
                "operations": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "operation": {
                        "anyOf": [
                          {
                            "type": "string",
                            "enum": [
                              "forecast",
                              "activate",
                              "pause",
                              "resume",
                              "creative",
                              "report",
                              "audienceSync",
                              "deals",
                              "keywordSuggestions",
                              "analytics",
                              "conversionGoals",
                              "providerForecast",
                              "postcodeClassification",
                              "identityMapping",
                              "identityOptOut",
                              "studyCatalog",
                              "studyRead",
                              "studyDraft",
                              "studyLaunch",
                              "studyResults",
                              "customerMatchCatalog",
                              "customerMatchIngest",
                              "customerMatchRemove",
                              "customerMatchStatus"
                            ]
                          },
                          {
                            "type": "string",
                            "const": "inventory"
                          }
                        ]
                      },
                      "verificationStatus": {
                        "anyOf": [
                          {
                            "type": "string",
                            "const": "unknown"
                          },
                          {
                            "type": "string",
                            "enum": [
                              "sandbox-only",
                              "stub",
                              "client-built",
                              "contract-tested",
                              "spend-tested",
                              "report-verified"
                            ]
                          }
                        ]
                      },
                      "liveAccess": {
                        "type": "string",
                        "enum": [
                          "unknown",
                          "not-approved",
                          "approved",
                          "suspended",
                          "not-applicable"
                        ]
                      },
                      "executionMode": {
                        "type": "string",
                        "enum": [
                          "unknown",
                          "rest-api",
                          "graphql-api",
                          "official-mcp",
                          "file-transfer",
                          "portal-workflow",
                          "email-workflow",
                          "managed-service",
                          "none"
                        ]
                      },
                      "risk": {
                        "type": "string",
                        "enum": [
                          "read-only",
                          "non-spend-write",
                          "spend-authorizing",
                          "personal-data-transfer"
                        ]
                      },
                      "requiredOAuthScopes": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 500
                        },
                        "maxItems": 100
                      },
                      "requiredCredentialFields": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 256,
                          "pattern": "^[^\\u0000-\\u001f\\u007f]+$"
                        },
                        "maxItems": 100
                      },
                      "sandboxAvailable": {
                        "type": [
                          "boolean",
                          "null"
                        ]
                      },
                      "supportsIdempotency": {
                        "type": [
                          "boolean",
                          "null"
                        ]
                      },
                      "supportsMultiAdvertiser": {
                        "type": [
                          "boolean",
                          "null"
                        ]
                      },
                      "evidenceIds": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 256,
                          "pattern": "^[^\\u0000-\\u001f\\u007f]+$"
                        },
                        "maxItems": 100
                      },
                      "blockers": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 500
                        },
                        "maxItems": 100
                      },
                      "notes": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 500
                        },
                        "maxItems": 100
                      }
                    },
                    "required": [
                      "operation",
                      "verificationStatus",
                      "liveAccess",
                      "executionMode",
                      "risk",
                      "requiredOAuthScopes",
                      "requiredCredentialFields",
                      "sandboxAvailable",
                      "supportsIdempotency",
                      "supportsMultiAdvertiser",
                      "evidenceIds",
                      "blockers",
                      "notes"
                    ],
                    "additionalProperties": false
                  },
                  "maxItems": 20
                },
                "billing": {
                  "type": "object",
                  "properties": {
                    "billingModel": {
                      "type": "string",
                      "enum": [
                        "unknown",
                        "prepaid",
                        "card-on-file",
                        "postpaid-invoice",
                        "platform-billed",
                        "managed-service",
                        "mixed",
                        "not-applicable"
                      ]
                    },
                    "supportedCurrencies": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "GBP",
                          "USD",
                          "EUR"
                        ]
                      },
                      "maxItems": 3
                    },
                    "requiresPreFunding": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "paymentTermsDays": {
                      "anyOf": [
                        {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 365
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "spendCapBehavior": {
                      "type": "string",
                      "enum": [
                        "unknown",
                        "vendor-hard-cap",
                        "vendor-soft-cap",
                        "platform-only",
                        "not-supported",
                        "not-applicable"
                      ]
                    },
                    "minimumCampaignSpend": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "amountMinor": {
                              "type": "integer",
                              "minimum": 0
                            },
                            "currency": {
                              "type": "string",
                              "enum": [
                                "GBP",
                                "USD",
                                "EUR"
                              ]
                            }
                          },
                          "required": [
                            "amountMinor",
                            "currency"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "minimumMonthlyCommitment": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "amountMinor": {
                              "type": "integer",
                              "minimum": 0
                            },
                            "currency": {
                              "type": "string",
                              "enum": [
                                "GBP",
                                "USD",
                                "EUR"
                              ]
                            }
                          },
                          "required": [
                            "amountMinor",
                            "currency"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "invoiceCadence": {
                      "anyOf": [
                        {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 500
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "billableMetrics": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 500
                      },
                      "maxItems": 100
                    },
                    "feesAndMarkups": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 500
                      },
                      "maxItems": 100
                    },
                    "taxHandling": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 500
                      },
                      "maxItems": 100
                    },
                    "refundAndCreditTerms": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 500
                      },
                      "maxItems": 100
                    },
                    "reconciliationFields": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 500
                      },
                      "maxItems": 100
                    },
                    "evidenceIds": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 256,
                        "pattern": "^[^\\u0000-\\u001f\\u007f]+$"
                      },
                      "maxItems": 100
                    },
                    "notes": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 500
                      },
                      "maxItems": 100
                    }
                  },
                  "required": [
                    "billingModel",
                    "supportedCurrencies",
                    "requiresPreFunding",
                    "paymentTermsDays",
                    "spendCapBehavior",
                    "minimumCampaignSpend",
                    "minimumMonthlyCommitment",
                    "invoiceCadence",
                    "billableMetrics",
                    "feesAndMarkups",
                    "taxHandling",
                    "refundAndCreditTerms",
                    "reconciliationFields",
                    "evidenceIds",
                    "notes"
                  ],
                  "additionalProperties": false
                },
                "technical": {
                  "type": "object",
                  "properties": {
                    "integrationModes": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "unknown",
                          "rest-api",
                          "graphql-api",
                          "official-mcp",
                          "file-transfer",
                          "portal-workflow",
                          "email-workflow",
                          "managed-service",
                          "none"
                        ]
                      },
                      "maxItems": 20
                    },
                    "apiBaseUrl": {
                      "anyOf": [
                        {
                          "type": "string",
                          "format": "uri",
                          "maxLength": 2048
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "apiVersion": {
                      "anyOf": [
                        {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 500
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "authMethod": {
                      "type": "string",
                      "enum": [
                        "unknown",
                        "none",
                        "api-key",
                        "basic",
                        "oauth2-authorization-code",
                        "oauth2-client-credentials",
                        "rsa-signature",
                        "mutual-tls",
                        "vendor-session",
                        "manual"
                      ]
                    },
                    "oauthAuthorizationUrl": {
                      "anyOf": [
                        {
                          "type": "string",
                          "format": "uri",
                          "maxLength": 2048
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "oauthTokenUrl": {
                      "anyOf": [
                        {
                          "type": "string",
                          "format": "uri",
                          "maxLength": 2048
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "credentialFields": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 256,
                            "allOf": [
                              {
                                "pattern": "^[^\\u0000-\\u001f\\u007f]+$"
                              },
                              {
                                "pattern": "^[A-Za-z][A-Za-z0-9_.-]*$"
                              }
                            ]
                          },
                          "label": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 500
                          },
                          "required": {
                            "type": "boolean"
                          },
                          "secret": {
                            "type": "boolean"
                          },
                          "rotates": {
                            "type": [
                              "boolean",
                              "null"
                            ]
                          },
                          "acquisition": {
                            "anyOf": [
                              {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 500
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "notes": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 500
                            },
                            "maxItems": 100
                          }
                        },
                        "required": [
                          "name",
                          "label",
                          "required",
                          "secret",
                          "rotates",
                          "acquisition",
                          "notes"
                        ],
                        "additionalProperties": false
                      },
                      "maxItems": 100
                    },
                    "sandboxClass": {
                      "type": "string",
                      "enum": [
                        "unknown",
                        "true-sandbox",
                        "test-account",
                        "production-test-only",
                        "synthetic-only",
                        "unavailable"
                      ]
                    },
                    "idempotencyClass": {
                      "type": "string",
                      "enum": [
                        "unknown",
                        "native-key",
                        "request-header",
                        "natural-key-only",
                        "not-supported",
                        "not-applicable"
                      ]
                    },
                    "paginationClass": {
                      "type": "string",
                      "enum": [
                        "unknown",
                        "cursor",
                        "page",
                        "offset",
                        "stream",
                        "none"
                      ]
                    },
                    "supportsWebhooks": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "usesAsynchronousJobs": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "rateLimitSummary": {
                      "anyOf": [
                        {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 500
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "reportingLatencySummary": {
                      "anyOf": [
                        {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 500
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "timeoutGuidance": {
                      "anyOf": [
                        {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 500
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "versioningPolicy": {
                      "anyOf": [
                        {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 500
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "productionTestingRequired": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "mcp": {
                      "type": "object",
                      "properties": {
                        "availability": {
                          "type": "string",
                          "enum": [
                            "unknown",
                            "not-offered",
                            "supplier-hosted-beta",
                            "supplier-hosted-ga",
                            "official-self-hosted",
                            "third-party-only"
                          ]
                        },
                        "endpointUrl": {
                          "anyOf": [
                            {
                              "type": "string",
                              "format": "uri",
                              "maxLength": 2048
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "signupUrl": {
                          "anyOf": [
                            {
                              "type": "string",
                              "format": "uri",
                              "maxLength": 2048
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "transports": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "enum": [
                              "unknown",
                              "streamable-http",
                              "stdio",
                              "sse"
                            ]
                          },
                          "maxItems": 4
                        },
                        "protocolVersions": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 256,
                            "pattern": "^[^\\u0000-\\u001f\\u007f]+$"
                          },
                          "maxItems": 20
                        },
                        "authMethod": {
                          "type": "string",
                          "enum": [
                            "unknown",
                            "none",
                            "api-key",
                            "basic",
                            "oauth2-authorization-code",
                            "oauth2-client-credentials",
                            "rsa-signature",
                            "mutual-tls",
                            "vendor-session",
                            "manual"
                          ]
                        },
                        "tools": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "name": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 256,
                                "pattern": "^[^\\u0000-\\u001f\\u007f]+$"
                              },
                              "description": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 4000
                              },
                              "risk": {
                                "type": "string",
                                "enum": [
                                  "read-only",
                                  "non-spend-write",
                                  "spend-authorizing",
                                  "personal-data-transfer"
                                ]
                              },
                              "evidenceIds": {
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 256,
                                  "pattern": "^[^\\u0000-\\u001f\\u007f]+$"
                                },
                                "maxItems": 100
                              }
                            },
                            "required": [
                              "name",
                              "description",
                              "risk",
                              "evidenceIds"
                            ],
                            "additionalProperties": false
                          },
                          "maxItems": 500
                        },
                        "toolSchemaDigest": {
                          "anyOf": [
                            {
                              "type": "string",
                              "pattern": "^[a-f0-9]{64}$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "evidenceIds": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 256,
                            "pattern": "^[^\\u0000-\\u001f\\u007f]+$"
                          },
                          "maxItems": 100
                        },
                        "notes": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 500
                          },
                          "maxItems": 100
                        }
                      },
                      "required": [
                        "availability",
                        "endpointUrl",
                        "signupUrl",
                        "transports",
                        "protocolVersions",
                        "authMethod",
                        "tools",
                        "toolSchemaDigest",
                        "evidenceIds",
                        "notes"
                      ],
                      "additionalProperties": false
                    },
                    "evidenceIds": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 256,
                        "pattern": "^[^\\u0000-\\u001f\\u007f]+$"
                      },
                      "maxItems": 100
                    },
                    "blockers": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 500
                      },
                      "maxItems": 100
                    },
                    "notes": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 500
                      },
                      "maxItems": 100
                    }
                  },
                  "required": [
                    "integrationModes",
                    "apiBaseUrl",
                    "apiVersion",
                    "authMethod",
                    "oauthAuthorizationUrl",
                    "oauthTokenUrl",
                    "credentialFields",
                    "sandboxClass",
                    "idempotencyClass",
                    "paginationClass",
                    "supportsWebhooks",
                    "usesAsynchronousJobs",
                    "rateLimitSummary",
                    "reportingLatencySummary",
                    "timeoutGuidance",
                    "versioningPolicy",
                    "productionTestingRequired",
                    "mcp",
                    "evidenceIds",
                    "blockers",
                    "notes"
                  ],
                  "additionalProperties": false
                },
                "creative": {
                  "type": "object",
                  "properties": {
                    "submissionMode": {
                      "type": "string",
                      "enum": [
                        "unknown",
                        "api",
                        "portal",
                        "email",
                        "managed-service",
                        "not-applicable"
                      ]
                    },
                    "formats": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 500
                          },
                          "mimeTypes": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 500
                            },
                            "maxItems": 50
                          },
                          "fileExtensions": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 500
                            },
                            "maxItems": 50
                          },
                          "dimensions": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 500
                            },
                            "maxItems": 100
                          },
                          "durationsSeconds": {
                            "type": "array",
                            "items": {
                              "type": "integer",
                              "exclusiveMinimum": 0,
                              "maximum": 86400
                            },
                            "maxItems": 100
                          },
                          "maximumBytes": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "exclusiveMinimum": 0
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "notes": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 500
                            },
                            "maxItems": 100
                          }
                        },
                        "required": [
                          "name",
                          "mimeTypes",
                          "fileExtensions",
                          "dimensions",
                          "durationsSeconds",
                          "maximumBytes",
                          "notes"
                        ],
                        "additionalProperties": false
                      },
                      "maxItems": 200
                    },
                    "requiresPreApproval": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "externalCreativeRefReturned": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "approvalStatusReadable": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "approvalBoundToExactBytes": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "reviewSlaBusinessDays": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "minimumBusinessDays": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 365
                            },
                            "maximumBusinessDays": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 365
                            }
                          },
                          "required": [
                            "minimumBusinessDays",
                            "maximumBusinessDays"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "approvalExpiryDays": {
                      "anyOf": [
                        {
                          "type": "integer",
                          "exclusiveMinimum": 0,
                          "maximum": 3650
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "reusePolicy": {
                      "anyOf": [
                        {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 500
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "clearanceRequirements": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 500
                      },
                      "maxItems": 100
                    },
                    "contentRestrictions": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 500
                      },
                      "maxItems": 100
                    },
                    "evidenceIds": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 256,
                        "pattern": "^[^\\u0000-\\u001f\\u007f]+$"
                      },
                      "maxItems": 100
                    },
                    "blockers": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 500
                      },
                      "maxItems": 100
                    },
                    "notes": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 500
                      },
                      "maxItems": 100
                    }
                  },
                  "required": [
                    "submissionMode",
                    "formats",
                    "requiresPreApproval",
                    "externalCreativeRefReturned",
                    "approvalStatusReadable",
                    "approvalBoundToExactBytes",
                    "reviewSlaBusinessDays",
                    "approvalExpiryDays",
                    "reusePolicy",
                    "clearanceRequirements",
                    "contentRestrictions",
                    "evidenceIds",
                    "blockers",
                    "notes"
                  ],
                  "additionalProperties": false
                },
                "privacy": {
                  "type": "object",
                  "properties": {
                    "supplierRole": {
                      "type": "string",
                      "enum": [
                        "unknown",
                        "controller",
                        "processor",
                        "joint-controller",
                        "independent-controller",
                        "not-applicable"
                      ]
                    },
                    "chorusRole": {
                      "type": "string",
                      "enum": [
                        "unknown",
                        "controller",
                        "processor",
                        "joint-controller",
                        "independent-controller",
                        "not-applicable"
                      ]
                    },
                    "dpaState": {
                      "type": "string",
                      "enum": [
                        "unknown",
                        "not-reviewed",
                        "available",
                        "executed",
                        "not-offered",
                        "not-applicable"
                      ]
                    },
                    "dpaUrl": {
                      "anyOf": [
                        {
                          "type": "string",
                          "format": "uri",
                          "maxLength": 2048
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "personalDataHandled": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "acceptedIdentifierClasses": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "household-key",
                          "maid-hash",
                          "euid",
                          "postcode-sector",
                          "full-postcode",
                          "email-hash",
                          "phone-hash",
                          "raw-device-id",
                          "other",
                          "none"
                        ]
                      },
                      "maxItems": 20
                    },
                    "rawDeviceIdentifiersRequired": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "retentionDays": {
                      "anyOf": [
                        {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 36500
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "dataResidencyRegions": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 500
                      },
                      "maxItems": 100
                    },
                    "internationalTransferMechanism": {
                      "anyOf": [
                        {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 500
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "subprocessorListUrl": {
                      "anyOf": [
                        {
                          "type": "string",
                          "format": "uri",
                          "maxLength": 2048
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "deletionMechanism": {
                      "anyOf": [
                        {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 500
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "consentAndLawfulBasisRequirements": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 500
                      },
                      "maxItems": 100
                    },
                    "purposeRestrictions": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 500
                      },
                      "maxItems": 100
                    },
                    "sensitiveCategoryRestrictions": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 500
                      },
                      "maxItems": 100
                    },
                    "evidenceIds": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 256,
                        "pattern": "^[^\\u0000-\\u001f\\u007f]+$"
                      },
                      "maxItems": 100
                    },
                    "blockers": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 500
                      },
                      "maxItems": 100
                    },
                    "notes": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 500
                      },
                      "maxItems": 100
                    }
                  },
                  "required": [
                    "supplierRole",
                    "chorusRole",
                    "dpaState",
                    "dpaUrl",
                    "personalDataHandled",
                    "acceptedIdentifierClasses",
                    "rawDeviceIdentifiersRequired",
                    "retentionDays",
                    "dataResidencyRegions",
                    "internationalTransferMechanism",
                    "subprocessorListUrl",
                    "deletionMechanism",
                    "consentAndLawfulBasisRequirements",
                    "purposeRestrictions",
                    "sensitiveCategoryRestrictions",
                    "evidenceIds",
                    "blockers",
                    "notes"
                  ],
                  "additionalProperties": false
                },
                "support": {
                  "type": "object",
                  "properties": {
                    "accessState": {
                      "type": "string",
                      "enum": [
                        "unknown",
                        "not-established",
                        "established",
                        "unavailable"
                      ]
                    },
                    "channels": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "unknown",
                          "email",
                          "ticket",
                          "phone",
                          "chat",
                          "account-manager",
                          "community"
                        ]
                      },
                      "maxItems": 20
                    },
                    "supportEmail": {
                      "anyOf": [
                        {
                          "type": "string",
                          "format": "email",
                          "maxLength": 320
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "supportPortalUrl": {
                      "anyOf": [
                        {
                          "type": "string",
                          "format": "uri",
                          "maxLength": 2048
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "statusPageUrl": {
                      "anyOf": [
                        {
                          "type": "string",
                          "format": "uri",
                          "maxLength": 2048
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "businessHours": {
                      "anyOf": [
                        {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 500
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "responseSla": {
                      "anyOf": [
                        {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 500
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "escalationProcedure": {
                      "anyOf": [
                        {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 500
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "onboardingContact": {
                      "anyOf": [
                        {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 500
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "evidenceIds": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 256,
                        "pattern": "^[^\\u0000-\\u001f\\u007f]+$"
                      },
                      "maxItems": 100
                    },
                    "blockers": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 500
                      },
                      "maxItems": 100
                    },
                    "notes": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 500
                      },
                      "maxItems": 100
                    }
                  },
                  "required": [
                    "accessState",
                    "channels",
                    "supportEmail",
                    "supportPortalUrl",
                    "statusPageUrl",
                    "businessHours",
                    "responseSla",
                    "escalationProcedure",
                    "onboardingContact",
                    "evidenceIds",
                    "blockers",
                    "notes"
                  ],
                  "additionalProperties": false
                },
                "evidence": {
                  "type": "object",
                  "properties": {
                    "state": {
                      "type": "string",
                      "enum": [
                        "unverified",
                        "partially-verified",
                        "verified",
                        "stale",
                        "disputed"
                      ]
                    },
                    "lastReviewedOn": {
                      "anyOf": [
                        {
                          "type": "string",
                          "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "nextReviewOn": {
                      "anyOf": [
                        {
                          "type": "string",
                          "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "reviewedBy": {
                      "anyOf": [
                        {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 500
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 256,
                            "pattern": "^[^\\u0000-\\u001f\\u007f]+$"
                          },
                          "kind": {
                            "type": "string",
                            "enum": [
                              "official-documentation",
                              "supplier-terms",
                              "supplier-correspondence",
                              "signed-contract",
                              "credentialed-read",
                              "contract-test",
                              "test-buy",
                              "delivery-report",
                              "invoice",
                              "support-case",
                              "other"
                            ]
                          },
                          "title": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 500
                          },
                          "publisher": {
                            "anyOf": [
                              {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 500
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "sourceUrl": {
                            "anyOf": [
                              {
                                "type": "string",
                                "format": "uri",
                                "maxLength": 2048
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "artifactRef": {
                            "anyOf": [
                              {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 500
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "observedOn": {
                            "type": "string",
                            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
                          },
                          "validUntil": {
                            "anyOf": [
                              {
                                "type": "string",
                                "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "contentDigest": {
                            "anyOf": [
                              {
                                "type": "string",
                                "pattern": "^[a-f0-9]{64}$"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "assertedFacts": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 500
                            },
                            "maxItems": 100
                          },
                          "notes": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 500
                            },
                            "maxItems": 100
                          }
                        },
                        "required": [
                          "id",
                          "kind",
                          "title",
                          "publisher",
                          "sourceUrl",
                          "artifactRef",
                          "observedOn",
                          "validUntil",
                          "contentDigest",
                          "assertedFacts",
                          "notes"
                        ],
                        "additionalProperties": false
                      },
                      "maxItems": 500
                    },
                    "openQuestions": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 500
                      },
                      "maxItems": 100
                    }
                  },
                  "required": [
                    "state",
                    "lastReviewedOn",
                    "nextReviewOn",
                    "reviewedBy",
                    "items",
                    "openQuestions"
                  ],
                  "additionalProperties": false
                },
                "readinessBlockers": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 500
                  },
                  "maxItems": 100
                }
              },
              "required": [
                "schemaVersion",
                "summary",
                "identity",
                "commercialAccess",
                "operations",
                "billing",
                "technical",
                "creative",
                "privacy",
                "support",
                "evidence",
                "readinessBlockers"
              ],
              "additionalProperties": false
            }
          },
          "required": [
            "accessClass",
            "content"
          ],
          "additionalProperties": false
        }
      }
    }
  },
  "responses": {
    "400": {
      "description": "Invalid request or unsupported fields",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "401": {
      "description": "Missing or invalid authentication",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "403": {
      "description": "Permission or product scope refused",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "404": {
      "description": "Route or tenant-scoped resource not found",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "409": {
      "description": "State, revision, approval, funding or idempotency conflict",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "422": {
      "description": "Supplier configuration, capability or upstream refusal",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "429": {
      "description": "Rate limit reached; wait before retrying",
      "headers": {
        "x-ratelimit-limit": {
          "description": "Maximum requests permitted in the current rate-limit window.",
          "schema": {
            "type": "integer"
          }
        },
        "x-ratelimit-remaining": {
          "description": "Requests remaining in the current window.",
          "schema": {
            "type": "integer"
          }
        },
        "x-ratelimit-reset": {
          "description": "Seconds until the current rate-limit window resets.",
          "schema": {
            "type": "integer"
          }
        },
        "retry-after": {
          "description": "Minimum seconds to wait before retrying.",
          "schema": {
            "type": "integer"
          }
        }
      },
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "500": {
      "description": "Internal error; inspect state before retrying a mutation",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "503": {
      "description": "Dependency or authentication verifier unavailable",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "2XX": {
      "description": "Successful response. Response schema completeness: unmodeled. The request contract is complete; nested service payloads are not yet fully modeled in OpenAPI. Inspect returned fields before generating a typed SDK.",
      "headers": {
        "x-ratelimit-limit": {
          "description": "Maximum requests permitted in the current rate-limit window.",
          "schema": {
            "type": "integer"
          }
        },
        "x-ratelimit-remaining": {
          "description": "Requests remaining in the current window.",
          "schema": {
            "type": "integer"
          }
        },
        "x-ratelimit-reset": {
          "description": "Seconds until the current rate-limit window resets.",
          "schema": {
            "type": "integer"
          }
        }
      },
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    }
  },
  "x-response-schema-completeness": "unmodeled",
  "x-rate-limit": {
    "requests": 300,
    "windowMilliseconds": 60000,
    "key": "request IP",
    "headers": [
      "x-ratelimit-limit",
      "x-ratelimit-remaining",
      "x-ratelimit-reset"
    ]
  },
  "x-idempotency": {
    "policy": "not-generalized",
    "note": "There is no universal Idempotency-Key middleware. Only the documented endpoint mechanisms protect retries."
  },
  "x-human-only": true,
  "x-required-human-permissions": [
    "supplier:authorize"
  ]
}
Download the complete specification, including shared schema components →
Read or maintain supplier access evidence | AdBuyMCP docs