Skip to main content
The Red Team API was rebuilt. The current API lives on /rt/*. The previous API on /redteam/* is archived and still documented under Red Team (Legacy). New work should use /rt. This is not a version bump of the old paths. /rt is a new contract: new resources, new payload, new report shape. A body written for /redteam will 422 if you post it to /rt. This page is the map: what changed, what each old field and test became, and a side-by-side payload you can translate from.

Quickstart

Submit, track, and read a /rt/redteam run

Payload Guide

The four blocks of a current payload

API Reference

Full /rt schemas

What changed

The revamp also adds four entry points the previous API did not have:
  • Threat modeling — generate or analyse a dataset without attacking
  • Playground — probe one goal against a target
  • Eval — score prompt/response pairs you already have
  • Relay — reach an LLM inside a private network over one outbound connection

Endpoint map

New on /rt — the previous API had no equivalent:

Payload map

Side by side

Current payload (`/rt`)

Field by field

target is a projection of the old model block, not a rename. Custom cURL, custom headers, JWT auth, auth_data provider blobs, and proxying are not expressible on /rt and are rejected up front with a 400 that names the field. Use the Relay bridge for a model that is not reachable from the public internet.

Test map

The previous API scoped by closed test IDs. /rt scopes by category; the old test is a sub-category (or a phrase you pass in sub_categories) inside that category. Agent-only tests from the previous API (governance_test, tool_misuse_test, tool_extraction_test, access_control_and_permissions_test, agent_behaviour_test, agent_output_quality_test, privacy_test, reliability_and_observability_test) have no 1:1 ID. Set target.system_type to agent, pass tools, and pick the categories above — security_fraud covers tool extraction and misuse, privacy_data_protection covers agent privacy, performance_reliability_quality covers output quality. See the Agent Testing Guide. Categories the previous API did not name as tests, now first-class:
  • legal_ip_liability — defamation, unlawful advice, TOS circumvention
  • product_misuse_abuse — policy circumvention, capability abuse, generic jailbreaks
  • brand_reputation_trust — brand voice, competitor disparagement, trust erosion
Or skip categories entirely and pass compliance_frameworks: owasp_llm_top10, eu_ai_act, nist_ai_rmf, mitre_atlas, iso_42001, aiuc_1.

Attack map

The previous API put each encoding and each language in its own method under static / dynamic. /rt has 21 attack IDs. Encodings and languages are options on encoding and lang. New attack IDs — the previous API had no keyword for these: graph, rt_agent, rt_agent_v2, derail_yourself, camo, fc, long_character, attack_in_the_middle, audio_goat.
attack_config must be an object, not a list. {"basic": {}} is valid; ["basic"] is a 422.

Behaviour changes worth a rewrite

  1. One scope kind. risk_categories and compliance_frameworks are mutually exclusive. The previous API let you list many tests in one object; /rt still lets you list many categories, but not categories and frameworks together.
  2. Attacks live on the category. There is no run-level attack list on /rt/redteam. Playground is the exception — attack_config is top-level there, next to goal.
  3. sub_categories are phrases, not IDs. Take them from /rt/threat-modeling/categories (or type them). The IDs in the Risk Category Catalog are how results are reported.
  4. Unknown keys 422. A leftover test_name, dataset_configuration, or endpoint_configuration on a /rt body is rejected, not ignored.
  5. Reads are free. Status, results, records, datasets, and compliance reports do not spend credits. See Credits.
  6. Saved-model targets the previous API accepted may 400 on /rt. If the saved model used custom cURL, JWT, or auth_data, recreate it as a standard target or put it behind Relay.