> ## Documentation Index
> Fetch the complete documentation index at: https://docs.adcontextprotocol.org/llms.txt
> Use this file to discover all available pages before exploring further.

# create_content_standards

> create_content_standards defines a brand suitability configuration with content policies, risk thresholds, and category rules for AdCP campaigns.

# create\_content\_standards

Create a new content standards configuration.

**Response time**: \< 1s

## Request

**Schema**: [create-content-standards-request.json](https://adcontextprotocol.org/schemas/v3/content-standards/create-content-standards-request.json)

| Parameter               | Type   | Required | Description                                                               |
| ----------------------- | ------ | -------- | ------------------------------------------------------------------------- |
| `scope`                 | object | Yes      | Where this standards configuration applies (must include `languages_any`) |
| `policy`                | string | Yes      | Natural language policy prompt                                            |
| `calibration_exemplars` | object | No       | Training set of pass/fail artifacts for calibration                       |

<Note>
  **Brand Safety Floor Requirement**

  Implementors 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).
</Note>

### Example Request

```json theme={null}
{
  "$schema": "/schemas/3.0.0-rc.2/content-standards/create-content-standards-request.json",
  "scope": {
    "countries_all": ["GB", "DE", "FR"],
    "channels_any": ["display", "olv", "ctv"],
    "languages_any": ["en", "de", "fr"],
    "description": "EMEA - all digital channels"
  },
  "policy": "Sports and fitness content is ideal. Lifestyle content about health and wellness is good. Entertainment content is generally acceptable. Avoid content about violence, controversial political topics, adult themes, or content that portrays sedentary lifestyle positively.",
  "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](https://adcontextprotocol.org/schemas/v3/content-standards/create-content-standards-response.json)

### Success Response

```json theme={null}
{
  "$schema": "/schemas/3.0.0-rc.2/content-standards/create-content-standards-response.json",
  "standards_id": "emea_digital_safety"
}
```

### Error Responses

**Scope Conflict:**

```json theme={null}
{
  "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](./list_content_standards) filtered by your scope
2. **Update rather than create** - If standards already exist, use [update\_content\_standards](./update_content_standards)
3. **Narrow the scope** - Adjust countries or channels to avoid overlap

## Related Tasks

* [list\_content\_standards](./list_content_standards) - List all configurations
* [update\_content\_standards](./update_content_standards) - Update a configuration
