Skip to main content

Documentation Index

Fetch the complete documentation index at: https://agenticadvertisingorg-changeset-release-main.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

create_content_standards

Create a new content standards configuration. Response time: < 1s

Request

Schema: create-content-standards-request.json
ParameterTypeRequiredDescription
scopeobjectYesWhere this standards configuration applies (must include languages_any)
policiesPolicyEntry[]One-ofBespoke policies, same shape as registry entries. Each has {policy_id, enforcement, policy, ...optional: version/name/category/policy_categories/channels/jurisdictions/exemplars}. At least one of policies or registry_policy_ids is required.
registry_policy_idsstring[]One-ofReferences to shared policies in the registry. Combines with policies when both are provided. At least one of policies or registry_policy_ids is required.
calibration_exemplarsobjectNoTraining set of pass/fail artifacts for calibration
Brand Safety Floor RequirementImplementors MUST apply a brand safety floor regardless of what policy is defined in content standards. Content that violates the floor (hate speech, illegal content, etc.) must be excluded even when no content standards are specified. AdCP does not define the floor specification; this is left to implementors and industry standards (e.g., GARM categories).

Example Request

{
  "$schema": "/schemas/content-standards/create-content-standards-request.json",
  "idempotency_key": "a9b0c1d2-e3f4-4567-a890-567890123456",
  "scope": {
    "countries_all": ["GB", "DE", "FR"],
    "channels_any": ["display", "olv", "ctv"],
    "languages_any": ["en", "de", "fr"],
    "description": "EMEA - all digital channels"
  },
  "policies": [
    {
      "policy_id": "no_violence",
      "policy_categories": ["brand_safety"],
      "enforcement": "must",
      "policy": "Avoid content depicting violence, weapons, or physical aggression."
    },
    {
      "policy_id": "no_controversial_politics",
      "policy_categories": ["brand_suitability"],
      "enforcement": "must",
      "policy": "Avoid controversial political content and ongoing partisan disputes."
    },
    {
      "policy_id": "no_adult_themes",
      "policy_categories": ["brand_safety"],
      "enforcement": "must",
      "policy": "Avoid adult, sexual, or mature themes."
    },
    {
      "policy_id": "no_sedentary_glorification",
      "policy_categories": ["brand_suitability"],
      "enforcement": "should",
      "policy": "Avoid content that portrays sedentary lifestyle positively; conflicts with brand positioning."
    }
  ],
  "calibration_exemplars": {
    "pass": [
      { "type": "url", "value": "https://espn.com/nba/story/_/id/12345/lakers-championship", "language": "en" },
      { "type": "url", "value": "https://healthline.com/fitness/cardio-workout", "language": "en" }
    ],
    "fail": [
      { "type": "url", "value": "https://tabloid.example.com/celebrity-scandal", "language": "en" },
      { "type": "url", "value": "https://news.example.com/controversial-politics-article", "language": "en" }
    ]
  }
}

Response

Schema: create-content-standards-response.json

Success Response

{
  "$schema": "/schemas/content-standards/create-content-standards-response.json",
  "status": "completed",
  "standards_id": "emea_digital_safety"
}

Error Responses

Scope Conflict:
{
  "errors": [
    {
      "code": "SCOPE_CONFLICT",
      "message": "Standards already exist for country 'DE' on channel 'display'",
      "conflicting_standards_id": "emea_digital_safety"
    }
  ]
}

Scope Conflict Handling

Multiple standards cannot have overlapping scopes for the same country/channel/language combination. When creating standards that would conflict:
  1. Check existing standards - Use list_content_standards filtered by your scope
  2. Update rather than create - If standards already exist, use update_content_standards
  3. Narrow the scope - Adjust countries or channels to avoid overlap
Calibrate before production use. After creating content standards, sellers MUST calibrate their local evaluation models via calibrate_content before using the standards in production. Uncalibrated standards produce inconsistent evaluations — the verification agent and the seller’s local model may interpret the same policy differently without alignment. See the Calibration section for the full workflow.