Skip to main content
A Red Team payload is a JSON object built from four blocks: what to test (target), what to test for (risk_categories or compliance_frameworks), what the system is (context), and how many prompts to use (generation_config).

Coming from the previous API?

The payload is no longer test_name / dataset_configuration / redteam_test_configurations / endpoint_configuration. Those were the /redteam blocks. /rt uses target, risk_categories (or compliance_frameworks), context, and generation_config.
The What’s New page maps every previous test, attack keyword, and endpoint onto /rt, with a side-by-side payload.

Risk Categories

The 8 categories and 35 sub-categories you can test for

Attack Methods

The 21 attack techniques and when to use each

Configuration

Field-by-field reference for every block

Examples

Ready-to-run payloads for common scenarios

Payload structure

Unknown fields are rejected, not ignored. The API validates payloads strictly — a typo in a field name returns a 422, it does not silently pass through.

The two required decisions

1. What to test — target

The minimum viable target is an endpoint, a key, and a model name:
Add system_type when you are testing something other than a raw model, and tools when that something is an agent. See Configuration Reference.
Already saved this model in the Models API? Use POST /rt/model/redteam instead and drop the target block entirely — the saved model supplies it.

2. What to test for — scope

risk_categories and compliance_frameworks are mutually exclusive. Supply exactly one; supplying both, or neither, is a validation error.
Name the categories you care about, and give each one an attack_config:
  • attack_config is required on /rt/redteam. It is an object keyed by attack ID — a bare list like ["basic"] is rejected.
  • sub_categories is optional and takes free-form phrases, not taxonomy IDs. Omit it and the whole category is expanded; supply phrases (usually from /rt/threat-modeling/categories) to narrow generation.

Quick reference

Risk categories

Full list with sub-categories: Risk Category Catalog.

Attack methods

Full descriptions and modality applicability: Attack Methods Reference.

Generation

dataset_name is mutually exclusive with max_prompts and seed_prompts. You are either reusing a dataset or generating a new one, not both.

Comprehensiveness

Low, Medium, High, Standard, Comprehensive. Standard runs the normal attack budget and Comprehensive widens it; Low, Medium and High are the equivalent sample-size settings surfaced in the dashboard. Omit to use the service default.
Comprehensiveness affects pricing — a wider budget means more prompts and more credits.

A complete minimal payload

Everything else is optional. See Examples for progressively richer payloads.

How the other endpoints differ

The same vocabulary is reused across the Red Team endpoints, with these differences:
On /rt/threat-modeling and /rt/threat-modeling/categories, each risk category must be an empty object{"safety_harm": {}}. Passing attack_config or sub_categories there is rejected. Nothing is being attacked; you are only generating or analysing.

Threat modeling: the two-phase flow

When you want to review the test set before running it, use threat modeling first.
1

Analyze

POST /rt/threat-modeling/categories takes your scope and context and returns a profile of suggested sub-category phrases per category. Nothing is generated, and the call is free.
2

Generate

POST /rt/threat-modeling/data takes that profile back — edited however you like — plus a generation_config, and produces the dataset.
3

Run

POST /rt/redteam with generation_config.dataset_name pointing at the dataset you just built.
POST /rt/threat-modeling collapses phases 1 and 2 into a single call when you do not need to review the profile in between.