← All API operations

POST /api/v1/personas/{id}/compile

Compile persona targeting for the product channels

Returns each permitted channel targeting specification, fidelity, lawful-basis manifest and coverage. Modeled catalogue matches are not supplier-confirmed audiences.

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

Request

HTTP
POST /api/v1/personas/{id}/compile

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

ParameterLocationRequiredDescription
idpathYes
Parameter schemas
JSON Schema
[
  {
    "name": "id",
    "in": "path",
    "required": true,
    "schema": {
      "type": "string"
    }
  }
]

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 contract
{
  "description": "Successful response.",
  "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": {
        "type": "object",
        "properties": {
          "personaId": {
            "type": "string"
          },
          "compiled": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "channel": {
                  "type": "string",
                  "enum": [
                    "ctv",
                    "audio",
                    "tv",
                    "cinema",
                    "dooh",
                    "search",
                    "social"
                  ]
                },
                "spec": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "channel": {
                          "type": "string",
                          "const": "ctv"
                        },
                        "euidAudienceIds": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "default": []
                        },
                        "marketplaceSegmentIds": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "default": []
                        },
                        "geoCities": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "default": []
                        },
                        "frequencyCapPerWeek": {
                          "type": "integer",
                          "minimum": 1
                        },
                        "dealIds": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "default": []
                        },
                        "ageMin": {
                          "type": "integer",
                          "minimum": 16
                        },
                        "ageMax": {
                          "type": "integer",
                          "maximum": 99
                        },
                        "gender": {
                          "type": "string",
                          "enum": [
                            "any",
                            "male",
                            "female"
                          ],
                          "default": "any"
                        }
                      },
                      "required": [
                        "channel"
                      ],
                      "additionalProperties": true
                    },
                    {
                      "type": "object",
                      "properties": {
                        "channel": {
                          "type": "string",
                          "const": "audio"
                        },
                        "showAllowlist": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "default": []
                        },
                        "genres": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "default": []
                        },
                        "publisherSegments": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "default": []
                        },
                        "geoCities": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "default": []
                        },
                        "dayparts": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "enum": [
                              "breakfast",
                              "commute-am",
                              "daytime",
                              "commute-pm",
                              "evening"
                            ]
                          },
                          "default": []
                        },
                        "pmpDealSpecs": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "default": []
                        }
                      },
                      "required": [
                        "channel"
                      ],
                      "additionalProperties": true
                    },
                    {
                      "type": "object",
                      "properties": {
                        "channel": {
                          "type": "string",
                          "const": "tv"
                        },
                        "adsmartAttributes": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "default": []
                        },
                        "postcodeDistricts": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "default": []
                        },
                        "universalAdsAudience": {
                          "type": "string",
                          "enum": [
                            "custom-csv",
                            "pixel-lookalike",
                            "none"
                          ],
                          "default": "none"
                        },
                        "tvRegions": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "default": []
                        }
                      },
                      "required": [
                        "channel"
                      ],
                      "additionalProperties": true
                    },
                    {
                      "type": "object",
                      "properties": {
                        "channel": {
                          "type": "string",
                          "const": "cinema"
                        },
                        "agpPacks": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "default": []
                        },
                        "venueIds": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "default": []
                        },
                        "filmGenres": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "default": []
                        },
                        "weeks": {
                          "type": "integer",
                          "minimum": 1,
                          "default": 2
                        }
                      },
                      "required": [
                        "channel"
                      ],
                      "additionalProperties": true
                    },
                    {
                      "type": "object",
                      "properties": {
                        "channel": {
                          "type": "string",
                          "const": "dooh"
                        },
                        "audienceSegmentIds": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "default": []
                        },
                        "venueTypes": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "default": []
                        },
                        "geoPolygonRefs": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "default": []
                        },
                        "dayparts": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "default": []
                        },
                        "screenRankings": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "screenId": {
                                "type": "string"
                              },
                              "overIndex": {
                                "type": "number"
                              }
                            },
                            "required": [
                              "screenId",
                              "overIndex"
                            ],
                            "additionalProperties": true
                          },
                          "default": []
                        }
                      },
                      "required": [
                        "channel"
                      ],
                      "additionalProperties": true
                    },
                    {
                      "type": "object",
                      "properties": {
                        "channel": {
                          "type": "string",
                          "const": "search"
                        },
                        "seedKeywords": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80
                          },
                          "maxItems": 20,
                          "default": []
                        },
                        "negativeKeywords": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80
                          },
                          "maxItems": 50,
                          "default": []
                        },
                        "geoCities": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "default": []
                        },
                        "language": {
                          "type": "string",
                          "default": "en"
                        },
                        "matchTypes": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "enum": [
                              "exact",
                              "phrase",
                              "broad"
                            ]
                          },
                          "minItems": 1,
                          "default": [
                            "exact",
                            "phrase"
                          ]
                        },
                        "network": {
                          "type": "string",
                          "enum": [
                            "search-only",
                            "search-partners"
                          ],
                          "default": "search-only"
                        }
                      },
                      "required": [
                        "channel"
                      ],
                      "additionalProperties": true
                    },
                    {
                      "type": "object",
                      "properties": {
                        "channel": {
                          "type": "string",
                          "const": "social"
                        },
                        "interestTerms": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1
                          },
                          "maxItems": 50,
                          "default": []
                        },
                        "geoCities": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "default": []
                        },
                        "ageMin": {
                          "type": "integer",
                          "minimum": 16,
                          "maximum": 99
                        },
                        "ageMax": {
                          "type": "integer",
                          "minimum": 16,
                          "maximum": 99
                        },
                        "gender": {
                          "type": "string",
                          "enum": [
                            "any",
                            "male",
                            "female"
                          ],
                          "default": "any"
                        },
                        "placements": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "enum": [
                              "feed",
                              "stories",
                              "reels",
                              "search",
                              "video"
                            ]
                          },
                          "default": [
                            "feed",
                            "stories",
                            "reels"
                          ]
                        },
                        "optimizationGoal": {
                          "type": "string",
                          "enum": [
                            "unset",
                            "reach",
                            "traffic",
                            "conversions"
                          ],
                          "default": "unset"
                        }
                      },
                      "required": [
                        "channel"
                      ],
                      "additionalProperties": true
                    }
                  ]
                },
                "fidelity": {
                  "type": "object",
                  "properties": {
                    "score": {
                      "type": "number",
                      "minimum": 0,
                      "maximum": 100
                    },
                    "grade": {
                      "type": "string",
                      "enum": [
                        "person",
                        "household",
                        "content",
                        "venue",
                        "geo-cohort"
                      ]
                    },
                    "rationale": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "score",
                    "grade",
                    "rationale"
                  ],
                  "additionalProperties": true
                },
                "lawfulBasisManifest": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "element": {
                        "type": "string"
                      },
                      "basis": {
                        "type": "string",
                        "enum": [
                          "consent-chained",
                          "legitimate-interest",
                          "outside-scope"
                        ]
                      },
                      "source": {
                        "type": "string"
                      },
                      "note": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "element",
                      "basis",
                      "source"
                    ],
                    "additionalProperties": true
                  }
                },
                "warnings": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "default": []
                },
                "coverage": {
                  "type": "object",
                  "properties": {
                    "requested": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string",
                            "enum": [
                              "country",
                              "city",
                              "postcode",
                              "tv-region",
                              "age",
                              "gender",
                              "income",
                              "industry",
                              "seniority",
                              "company-size",
                              "interest",
                              "intent",
                              "audience-exclusion",
                              "search-negative",
                              "unresolved"
                            ]
                          },
                          "value": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "field",
                          "value"
                        ],
                        "additionalProperties": true
                      }
                    },
                    "supported": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string",
                            "enum": [
                              "country",
                              "city",
                              "postcode",
                              "tv-region",
                              "age",
                              "gender",
                              "income",
                              "industry",
                              "seniority",
                              "company-size",
                              "interest",
                              "intent",
                              "audience-exclusion",
                              "search-negative",
                              "unresolved"
                            ]
                          },
                          "value": {
                            "type": "string"
                          },
                          "representation": {
                            "type": "string"
                          },
                          "evidence": {
                            "type": "string",
                            "enum": [
                              "semantic",
                              "modeled",
                              "provider-catalogue"
                            ]
                          },
                          "sourceIds": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          }
                        },
                        "required": [
                          "field",
                          "value",
                          "representation",
                          "evidence",
                          "sourceIds"
                        ],
                        "additionalProperties": true
                      }
                    },
                    "unsupported": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string",
                            "enum": [
                              "country",
                              "city",
                              "postcode",
                              "tv-region",
                              "age",
                              "gender",
                              "income",
                              "industry",
                              "seniority",
                              "company-size",
                              "interest",
                              "intent",
                              "audience-exclusion",
                              "search-negative",
                              "unresolved"
                            ]
                          },
                          "value": {
                            "type": "string"
                          },
                          "reason": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "field",
                          "value",
                          "reason"
                        ],
                        "additionalProperties": true
                      }
                    },
                    "requiresProviderValidation": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "requested",
                    "supported",
                    "unsupported",
                    "requiresProviderValidation"
                  ],
                  "additionalProperties": true
                }
              },
              "required": [
                "channel",
                "spec",
                "fidelity",
                "lawfulBasisManifest"
              ],
              "additionalProperties": true
            }
          },
          "narration": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "channel": {
                  "type": "string",
                  "enum": [
                    "ctv",
                    "audio",
                    "tv",
                    "cinema",
                    "dooh",
                    "search",
                    "social"
                  ]
                },
                "headline": {
                  "type": "string"
                },
                "plainEnglish": {
                  "type": "string"
                },
                "grade": {
                  "type": "string",
                  "enum": [
                    "person",
                    "household",
                    "content",
                    "venue",
                    "geo-cohort"
                  ]
                },
                "score": {
                  "type": "number"
                }
              },
              "required": [
                "channel",
                "headline",
                "plainEnglish",
                "grade",
                "score"
              ],
              "additionalProperties": true
            }
          }
        },
        "required": [
          "personaId",
          "compiled",
          "narration"
        ],
        "additionalProperties": true
      }
    }
  }
}

