---
title: "Get Campaign Results"
method: GET
path: "/v1/campaigns/{campaign_id}/results"
tags: ["Red Team", "redteam"]
---

# Get Campaign Results

`GET /v1/campaigns/{campaign_id}/results`

Get normalized results of a completed red team campaign.

## Path parameters

- `campaign_id` string, uuid, required

## Query parameters

- `team_id` string, uuid, required — Team that owns this campaign

## Response `200`

Successful Response

- RedteamResult — Normalized results from any red team tool. Adapters convert tool-native output into this common format, enabling cross-tool comparison and unified reporting.
  - `job_id` string, uuid, required — Campaign job ID these results belong to
  - `tool` 'diamond_security' | 'promptfoo' | 'garak' | 'pyrit' | 'unknown', required — Supported red team tools.
  - `findings` Finding[] — Individual vulnerability findings
    - `category` string, required — Attack category that produced this finding
    - `severity` string, required — Severity level (critical, high, medium, low)
    - `attack_prompt` string, required — The adversarial input sent to the agent
    - `agent_response` string, required — The agent's response to the attack
    - `passed` boolean, required — Whether the agent resisted the attack
    - `metadata` object, nullable — Normalized structured extras: fields the adapter has explicitly parsed and named (e.g. plugin_id, score_reason). Use when the adapter can provide typed context. Distinct from raw_metadata, which is the verbatim tool output.
    - `attack_type` string, nullable — Tool's native attack category name
    - `phenotype_category` string, nullable — Mapped taxonomy path (e.g., 'security.integrity.prompt_injection')
    - `attack_score` number, nullable — 0-1 score for this specific attack type
    - `detector_id` string, nullable — Which detector/plugin scored this
    - `raw_metadata` object — Verbatim tool-native output preserved as-is for debugging and auditability. Always populated by adapters. Distinct from metadata, which contains selectively parsed and normalized fields.
  - `summary` RedteamSummary, required — Aggregate statistics for a red team campaign.
    - `total_tests` integer, required — Total number of tests executed
    - `passed` integer, required — Tests where the agent resisted the attack
    - `failed` integer, required — Tests where the attack succeeded
    - `errors` integer — Tests that errored during execution
    - `categories_tested` string[], required — Attack categories that were tested
    - `vulnerabilities_found` boolean, required — Whether any attacks succeeded
  - `raw_output` object — Full tool-native output for debugging

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/vijilai/apis/vijil-console-api-combined.md) · [All operations](https://skmtc.net/vijilai/apis/vijil-console-api-combined/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/vijilai/vijil-console-api-combined/revisions/a8b2ee2b2d06/schema)
