Home
IAB Tech Lab
CreativeApproval
CreativeApproval
A durable seller-side creative approval decision (EP-10.5). :class:`Creative` carries the current ``review_status`` (its live approval state); this is the first-class, timestamped RECORD of a single approval decision — who reviewed it, the outcome, and why. The two are complementary: the seller flips ``Creative.review_status`` AND writes a ``CreativeApproval`` for the audit trail. Reuses :class:`ReviewStatus` so the vocabulary never forks. ID minting: ``approval_id`` is seller-issued (the seller owns creative review).
Company Advertising AdTech Standards Programmatic Real-Time Bidding Consent Privacy Video Ads Agentic Advertising Non-Profit
Properties
Name
Type
Description
approval_id
string
Seller-issued approval decision identifier.
creative_id
string
Seller-issued id of the creative reviewed.
ext
object
Extension slot.
occurred_at
string
Timezone-aware UTC timestamp of the review decision.
reason
object
Rationale, required in practice for a rejection.
reviewer
string
Actor id: 'system', 'human:', or 'agent:'.
status
object
Outcome of this review decision.
JSON Schema
{
"$defs": {
"ReviewStatus": {
"description": "Seller-side creative review status.",
"enum": [
"pending",
"approved",
"rejected"
],
"title": "ReviewStatus",
"type": "string"
}
},
"description": "A durable seller-side creative approval decision (EP-10.5).\n\n:class:`Creative` carries the current ``review_status`` (its live\napproval state); this is the first-class, timestamped RECORD of a\nsingle approval decision \u2014 who reviewed it, the outcome, and why. The\ntwo are complementary: the seller flips ``Creative.review_status`` AND\nwrites a ``CreativeApproval`` for the audit trail. Reuses\n:class:`ReviewStatus` so the vocabulary never forks.\n\nID minting: ``approval_id`` is seller-issued (the seller owns creative\nreview).",
"properties": {
"approval_id": {
"description": "Seller-issued approval decision identifier.",
"title": "Approval Id",
"type": "string"
},
"creative_id": {
"description": "Seller-issued id of the creative reviewed.",
"title": "Creative Id",
"type": "string"
},
"ext": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"description": "Extension slot.",
"title": "Ext"
},
"occurred_at": {
"description": "Timezone-aware UTC timestamp of the review decision.",
"format": "date-time",
"title": "Occurred At",
"type": "string"
},
"reason": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Rationale, required in practice for a rejection.",
"title": "Reason"
},
"reviewer": {
"description": "Actor id: 'system', 'human:<id>', or 'agent:<id>'.",
"title": "Reviewer",
"type": "string"
},
"status": {
"$ref": "#/$defs/ReviewStatus",
"description": "Outcome of this review decision."
}
},
"required": [
"approval_id",
"creative_id",
"status",
"reviewer"
],
"title": "CreativeApproval",
"type": "object"
}
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/iab-tech-lab-agentic-primitive-creativeapproval"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms .
A second provider on the same verified email joins the account you already have.