---
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`

## Request

- The document declares no server URL.
- Auth: none declared
- TypeScript: <https://skmtc.dev/vijilai/apis/vijil-console-api-combined/docs/v1/campaigns/:campaign_id/results/get.ts> (a function with typed inputs; its response is checked against the schema)

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.dev/vijilai/apis/vijil-console-api-combined.md) - [All operations](https://skmtc.dev/vijilai/apis/vijil-console-api-combined/llms.txt) - [OpenAPI document](https://skmtc.dev/vijilai/apis/vijil-console-api-combined/revisions/a8b2ee2b2d06?raw)
