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
PUT /api/v1/connections/{key}/dossierUse the configured API origin. Private requests require a verified Bearer credential; an agent mutation can additionally require exact approval headers. Authentication guide →
| Parameter | Location | Required | Description |
|---|---|---|---|
key | path | Yes |
Parameter schemas
[
{
"name": "key",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
]{
"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
{
"description": "Invalid request or unsupported fields",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}401Missing or invalid authentication
{
"description": "Missing or invalid authentication",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}403Permission or product scope refused
{
"description": "Permission or product scope refused",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}404Route or tenant-scoped resource not found
{
"description": "Route or tenant-scoped resource not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}409State, revision, approval, funding or idempotency conflict
{
"description": "State, revision, approval, funding or idempotency conflict",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}422Supplier configuration, capability or upstream refusal
{
"description": "Supplier configuration, capability or upstream refusal",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}429Rate limit reached; wait before retrying
{
"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
{
"description": "Internal error; inspect state before retrying a mutation",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}503Dependency or authentication verifier unavailable
{
"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.
{
"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
{
"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
{
"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"
]
}