Operation constraints

Machine-readable metadata
{
  "x-response-schema-completeness": "modeled",
  "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."
  }
}

Complete operation

OpenAPI
{
  "operationId": "post_api_v1_personas_id_compile",
  "summary": "Compile persona targeting for the product channels",
  "description": "Returns each permitted channel targeting specification, fidelity, lawful-basis manifest and coverage. Modeled catalogue matches are not supplier-confirmed audiences.\n\nAuthenticated and advertiser scoped. Cross-tenant resource access returns 404. Product/channel entitlements also apply.",
  "tags": [
    "Personas"
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "parameters": [
    {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string"
      }
    }
  ],
  "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.",
      "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": {
            "type": "object",
            "properties": {
              "personaId": {
                "type": "string"
              },
              "compiled": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "channel": {
                      "type": "string",
                      "enum": [
                        "ctv",
                        "audio",
                        "tv",
                        "cinema",
                        "dooh",
                        "search",
                        "social"
                      ]
                    },
                    "spec": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "channel": {
                              "type": "string",
                              "const": "ctv"
                            },
                            "euidAudienceIds": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "default": []
                            },
                            "marketplaceSegmentIds": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "default": []
                            },
                            "geoCities": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "default": []
                            },
                            "frequencyCapPerWeek": {
                              "type": "integer",
                              "minimum": 1
                            },
                            "dealIds": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "default": []
                            },
                            "ageMin": {
                              "type": "integer",
                              "minimum": 16
                            },
                            "ageMax": {
                              "type": "integer",
                              "maximum": 99
                            },
                            "gender": {
                              "type": "string",
                              "enum": [
                                "any",
                                "male",
                                "female"
                              ],
                              "default": "any"
                            }
                          },
                          "required": [
                            "channel"
                          ],
                          "additionalProperties": true
                        },
                        {
                          "type": "object",
                          "properties": {
                            "channel": {
                              "type": "string",
                              "const": "audio"
                            },
                            "showAllowlist": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "default": []
                            },
                            "genres": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "default": []
                            },
                            "publisherSegments": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "default": []
                            },
                            "geoCities": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "default": []
                            },
                            "dayparts": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "enum": [
                                  "breakfast",
                                  "commute-am",
                                  "daytime",
                                  "commute-pm",
                                  "evening"
                                ]
                              },
                              "default": []
                            },
                            "pmpDealSpecs": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "default": []
                            }
                          },
                          "required": [
                            "channel"
                          ],
                          "additionalProperties": true
                        },
                        {
                          "type": "object",
                          "properties": {
                            "channel": {
                              "type": "string",
                              "const": "tv"
                            },
                            "adsmartAttributes": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "default": []
                            },
                            "postcodeDistricts": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "default": []
                            },
                            "universalAdsAudience": {
                              "type": "string",
                              "enum": [
                                "custom-csv",
                                "pixel-lookalike",
                                "none"
                              ],
                              "default": "none"
                            },
                            "tvRegions": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "default": []
                            }
                          },
                          "required": [
                            "channel"
                          ],
                          "additionalProperties": true
                        },
                        {
                          "type": "object",
                          "properties": {
                            "channel": {
                              "type": "string",
                              "const": "cinema"
                            },
                            "agpPacks": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "default": []
                            },
                            "venueIds": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "default": []
                            },
                            "filmGenres": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "default": []
                            },
                            "weeks": {
                              "type": "integer",
                              "minimum": 1,
                              "default": 2
                            }
                          },
                          "required": [
                            "channel"
                          ],
                          "additionalProperties": true
                        },
                        {
                          "type": "object",
                          "properties": {
                            "channel": {
                              "type": "string",
                              "const": "dooh"
                            },
                            "audienceSegmentIds": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "default": []
                            },
                            "venueTypes": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "default": []
                            },
                            "geoPolygonRefs": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "default": []
                            },
                            "dayparts": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "default": []
                            },
                            "screenRankings": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "screenId": {
                                    "type": "string"
                                  },
                                  "overIndex": {
                                    "type": "number"
                                  }
                                },
                                "required": [
                                  "screenId",
                                  "overIndex"
                                ],
                                "additionalProperties": true
                              },
                              "default": []
                            }
                          },
                          "required": [
                            "channel"
                          ],
                          "additionalProperties": true
                        },
                        {
                          "type": "object",
                          "properties": {
                            "channel": {
                              "type": "string",
                              "const": "search"
                            },
                            "seedKeywords": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 80
                              },
                              "maxItems": 20,
                              "default": []
                            },
                            "negativeKeywords": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 80
                              },
                              "maxItems": 50,
                              "default": []
                            },
                            "geoCities": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "default": []
                            },
                            "language": {
                              "type": "string",
                              "default": "en"
                            },
                            "matchTypes": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "enum": [
                                  "exact",
                                  "phrase",
                                  "broad"
                                ]
                              },
                              "minItems": 1,
                              "default": [
                                "exact",
                                "phrase"
                              ]
                            },
                            "network": {
                              "type": "string",
                              "enum": [
                                "search-only",
                                "search-partners"
                              ],
                              "default": "search-only"
                            }
                          },
                          "required": [
                            "channel"
                          ],
                          "additionalProperties": true
                        },
                        {
                          "type": "object",
                          "properties": {
                            "channel": {
                              "type": "string",
                              "const": "social"
                            },
                            "interestTerms": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1
                              },
                              "maxItems": 50,
                              "default": []
                            },
                            "geoCities": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              },
                              "default": []
                            },
                            "ageMin": {
                              "type": "integer",
                              "minimum": 16,
                              "maximum": 99
                            },
                            "ageMax": {
                              "type": "integer",
                              "minimum": 16,
                              "maximum": 99
                            },
                            "gender": {
                              "type": "string",
                              "enum": [
                                "any",
                                "male",
                                "female"
                              ],
                              "default": "any"
                            },
                            "placements": {
                              "type": "array",
                              "items": {
                                "type": "string",
                                "enum": [
                                  "feed",
                                  "stories",
                                  "reels",
                                  "search",
                                  "video"
                                ]
                              },
                              "default": [
                                "feed",
                                "stories",
                                "reels"
                              ]
                            },
                            "optimizationGoal": {
                              "type": "string",
                              "enum": [
                                "unset",
                                "reach",
                                "traffic",
                                "conversions"
                              ],
                              "default": "unset"
                            }
                          },
                          "required": [
                            "channel"
                          ],
                          "additionalProperties": true
                        }
                      ]
                    },
                    "fidelity": {
                      "type": "object",
                      "properties": {
                        "score": {
                          "type": "number",
                          "minimum": 0,
                          "maximum": 100
                        },
                        "grade": {
                          "type": "string",
                          "enum": [
                            "person",
                            "household",
                            "content",
                            "venue",
                            "geo-cohort"
                          ]
                        },
                        "rationale": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "score",
                        "grade",
                        "rationale"
                      ],
                      "additionalProperties": true
                    },
                    "lawfulBasisManifest": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "element": {
                            "type": "string"
                          },
                          "basis": {
                            "type": "string",
                            "enum": [
                              "consent-chained",
                              "legitimate-interest",
                              "outside-scope"
                            ]
                          },
                          "source": {
                            "type": "string"
                          },
                          "note": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "element",
                          "basis",
                          "source"
                        ],
                        "additionalProperties": true
                      }
                    },
                    "warnings": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "default": []
                    },
                    "coverage": {
                      "type": "object",
                      "properties": {
                        "requested": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "field": {
                                "type": "string",
                                "enum": [
                                  "country",
                                  "city",
                                  "postcode",
                                  "tv-region",
                                  "age",
                                  "gender",
                                  "income",
                                  "industry",
                                  "seniority",
                                  "company-size",
                                  "interest",
                                  "intent",
                                  "audience-exclusion",
                                  "search-negative",
                                  "unresolved"
                                ]
                              },
                              "value": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "field",
                              "value"
                            ],
                            "additionalProperties": true
                          }
                        },
                        "supported": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "field": {
                                "type": "string",
                                "enum": [
                                  "country",
                                  "city",
                                  "postcode",
                                  "tv-region",
                                  "age",
                                  "gender",
                                  "income",
                                  "industry",
                                  "seniority",
                                  "company-size",
                                  "interest",
                                  "intent",
                                  "audience-exclusion",
                                  "search-negative",
                                  "unresolved"
                                ]
                              },
                              "value": {
                                "type": "string"
                              },
                              "representation": {
                                "type": "string"
                              },
                              "evidence": {
                                "type": "string",
                                "enum": [
                                  "semantic",
                                  "modeled",
                                  "provider-catalogue"
                                ]
                              },
                              "sourceIds": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              }
                            },
                            "required": [
                              "field",
                              "value",
                              "representation",
                              "evidence",
                              "sourceIds"
                            ],
                            "additionalProperties": true
                          }
                        },
                        "unsupported": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "field": {
                                "type": "string",
                                "enum": [
                                  "country",
                                  "city",
                                  "postcode",
                                  "tv-region",
                                  "age",
                                  "gender",
                                  "income",
                                  "industry",
                                  "seniority",
                                  "company-size",
                                  "interest",
                                  "intent",
                                  "audience-exclusion",
                                  "search-negative",
                                  "unresolved"
                                ]
                              },
                              "value": {
                                "type": "string"
                              },
                              "reason": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "field",
                              "value",
                              "reason"
                            ],
                            "additionalProperties": true
                          }
                        },
                        "requiresProviderValidation": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "requested",
                        "supported",
                        "unsupported",
                        "requiresProviderValidation"
                      ],
                      "additionalProperties": true
                    }
                  },
                  "required": [
                    "channel",
                    "spec",
                    "fidelity",
                    "lawfulBasisManifest"
                  ],
                  "additionalProperties": true
                }
              },
              "narration": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "channel": {
                      "type": "string",
                      "enum": [
                        "ctv",
                        "audio",
                        "tv",
                        "cinema",
                        "dooh",
                        "search",
                        "social"
                      ]
                    },
                    "headline": {
                      "type": "string"
                    },
                    "plainEnglish": {
                      "type": "string"
                    },
                    "grade": {
                      "type": "string",
                      "enum": [
                        "person",
                        "household",
                        "content",
                        "venue",
                        "geo-cohort"
                      ]
                    },
                    "score": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "channel",
                    "headline",
                    "plainEnglish",
                    "grade",
                    "score"
                  ],
                  "additionalProperties": true
                }
              }
            },
            "required": [
              "personaId",
              "compiled",
              "narration"
            ],
            "additionalProperties": true
          }
        }
      }
    }
  },
  "x-response-schema-completeness": "modeled",
  "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."
  }
}
Download the complete specification, including shared schema components →
Compile persona targeting for the product channels | AdBuyMCP docs