{"openapi":"3.1.0","info":{"title":"2027.dev evals — public REST API","description":"Org-scoped eval automation. Auth via Bearer token (API key from /<org>/settings).","version":"1.2.0"},"servers":[{"url":"https://2027.dev/evals"}],"paths":{"/api/v1/prompts":{"get":{"operationId":"v1-listPrompts","summary":"List prompts for the authenticated org","tags":["v1"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"query","name":"includeArchived","schema":{"type":"string","const":"1"}},{"in":"query","name":"status","schema":{"type":"string","enum":["active","suggested","archived"]}},{"in":"query","name":"includeSubPrompts","schema":{"description":"Pass '1' or 'true' to include competitor sub-prompts alongside top-level prompts","anyOf":[{"type":"string","enum":["0","1","true","false"]},{"type":"boolean"}]}},{"in":"query","name":"orgDomain","schema":{"type":"string","description":"admin-only cross-org override; a non-admin may only name its own org and any other value is rejected — your own org's competitor benchmark runs are listed by list_reports({ provider })"}},{"in":"query","name":"limit","schema":{"default":100,"description":"Max rows to return","type":"integer","minimum":1,"maximum":1000}},{"in":"query","name":"offset","schema":{"default":0,"description":"Rows to skip","type":"integer","minimum":0,"maximum":100000}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PromptSummary"}}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"v1-createPrompt","summary":"Create a new eval prompt and fire its first run","tags":["v1"],"security":[{"bearerAuth":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"parentPromptId":{"description":"Create a scenario under this top-level prompt. Omitted text copies the parent as-is.","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"targetProviderId":{"description":"Provider a scenario runs against; omit to use the parent's. Requires parentPromptId, else refused with \"Target provider requires a parent prompt\".","anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"text":{"description":"The task text. Required for roots; omitted for scenarios to use parent text.","type":"string","minLength":1},"title":{"description":"display title (defaults to the first 60 chars of text)","type":"string","minLength":1,"pattern":"[a-zA-Z0-9]"},"description":{"description":"optional description stored on the prompt and passed to the first eval's Slack notice","type":"string"},"endGoal":{"description":"the success criterion the run is judged against: one concrete, observable end state stated as fact, with no hedges or fallbacks (no \"or equivalent\", no \"if blocked, report it\")","type":"string"},"loginHints":{"description":"Per-prompt persona instructions (loginHints) for the browser agent. Omit or null: a scenario inherits its parent's, a top-level prompt uses its provider's. false: no persona instructions for this prompt (\"\" is accepted too).","anyOf":[{"anyOf":[{"type":"boolean","const":false},{"type":"string"}]},{"type":"null"}]},"loginHintsCredentialId":{"description":"Append one of your org's credentials to the persona instructions (loginHints). The prompt stores the instructions text, a blank line, then \"<credential name>: <value>\" — just that line when the instructions are empty. Taken once at creation: later edits to the credential do not change this prompt.","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"env":{"description":"Initial KEY=value env map (write-only; reads return names). Delivery: snapshotted onto the eval request, then set as environment variables on the CODING AGENT's own process (and inherited by the shell commands it runs). No .env file is written anywhere in the sandbox, and setupCommand runs before that environment exists, so a setup script cannot read these values. For scenarios, null inherits the parent, {} withholds it (envMode none), and a non-empty map replaces it.","anyOf":[{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z_][A-Za-z0-9_]*$"},"additionalProperties":{"type":"string","maxLength":4000}},{"type":"null"}]},"setupCommand":{"description":"optional bash setup script run once in the sandbox before the agent starts (e.g. npm install, seed a db); returned verbatim on read (not a secret). it runs as the sandbox healthcheck, ahead of the agent's environment, so it CANNOT read the prompt's env values — those are set on the agent's process only. have setup write what it can compute locally and let the agent's inherited process env supply the rest","anyOf":[{"type":"string","maxLength":16384},{"type":"null"}]},"scaffold":{"description":"starter codebase the agent opens before the prompt runs (react | nextjs | blank | localstack | powersync | user-docs | polyglot); omitted uses the provider's scaffold; a scenario copies the parent's, else its target provider's","anyOf":[{"type":"string","enum":["react","nextjs","blank","localstack","powersync","user-docs","polyglot"]},{"type":"null"}]},"checks":{"description":"custom verifier checks for this prompt, a flat map of {\"check-slug\": \"what the judge should look for\"}, editable afterwards with update_prompt_config (omit=keep, null=clear, {}=explicitly empty, non-empty=replace). on a scenario the stored value cascades at request time like env: null inherits the parent's map live, {} withholds it, a non-empty map replaces it wholesale; omitting checks on a scenario therefore stores null and inherits, and nothing is copied from the parent. the map merges on top of the verifier's default checks: a non-empty string adds that check or overrides the default of the same slug, null as the VALUE removes that default check (only one of the eight defaults: a null on any other slug is rejected, as is removing all eight without adding one), and \"\" is rejected. omit for no custom checks. the value is judge-prompt input — the text the scoring model reads to decide pass/fail — not display copy; the dashboard shows the slug and the 0|1 result. slugs match /^[a-z0-9][a-z0-9_-]*$/. reads return it verbatim (not a secret). write each value as ONE observable outcome that either happened or did not: no \"and/or\", \"or equivalent\", partial-credit or if-blocked clauses, and no check that passes because the agent stopped at a blocker or reported it. checks exist to show what really happened, not to pass.","anyOf":[{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z0-9][a-z0-9_-]*$"},"additionalProperties":{"anyOf":[{"type":"string","minLength":1,"maxLength":4000},{"type":"null"}]}},{"type":"null"}]},"harnessModel":{"description":"runner (harness + model) pinned on the new prompt for its scheduled runs, overriding the org default set on the settings page. omit or null = no pin, so the org default applies. a scenario copies the parent's pin when this is omitted; passing it (value or null) overrides that copy","anyOf":[{"type":"object","properties":{"harness":{"type":"string"},"model":{"type":"string"}},"required":["harness","model"]},{"type":"null"}]},"folderId":{"description":"dashboard folder to file the new top-level prompt under (an id from your org's folders); omit to leave it ungrouped. scenarios inherit their parent's grouping","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"orgDomain":{"description":"admin-only org override; ignored for non-admin callers","type":"string"},"copyHistoryFromPromptId":{"description":"share past runs from this same-org source prompt so trends carry over into the copy","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"runsPerEval":{"description":"how many runs per scheduled eval (1-10)","type":"integer","minimum":1,"maximum":10},"frequency":{"description":"scheduled eval cadence. omit = weekly (a scenario omitting it follows its parent's cadence). 'none' keeps the prompt but never re-runs it automatically — manual runs only","type":"string","enum":["daily","weekly","bi-weekly","monthly","none"]},"status":{"description":"lifecycle status of the new prompt: 'active' (default — listed in the dashboard and re-run on its cadence), 'suggested' (parked in the dashboard's suggested section, not re-run until saved), or 'archived' (kept for history, never scheduled, still runs when requested). the first eval fires for 'active' and 'suggested'; 'archived' writes the row without firing one","type":"string","enum":["active","suggested","archived"]},"source":{"description":"external origin of this prompt — the service it came from (its domain: \"github.com\", \"kapa.ai\", \"twitter.com\", \"reddit.com\", \"2027.dev\" for agent-trace turns, or \"agentcat.com\" for agent-session telemetry / session replays) plus an optional id/url/timestamp of the upstream artifact","type":"object","properties":{"provider":{"type":"string","enum":["github.com","kapa.ai","twitter.com","reddit.com","2027.dev","agentcat.com"],"description":"Domain of the service the item came from: \"github.com\", \"kapa.ai\", \"twitter.com\", \"reddit.com\", \"2027.dev\" (agent-trace turns), or \"agentcat.com\" (agent-session telemetry / session replay).","example":"github.com"},"id":{"description":"Identifier of the upstream artifact (issue number, thread id, turn-N, …).","example":"1234","type":"string","minLength":1,"maxLength":256},"url":{"description":"Link to the upstream artifact.","example":"https://github.com/acme/app/issues/1234","type":"string","format":"uri"},"timestamp":{"description":"When the upstream artifact was created (ISO 8601).","example":"2026-07-01T12:00:00Z","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"}},"required":["provider"]},"tags":{"description":"human labels for grouping and searching prompts in the dashboard; trimmed, lowercased and de-duplicated on write (max 8 tags, 24 chars each). omit to leave the prompt untagged","type":"array","items":{"type":"string"}}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePromptResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/prompts/{promptId}":{"get":{"operationId":"v1-getPrompt","summary":"Get a single prompt by ID","tags":["v1"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"promptId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"the prompt id"},"required":true,"description":"the prompt id"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Prompt"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"operationId":"v1-updatePrompt","summary":"Update a prompt's text, title, or end goal","tags":["v1"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"promptId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"required":true}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"description":"new prompt text (rejected once published reports exist, unless the prompt is still 'suggested' or allowPublishedTextEdit is true)","type":"string","minLength":1},"allowPublishedTextEdit":{"description":"set true to write text even when published reports are linked; past reports keep the text they ran with and later runs use the new text","type":"boolean"},"title":{"description":"new display title","type":"string","minLength":1,"pattern":"[a-zA-Z0-9]"},"description":{"description":"new prompt description (empty string or null clears it)","anyOf":[{"type":"string"},{"type":"null"}]},"endGoal":{"description":"new end goal (empty string clears it): one concrete, observable end state stated as fact, with no hedges or fallbacks","type":"string"},"status":{"description":"new lifecycle status: 'active' (listed in the dashboard and re-run on its cadence), 'suggested' (parked in the dashboard's suggested section), or 'archived' (stops scheduled runs; request_run still runs it, and add_competitor / create_prompt with it as parentPromptId are refused until it is unarchived)","type":"string","enum":["active","suggested","archived"]},"tags":{"description":"replacement set of human labels (not a patch); trimmed, lowercased and de-duplicated on write (max 8 tags, 24 chars each). an empty array clears the prompt's tags","type":"array","items":{"type":"string"}}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatedPrompt"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/prompts/{promptId}/benchmarks":{"get":{"operationId":"v1-getPromptBenchmarks","summary":"Get a prompt with its run history and competitor benchmarking","tags":["v1"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"promptId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"the prompt id"},"required":true,"description":"the prompt id"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromptBenchmarks"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/prompt-stats":{"get":{"operationId":"v1-getPromptStats","summary":"Get rollup stats for a batch of prompts","tags":["v1"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"query","name":"promptIds","schema":{"minItems":1,"maxItems":1000,"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"description":"prompt ids to fetch rollup stats for"},"required":true,"description":"prompt ids to fetch rollup stats for"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PromptStats"}}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/prompts/{promptId}/period-comparison":{"get":{"operationId":"v1-getPromptPeriodComparison","summary":"Get a parent prompt's group-weekly aggregate for a window vs the prior window","tags":["v1"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"promptId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"the parent group prompt id (aggregates across all its lanes)"},"required":true,"description":"the parent group prompt id (aggregates across all its lanes)"},{"in":"query","name":"start","schema":{"type":"string","description":"window start, yyyy-MM-dd (inclusive, interpreted in the digest timezone)"},"required":true,"description":"window start, yyyy-MM-dd (inclusive, interpreted in the digest timezone)"},{"in":"query","name":"end","schema":{"type":"string","description":"window end, yyyy-MM-dd (inclusive, interpreted in the digest timezone)"},"required":true,"description":"window end, yyyy-MM-dd (inclusive, interpreted in the digest timezone)"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromptPeriodComparison"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/prompts/{promptId}/sub-prompts":{"get":{"operationId":"v1-listSubPrompts","summary":"List a prompt's competitor sub-prompts","tags":["v1"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"promptId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"the parent prompt id"},"required":true,"description":"the parent prompt id"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SubPrompt"}}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/prompts/{promptId}/run":{"post":{"operationId":"v1-requestRun","summary":"Trigger a new eval run","tags":["v1"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"promptId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"required":true}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"urlMap":{"example":{"docs.acme.com":"https://preview-abc123.vercel.app"},"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string","format":"uri"}},"harnessModel":{"example":{"harness":"claude-code","model":"claude-opus-4-8"},"type":"object","properties":{"harness":{"type":"string"},"model":{"type":"string"}},"required":["harness","model"]},"templateArgs":{"example":{"accountId":"acme-ci","scenario":"checkout"},"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string","maxLength":2000}},"scheduledAt":{"example":"2026-07-20T15:00:00.000Z","description":"Optional delay gate (strict ISO-8601 datetime with Z/offset). Queue should not claim until this time. Omitted = immediate.","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/prompts/{promptId}/config":{"patch":{"operationId":"v1-updatePromptConfig","summary":"Update a prompt's eval config, env vars, and competitor URLs","tags":["v1"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"promptId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"required":true}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"targetProviderId":{"description":"Scenario target provider. Omit=keep, null=stamp parent or org provider, existing provider ID=set. Child prompts only.","anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"envMode":{"description":"Scenario environment edit operation. Defaults to patch, which retains undisclosed keys. Replace takes a full env map; none and inherit take no env value. Child prompts only.","type":"string","enum":["patch","replace","none","inherit"]},"runsPerEval":{"description":"how many runs per scheduled eval (1-10; may be set per competitor sub-prompt)","type":"integer","minimum":1,"maximum":10},"frequency":{"description":"scheduled eval cadence (may be set per competitor sub-prompt). 'none' keeps the prompt but never re-runs it automatically — manual runs only; a sub-prompt without its own cadence follows its parent's, 'none' included","type":"string","enum":["daily","weekly","bi-weekly","monthly","none"]},"harnessModel":{"description":"runner (harness + model) for this prompt's scheduled runs, overriding the org default set on the settings page; may be set per competitor sub-prompt. omit=keep, null=clear the pin so the org default applies again, object=set. an empty sub-prompt inherits the parent prompt's pin before falling back to the org default","anyOf":[{"type":"object","properties":{"harness":{"type":"string"},"model":{"type":"string"}},"required":["harness","model"]},{"type":"null"}]},"folderId":{"description":"dashboard folder for this top-level prompt (an id from your org's folders). omit=keep, null=move it back to ungrouped, id=move it there. scenarios inherit their parent's grouping","anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"additionalUrls":{"description":"stored URL list (top-level prompts only); does not create competitor lanes — use add_competitor or create_prompt with parentPromptId","type":"array","items":{"type":"string","format":"uri"}},"env":{"description":"Partial per-prompt env patch (values write-only). Values are set as environment variables on the CODING AGENT's process (and the shells it spawns) — no .env file is written, and setupCommand runs earlier and cannot read them. Omit=keep; null=inherit for a child, clear for a root. Object keys: string=upsert, null=remove. An empty patch changes nothing; disabling a child's env is envMode none. envMode can replace, disable, or inherit a child's entire map.","anyOf":[{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z_][A-Za-z0-9_]*$"},"additionalProperties":{"anyOf":[{"type":"string","maxLength":4000},{"type":"null"}]}},{"type":"null"}]},"setupCommand":{"description":"Per-prompt bash setup script run before the agent starts, as the sandbox healthcheck — it cannot read the prompt's env values, which are set on the agent's process only. Omit=keep, null=inherit for a child or clear for a root, empty string=disable for a child, non-empty string=set.","anyOf":[{"type":"string","maxLength":16384},{"type":"null"}]},"scaffold":{"description":"Starter codebase for the sandbox. Omit=keep, null=copy the current parent default for a child or clear to provider default for a root, value=set. Copying is a snapshot, not live inheritance.","anyOf":[{"type":"string","enum":["react","nextjs","blank","localstack","powersync","user-docs","polyglot"]},{"type":"null"}]},"checks":{"description":"custom verifier checks for this prompt, a flat map of {\"check-slug\": \"what the judge should look for\"}. omit=keep the stored map, null=clear it, {}=store an explicitly empty map, a non-empty map REPLACES the stored one wholesale (not a per-key patch). on a scenario the stored value cascades at request time like env: null inherits the parent's map live, {} withholds it, a non-empty map replaces it. the map merges on top of the verifier's default checks: a non-empty string adds that check or overrides the default of the same slug, null as the VALUE removes that default check (only one of the eight defaults: a null on any other slug is rejected, as is removing all eight without adding one), and \"\" is rejected. slugs match /^[a-z0-9][a-z0-9_-]*$/. the queue reads the map at run time, so an edit changes how FUTURE runs are graded and past runs keep only their {slug: 0|1} results. write each value as ONE observable outcome that either happened or did not: no \"and/or\", \"or equivalent\", partial-credit or if-blocked clauses, and no check that passes because the agent stopped at a blocker or reported it. checks exist to show what really happened, not to pass.","anyOf":[{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z0-9][a-z0-9_-]*$"},"additionalProperties":{"anyOf":[{"type":"string","minLength":1,"maxLength":4000},{"type":"null"}]}},{"type":"null"}]},"loginHints":{"description":"per-prompt persona instructions (loginHints) for the browser agent. omit=keep, string=set, null=clear (a scenario then inherits its parent's, a top-level prompt its provider's), false=off: no persona instructions for this prompt (\"\" is accepted too). reads (get_prompt, list_prompts, get_trace) return a copy with detected secrets masked, never the raw text","anyOf":[{"anyOf":[{"type":"boolean","const":false},{"type":"string"}]},{"type":"null"}]}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePromptConfigResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/prompts/{promptId}/competitors":{"post":{"operationId":"v1-addCompetitor","summary":"Add a competitor benchmark to a prompt","tags":["v1"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"promptId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"the top-level prompt to benchmark against"},"required":true,"description":"the top-level prompt to benchmark against"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"description":"the competitor's URL","type":"string","format":"uri"},"targetProviderId":{"description":"an existing provider to add as a competitor — get ids from list_competitors or get_prompt_benchmarks","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddCompetitorResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/competitors/{subPromptId}":{"patch":{"operationId":"v1-removeCompetitor","summary":"Remove a competitor benchmark from a prompt","tags":["v1"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"subPromptId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"the sub-prompt to remove (archive) — a competitor lane or a same-provider scenario"},"required":true,"description":"the sub-prompt to remove (archive) — a competitor lane or a same-provider scenario"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RemoveCompetitorResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/runs":{"get":{"operationId":"v1-listRuns","summary":"List eval runs for the authenticated org (newest first)","tags":["v1"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"query","name":"promptId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"in":"query","name":"includeSubPrompts","schema":{"description":"With promptId, pass '1' or 'true' to also include runs of that prompt's sub-prompts (scenarios and competitor lanes, archived ones too). Each run's prompt names the sub-prompt it ran.","anyOf":[{"type":"string","enum":["0","1","true","false"]},{"type":"boolean"}]}},{"in":"query","name":"reportStatus","schema":{"type":"string","enum":["published","draft","archived"]}},{"in":"query","name":"orgDomain","schema":{"type":"string","description":"admin-only cross-org override; a non-admin may only name its own org and any other value is rejected — your own org's competitor benchmark runs are listed by list_reports({ provider })"}},{"in":"query","name":"limit","schema":{"default":100,"description":"Max rows to return","type":"integer","minimum":1,"maximum":1000}},{"in":"query","name":"offset","schema":{"default":0,"description":"Rows to skip","type":"integer","minimum":0,"maximum":100000}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Run"}}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/runs/{runId}":{"get":{"operationId":"v1-getRun","summary":"Get the status of an eval run","tags":["v1"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"runId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"the run id"},"required":true,"description":"the run id"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Run"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/reports":{"get":{"operationId":"v1-listReports","summary":"List published eval reports for the authenticated org (newest first)","tags":["v1"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"query","name":"offset","schema":{"type":"integer","minimum":0,"maximum":100000}},{"in":"query","name":"limit","schema":{"type":"integer","minimum":1,"maximum":1000}},{"in":"query","name":"provider","schema":{"type":"string"}},{"in":"query","name":"status","schema":{"type":"string","enum":["published","draft","archived","all"],"description":"\"draft\", \"archived\" and \"all\" are admin-only: a non-admin list always returns published runs, so omit this or pass \"published\" — any other value is rejected"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ReportSummary"}}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/reports/{slug}":{"get":{"operationId":"v1-getReport","summary":"Get a single eval report by slug","tags":["v1"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"slug","schema":{"type":"string","description":"the report slug"},"required":true,"description":"the report slug"},{"in":"query","name":"status","schema":{"type":"string","enum":["published","draft","archived","all"],"description":"restrict the direct fetch to this report status (default: any status you can see)"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReportDetail"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/reports/{slug}/trace":{"get":{"operationId":"v1-getTrace","summary":"Get the agent session trace for an eval report by slug","tags":["v1"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"slug","schema":{"type":"string","description":"the report slug"},"required":true,"description":"the report slug"},{"in":"query","name":"offset","schema":{"type":"integer","minimum":0,"maximum":100000}},{"in":"query","name":"limit","schema":{"type":"integer","minimum":1,"maximum":100}},{"in":"query","name":"all","schema":{"description":"return every turn (ignores offset/limit); default: bounded page","anyOf":[{"type":"string","enum":["0","1","true","false"]},{"type":"boolean"}]}},{"in":"query","name":"includeBrowser","schema":{"anyOf":[{"type":"string","enum":["0","1","true","false"]},{"type":"boolean"}]}},{"in":"query","name":"fullToolResults","schema":{"description":"return tool results uncut (default: each capped at 10,000 chars)","anyOf":[{"type":"string","enum":["0","1","true","false"]},{"type":"boolean"}]}},{"in":"query","name":"status","schema":{"type":"string","enum":["published","draft","archived","all"],"description":"restrict the direct fetch to this report status (default: any status you can see)"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SessionTrace"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/runs/{runId}/trace":{"get":{"operationId":"v1-getRunTrace","summary":"Get the agent session trace for an eval run by run id","tags":["v1"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"runId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"the run id (from get_run / list_runs)"},"required":true,"description":"the run id (from get_run / list_runs)"},{"in":"query","name":"offset","schema":{"type":"integer","minimum":0,"maximum":100000}},{"in":"query","name":"limit","schema":{"type":"integer","minimum":1,"maximum":100}},{"in":"query","name":"all","schema":{"description":"return every turn (ignores offset/limit); default: bounded page","anyOf":[{"type":"string","enum":["0","1","true","false"]},{"type":"boolean"}]}},{"in":"query","name":"includeBrowser","schema":{"anyOf":[{"type":"string","enum":["0","1","true","false"]},{"type":"boolean"}]}},{"in":"query","name":"fullToolResults","schema":{"description":"return tool results uncut (default: each capped at 10,000 chars)","anyOf":[{"type":"string","enum":["0","1","true","false"]},{"type":"boolean"}]}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SessionTrace"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/runs/{runId}/cancel":{"post":{"operationId":"v1-cancelRun","summary":"Cancel a pending eval run","tags":["v1"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"runId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"the run id"},"required":true,"description":"the run id"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelRunResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/fetched-urls":{"get":{"operationId":"v1-listFetchedUrls","summary":"List urls and web searches agents made in the org's runs","tags":["v1"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"query","name":"orgDomain","schema":{"type":"string"}},{"in":"query","name":"promptId","schema":{"type":"string","minLength":1}},{"in":"query","name":"limit","schema":{"default":100,"description":"max rows per section, most hits first (default: 100); null returns every row","anyOf":[{"type":"integer","minimum":1,"maximum":1000},{"type":"null"}]}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FetchedUrls"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/comments":{"get":{"operationId":"v1-listComments","summary":"List comments on a recommendation or run","tags":["v1"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"query","name":"entityType","schema":{"type":"string","enum":["recommendation","run"],"description":"what the thread hangs off: a recommendation or a run"},"required":true,"description":"what the thread hangs off: a recommendation or a run"},{"in":"query","name":"entityId","schema":{"type":"string","minLength":1,"description":"the recommendation id, or for runs the report slug"},"required":true,"description":"the recommendation id, or for runs the report slug"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Comment"}}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"v1-addComment","summary":"Add a comment to a recommendation or run","tags":["v1"],"security":[{"bearerAuth":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"entityType":{"type":"string","enum":["recommendation","run"],"description":"what the thread hangs off: a recommendation or a run"},"entityId":{"type":"string","minLength":1,"description":"the recommendation id, or for runs the report slug"},"body":{"type":"string","minLength":1,"maxLength":10000,"description":"the comment text"}},"required":["entityType","entityId","body"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Comment"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/insights":{"get":{"operationId":"v1-listInsights","summary":"List insights (recommendation cards) for the authenticated org","tags":["v1"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"query","name":"orgDomain","schema":{"type":"string"}},{"in":"query","name":"runSlug","schema":{"type":"string","minLength":1}},{"in":"query","name":"limit","schema":{"default":100,"description":"max cards to return (default: 100)","type":"integer","minimum":1,"maximum":1000}},{"in":"query","name":"offset","schema":{"default":0,"description":"skip first N cards (default: 0)","type":"integer","minimum":0,"maximum":9007199254740991}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Insight"}}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"v1-createInsight","summary":"Create a new insight card","tags":["v1"],"security":[{"bearerAuth":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"orgDomain":{"description":"admin-only org override; ignored for non-admin callers","type":"string"},"title":{"type":"string","minLength":1,"description":"the insight title"},"content":{"default":"","description":"longer description (defaults to empty)","type":"string"},"effort":{"description":"estimated effort to act on it","type":"string","enum":["low","medium","high","ongoing"]},"estimatedImpact":{"description":"estimated impact of acting on it","type":"string"},"source":{"description":"external origin of this insight — the service it came from (its domain) plus an optional id/url/timestamp of the upstream artifact","type":"object","properties":{"provider":{"type":"string","enum":["github.com","kapa.ai","twitter.com","reddit.com","2027.dev","agentcat.com"],"description":"Domain of the service the item came from: \"github.com\", \"kapa.ai\", \"twitter.com\", \"reddit.com\", \"2027.dev\" (agent-trace turns), or \"agentcat.com\" (agent-session telemetry / session replay).","example":"github.com"},"id":{"description":"Identifier of the upstream artifact (issue number, thread id, turn-N, …).","example":"1234","type":"string","minLength":1,"maxLength":256},"url":{"description":"Link to the upstream artifact.","example":"https://github.com/acme/app/issues/1234","type":"string","format":"uri"},"timestamp":{"description":"When the upstream artifact was created (ISO 8601).","example":"2026-07-01T12:00:00Z","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"}},"required":["provider"]}},"required":["title"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Insight"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/insights/{insightId}":{"patch":{"operationId":"v1-updateInsight","summary":"Update an insight card","tags":["v1"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"insightId","schema":{"type":"string","minLength":1,"description":"the insight id (from list_insights)"},"required":true,"description":"the insight id (from list_insights)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"description":"new title","type":"string","minLength":1},"content":{"description":"new description","type":"string"},"effort":{"description":"new effort (null clears it)","anyOf":[{"type":"string","enum":["low","medium","high","ongoing"]},{"type":"null"}]},"estimatedImpact":{"description":"new estimated impact (null clears it)","anyOf":[{"type":"string"},{"type":"null"}]},"source":{"description":"new external origin of this insight (null clears it) — the service it came from (its domain) plus an optional id/url/timestamp of the upstream artifact","anyOf":[{"type":"object","properties":{"provider":{"type":"string","enum":["github.com","kapa.ai","twitter.com","reddit.com","2027.dev","agentcat.com"],"description":"Domain of the service the item came from: \"github.com\", \"kapa.ai\", \"twitter.com\", \"reddit.com\", \"2027.dev\" (agent-trace turns), or \"agentcat.com\" (agent-session telemetry / session replay).","example":"github.com"},"id":{"description":"Identifier of the upstream artifact (issue number, thread id, turn-N, …).","example":"1234","type":"string","minLength":1,"maxLength":256},"url":{"description":"Link to the upstream artifact.","example":"https://github.com/acme/app/issues/1234","type":"string","format":"uri"},"timestamp":{"description":"When the upstream artifact was created (ISO 8601).","example":"2026-07-01T12:00:00Z","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"}},"required":["provider"]},{"type":"null"}]},"status":{"description":"move the card to this column","type":"string","enum":["open","accepted","dismissed","fixed"]},"assignee":{"description":"new assignee (null unassigns)","anyOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["user","org"],"description":"\"user\" assigns one member; \"org\" assigns the whole org"},"ref":{"description":"the member user id (required when kind is \"user\")","type":"string"}},"required":["kind"]},{"type":"null"}]},"orderedIds":{"description":"full insight-id order of the destination column after a move (requires status)","maxItems":500,"type":"array","items":{"type":"string"}}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Insight"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/feedback":{"post":{"operationId":"v1-sendFeedback","summary":"Send feedback or a bug report to the 2027 team","tags":["v1"],"security":[{"bearerAuth":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":200,"description":"a short one-line summary — shown in the team's triage list and used for duplicate detection"},"type":{"type":"string","enum":["bug","feature_request","feedback"],"description":"bug = something broken, wrong, or contradictory; feedback = something that works but was confusing, slow, or made you guess; feature_request = something you wished existed. skip only your own mistakes and one-off transient errors"},"body":{"type":"string","minLength":1,"maxLength":10000,"description":"what happened and what you expected. for bugs include the exact tool call or page and the response you got"},"context":{"description":"repro pointers: report slugs, run/prompt ids, tool names, urls. for a bug, the exact request you sent and the response you got, so the team can replay it","type":"string","minLength":1,"maxLength":2000}},"required":["title","type","body"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Feedback"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"get":{"operationId":"v1-listFeedback","summary":"List the org's agent feedback","tags":["v1"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"query","name":"orgDomain","schema":{"type":"string"}},{"in":"query","name":"limit","schema":{"default":100,"description":"max issues to return (default: 100)","type":"integer","minimum":1,"maximum":200}},{"in":"query","name":"offset","schema":{"default":0,"description":"skip first N issues (default: 0)","type":"integer","minimum":0,"maximum":100000}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FeedbackItem"}}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/feedback/{feedbackId}":{"get":{"operationId":"v1-getFeedback","summary":"Get one agent feedback issue","tags":["v1"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"feedbackId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"the feedback id"},"required":true,"description":"the feedback id"},{"in":"query","name":"orgDomain","schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeedbackDetail"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"operationId":"v1-updateFeedback","summary":"Set an agent feedback issue's status","tags":["v1"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"feedbackId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"the feedback id"},"required":true,"description":"the feedback id"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["open","acknowledged","resolved"],"description":"the issue's new status"}},"required":["status"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatedFeedback"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/competitors":{"get":{"operationId":"v1-listCompetitors","summary":"List the org's competitors derived from benchmark lanes","tags":["v1"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"query","name":"search","schema":{"type":"string"}},{"in":"query","name":"orgDomain","schema":{"type":"string","description":"admin-only cross-org override; a non-admin may only name its own org and any other value is rejected — your own org's competitor benchmark runs are listed by list_reports({ provider })"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Competitor"}}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/providers":{"get":{"operationId":"v1-getProvider","summary":"Look up a provider by domain","tags":["v1"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"query","name":"domain","schema":{"type":"string","pattern":"^(?=.{1,253}$)([a-z0-9-]+\\.)+[a-z]{2,}$","description":"a domain the provider owns, e.g. clerk.com; any of its alias domains, with or without www."},"required":true,"description":"a domain the provider owns, e.g. clerk.com; any of its alias domains, with or without www."}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Provider"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/credentials":{"get":{"operationId":"v1-listCredentials","summary":"List the org's credentials","tags":["v1"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"query","name":"orgDomain","schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Credential"}}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"v1-addCredential","summary":"Add a credential","tags":["v1"],"security":[{"bearerAuth":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"orgDomain":{"description":"admin-only org override; ignored for non-admin callers","type":"string"},"name":{"type":"string","minLength":1,"maxLength":200,"description":"credential name, unique per org (case-insensitive)"},"value":{"type":"string","minLength":1,"maxLength":20000,"description":"the secret string"},"sensitive":{"default":true,"description":"true (default) hides the value from every read; false returns it in plain text","type":"boolean"},"targetProviderId":{"default":null,"description":"provider this credential applies to (your product or a competitor id from list_competitors); null = applies to all prompts","anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]}},"required":["name","value"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Credential"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/credentials/{credentialId}":{"patch":{"operationId":"v1-editCredential","summary":"Edit a credential","tags":["v1"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"credentialId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"the credential id"},"required":true,"description":"the credential id"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"description":"new name","type":"string","minLength":1,"maxLength":200},"value":{"description":"new secret string; replaces the stored value","type":"string","minLength":1,"maxLength":20000},"sensitive":{"description":"flip visibility","type":"boolean"},"targetProviderId":{"description":"provider this credential applies to; null = applies to all prompts; omit to keep","anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Credential"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/credentials/{credentialId}/remove":{"patch":{"operationId":"v1-removeCredential","summary":"Remove a credential","tags":["v1"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"credentialId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"the credential id"},"required":true,"description":"the credential id"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RemoveCredentialResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/briefs":{"get":{"operationId":"v1-listBriefs","summary":"List the org's briefs","tags":["v1"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"query","name":"orgDomain","schema":{"type":"string"}},{"in":"query","name":"status","schema":{"type":"string","enum":["draft","published","archived"]}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Brief"}}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"v1-createBrief","summary":"Create a brief","tags":["v1"],"security":[{"bearerAuth":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"orgDomain":{"description":"admin-only org override; ignored for non-admin callers","type":"string"},"periodKind":{"type":"string","enum":["day","week","month","custom"]},"anchorDate":{"type":"string","description":"ISO yyyy-MM-dd inside the period (its start when kind is custom)"},"endDate":{"description":"ISO yyyy-MM-dd end date; only read when periodKind is custom","type":"string"},"title":{"type":"string","maxLength":256}},"required":["periodKind","anchorDate"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BriefDetail"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/briefs/{slug}":{"get":{"operationId":"v1-getBrief","summary":"Get one brief and its body","tags":["v1"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"slug","schema":{"type":"string","minLength":1,"maxLength":128,"description":"the brief slug, unique within its org"},"required":true,"description":"the brief slug, unique within its org"},{"in":"query","name":"orgDomain","schema":{"type":"string"}},{"in":"query","name":"version","schema":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BriefDetail"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"operationId":"v1-updateBrief","summary":"Update a brief's body, title or status","tags":["v1"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"slug","schema":{"type":"string","minLength":1,"maxLength":128,"description":"the brief slug, unique within its org"},"required":true,"description":"the brief slug, unique within its org"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"orgDomain":{"description":"admin-only org override; ignored for non-admin callers","type":"string"},"title":{"description":"null clears the title","anyOf":[{"type":"string","maxLength":256},{"type":"null"}]},"body":{"description":"the whole markdown body; replaces what is stored","type":"string"},"status":{"description":"archive the brief, or return an archived one to draft","type":"string","enum":["draft","archived"]}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Brief"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/briefs/{slug}/versions":{"get":{"operationId":"v1-listBriefVersions","summary":"List a brief's published versions","tags":["v1"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"slug","schema":{"type":"string","minLength":1,"maxLength":128,"description":"the brief slug, unique within its org"},"required":true,"description":"the brief slug, unique within its org"},{"in":"query","name":"orgDomain","schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BriefVersion"}}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/briefs/{slug}/publish":{"post":{"operationId":"v1-publishBrief","summary":"Publish a brief","tags":["v1"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"slug","schema":{"type":"string","minLength":1,"maxLength":128,"description":"the brief slug, unique within its org"},"required":true,"description":"the brief slug, unique within its org"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"orgDomain":{"description":"admin-only org override; ignored for non-admin callers","type":"string"}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BriefDetail"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/me":{"get":{"operationId":"v1-whoami","summary":"Show the caller's identity and org","tags":["v1"],"security":[{"bearerAuth":[]}],"parameters":[],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Whoami"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/sandboxes":{"post":{"operationId":"v1-createSandbox","summary":"Create a sandbox","tags":["v1"],"security":[{"bearerAuth":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Sandbox"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/sandboxes/{sandboxId}/commands":{"post":{"operationId":"v1-runCommand","summary":"Run a command in a sandbox","tags":["v1"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"sandboxId","schema":{"type":"string","pattern":"^[a-z0-9]+$","description":"the id create_sandbox returned"},"required":true,"description":"the id create_sandbox returned"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"command":{"type":"string","minLength":1,"maxLength":100000,"description":"a bash command"}},"required":["command"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommandResult"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/sandboxes/{sandboxId}/remove":{"patch":{"operationId":"v1-removeSandbox","summary":"Remove a sandbox","tags":["v1"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"sandboxId","schema":{"type":"string","pattern":"^[a-z0-9]+$","description":"the id create_sandbox returned"},"required":true,"description":"the id create_sandbox returned"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RemoveSandboxResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"PromptSummary":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"8e2f3b4c-1234-4abc-9def-0123456789ab"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"example":"Sign up and create a project"},"text":{"type":"string","example":"Sign up at example.com, create a new project, and invite a teammate."},"description":{"example":"Covers the signup funnel we keep losing agents in.","description":"Human note stored on the prompt; null when none was written.","anyOf":[{"type":"string"},{"type":"null"}]},"endGoal":{"anyOf":[{"type":"string"},{"type":"null"}],"example":"Successful first API call"},"status":{"type":"string","example":"active"},"templateVars":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"example":["accountId","scenario"]},"createdAt":{"example":"2026-03-01T12:34:56.000Z","format":"date-time","type":"string"},"frequency":{"anyOf":[{"type":"string","enum":["daily","weekly","bi-weekly","monthly","none"]},{"type":"null"}],"example":"weekly","description":"How often the prompt is auto-evaluated. null = never set (weekly; a sub-prompt follows its parent's cadence); 'none' = never auto-evaluated, manual runs only."},"runsPerEval":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"example":3,"description":"How many runs each scheduled eval fans out into."},"source":{"default":null,"description":"External origin of the prompt (service, id, url, timestamp), when it came from one.","anyOf":[{"type":"object","properties":{"provider":{"type":"string","enum":["github.com","kapa.ai","twitter.com","reddit.com","2027.dev","agentcat.com"],"description":"Domain of the service the item came from: \"github.com\", \"kapa.ai\", \"twitter.com\", \"reddit.com\", \"2027.dev\" (agent-trace turns), or \"agentcat.com\" (agent-session telemetry / session replay).","example":"github.com"},"id":{"description":"Identifier of the upstream artifact (issue number, thread id, turn-N, …).","example":"1234","type":"string","minLength":1,"maxLength":256},"url":{"description":"Link to the upstream artifact.","example":"https://github.com/acme/app/issues/1234","type":"string","format":"uri"},"timestamp":{"description":"When the upstream artifact was created (ISO 8601).","example":"2026-07-01T12:00:00Z","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"}},"required":["provider"],"additionalProperties":false},{"type":"null"}]},"reportCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"example":4,"description":"Number of published reports linked to this prompt."},"loginHintsStatus":{"description":"Whether persona instructions (loginHints) are set on the prompt, inherited from the provider, or absent. Absent on a run's prompt embed.","type":"string","enum":["set","inherited","none"],"example":"set"},"loginHintsPreview":{"description":"Persona instructions (loginHints) text set on the prompt, with any detected secrets masked before exposure on this API surface; null when none or only inherited (provider text is not bulk-listed). Absent on a run's prompt embed.","anyOf":[{"type":"string"},{"type":"null"}]},"loginHintsHasSecrets":{"example":false,"description":"True when this prompt's own persona instructions (loginHints) contain a detected secret (status is set). False when inherited or none — parent/provider text is never inspected. Absent on a run's prompt embed.","type":"boolean"},"envKeys":{"example":["API_KEY","DATABASE_URL"],"description":"Own stored env key names only (values never returned) — not the resolve-time set. Empty on a sub-prompt does not mean no injection: a null own env inherits the parent at snapshot (fetch parent), an empty own map ({}) withholds it — see envMode. Absent on a run's prompt embed.","type":"array","items":{"type":"string"}},"setupCommand":{"example":"npm install","description":"Own stored bash setup script for the sandbox, returned verbatim (any secrets it contains are visible; the per-run copy on the session trace is masked instead). Null when unset on this row. Sub-prompts with empty setupCommand inherit the parent's at run resolve. Absent on a run's prompt embed.","anyOf":[{"type":"string"},{"type":"null"}]},"checks":{"example":{"creates-api-key":"The agent created an API key and used it in a request."},"description":"Custom verifier checks on the prompt: {slug: check description}, merged on top of the verifier's defaults. The description is the judge prompt's input, not display copy; a null value removes the default check of that slug. Null when none are set; absent on a run's prompt embed.","anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"string"},{"type":"null"}]}},{"type":"null"}]},"tags":{"example":["billing","onboarding"],"description":"Human labels on the prompt; null when untagged.","anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"parentPromptId":{"description":"Parent prompt id for a competitor sub-prompt; null for a top-level prompt.","anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"parentTitle":{"description":"Title of the parent prompt when this is a sub-prompt (scenario or competitor lane); null on a top-level prompt, and null when the parent has no title. Present on list_runs and get_run. Absent on list_prompts.","anyOf":[{"type":"string"},{"type":"null"}]},"targetProviderId":{"description":"Provider targeted by this prompt, including the competitor provider for a sub-prompt.","anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"author":{"description":"Who created this prompt; null when the prompt has no author on file. The email is never returned, and a 2027 staff or scheduled (cron) author is reduced to a badge-only ref (kind only, no name/photo/id). Present on list_prompts rows; absent on a run's prompt embed.","anyOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["user","cron","admin"]},"id":{"anyOf":[{"type":"string"},{"type":"null"}]},"firstName":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastName":{"anyOf":[{"type":"string"},{"type":"null"}]},"photoUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"email":{"anyOf":[{"type":"string"},{"type":"null"}]},"triggerType":{"anyOf":[{"type":"string","enum":["manual","scheduled","pr","external"]},{"type":"null"}]}},"required":["kind","id","firstName","lastName","photoUrl","email","triggerType"],"additionalProperties":false},{"type":"null"}]}},"required":["id","title","text","endGoal","status","templateVars","createdAt","frequency","runsPerEval","source","reportCount"],"additionalProperties":false},"CreatePromptResponse":{"type":"object","properties":{"promptId":{"type":"string"},"evalRequestId":{"anyOf":[{"type":"string"},{"type":"null"}]},"evalRunId":{"anyOf":[{"type":"string"},{"type":"null"}]},"loginHintsStatus":{"type":"string","enum":["set","inherited","none"],"example":"set","description":"Resolved persona instructions (loginHints) status for the new prompt (own → target provider → org-domain provider), never the text."}},"required":["promptId","evalRequestId","evalRunId","loginHintsStatus"],"additionalProperties":false},"Prompt":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"8e2f3b4c-1234-4abc-9def-0123456789ab"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"example":"Sign up and create a project"},"text":{"type":"string","example":"Sign up at example.com, create a new project, and invite a teammate."},"description":{"example":"Covers the signup funnel we keep losing agents in.","description":"Human note stored on the prompt; null when none was written.","anyOf":[{"type":"string"},{"type":"null"}]},"endGoal":{"anyOf":[{"type":"string"},{"type":"null"}],"example":"Successful first API call"},"status":{"type":"string","example":"active"},"frequency":{"anyOf":[{"type":"string","enum":["daily","weekly","bi-weekly","monthly","none"]},{"type":"null"}],"example":"weekly"},"runsPerEval":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"example":3},"targetProviderId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}],"example":"11111111-2222-3333-4444-555555555555"},"additionalUrls":{"anyOf":[{"type":"array","items":{"type":"string","format":"uri"}},{"type":"null"}],"example":["https://competitor.com"]},"templateVars":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"example":["accountId","scenario"]},"tags":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"example":["billing","onboarding"]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","example":"2026-03-01T12:34:56.000Z"},"reportSlugs":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"example":["abc123-report-slug"],"description":"Slugs of reports linked to this prompt."},"subPromptReports":{"type":"array","items":{"type":"object","properties":{"reportSlug":{"type":"string"},"prompt":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"title":{"type":"string"}},"required":["id","title"],"additionalProperties":false}},"required":["reportSlug","prompt"],"additionalProperties":false},"example":[{"reportSlug":"def456-report-slug","prompt":{"id":"44444444-5555-4abc-8def-888888888888","title":"Checkout with a saved card"}}],"description":"Reports linked to this prompt's sub-prompts (archived ones included), each with the sub-prompt it is linked to. Empty on a sub-prompt."},"hasSecrets":{"anyOf":[{"type":"boolean"},{"type":"null"}],"example":false,"description":"True if the prompt's text/endGoal contained a detected secret."},"loginHints":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Persona instructions (loginHints) for the browser agent; non-null means saved on this prompt, screened (any detected secrets masked) before exposure on this API surface."},"loginHintsStatus":{"type":"string","enum":["set","inherited","none"],"example":"set","description":"Whether persona instructions (loginHints) are set on the prompt, inherited from the provider, or absent."},"loginHintsPreview":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Persona instructions (loginHints) text set on the prompt, with any detected secrets masked before exposure on this API surface; null when none or only inherited (provider text is not bulk-listed)."},"loginHintsHasSecrets":{"type":"boolean","example":false,"description":"True when this prompt's own persona instructions (loginHints) contain a detected secret (status is set). False when inherited or none — parent/provider text is never inspected."},"env":{"type":"array","items":{"type":"string"},"example":["API_KEY","DATABASE_URL"],"description":"Own stored env key names only (values never returned). Use envMode to distinguish a stored map from inheritance."},"envMode":{"type":"string","enum":["inherit","set","none"],"example":"set","description":"set = a non-empty stored map (replaces the parent's, no key merge). inherit = a child with a null map uses the parent's at resolve time. none = no environment: a root with nothing stored (roots have nothing to inherit, so a root is never inherit), or a child storing an empty map ({}) that withholds the parent env."},"setupCommand":{"anyOf":[{"type":"string"},{"type":"null"}],"example":"npm install","description":"Own stored bash setup script, returned verbatim. Null inherits for a child; an empty string disables setup."},"checks":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"string"},{"type":"null"}]}},{"type":"null"}],"example":{"creates-api-key":"The agent created an API key and used it in a request."},"description":"Custom verifier checks on the prompt: {slug: check description}, merged on top of the verifier's defaults. The description is the judge prompt's input, not display copy; a null value removes the default check of that slug; null when none are set."},"scaffold":{"anyOf":[{"type":"string"},{"type":"null"}],"example":"react","description":"Own stored scaffold (starter codebase) for the sandbox; null when unset, in which case the prompt's provider scaffold applies, else the platform default. Does not inherit from a parent prompt."},"harnessModel":{"anyOf":[{"type":"object","properties":{"harness":{"type":"string"},"model":{"type":"string"}},"required":["harness","model"],"additionalProperties":false},{"type":"null"}],"example":{"harness":"claude-code","model":"claude-opus-4-8"},"description":"Own stored runner pin for this prompt's scheduled runs; null when unset, in which case the parent prompt's pin applies, else the org default, else the platform default."},"folderId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}],"example":"22222222-3333-4abc-8def-666666666666","description":"Folder this prompt belongs to."},"parentPromptId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}],"example":"33333333-4444-4abc-9def-777777777777","description":"Parent prompt id when this is a competitor sub-prompt."},"orgDomain":{"type":"string","example":"acme.dev","description":"The organization domain that owns this prompt."},"domainRouting":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},{"type":"null"}],"example":{"https://acme.dev":"https://staging.acme.dev"},"description":"From→to URL rewrite map applied when running this prompt."},"author":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["user","cron","admin"]},"id":{"anyOf":[{"type":"string"},{"type":"null"}]},"firstName":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastName":{"anyOf":[{"type":"string"},{"type":"null"}]},"photoUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"email":{"anyOf":[{"type":"string"},{"type":"null"}]},"triggerType":{"anyOf":[{"type":"string","enum":["manual","scheduled","pr","external"]},{"type":"null"}]}},"required":["kind","id","firstName","lastName","photoUrl","email","triggerType"],"additionalProperties":false},{"type":"null"}],"example":{"kind":"user","id":"user_01H","firstName":"Ada","lastName":"Lovelace","photoUrl":null,"email":null,"triggerType":null},"description":"Who created this prompt; null when the prompt has no author on file. The email is never returned, and a 2027 staff or scheduled (cron) author is reduced to a badge-only ref (kind only, no name/photo/id)."},"source":{"default":null,"description":"External origin of the prompt (service, id, url, timestamp), when it came from one.","anyOf":[{"type":"object","properties":{"provider":{"type":"string","enum":["github.com","kapa.ai","twitter.com","reddit.com","2027.dev","agentcat.com"],"description":"Domain of the service the item came from: \"github.com\", \"kapa.ai\", \"twitter.com\", \"reddit.com\", \"2027.dev\" (agent-trace turns), or \"agentcat.com\" (agent-session telemetry / session replay).","example":"github.com"},"id":{"description":"Identifier of the upstream artifact (issue number, thread id, turn-N, …).","example":"1234","type":"string","minLength":1,"maxLength":256},"url":{"description":"Link to the upstream artifact.","example":"https://github.com/acme/app/issues/1234","type":"string","format":"uri"},"timestamp":{"description":"When the upstream artifact was created (ISO 8601).","example":"2026-07-01T12:00:00Z","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"}},"required":["provider"],"additionalProperties":false},{"type":"null"}]}},"required":["id","title","text","endGoal","status","frequency","runsPerEval","targetProviderId","additionalUrls","templateVars","tags","createdAt","reportSlugs","subPromptReports","hasSecrets","loginHints","loginHintsStatus","loginHintsPreview","loginHintsHasSecrets","env","envMode","setupCommand","checks","scaffold","harnessModel","folderId","parentPromptId","orgDomain","domainRouting","author","source"],"additionalProperties":false},"UpdatedPrompt":{"type":"object","properties":{"id":{"type":"string"},"title":{"anyOf":[{"type":"string"},{"type":"null"}]},"text":{"type":"string"},"endGoal":{"anyOf":[{"type":"string"},{"type":"null"}]},"status":{"type":"string"},"templateVars":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"tags":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"createdAt":{"type":"string"}},"required":["id","title","text","endGoal","status","templateVars","tags","createdAt"],"additionalProperties":false},"PromptBenchmarks":{"type":"object","properties":{"prompt":{"type":"object","properties":{"id":{"type":"string"},"title":{"anyOf":[{"type":"string"},{"type":"null"}]},"text":{"type":"string"},"endGoal":{"anyOf":[{"type":"string"},{"type":"null"}]},"orgDomain":{"type":"string"}},"required":["id","title","text","endGoal","orgDomain"],"additionalProperties":false},"paid":{"type":"boolean"},"self":{"anyOf":[{"$ref":"#/components/schemas/Lane"},{"type":"null"}]},"competitors":{"type":"array","items":{"$ref":"#/components/schemas/Lane"}},"competitorsNote":{"type":"string"}},"required":["prompt","paid","self","competitors"],"additionalProperties":false},"Lane":{"type":"object","properties":{"provider":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"url":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","slug","name","url"],"additionalProperties":false},"subPromptId":{"anyOf":[{"type":"string"},{"type":"null"}]},"isCurrent":{"type":"boolean"},"checks":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"string"},{"type":"null"}]}},{"type":"null"}]},"runCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"latest":{"anyOf":[{"$ref":"#/components/schemas/LaneReport"},{"type":"null"}]},"history":{"type":"array","items":{"$ref":"#/components/schemas/LaneReport"}}},"required":["provider","subPromptId","isCurrent","checks","runCount","latest","history"],"additionalProperties":false},"LaneReport":{"type":"object","properties":{"slug":{"type":"string"},"createdAt":{"type":"string"},"timestamp":{"anyOf":[{"type":"string"},{"type":"null"}]},"score":{"anyOf":[{"type":"number"},{"type":"null"}]},"grade":{"anyOf":[{"type":"string"},{"type":"null"}]},"status":{"type":"string"},"metrics":{"anyOf":[{},{"type":"null"}]},"runType":{"anyOf":[{"type":"string"},{"type":"null"}]},"timeSec":{"anyOf":[{"type":"number"},{"type":"null"}]},"cost":{"anyOf":[{"type":"number"},{"type":"null"}]},"tokens":{"anyOf":[{"type":"number"},{"type":"null"}]},"errors":{"anyOf":[{"type":"number"},{"type":"null"}]},"toolCalls":{"anyOf":[{"type":"number"},{"type":"null"}]},"interruptions":{"anyOf":[{"type":"number"},{"type":"null"}]},"model":{"anyOf":[{"type":"string"},{"type":"null"}]},"requestedBy":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["user","cron","admin"]},"id":{"anyOf":[{"type":"string"},{"type":"null"}]},"firstName":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastName":{"anyOf":[{"type":"string"},{"type":"null"}]},"photoUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"email":{"anyOf":[{"type":"string"},{"type":"null"}]},"triggerType":{"anyOf":[{"type":"string","enum":["manual","scheduled","pr","external"]},{"type":"null"}]}},"required":["kind","id","firstName","lastName","photoUrl","email","triggerType"],"additionalProperties":false},{"type":"null"}]},"integrationChecklist":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"number"}},{"type":"null"}]},"evidence":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"type":"string"}}},{"type":"null"}],"example":{"build":["0b7f2c1e-1c2d-4e5f-8a9b-0c1d2e3f4a5b"]},"description":"Session message uuids the verifier cited per check, keyed by check slug. Null when the run's checklist was recorded without evidence."},"checks":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"string"},{"type":"null"}]}},{"type":"null"}],"description":"The custom verifier checks that label this run's checklist: the map snapshotted on its eval request, or the lane prompt's current map for runs made before that snapshot existed. Null when neither declares any."},"outcome":{"type":"string","enum":["succeeded","goal_not_met","no_creds","excluded","scoring_failed"],"example":"goal_not_met","description":"Why the run ended the way it did: 'succeeded' when scored; otherwise the nulled cause — 'goal_not_met', 'no_creds', 'excluded' (manually nulled) or 'scoring_failed'."}},"required":["slug","createdAt","timestamp","score","grade","status","metrics","runType","timeSec","cost","tokens","errors","toolCalls","interruptions","model","requestedBy","integrationChecklist","evidence","checks","outcome"],"additionalProperties":false},"PromptStats":{"type":"object","properties":{"promptId":{"type":"string"},"latestMetrics":{"anyOf":[{"type":"object","properties":{"time":{"anyOf":[{"type":"string"},{"type":"null"}]},"timeSec":{"anyOf":[{"type":"number"},{"type":"null"}]},"tokensNum":{"anyOf":[{"type":"number"},{"type":"null"}]},"errors":{"anyOf":[{"type":"number"},{"type":"null"}]},"interruptions":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["time","timeSec","tokensNum","errors","interruptions"],"additionalProperties":false},{"type":"null"}]},"prevMetrics":{"anyOf":[{"type":"object","properties":{"timeSec":{"anyOf":[{"type":"number"},{"type":"null"}]},"tokensNum":{"anyOf":[{"type":"number"},{"type":"null"}]},"errors":{"anyOf":[{"type":"number"},{"type":"null"}]},"interruptions":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["timeSec","tokensNum","errors","interruptions"],"additionalProperties":false},{"type":"null"}]},"currentRuns":{"type":"array","items":{"type":"object","properties":{"ts":{"type":"number"},"reportSlug":{"type":"string"},"timeSec":{"anyOf":[{"type":"number"},{"type":"null"}]},"cost":{"anyOf":[{"type":"number"},{"type":"null"}]},"tokens":{"anyOf":[{"type":"number"},{"type":"null"}]},"errors":{"anyOf":[{"type":"number"},{"type":"null"}]},"toolCalls":{"anyOf":[{"type":"number"},{"type":"null"}]},"interruptions":{"type":"number"},"score":{"anyOf":[{"type":"number"},{"type":"null"}]},"model":{"anyOf":[{"type":"string"},{"type":"null"}]},"outcome":{"type":"string","enum":["succeeded","goal_not_met","no_creds","excluded","scoring_failed"],"example":"goal_not_met","description":"Why the run ended the way it did: 'succeeded' when scored; otherwise the nulled cause — 'goal_not_met', 'no_creds', 'excluded' (manually nulled) or 'scoring_failed'."},"reward":{"anyOf":[{"type":"object","properties":{"checklist":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"number","const":0},{"type":"number","const":1}]}},"evidence":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"type":"string"}}},{"type":"null"}],"example":{"build":["0b7f2c1e-1c2d-4e5f-8a9b-0c1d2e3f4a5b"]},"description":"Session message uuids the verifier cited per check, keyed by check slug. Null when the run's checklist was recorded without evidence."},"report":{"type":"object","properties":{"slug":{"type":"string"},"timestamp":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["slug","timestamp"],"additionalProperties":false},"checkDescriptions":{"example":{"clerk-init-cli":"Uses `clerk init` CLI command to setup a project"},"description":"Description text for the keys in `checklist`, from the checks map the run's request was made with (its resolved snapshot), or, for requests older than that snapshot, the producing prompt's current checks map. Null when no custom checks are declared; absent when this response cannot name a single producing prompt. A key missing here is labelled by the verifier's default for that slug, else by the slug itself.","anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"string"},{"type":"null"}]}},{"type":"null"}]}},"required":["checklist","evidence","report"],"additionalProperties":false},{"type":"null"}]}},"required":["ts","reportSlug","timeSec","cost","tokens","errors","toolCalls","interruptions","score","model","outcome","reward"],"additionalProperties":false}},"prevRuns":{"type":"array","items":{"type":"object","properties":{"ts":{"type":"number"},"reportSlug":{"type":"string"},"timeSec":{"anyOf":[{"type":"number"},{"type":"null"}]},"cost":{"anyOf":[{"type":"number"},{"type":"null"}]},"tokens":{"anyOf":[{"type":"number"},{"type":"null"}]},"errors":{"anyOf":[{"type":"number"},{"type":"null"}]},"toolCalls":{"anyOf":[{"type":"number"},{"type":"null"}]},"interruptions":{"type":"number"},"score":{"anyOf":[{"type":"number"},{"type":"null"}]},"model":{"anyOf":[{"type":"string"},{"type":"null"}]},"outcome":{"type":"string","enum":["succeeded","goal_not_met","no_creds","excluded","scoring_failed"],"example":"goal_not_met","description":"Why the run ended the way it did: 'succeeded' when scored; otherwise the nulled cause — 'goal_not_met', 'no_creds', 'excluded' (manually nulled) or 'scoring_failed'."},"reward":{"anyOf":[{"type":"object","properties":{"checklist":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"number","const":0},{"type":"number","const":1}]}},"evidence":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"type":"string"}}},{"type":"null"}],"example":{"build":["0b7f2c1e-1c2d-4e5f-8a9b-0c1d2e3f4a5b"]},"description":"Session message uuids the verifier cited per check, keyed by check slug. Null when the run's checklist was recorded without evidence."},"report":{"type":"object","properties":{"slug":{"type":"string"},"timestamp":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["slug","timestamp"],"additionalProperties":false},"checkDescriptions":{"example":{"clerk-init-cli":"Uses `clerk init` CLI command to setup a project"},"description":"Description text for the keys in `checklist`, from the checks map the run's request was made with (its resolved snapshot), or, for requests older than that snapshot, the producing prompt's current checks map. Null when no custom checks are declared; absent when this response cannot name a single producing prompt. A key missing here is labelled by the verifier's default for that slug, else by the slug itself.","anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"string"},{"type":"null"}]}},{"type":"null"}]}},"required":["checklist","evidence","report"],"additionalProperties":false},{"type":"null"}]}},"required":["ts","reportSlug","timeSec","cost","tokens","errors","toolCalls","interruptions","score","model","outcome","reward"],"additionalProperties":false}},"isCurrentFallback":{"type":"boolean"},"isPrevFallback":{"type":"boolean"},"models":{"type":"array","items":{"type":"object","properties":{"harness":{"anyOf":[{"type":"string"},{"type":"null"}]},"model":{"type":"string"}},"required":["harness","model"],"additionalProperties":false}},"competitorRanking":{"anyOf":[{"type":"object","properties":{"rank":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"trend":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]}},"required":["rank","total","trend"],"additionalProperties":false},{"type":"null"}]},"author":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["user","cron","admin"]},"id":{"anyOf":[{"type":"string"},{"type":"null"}]},"firstName":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastName":{"anyOf":[{"type":"string"},{"type":"null"}]},"photoUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"email":{"anyOf":[{"type":"string"},{"type":"null"}]},"triggerType":{"anyOf":[{"type":"string","enum":["manual","scheduled","pr","external"]},{"type":"null"}]}},"required":["kind","id","firstName","lastName","photoUrl","email","triggerType"],"additionalProperties":false},{"type":"null"}]},"reward":{"anyOf":[{"type":"object","properties":{"checklist":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"number","const":0},{"type":"number","const":1}]}},"evidence":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"type":"string"}}},{"type":"null"}],"example":{"build":["0b7f2c1e-1c2d-4e5f-8a9b-0c1d2e3f4a5b"]},"description":"Session message uuids the verifier cited per check, keyed by check slug. Null when the run's checklist was recorded without evidence."},"report":{"type":"object","properties":{"slug":{"type":"string"},"timestamp":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["slug","timestamp"],"additionalProperties":false},"checkDescriptions":{"example":{"clerk-init-cli":"Uses `clerk init` CLI command to setup a project"},"description":"Description text for the keys in `checklist`, from the checks map the run's request was made with (its resolved snapshot), or, for requests older than that snapshot, the producing prompt's current checks map. Null when no custom checks are declared; absent when this response cannot name a single producing prompt. A key missing here is labelled by the verifier's default for that slug, else by the slug itself.","anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"string"},{"type":"null"}]}},{"type":"null"}]}},"required":["checklist","evidence","report"],"additionalProperties":false},{"type":"null"}]},"latestRun":{"anyOf":[{"type":"object","properties":{"slug":{"type":"string"},"timestamp":{"type":"string"},"score":{"anyOf":[{"type":"number"},{"type":"null"}]},"outcome":{"type":"string","enum":["succeeded","goal_not_met","no_creds","excluded","scoring_failed"],"example":"goal_not_met","description":"Why the run ended the way it did: 'succeeded' when scored; otherwise the nulled cause — 'goal_not_met', 'no_creds', 'excluded' (manually nulled) or 'scoring_failed'."},"verdict":{"type":"null","deprecated":true,"description":"Always null since runs.outcome; read outcome instead."}},"required":["slug","timestamp","score","outcome","verdict"],"additionalProperties":false},{"type":"null"}]},"latestScoredRun":{"anyOf":[{"type":"object","properties":{"slug":{"type":"string"},"timestamp":{"type":"string"},"score":{"type":"number"}},"required":["slug","timestamp","score"],"additionalProperties":false},{"type":"null"}]}},"required":["promptId","latestMetrics","prevMetrics","currentRuns","prevRuns","isCurrentFallback","isPrevFallback","models","competitorRanking","author","reward","latestRun","latestScoredRun"],"additionalProperties":false},"PromptPeriodComparison":{"type":"object","properties":{"groupPromptId":{"type":"string"},"window":{"type":"object","properties":{"start":{"type":"string"},"end":{"type":"string"}},"required":["start","end"],"additionalProperties":false},"priorWindow":{"type":"object","properties":{"start":{"type":"string"},"end":{"type":"string"}},"required":["start","end"],"additionalProperties":false},"current":{"type":"object","properties":{"runCount":{"type":"number"},"avgCostCents":{"anyOf":[{"type":"number"},{"type":"null"}]},"avgDurationMs":{"anyOf":[{"type":"number"},{"type":"null"}]},"totalErrors":{"type":"number"},"totalInterruptions":{"type":"number"}},"required":["runCount","avgCostCents","avgDurationMs","totalErrors","totalInterruptions"],"additionalProperties":false},"prior":{"type":"object","properties":{"runCount":{"type":"number"},"avgCostCents":{"anyOf":[{"type":"number"},{"type":"null"}]},"avgDurationMs":{"anyOf":[{"type":"number"},{"type":"null"}]},"totalErrors":{"type":"number"},"totalInterruptions":{"type":"number"}},"required":["runCount","avgCostCents","avgDurationMs","totalErrors","totalInterruptions"],"additionalProperties":false},"deltas":{"type":"object","properties":{"runCount":{"type":"number"},"avgCostCents":{"anyOf":[{"type":"number"},{"type":"null"}]},"avgCostPct":{"anyOf":[{"type":"number"},{"type":"null"}]},"avgDurationMs":{"anyOf":[{"type":"number"},{"type":"null"}]},"avgDurationPct":{"anyOf":[{"type":"number"},{"type":"null"}]},"totalErrors":{"type":"number"},"totalInterruptions":{"type":"number"}},"required":["runCount","avgCostCents","avgCostPct","avgDurationMs","avgDurationPct","totalErrors","totalInterruptions"],"additionalProperties":false}},"required":["groupPromptId","window","priorWindow","current","prior","deltas"],"additionalProperties":false},"SubPrompt":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","example":"8e2f3b4c-1234-4abc-9def-0123456789ab"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"example":"Sign up and create a project"},"text":{"type":"string","example":"Sign up at example.com, create a new project, and invite a teammate."},"description":{"example":"Covers the signup funnel we keep losing agents in.","description":"Human note stored on the prompt; null when none was written.","anyOf":[{"type":"string"},{"type":"null"}]},"endGoal":{"anyOf":[{"type":"string"},{"type":"null"}],"example":"Successful first API call"},"status":{"type":"string","example":"active"},"templateVars":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"example":["accountId","scenario"]},"createdAt":{"example":"2026-03-01T12:34:56.000Z","format":"date-time","type":"string"},"frequency":{"anyOf":[{"type":"string","enum":["daily","weekly","bi-weekly","monthly","none"]},{"type":"null"}],"example":"weekly","description":"How often the prompt is auto-evaluated. null = never set (weekly; a sub-prompt follows its parent's cadence); 'none' = never auto-evaluated, manual runs only."},"runsPerEval":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"example":3,"description":"How many runs each scheduled eval fans out into."},"source":{"default":null,"description":"External origin of the prompt (service, id, url, timestamp), when it came from one.","anyOf":[{"type":"object","properties":{"provider":{"type":"string","enum":["github.com","kapa.ai","twitter.com","reddit.com","2027.dev","agentcat.com"],"description":"Domain of the service the item came from: \"github.com\", \"kapa.ai\", \"twitter.com\", \"reddit.com\", \"2027.dev\" (agent-trace turns), or \"agentcat.com\" (agent-session telemetry / session replay).","example":"github.com"},"id":{"description":"Identifier of the upstream artifact (issue number, thread id, turn-N, …).","example":"1234","type":"string","minLength":1,"maxLength":256},"url":{"description":"Link to the upstream artifact.","example":"https://github.com/acme/app/issues/1234","type":"string","format":"uri"},"timestamp":{"description":"When the upstream artifact was created (ISO 8601).","example":"2026-07-01T12:00:00Z","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"}},"required":["provider"],"additionalProperties":false},{"type":"null"}]},"reportCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"example":4,"description":"Number of published reports linked to this prompt."},"loginHintsStatus":{"type":"string","enum":["set","inherited","none"]},"loginHintsPreview":{"anyOf":[{"type":"string"},{"type":"null"}]},"loginHintsHasSecrets":{"type":"boolean","description":"True when this sub-prompt's own persona instructions (loginHints) contain a detected secret (status is set). False when inherited or none — parent/provider text is never inspected."},"envKeys":{"type":"array","items":{"type":"string"}},"setupCommand":{"anyOf":[{"type":"string"},{"type":"null"}]},"checks":{"example":{"creates-api-key":"The agent created an API key and used it in a request."},"description":"Custom verifier checks on the prompt: {slug: check description}, merged on top of the verifier's defaults. The description is the judge prompt's input, not display copy; a null value removes the default check of that slug. Null when none are set; absent on a run's prompt embed.","anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"string"},{"type":"null"}]}},{"type":"null"}]},"tags":{"example":["billing","onboarding"],"description":"Human labels on the prompt; null when untagged.","anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"parentTitle":{"description":"Title of the parent prompt when this is a sub-prompt (scenario or competitor lane); null on a top-level prompt, and null when the parent has no title. Present on list_runs and get_run. Absent on list_prompts.","anyOf":[{"type":"string"},{"type":"null"}]},"author":{"description":"Who created this prompt; null when the prompt has no author on file. The email is never returned, and a 2027 staff or scheduled (cron) author is reduced to a badge-only ref (kind only, no name/photo/id). Present on list_prompts rows; absent on a run's prompt embed.","anyOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["user","cron","admin"]},"id":{"anyOf":[{"type":"string"},{"type":"null"}]},"firstName":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastName":{"anyOf":[{"type":"string"},{"type":"null"}]},"photoUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"email":{"anyOf":[{"type":"string"},{"type":"null"}]},"triggerType":{"anyOf":[{"type":"string","enum":["manual","scheduled","pr","external"]},{"type":"null"}]}},"required":["kind","id","firstName","lastName","photoUrl","email","triggerType"],"additionalProperties":false},{"type":"null"}]},"scaffold":{"anyOf":[{"type":"string"},{"type":"null"}]},"configModes":{"type":"object","properties":{"setupCommand":{"type":"string","enum":["inherit","set","none"]},"loginHints":{"type":"string","enum":["inherit","set","none"]},"env":{"type":"string","enum":["inherit","set","none"]},"scaffold":{"type":"string","enum":["inherit","set","none"]}},"required":["setupCommand","loginHints","env","scaffold"],"additionalProperties":false},"inheritedLoginHints":{"anyOf":[{"oneOf":[{"type":"object","properties":{"from":{"type":"string","const":"parent"}},"required":["from"],"additionalProperties":false},{"type":"object","properties":{"from":{"type":"string","const":"provider"},"preview":{"anyOf":[{"type":"string"},{"type":"null"}]},"hasSecrets":{"type":"boolean"}},"required":["from","preview","hasSecrets"],"additionalProperties":false}],"type":"object"},{"type":"null"}],"description":"Where a sub-prompt with null persona instructions (loginHints; configModes.loginHints inherit) reads them from at run time: the parent prompt when it targets the parent's own provider, else its target provider — with that provider's persona instructions masked (null when the provider has none). Null when the sub-prompt sets or disables its own persona instructions."},"parentPromptId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Parent prompt id — always set on this endpoint."},"targetProvider":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"slug":{"type":"string"},"name":{"type":"string"},"url":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","slug","name","url"],"additionalProperties":false},{"type":"null"}],"description":"The competitor provider this sub-prompt benchmarks against (LEFT JOIN; null on a legacy/unlinked row)."}},"required":["id","title","text","endGoal","status","templateVars","createdAt","frequency","runsPerEval","source","reportCount","loginHintsStatus","loginHintsPreview","loginHintsHasSecrets","envKeys","setupCommand","scaffold","configModes","inheritedLoginHints","parentPromptId","targetProvider"],"additionalProperties":false},"RunResponse":{"type":"object","properties":{"runId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"statusUrl":{"type":"string","format":"uri"},"runUrl":{"type":"string","format":"uri","example":"https://2027.dev/evals/example.com/runs/abc12345-1234-4abc-9def-0123456789ab"}},"required":["runId","statusUrl","runUrl"],"additionalProperties":false},"UpdatePromptConfigResponse":{"type":"object","properties":{"success":{"type":"boolean","const":true},"env":{"type":"array","items":{"type":"string"},"description":"Names of env vars set on this prompt after the update (values never returned)."},"loginHintsStatus":{"type":"string","enum":["set","inherited","none"],"example":"set","description":"Resolved persona instructions (loginHints) status after the update (own → target provider → org-domain provider), never the text."}},"required":["success","env","loginHintsStatus"],"additionalProperties":false},"AddCompetitorResponse":{"type":"object","properties":{"subPromptId":{"type":"string"},"evalRequestId":{"type":"string"},"evalRunId":{"type":"string"},"provider":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"url":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","slug","name","url"],"additionalProperties":false}},"required":["subPromptId","evalRequestId","evalRunId","provider"],"additionalProperties":false},"RemoveCompetitorResponse":{"type":"object","properties":{"subPromptId":{"type":"string"},"archived":{"type":"boolean","const":true}},"required":["subPromptId","archived"],"additionalProperties":false},"Run":{"type":"object","properties":{"runId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"status":{"type":"string","example":"pending","description":"Run lifecycle status: 'pending' | 'running' | 'completed' | 'failed'. This is the eval_run's execution state — distinct from report.status (the published/draft/archived lifecycle of the resulting report) and the reportStatus query filter on GET /runs."},"reportSlug":{"anyOf":[{"type":"string"},{"type":"null"}],"example":"abc123-report-slug","description":"Slug of the report this run produced — pass it to GET /reports/{slug} or GET /reports/{slug}/trace. Set even when `report` is null because the report is not published; both endpoints still return it. Null while the run is pending or running, and on a run that ended without producing a report (see failureReason)."},"outcome":{"anyOf":[{"type":"string","enum":["succeeded","goal_not_met","no_creds","excluded","scoring_failed"],"example":"goal_not_met","description":"Why the run ended the way it did: 'succeeded' when scored; otherwise the nulled cause — 'goal_not_met', 'no_creds', 'excluded' (manually nulled) or 'scoring_failed'."},{"type":"null"}],"example":"goal_not_met","description":"How the run ended, the same value as report.outcome: 'succeeded' when scored; otherwise why there is no score — 'goal_not_met', 'no_creds', 'excluded' (manually nulled) or 'scoring_failed'. `status` cannot tell these apart: it is 'completed' for all of them. Null whenever `report` is null — the run is pending or running, ended without a report, or its report is not published (read that one with GET /reports/{reportSlug})."},"report":{"anyOf":[{"type":"object","properties":{"slug":{"type":"string","example":"abc123-report-slug"},"url":{"type":"string","format":"uri","example":"https://2027.dev/evals/example.com/reports/abc123-report-slug"},"apiUrl":{"example":"https://2027.dev/evals/api/v1/reports/abc123-report-slug","type":"string","format":"uri"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"example":"published","description":"Report lifecycle status: 'published' | 'draft' | 'archived'. Null when the report row has not been ingested yet. Distinct from the run's status (execution lifecycle)."},"outcome":{"type":"string","enum":["succeeded","goal_not_met","no_creds","excluded","scoring_failed"],"example":"goal_not_met","description":"Why the run ended the way it did: 'succeeded' when scored; otherwise the nulled cause — 'goal_not_met', 'no_creds', 'excluded' (manually nulled) or 'scoring_failed'."},"nullNotice":{"anyOf":[{"type":"string"},{"type":"null"}],"example":"⚠️ Score nulled: AI judge determined the task was not completed.","description":"The queue's one-line 'score nulled' notice explaining why this report has no usable score. Null when the report carries no such notice."},"reward":{"anyOf":[{"type":"object","properties":{"checklist":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"number","const":0},{"type":"number","const":1}]}},"evidence":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"type":"string"}}},{"type":"null"}],"example":{"build":["0b7f2c1e-1c2d-4e5f-8a9b-0c1d2e3f4a5b"]},"description":"Session message uuids the verifier cited per check, keyed by check slug. Null when the run's checklist was recorded without evidence."},"report":{"type":"object","properties":{"slug":{"type":"string"},"timestamp":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["slug","timestamp"],"additionalProperties":false},"checkDescriptions":{"example":{"clerk-init-cli":"Uses `clerk init` CLI command to setup a project"},"description":"Description text for the keys in `checklist`, from the checks map the run's request was made with (its resolved snapshot), or, for requests older than that snapshot, the producing prompt's current checks map. Null when no custom checks are declared; absent when this response cannot name a single producing prompt. A key missing here is labelled by the verifier's default for that slug, else by the slug itself.","anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"string"},{"type":"null"}]}},{"type":"null"}]}},"required":["checklist","evidence","report"],"additionalProperties":false},{"type":"null"}],"description":"The verifier's per-check pass/fail map for this run, on every outcome — a goal-not-met run is graded too, and which check failed is usually why. Custom check descriptions come from the checks map the run's request was made with. Null when the verifier recorded no checklist."},"metrics":{"example":{"time":"2m 14s","timeDetail":"from first prompt to final answer","errors":1,"errorsDetail":"1 transient 500 from /api/run","toolCalls":12,"toolCallsDetail":"8 reads, 4 writes","cost":"$0.12","costDetail":"tokens + tool budget","interruptions":0,"timeSeconds":134,"costUsd":0.12},"type":"object","properties":{"time":{"type":"string"},"timeDetail":{"type":"string"},"errors":{"type":"number"},"errorsDetail":{"type":"string"},"toolCalls":{"type":"number"},"toolCallsDetail":{"type":"string"},"cost":{"type":"string"},"costDetail":{"type":"string"},"interruptions":{"type":"number"},"timeSeconds":{"example":134,"anyOf":[{"type":"number"},{"type":"null"}]},"costUsd":{"example":0.12,"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["time","timeDetail","errors","errorsDetail","toolCalls","toolCallsDetail","cost","costDetail","interruptions"],"additionalProperties":false},"legacy":{"description":"Legacy fields kept for compatibility with pre-v1.1 integrations. Returned by GET /runs/{runId} only; absent on GET /runs.","type":"object","properties":{"keyFinding":{"anyOf":[{"type":"string"},{"type":"null"}],"example":"The agent found the API key page but never discovered the CLI login flow.","description":"Legacy field kept for compatibility: the report's one-line key finding, admin overrides applied — the same value GET /reports/{slug} returns under legacy. Null when the report has none."},"frictionPoints":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/FrictionPoint"}},{"type":"null"}],"description":"Legacy field kept for compatibility: the report's friction points, admin overrides applied — the same list GET /reports/{slug} returns under legacy. Null when the report recorded none or the stored list is unreadable."}},"required":["keyFinding","frictionPoints"],"additionalProperties":false}},"required":["slug","url","status","outcome","nullNotice","reward"],"additionalProperties":false},{"type":"null"}]},"statusUrl":{"type":"string","format":"uri"},"runUrl":{"type":"string","format":"uri","example":"https://2027.dev/evals/example.com/runs/abc12345-1234-4abc-9def-0123456789ab"},"completedAt":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}]},"createdAt":{"example":"2026-05-08T20:00:00.000Z","format":"date-time","type":"string"},"failureReason":{"anyOf":[{"type":"string"},{"type":"null"}]},"artifactSlug":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Slug of the run's uploaded artifact folder (the setup command's log, and the trace of a run that ended without a report). Not the report handle: it is set only when the run uploaded one of those, so it is null on most scored runs — use reportSlug to reach the report. Null when nothing was uploaded — on a failed run, that is the difference between a run that never started and one whose scoring failed."},"attempt":{"type":"integer","minimum":1,"maximum":9007199254740991,"example":2,"description":"Which attempt at its request this run is, counting from 1. A run that failed for a reason the platform can recover from is retried automatically as a new run on the same request; that run is attempt 2, and so on."},"retryOf":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}],"example":"5bf57772-1111-4abc-9def-0123456789ab","description":"runId of the previous attempt this run retries. Null on a request's first attempt."},"retriedAs":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}],"example":"d7df8945-2222-4abc-9def-0123456789ab","description":"runId of the next attempt, when this run was retried — follow it to the run that carries the request's result. Null when this is the latest attempt."},"urlMap":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},{"type":"null"}],"example":{"docs.acme.com":"https://preview-abc123.vercel.app"},"description":"URL map submitted when the run was triggered."},"harness":{"anyOf":[{"type":"string"},{"type":"null"}],"example":"claude-code","description":"Harness selected when the run was triggered, else the one it ran with."},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"example":"claude-opus-4-8","description":"Model selected when the run was triggered, else the one it ran with."},"templateArgs":{"example":{"accountId":"acme-ci","scenario":"checkout"},"description":"Resolved template variable values for this run. Stored and returned in plaintext — do not pass secrets here.","anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},{"type":"null"}]},"prompt":{"$ref":"#/components/schemas/PromptSummary"},"githubMeta":{"default":null,"description":"GitHub PR context when the run was triggered by a pull request (installation, repo, PR, commit).","anyOf":[{"type":"object","properties":{"installationId":{"type":"number"},"owner":{"type":"string"},"repo":{"type":"string"},"prNumber":{"type":"number"},"prTitle":{"type":"string"},"branch":{"type":"string"},"commitSha":{"type":"string"},"deploymentUrl":{"type":"string"}},"required":["installationId","owner","repo","prNumber","commitSha","deploymentUrl"],"additionalProperties":false},{"type":"null"}]},"runtimeConfig":{"default":null,"description":"Resolved runtime configuration for the run (backend, model, image, canary version, fingerprint fields).","anyOf":[{"type":"object","properties":{"backend":{"type":"string","enum":["docker","e2b","daytona","eas"]},"model":{"type":"string"},"harness":{"type":"string"},"image":{"type":"string"},"canaryVersion":{"type":"string"},"env":{"type":"array","items":{"type":"string"}},"canaryVersionOutput":{"type":"string"},"harborSha":{"type":"string"},"claudeCodeVersion":{"type":"string"},"judgeModel":{"anyOf":[{"type":"string"},{"type":"null"}]},"agentName":{"anyOf":[{"type":"string"},{"type":"null"}]},"agentVersion":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["backend","model"],"additionalProperties":false},{"type":"null"}]},"requestedBy":{"type":"object","properties":{"kind":{"type":"string","enum":["user","cron","admin"]},"id":{"anyOf":[{"type":"string"},{"type":"null"}]},"firstName":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastName":{"anyOf":[{"type":"string"},{"type":"null"}]},"photoUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"email":{"anyOf":[{"type":"string"},{"type":"null"}]},"triggerType":{"anyOf":[{"type":"string","enum":["manual","scheduled","pr","external"]},{"type":"null"}]}},"required":["kind","id","firstName","lastName","photoUrl","email","triggerType"],"additionalProperties":false,"description":"Classified identity of who/what requested the run (own-org only)."},"statusUpdatedAt":{"example":"2026-05-08T20:05:00.000Z","description":"When the run's status was last updated.","format":"date-time","type":"string"},"triggerType":{"example":"manual","description":"How the run was triggered (e.g. manual, pr, external, scheduled).","anyOf":[{"type":"string","enum":["manual","scheduled","pr","external"]},{"type":"null"}]},"requestCreatedAt":{"example":"2026-05-08T19:59:00.000Z","description":"When the run was requested (eval_requests.created_at), distinct from createdAt (session start).","format":"date-time","type":"string"},"skipReason":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Why the run was skipped/superseded, when applicable (null otherwise)."},"loginHints":{"type":"boolean","example":true,"description":"Whether persona instructions (loginHints) were handed to the agent for this run (the run's own request snapshot, not the prompt's current status). The text is never returned."},"envKeys":{"example":["API_KEY","DATABASE_URL"],"description":"Names of the env keys injected into this run's sandbox (values are never returned).","type":"array","items":{"type":"string"}},"resolvedPrompt":{"example":"Sign up at example.com and create a project.","description":"The prompt text this run actually ran with (eval_runs.resolved_prompt), with detected secrets masked. Null when the run never launched or predates the column.","anyOf":[{"type":"string"},{"type":"null"}]},"startedAt":{"example":"2026-05-08T20:00:00.000Z","description":"When the run could first move: scheduledAt when it was deferred, else createdAt. The baseline elapsed time is measured from; add lastRunDurationMs for an expected finish.","format":"date-time","type":"string"},"lastRunDurationMs":{"example":754000,"description":"Wall-clock milliseconds the last completed run of this same prompt took — one previous run, which is the best available guide to how long this one will take. Absent on a terminal run, and absent when the prompt has no completed run among its 20 most recent.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"healthcheckLog":{"example":"+ npm install -g @acme/cli\nnpm error 404 Not Found\n","description":"Output of the setup command for this run (artifacts/<artifactSlug>/healthcheck.log), verbatim and unredacted. Null when the run had no setup command, uploaded no artifacts, or the log could not be read — it is never an empty string standing in for absence. An empty string means the setup command ran and printed nothing before it failed or finished (for example a silent `command -v python >/dev/null` under `set -e`); read setupCommand for the step that could fail that way. Only returned by GET /runs/{runId}; omitted from the run objects in GET /runs.","anyOf":[{"type":"string"},{"type":"null"}]},"setupCommand":{"example":"set -eu\ncommand -v python >/dev/null\npip install -r requirements.txt","description":"The setup script this run actually ran (the prompt's setup command as resolved when the run was requested), with detected secrets and the run's own env values masked. Null when the run had no setup command. Only returned by GET /runs/{runId}; omitted from the run objects in GET /runs.","anyOf":[{"type":"string"},{"type":"null"}]},"scheduledAt":{"anyOf":[{"type":"string"},{"type":"null"}],"example":"2026-07-20T15:00:00.000Z","description":"When the run becomes eligible for the queue (eval_requests.scheduled_at). Null = claim immediately. Does not change status — runs stay pending until claimed.","format":"date-time"}},"required":["runId","status","reportSlug","outcome","report","statusUrl","runUrl","completedAt","createdAt","failureReason","artifactSlug","attempt","retryOf","retriedAs","urlMap","harness","model","prompt","requestedBy","statusUpdatedAt","requestCreatedAt","skipReason","loginHints","startedAt","scheduledAt"],"additionalProperties":false},"FrictionPoint":{"type":"object","properties":{"id":{"type":"string"},"severity":{"type":"string","enum":["critical","major","minor"]},"title":{"type":"string"},"desc":{"type":"string"},"impact":{"type":"string"}},"required":["severity","title","desc"],"additionalProperties":false},"ReportSummary":{"type":"object","properties":{"slug":{"type":"string"},"name":{"type":"string"},"timestamp":{"anyOf":[{"type":"string"},{"type":"null"}]},"runType":{"anyOf":[{"type":"string","enum":["manual","automated"]},{"type":"null"}]},"status":{"type":"string","enum":["draft","published","archived"]},"provider":{"type":"string"}},"required":["slug","name","timestamp","runType","status"],"additionalProperties":false},"ReportDetail":{"type":"object","properties":{"slug":{"type":"string"},"name":{"type":"string"},"timestamp":{"anyOf":[{"type":"string"},{"type":"null"}]},"metrics":{"default":{"time":"","timeDetail":"","errors":0,"errorsDetail":"","toolCalls":0,"toolCallsDetail":"","cost":"","costDetail":"","interruptions":0},"$ref":"#/components/schemas/RunMetrics"},"timeline":{"default":[],"type":"array","items":{"$ref":"#/components/schemas/TimelineItem"}},"frictionPoints":{"maxItems":0,"type":"array","items":{"$ref":"#/components/schemas/FrictionPoint"},"deprecated":true,"description":"Deprecated since 1.2.0: always empty. Read legacy.frictionPoints."},"recommendations":{"default":[],"type":"array","items":{"$ref":"#/components/schemas/Recommendation"}},"providerMeta":{"default":{"provider":"","url":"","category":"","tags":[],"sessionId":"","model":"","evalDate":""},"$ref":"#/components/schemas/ProviderMeta"},"summary":{"default":{"headline":"","paragraphs":[]},"$ref":"#/components/schemas/SummaryContent"},"toolCallBreakdown":{"default":null,"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/ToolCallBreakdownItem"}},{"type":"null"}]},"competitiveComparison":{"default":null,"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/CompetitiveEntry"}},{"type":"null"}]},"counterfactuals":{"default":null,"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/Counterfactual"}},{"type":"null"}]},"sessionHistory":{"default":null,"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/SessionHistoryEntry"}},{"type":"null"}]},"verdict":{"anyOf":[{"type":"string"},{"type":"null"}]},"keyFinding":{"type":"null","deprecated":true,"description":"Deprecated since 1.2.0: always null. Read legacy.keyFinding."},"legacy":{"type":"object","properties":{"keyFinding":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Legacy field kept for compatibility: the report's one-line key finding, admin overrides applied. Null when the report has none."},"frictionPoints":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/FrictionPoint"}},{"type":"null"}],"description":"Legacy field kept for compatibility: the report's friction points, admin overrides applied. Null when the report recorded none or the stored list is unreadable."}},"required":["keyFinding","frictionPoints"],"additionalProperties":false,"description":"Legacy fields kept for compatibility with pre-v1.1 integrations. Same values as on GET /runs/{runId}'s report.legacy."},"outcome":{"type":"string","enum":["succeeded","goal_not_met","no_creds","excluded","scoring_failed"],"example":"goal_not_met","description":"Why the run ended the way it did: 'succeeded' when scored; otherwise the nulled cause — 'goal_not_met', 'no_creds', 'excluded' (manually nulled) or 'scoring_failed'."},"nullNotice":{"anyOf":[{"type":"string"},{"type":"null"}]},"reward":{"anyOf":[{"type":"object","properties":{"checklist":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"number","const":0},{"type":"number","const":1}]}},"evidence":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"type":"string"}}},{"type":"null"}],"example":{"build":["0b7f2c1e-1c2d-4e5f-8a9b-0c1d2e3f4a5b"]},"description":"Session message uuids the verifier cited per check, keyed by check slug. Null when the run's checklist was recorded without evidence."},"report":{"type":"object","properties":{"slug":{"type":"string"},"timestamp":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["slug","timestamp"],"additionalProperties":false},"checkDescriptions":{"example":{"clerk-init-cli":"Uses `clerk init` CLI command to setup a project"},"description":"Description text for the keys in `checklist`, from the checks map the run's request was made with (its resolved snapshot), or, for requests older than that snapshot, the producing prompt's current checks map. Null when no custom checks are declared; absent when this response cannot name a single producing prompt. A key missing here is labelled by the verifier's default for that slug, else by the slug itself.","anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"string"},{"type":"null"}]}},{"type":"null"}]}},"required":["checklist","evidence","report"],"additionalProperties":false},{"type":"null"}],"description":"The verifier's per-check pass/fail map for this run, on every outcome — a goal-not-met run is graded too, and which check failed is usually why. Custom check descriptions come from the checks map the run's request was made with. Null when the verifier recorded no checklist."},"runType":{"anyOf":[{"type":"string","enum":["manual","automated"]},{"type":"null"}]},"status":{"type":"string","enum":["draft","published","archived"]},"harness":{"anyOf":[{"type":"string"},{"type":"null"}]},"hasSessionLog":{"type":"boolean"},"hasArtifact":{"type":"boolean"},"paid":{"type":"boolean"},"requestedBy":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["user","cron","admin"]},"id":{"anyOf":[{"type":"string"},{"type":"null"}]},"firstName":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastName":{"anyOf":[{"type":"string"},{"type":"null"}]},"photoUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"email":{"anyOf":[{"type":"string"},{"type":"null"}]},"triggerType":{"anyOf":[{"type":"string","enum":["manual","scheduled","pr","external"]},{"type":"null"}]}},"required":["kind","id","firstName","lastName","photoUrl","email","triggerType"],"additionalProperties":false},{"type":"null"}]}},"required":["slug","name","timestamp","metrics","timeline","frictionPoints","recommendations","providerMeta","summary","toolCallBreakdown","competitiveComparison","counterfactuals","sessionHistory","keyFinding","legacy","outcome","nullNotice","reward","runType","status","harness","hasSessionLog","hasArtifact","paid","requestedBy"],"additionalProperties":false},"RunMetrics":{"type":"object","properties":{"time":{"type":"string"},"timeDetail":{"type":"string"},"errors":{"type":"number"},"errorsDetail":{"type":"string"},"toolCalls":{"type":"number"},"toolCallsDetail":{"type":"string"},"cost":{"type":"string"},"costDetail":{"type":"string"},"interruptions":{"type":"number"}},"required":["time","timeDetail","errors","errorsDetail","toolCalls","toolCallsDetail","cost","costDetail","interruptions"],"additionalProperties":false},"TimelineItem":{"type":"object","properties":{"label":{"type":"string"},"duration":{"type":"string"},"width":{"anyOf":[{"type":"number"},{"type":"null"}]},"color":{"type":"string"},"note":{"type":"string"}},"required":["label","duration","width","color"],"additionalProperties":false},"Recommendation":{"type":"object","properties":{"id":{"type":"string"},"effort":{"type":"string","enum":["low","medium","high","ongoing"]},"title":{"type":"string"},"desc":{"type":"string"},"estimatedImpact":{"type":"string"},"rawIndex":{"type":"number"},"source":{"default":null,"anyOf":[{"type":"object","properties":{"provider":{"type":"string","enum":["github.com","kapa.ai","twitter.com","reddit.com","2027.dev","agentcat.com"],"description":"Domain of the service the item came from: \"github.com\", \"kapa.ai\", \"twitter.com\", \"reddit.com\", \"2027.dev\" (agent-trace turns), or \"agentcat.com\" (agent-session telemetry / session replay).","example":"github.com"},"id":{"description":"Identifier of the upstream artifact (issue number, thread id, turn-N, …).","example":"1234","type":"string","minLength":1,"maxLength":256},"url":{"description":"Link to the upstream artifact.","example":"https://github.com/acme/app/issues/1234","type":"string","format":"uri"},"timestamp":{"description":"When the upstream artifact was created (ISO 8601).","example":"2026-07-01T12:00:00Z","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"}},"required":["provider"],"additionalProperties":false},{"type":"null"}]}},"required":["effort","title","desc"],"additionalProperties":false},"ProviderMeta":{"type":"object","properties":{"provider":{"type":"string"},"url":{"type":"string"},"category":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"sessionId":{"anyOf":[{"type":"string"},{"type":"null"}]},"model":{"type":"string"},"evalDate":{"type":"string"}},"required":["provider","url","category","tags","sessionId","model","evalDate"],"additionalProperties":false},"SummaryContent":{"type":"object","properties":{"headline":{"type":"string"},"paragraphs":{"type":"array","items":{"type":"string"}},"whatWeTested":{"type":"string"},"whatWentWell":{"type":"string"},"whatDidnt":{"type":"string"}},"required":["headline","paragraphs"],"additionalProperties":false},"ToolCallBreakdownItem":{"type":"object","properties":{"tool":{"type":"string"},"count":{"type":"number"}},"required":["tool","count"],"additionalProperties":false},"CompetitiveEntry":{"type":"object","properties":{"provider":{"type":"string"},"category":{"type":"string"},"time":{"type":"string"},"toolCalls":{"type":"number"},"errors":{"type":"number"},"interruptions":{"type":"number"},"discoverability":{"type":"string"}},"required":["provider"],"additionalProperties":false},"Counterfactual":{"type":"object","properties":{"condition":{"type":"string"},"estimatedResult":{"type":"string"}},"required":["condition","estimatedResult"],"additionalProperties":false},"SessionHistoryEntry":{"type":"object","properties":{"run":{"type":"string"},"interrupts":{"type":"number"},"toolCalls":{"type":"number"},"cost":{"type":"string"},"summary":{"type":"string"}},"required":["run","summary"],"additionalProperties":false},"SessionTrace":{"type":"object","properties":{"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The report slug, when this run has a published report. Null for a run that ended without one — use runId instead to re-fetch its trace."},"runId":{"type":"string","description":"The eval run this trace belongs to. Always populated — every run is linked to its eval_runs row."},"sessionRecorded":{"type":"boolean","description":"False when the run ended before the agent recorded a session (e.g. its setup command failed, or it was orphaned): turns is then empty — read failureReason, setupCommand and healthcheckLog (also on get_run) for why it stopped."},"failureReason":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Why a run that ended without a report failed (as on get_run). Null on a report's trace."},"totalTurns":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"showing":{"type":"object","properties":{"offset":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"limit":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["offset","limit","count"],"additionalProperties":false},"totalToolCalls":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"totalErrors":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"totalInterruptions":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"toolCounts":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"number"}},"turns":{"type":"array","items":{"$ref":"#/components/schemas/SessionTurn"}},"providerMeta":{"default":null,"anyOf":[{"$ref":"#/components/schemas/ProviderMeta"},{"type":"null"}]},"agentSessionId":{"anyOf":[{"type":"string"},{"type":"null"}]},"backend":{"anyOf":[{"type":"string","enum":["docker","e2b","daytona","eas"]},{"type":"null"}]},"harborJobName":{"anyOf":[{"type":"string"},{"type":"null"}]},"harborTaskName":{"anyOf":[{"type":"string"},{"type":"null"}]},"setupCommand":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Bash setup script resolved for this run; detected secrets are masked for all callers. Null when no setup was configured."},"healthcheckLog":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Verbatim output of this run's setup command. Null when no setup ran or no log was uploaded for the run."},"loginHints":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Persona instructions (loginHints) resolved for this run; detected secrets are masked for all callers. Null when none were configured."},"envNames":{"maxItems":50,"type":"array","items":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z_][A-Za-z0-9_]*$"},"description":"env KEY names only; values are never returned"},"checkEvidence":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"turns":{"type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"missing":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["turns","missing"],"additionalProperties":false}},{"type":"null"}],"description":"Per verifier check (the keys of the run's reward checklist), the `turns[].index` of the session turns the verifier cited as evidence, in citation order without repeats; `missing` counts cited lines that are not in this session's turns. Indexes count the whole session, not just the returned page, and with includeBrowser they count the merged browser screenshot turns too. Null when the run recorded no evidence (older runs, or no checklist)."}},"required":["slug","runId","sessionRecorded","failureReason","totalTurns","showing","totalToolCalls","totalErrors","totalInterruptions","toolCounts","turns","providerMeta","agentSessionId","backend","harborJobName","harborTaskName","setupCommand","healthcheckLog","loginHints","envNames","checkEvidence"],"additionalProperties":false},"SessionTurn":{"type":"object","properties":{"index":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"type":{"type":"string","enum":["user","assistant","interruption","system","screenshot","meta"]},"content":{"type":"array","items":{"$ref":"#/components/schemas/SessionContentBlock"}},"hasError":{"type":"boolean"},"toolNames":{"type":"array","items":{"type":"string"}},"timestamp":{"type":"string"},"durationMs":{"type":"number"},"gapAfterMs":{"type":"number"},"questionAnswer":{"type":"boolean","const":true}},"required":["index","type","content","hasError","toolNames"],"additionalProperties":false},"SessionContentBlock":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"text"},"text":{"type":"string"}},"required":["type","text"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"thinking"},"thinking":{"type":"string"}},"required":["type","thinking"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"command"},"text":{"type":"string"}},"required":["type","text"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"question_answer"},"questions":{"type":"array","items":{"type":"object","properties":{"question":{"type":"string"},"options":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"selected":{"type":"boolean"}},"required":["label","selected"],"additionalProperties":false}},"typed":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["question","options","typed"],"additionalProperties":false}}},"required":["type","questions"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"tool_use"},"toolName":{"type":"string"},"toolInput":{"anyOf":[{"type":"string"},{"type":"null"}]},"toolUseId":{"anyOf":[{"type":"string"},{"type":"null"}]},"toolResult":{"anyOf":[{"$ref":"#/components/schemas/SessionToolUseResult"},{"type":"null"}]}},"required":["type","toolName","toolInput","toolUseId","toolResult"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"screenshot"},"screenshotUrl":{"type":"string"},"screenshotStep":{"type":"number"},"screenshotThinking":{"anyOf":[{"type":"string"},{"type":"null"}]},"screenshotAction":{"anyOf":[{"type":"string"},{"type":"null"}]},"screenshotPageUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"text":{"type":"string"}},"required":["type","screenshotUrl","screenshotStep","screenshotThinking","screenshotAction","screenshotPageUrl","text"],"additionalProperties":false}],"type":"object"},"SessionToolUseResult":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"user_answer"},"text":{"type":"string","minLength":1},"isError":{"type":"boolean","const":false}},"required":["kind","text","isError"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"text"},"text":{"type":"string"},"isError":{"type":"boolean"},"images":{"type":"array","items":{"type":"object","properties":{"mediaType":{"anyOf":[{"type":"string"},{"type":"null"}]},"bytes":{"anyOf":[{"type":"number"},{"type":"null"}]},"url":{"anyOf":[{"type":"string"},{"type":"null"}]},"dimensions":{"anyOf":[{"type":"object","properties":{"originalWidth":{"type":"number"},"originalHeight":{"type":"number"},"displayWidth":{"type":"number"},"displayHeight":{"type":"number"}},"required":["originalWidth","originalHeight","displayWidth","displayHeight"],"additionalProperties":false},{"type":"null"}]}},"required":["mediaType","bytes","url","dimensions"],"additionalProperties":false}}},"required":["kind","text","isError","images"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"http"},"text":{"type":"string"},"isError":{"type":"boolean"},"httpStatus":{"type":"number"},"httpStatusText":{"anyOf":[{"type":"string"},{"type":"null"}]},"bytes":{"anyOf":[{"type":"number"},{"type":"null"}]},"fetchDurationMs":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["kind","text","isError","httpStatus","httpStatusText","bytes","fetchDurationMs"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"tool_search"},"isError":{"type":"boolean"},"loadedTools":{"minItems":1,"type":"array","items":{"type":"string"}}},"required":["kind","isError","loadedTools"],"additionalProperties":false}],"type":"object"},"CancelRunResponse":{"type":"object","properties":{"runId":{"type":"string"},"status":{"type":"string","const":"failed"},"failureReason":{"type":"string","const":"cancelled"}},"required":["runId","status","failureReason"],"additionalProperties":false},"FetchedUrls":{"type":"object","properties":{"urls":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string"},"totalHits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"statusCounts":{"type":"array","items":{"type":"object","properties":{"status":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"HTTP status; null when the trace recorded none"},"hits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["status","hits"],"additionalProperties":false}},"runs":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string","description":"report slug of the run"},"name":{"type":"string"},"timestamp":{"format":"date-time","type":"string"},"hits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"statusCounts":{"type":"array","items":{"type":"object","properties":{"status":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"HTTP status; null when the trace recorded none"},"hits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["status","hits"],"additionalProperties":false},"description":"empty for searches (no HTTP status)"},"firstTurn":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"earliest turn index of the call in the run's trace"},"goalMet":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"null when the judge could not call it"},"prompts":{"type":"array","items":{"type":"object","properties":{"promptId":{"type":"string"},"promptTitle":{"type":"string"}},"required":["promptId","promptTitle"],"additionalProperties":false},"description":"every prompt linked to the run; empty when unlinked"}},"required":["slug","name","timestamp","hits","statusCounts","firstTurn","goalMet","prompts"],"additionalProperties":false}}},"required":["url","totalHits","statusCounts","runs"],"additionalProperties":false}},"urlCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"urls matching before the limit"},"searches":{"type":"array","items":{"type":"object","properties":{"query":{"type":"string"},"totalHits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"runs":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string","description":"report slug of the run"},"name":{"type":"string"},"timestamp":{"format":"date-time","type":"string"},"hits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"statusCounts":{"type":"array","items":{"type":"object","properties":{"status":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"HTTP status; null when the trace recorded none"},"hits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["status","hits"],"additionalProperties":false},"description":"empty for searches (no HTTP status)"},"firstTurn":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"earliest turn index of the call in the run's trace"},"goalMet":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"null when the judge could not call it"},"prompts":{"type":"array","items":{"type":"object","properties":{"promptId":{"type":"string"},"promptTitle":{"type":"string"}},"required":["promptId","promptTitle"],"additionalProperties":false},"description":"every prompt linked to the run; empty when unlinked"}},"required":["slug","name","timestamp","hits","statusCounts","firstTurn","goalMet","prompts"],"additionalProperties":false}}},"required":["query","totalHits","runs"],"additionalProperties":false}},"searchCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"searches matching before the limit"},"mcpCalls":{"type":"array","items":{"type":"object","properties":{"server":{"type":"string"},"tool":{"type":"string"},"inputKeys":{"type":"array","items":{"type":"string"}},"totalCalls":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"successCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"errorCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"unknownCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"runs":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string","description":"report slug of the run"},"name":{"type":"string"},"timestamp":{"format":"date-time","type":"string"},"hits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"statusCounts":{"type":"array","items":{"type":"object","properties":{"status":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"HTTP status; null when the trace recorded none"},"hits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["status","hits"],"additionalProperties":false},"description":"empty for searches (no HTTP status)"},"firstTurn":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"earliest turn index of the call in the run's trace"},"goalMet":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"null when the judge could not call it"},"prompts":{"type":"array","items":{"type":"object","properties":{"promptId":{"type":"string"},"promptTitle":{"type":"string"}},"required":["promptId","promptTitle"],"additionalProperties":false},"description":"every prompt linked to the run; empty when unlinked"},"successCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"errorCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"unknownCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"calls with no tool_result in the trace"}},"required":["slug","name","timestamp","hits","statusCounts","firstTurn","goalMet","prompts","successCount","errorCount","unknownCount"],"additionalProperties":false}}},"required":["server","tool","inputKeys","totalCalls","successCount","errorCount","unknownCount","runs"],"additionalProperties":false}},"mcpCallCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"mcp tools matching before the limit"},"cliCalls":{"type":"array","items":{"type":"object","properties":{"binary":{"type":"string"},"subcommand":{"anyOf":[{"type":"string"},{"type":"null"}]},"flags":{"type":"array","items":{"type":"string"}},"totalCalls":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"successCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"errorCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"unknownCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"runs":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string","description":"report slug of the run"},"name":{"type":"string"},"timestamp":{"format":"date-time","type":"string"},"hits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"statusCounts":{"type":"array","items":{"type":"object","properties":{"status":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"HTTP status; null when the trace recorded none"},"hits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["status","hits"],"additionalProperties":false},"description":"empty for searches (no HTTP status)"},"firstTurn":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"earliest turn index of the call in the run's trace"},"goalMet":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"null when the judge could not call it"},"prompts":{"type":"array","items":{"type":"object","properties":{"promptId":{"type":"string"},"promptTitle":{"type":"string"}},"required":["promptId","promptTitle"],"additionalProperties":false},"description":"every prompt linked to the run; empty when unlinked"},"successCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"errorCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"unknownCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"calls with no tool_result in the trace"},"command":{"type":"object","properties":{"text":{"type":"string"},"spans":{"type":"array","items":{"type":"array","prefixItems":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}]}}},"required":["text","spans"],"additionalProperties":false}},"required":["slug","name","timestamp","hits","statusCounts","firstTurn","goalMet","prompts","successCount","errorCount","unknownCount","command"],"additionalProperties":false}}},"required":["binary","subcommand","flags","totalCalls","successCount","errorCount","unknownCount","runs"],"additionalProperties":false}},"cliCallCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"cli commands matching before the limit"},"fileAccess":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"totalHits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"ops":{"type":"object","properties":{"read":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"write":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"edit":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["read","write","edit"],"additionalProperties":false},"successCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"errorCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"unknownCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"variants":{"type":"array","items":{"type":"object","properties":{"hash":{"type":"string"},"bytes":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"lines":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"preview":{"type":"string"},"masked":{"type":"boolean"},"op":{"type":"string","enum":["read","write","edit"]},"range":{"anyOf":[{"type":"object","properties":{"offset":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"limit":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]}},"required":["offset","limit"],"additionalProperties":false},{"type":"null"}]},"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["hash","bytes","lines","preview","masked","op","range","count"],"additionalProperties":false}},"images":{"type":"array","items":{"type":"object","properties":{"mediaType":{"anyOf":[{"type":"string"},{"type":"null"}]},"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["mediaType","count"],"additionalProperties":false}},"errors":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["message","count"],"additionalProperties":false}},"unrecorded":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"shape":{"type":"object","properties":{"whole":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"ranged":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["whole","ranged"],"additionalProperties":false},"topRange":{"anyOf":[{"type":"object","properties":{"offset":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"limit":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["offset","limit","count"],"additionalProperties":false},{"type":"null"}]},"turnMedian":{"anyOf":[{"type":"number"},{"type":"null"}]},"editedAfterRead":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"runs":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string","description":"report slug of the run"},"name":{"type":"string"},"timestamp":{"format":"date-time","type":"string"},"hits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"statusCounts":{"type":"array","items":{"type":"object","properties":{"status":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"HTTP status; null when the trace recorded none"},"hits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["status","hits"],"additionalProperties":false},"description":"empty for searches (no HTTP status)"},"firstTurn":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"earliest turn index of the call in the run's trace"},"goalMet":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"null when the judge could not call it"},"prompts":{"type":"array","items":{"type":"object","properties":{"promptId":{"type":"string"},"promptTitle":{"type":"string"}},"required":["promptId","promptTitle"],"additionalProperties":false},"description":"every prompt linked to the run; empty when unlinked"},"successCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"errorCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"unknownCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"calls with no tool_result in the trace"},"ops":{"type":"object","properties":{"read":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"write":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"edit":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["read","write","edit"],"additionalProperties":false},"results":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"content"},"hash":{"type":"string"},"op":{"type":"string","enum":["read","write","edit"]},"range":{"anyOf":[{"type":"object","properties":{"offset":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"limit":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]}},"required":["offset","limit"],"additionalProperties":false},{"type":"null"}]},"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["kind","hash","op","range","count"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"image"},"mediaType":{"anyOf":[{"type":"string"},{"type":"null"}]},"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["kind","mediaType","count"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"error"},"message":{"type":"string"},"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["kind","message","count"],"additionalProperties":false}],"type":"object"}},"ranges":{"type":"array","items":{"type":"object","properties":{"offset":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"limit":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["offset","limit","count"],"additionalProperties":false}},"turns":{"type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"editedAfterRead":{"type":"boolean"},"perOp":{"type":"object","properties":{"read":{"type":"object","properties":{"hits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"successCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"errorCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"unknownCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"results":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"content"},"hash":{"type":"string"},"op":{"type":"string","enum":["read","write","edit"]},"range":{"anyOf":[{"type":"object","properties":{"offset":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"limit":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]}},"required":["offset","limit"],"additionalProperties":false},{"type":"null"}]},"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["kind","hash","op","range","count"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"image"},"mediaType":{"anyOf":[{"type":"string"},{"type":"null"}]},"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["kind","mediaType","count"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"error"},"message":{"type":"string"},"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["kind","message","count"],"additionalProperties":false}],"type":"object"}},"ranges":{"type":"array","items":{"type":"object","properties":{"offset":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"limit":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["offset","limit","count"],"additionalProperties":false}},"turns":{"type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}}},"required":["hits","successCount","errorCount","unknownCount","results","ranges","turns"],"additionalProperties":false},"write":{"type":"object","properties":{"hits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"successCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"errorCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"unknownCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"results":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"content"},"hash":{"type":"string"},"op":{"type":"string","enum":["read","write","edit"]},"range":{"anyOf":[{"type":"object","properties":{"offset":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"limit":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]}},"required":["offset","limit"],"additionalProperties":false},{"type":"null"}]},"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["kind","hash","op","range","count"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"image"},"mediaType":{"anyOf":[{"type":"string"},{"type":"null"}]},"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["kind","mediaType","count"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"error"},"message":{"type":"string"},"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["kind","message","count"],"additionalProperties":false}],"type":"object"}},"ranges":{"type":"array","items":{"type":"object","properties":{"offset":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"limit":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["offset","limit","count"],"additionalProperties":false}},"turns":{"type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}}},"required":["hits","successCount","errorCount","unknownCount","results","ranges","turns"],"additionalProperties":false},"edit":{"type":"object","properties":{"hits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"successCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"errorCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"unknownCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"results":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"content"},"hash":{"type":"string"},"op":{"type":"string","enum":["read","write","edit"]},"range":{"anyOf":[{"type":"object","properties":{"offset":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"limit":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]}},"required":["offset","limit"],"additionalProperties":false},{"type":"null"}]},"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["kind","hash","op","range","count"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"image"},"mediaType":{"anyOf":[{"type":"string"},{"type":"null"}]},"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["kind","mediaType","count"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"error"},"message":{"type":"string"},"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["kind","message","count"],"additionalProperties":false}],"type":"object"}},"ranges":{"type":"array","items":{"type":"object","properties":{"offset":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"limit":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["offset","limit","count"],"additionalProperties":false}},"turns":{"type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}}},"required":["hits","successCount","errorCount","unknownCount","results","ranges","turns"],"additionalProperties":false}},"additionalProperties":false}},"required":["slug","name","timestamp","hits","statusCounts","firstTurn","goalMet","prompts","successCount","errorCount","unknownCount","ops","results","ranges","turns","editedAfterRead","perOp"],"additionalProperties":false}}},"required":["path","totalHits","ops","successCount","errorCount","unknownCount","variants","images","errors","unrecorded","shape","topRange","turnMedian","editedAfterRead","runs"],"additionalProperties":false}},"fileAccessCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"file paths matching before the limit"},"providerDomains":{"type":"array","items":{"type":"string"},"description":"hosts the org's provider owns"},"totalRuns":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"org runs considered, before the prompt filter"},"runsWithTrace":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"runsWithoutFetches":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"readable traces with no non-loopback fetch"},"failedSlugs":{"type":"array","items":{"type":"string"},"description":"runs whose trace could not be read"}},"required":["urls","urlCount","searches","searchCount","mcpCalls","mcpCallCount","cliCalls","cliCallCount","fileAccess","fileAccessCount","providerDomains","totalRuns","runsWithTrace","runsWithoutFetches","failedSlugs"],"additionalProperties":false},"Comment":{"type":"object","properties":{"id":{"type":"string"},"body":{"type":"string"},"authorKind":{"type":"string","enum":["org","user","assistant","staff"]},"author":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"email":{"type":"string"},"firstName":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastName":{"anyOf":[{"type":"string"},{"type":"null"}]},"profilePictureUrl":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","email","firstName","lastName","profilePictureUrl"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","body","authorKind","author","createdAt","updatedAt"],"additionalProperties":false},"Insight":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"content":{"type":"string"},"effort":{"anyOf":[{"type":"string","enum":["low","medium","high","ongoing"]},{"type":"null"}]},"estimatedImpact":{"anyOf":[{"type":"string"},{"type":"null"}]},"status":{"type":"string","enum":["open","accepted","dismissed","fixed"]},"sortOrder":{"type":"number"},"assigneeKind":{"anyOf":[{"type":"string","enum":["user","org"]},{"type":"null"}]},"assigneeRef":{"anyOf":[{"type":"string"},{"type":"null"}]},"sourceRunSlug":{"anyOf":[{"type":"string"},{"type":"null"}]},"source":{"default":null,"anyOf":[{"type":"object","properties":{"provider":{"type":"string","enum":["github.com","kapa.ai","twitter.com","reddit.com","2027.dev","agentcat.com"],"description":"Domain of the service the item came from: \"github.com\", \"kapa.ai\", \"twitter.com\", \"reddit.com\", \"2027.dev\" (agent-trace turns), or \"agentcat.com\" (agent-session telemetry / session replay).","example":"github.com"},"id":{"description":"Identifier of the upstream artifact (issue number, thread id, turn-N, …).","example":"1234","type":"string","minLength":1,"maxLength":256},"url":{"description":"Link to the upstream artifact.","example":"https://github.com/acme/app/issues/1234","type":"string","format":"uri"},"timestamp":{"description":"When the upstream artifact was created (ISO 8601).","example":"2026-07-01T12:00:00Z","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"}},"required":["provider"],"additionalProperties":false},{"type":"null"}]},"createdBy":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","example":"2026-03-01T12:34:56.000Z"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","example":"2026-03-01T12:34:56.000Z"},"sourcePromptTitle":{"type":"string"},"sourcePromptId":{"description":"the source run's prompt id","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"sourceDate":{"example":"2026-03-01T12:34:56.000Z","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"duplicateCount":{"type":"number"},"sources":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string"},"date":{"type":"string"},"title":{"type":"string"}},"required":["slug"],"additionalProperties":false}},"variants":{"description":"original titles of rows folded into this card","type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"slug":{"type":"string"},"date":{"type":"string"}},"required":["title"],"additionalProperties":false}},"comments":{"type":"array","items":{"$ref":"#/components/schemas/Comment"}}},"required":["id","title","content","effort","estimatedImpact","status","sortOrder","assigneeKind","assigneeRef","sourceRunSlug","source","createdBy","createdAt","updatedAt","comments"],"additionalProperties":false},"Feedback":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"status":{"type":"string"},"createdAt":{"type":"string"}},"required":["id","title","status","createdAt"],"additionalProperties":false},"FeedbackItem":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"body":{"type":"string"},"meta":{"anyOf":[{"type":"object","properties":{"agent":{"type":"string"},"model":{"type":"string"},"os":{"type":"string"},"nodeVersion":{"type":"string"},"cliVersion":{"type":"string"},"feedbackType":{"type":"string","enum":["bug","feature_request","feedback"]}},"additionalProperties":false},{"type":"null"}],"description":"what the filing agent reported about itself and its environment"},"status":{"type":"string","enum":["open","acknowledged","resolved","spam"]},"createdAt":{"format":"date-time","type":"string"}},"required":["id","title","body","meta","status","createdAt"],"additionalProperties":false},"FeedbackDetail":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"body":{"type":"string"},"meta":{"anyOf":[{"type":"object","properties":{"agent":{"type":"string"},"model":{"type":"string"},"os":{"type":"string"},"nodeVersion":{"type":"string"},"cliVersion":{"type":"string"},"feedbackType":{"type":"string","enum":["bug","feature_request","feedback"]}},"additionalProperties":false},{"type":"null"}],"description":"what the filing agent reported about itself and its environment"},"status":{"type":"string","enum":["open","acknowledged","resolved","spam"]},"createdAt":{"format":"date-time","type":"string"},"orgDomain":{"type":"string"},"providerId":{"type":"string"},"updatedAt":{"format":"date-time","type":"string"},"acknowledgedBy":{"anyOf":[{"type":"string"},{"type":"null"}]},"acknowledgedAt":{"anyOf":[{"type":"string"},{"type":"null"}],"format":"date-time"},"resolvedBy":{"anyOf":[{"type":"string"},{"type":"null"}]},"resolvedAt":{"anyOf":[{"type":"string"},{"type":"null"}],"format":"date-time"}},"required":["id","title","body","meta","status","createdAt","orgDomain","providerId","updatedAt","acknowledgedBy","acknowledgedAt","resolvedBy","resolvedAt"],"additionalProperties":false},"UpdatedFeedback":{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string","enum":["open","acknowledged","resolved","spam"]},"updatedAt":{"format":"date-time","type":"string"}},"required":["id","status","updatedAt"],"additionalProperties":false},"Competitor":{"type":"object","properties":{"providerId":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"url":{"type":"string"},"category":{"anyOf":[{"type":"string"},{"type":"null"}]},"targetedBy":{"type":"array","items":{"type":"object","properties":{"promptId":{"type":"string","description":"the parent (benchmark) prompt id"},"subPromptId":{"type":"string","description":"the competitor sub-prompt (lane) id"},"promptTitle":{"type":"string","description":"the parent prompt title"},"loginHintsSet":{"type":"boolean","description":"whether persona instructions (loginHints) apply to this lane (lane-scoped or provider-wide)"}},"required":["promptId","subPromptId","promptTitle","loginHintsSet"],"additionalProperties":false}}},"required":["providerId","slug","name","url","category","targetedBy"],"additionalProperties":false},"Provider":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"canonicalDomain":{"type":"string"},"domains":{"type":"array","items":{"type":"string"},"description":"every domain that resolves to this provider"}},"required":["id","name","canonicalDomain","domains"],"additionalProperties":false},"Credential":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"sensitive":{"type":"boolean"},"length":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"character count of the stored value"},"value":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"the stored value; null when sensitive"},"targetProviderId":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"provider this credential applies to; null = applies to all prompts"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","name","sensitive","length","value","targetProviderId","createdAt","updatedAt"],"additionalProperties":false},"RemoveCredentialResponse":{"type":"object","properties":{"credentialId":{"type":"string"},"removed":{"type":"boolean","const":true}},"required":["credentialId","removed"],"additionalProperties":false},"Brief":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"orgDomain":{"type":"string"},"title":{"anyOf":[{"type":"string"},{"type":"null"}]},"status":{"type":"string","enum":["draft","published","archived"]},"periodKind":{"type":"string","enum":["day","week","month","custom"]},"periodStart":{"type":"string"},"periodEnd":{"type":"string"},"scopedRunCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"published runs frozen into scope at create time"},"metrics":{"anyOf":[{"type":"object","properties":{"time":{"description":"average run time in ms","type":"number"},"cost":{"description":"average run cost in cents","type":"number"},"errors":{"type":"number"},"interruptions":{"type":"number"}},"additionalProperties":false},{"type":"null"}]},"createdBy":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","slug","orgDomain","title","status","periodKind","periodStart","periodEnd","scopedRunCount","metrics","createdBy","createdAt","updatedAt"],"additionalProperties":false},"BriefDetail":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"orgDomain":{"type":"string"},"title":{"anyOf":[{"type":"string"},{"type":"null"}]},"status":{"type":"string","enum":["draft","published","archived"]},"periodKind":{"type":"string","enum":["day","week","month","custom"]},"periodStart":{"type":"string"},"periodEnd":{"type":"string"},"scopedRunCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"published runs frozen into scope at create time"},"metrics":{"anyOf":[{"type":"object","properties":{"time":{"description":"average run time in ms","type":"number"},"cost":{"description":"average run cost in cents","type":"number"},"errors":{"type":"number"},"interruptions":{"type":"number"}},"additionalProperties":false},{"type":"null"}]},"createdBy":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"body":{"type":"string"},"version":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"the published version the body came from; null when it is the live draft"}},"required":["id","slug","orgDomain","title","status","periodKind","periodStart","periodEnd","scopedRunCount","metrics","createdBy","createdAt","updatedAt","body","version"],"additionalProperties":false},"BriefVersion":{"type":"object","properties":{"version":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"publishedAt":{"type":"string"},"publishedBy":{"type":"string"}},"required":["version","publishedAt","publishedBy"],"additionalProperties":false},"Whoami":{"type":"object","properties":{"email":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"the signed-in user's email; null when the caller has no user (an unattributed chat)"},"orgDomain":{"type":"string","description":"the org this caller acts for"},"provider":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"],"additionalProperties":false},{"type":"null"}],"description":"the org's provider; null when the org has none"},"isAdmin":{"type":"boolean","description":"whether the caller can read every org"},"auth":{"type":"string","enum":["api_key","session"],"description":"api_key: an API key or CLI login token; session: a dashboard or chat sign-in"}},"required":["email","orgDomain","provider","isAdmin","auth"],"additionalProperties":false},"Sandbox":{"type":"object","properties":{"sandboxId":{"type":"string","description":"pass it to run_command and remove_sandbox"}},"required":["sandboxId"],"additionalProperties":false},"CommandResult":{"type":"object","properties":{"exitCode":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"null when the command timed out"},"timedOut":{"type":"boolean","description":"true when the command ran past 120 seconds and was killed"},"stdout":{"type":"string","description":"the last 10000 bytes of stdout, decoded as UTF-8"},"stdoutLength":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"total bytes stdout produced"},"stderr":{"type":"string","description":"the last 10000 bytes of stderr, decoded as UTF-8"},"stderrLength":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"total bytes stderr produced"}},"required":["exitCode","timedOut","stdout","stdoutLength","stderr","stderrLength"],"additionalProperties":false},"RemoveSandboxResponse":{"type":"object","properties":{"sandboxId":{"type":"string"},"killed":{"type":"boolean"}},"required":["sandboxId","killed"],"additionalProperties":false},"RunRequest":{"type":"object","properties":{"urlMap":{"example":{"docs.acme.com":"https://preview-abc123.vercel.app"},"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string","format":"uri"}},"harnessModel":{"example":{"harness":"claude-code","model":"claude-opus-4-8"},"type":"object","properties":{"harness":{"type":"string"},"model":{"type":"string"}},"required":["harness","model"],"additionalProperties":false},"templateArgs":{"example":{"accountId":"acme-ci","scenario":"checkout"},"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string","maxLength":2000}},"scheduledAt":{"example":"2026-07-20T15:00:00.000Z","description":"Optional delay gate (strict ISO-8601 datetime with Z/offset). Queue should not claim until this time. Omitted = immediate.","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"}},"additionalProperties":false},"Error":{"type":"object","properties":{"error":{"type":"string"},"message":{"type":"string"},"code":{"type":"string"},"issues":{"type":"array","items":{}}},"required":["error","message","code"],"additionalProperties":false}},"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"API key from /<org>/settings"}}}}