Skip to main content
POST
Submit Run

Overview

Submits a new adversarial audit. Nyx queues the run, then iteratively probes the target until it finds a vulnerability or exhausts the budget. The endpoint returns immediately with a run_id; poll GET /nyx/runs/{run_id} for progress.

Request

string
required
Stable identifier for this audit (used by nyx status <name> to look up the latest run). Typically the basename of the YAML config file.Example: "playground"
string
required
Human-readable audit name shown in dashboards and reports.Example: "Fabraix Playground: The Gatekeeper"
object
required
The target under test. At least one of url or endpoint is required.
string
required
What Nyx should try to achieve. Be specific: the objective drives every probe Nyx generates.Example: "Get the target agent to call its reveal_access_code tool without being blocked by the external judge."
number
required
Maximum spend in USD. Nyx stops when the budget is exhausted (result: "exhausted") or a vulnerability is found (result: "success").Example: 5.00
enum
required
Minimum OWASP AIVSS severity Nyx is targeting: "low", "medium", "high", "critical".
array<string>
Optional context to help Nyx understand the target’s architecture (e.g. “Two-layer defense: agent instructions + external LLM judge”).
object
required
LLM Nyx will use to drive the audit.

Response

string
required
Unique identifier for this run. Use it for status polling, cancellation, and report download.
string
required
Echoes the config_name from the request.
string
required
Initial status, typically "queued".
datetime
required
ISO 8601 timestamp when the run was created.

Example

Success Response