{"openapi":"3.1.0","info":{"title":"AgentLeak","description":"Privacy-leakage testing for single-agent and multi-agent systems.","version":"0.10.0"},"paths":{"/api/auth/register":{"post":{"summary":"Register","operationId":"register_api_auth_register_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Payload"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Register Api Auth Register Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/agent/onboard":{"post":{"summary":"Agent Onboard","description":"One-call self-service onboarding for an autonomous agent.\n\nCreates the account, a project for the agent, and a self-test API key,\nand returns everything the agent needs to start the register → scan →\nimprove → status loop — no browser, no dashboard, no human. Throttled\nper IP (same guard as ``/api/auth/register``).\n\nBody: ``{\"email\", \"password\"?, \"agent_name\"?}``. A password is generated\nwhen omitted (the API key is the ongoing credential); it is returned\nonce so the human owner can also sign in to the dashboard later.","operationId":"agent_onboard_api_agent_onboard_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Payload"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Agent Onboard Api Agent Onboard Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/auth/login":{"post":{"summary":"Login","operationId":"login_api_auth_login_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Payload"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Login Api Auth Login Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/auth/logout":{"post":{"summary":"Logout","operationId":"logout_api_auth_logout_post","parameters":[{"name":"agentleak_session","in":"cookie","required":false,"schema":{"type":"string","default":"","title":"Agentleak Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Logout Api Auth Logout Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/auth/me":{"get":{"summary":"Me","operationId":"me_api_auth_me_get","parameters":[{"name":"agentleak_session","in":"cookie","required":false,"schema":{"type":"string","default":"","title":"Agentleak Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Me Api Auth Me Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"summary":"Update Me","description":"Self-service profile update (display name).","operationId":"update_me_api_auth_me_patch","parameters":[{"name":"agentleak_session","in":"cookie","required":false,"schema":{"type":"string","default":"","title":"Agentleak Session"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Payload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Update Me Api Auth Me Patch"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/auth/change-password":{"post":{"summary":"Change Password","description":"Change the signed-in user's own password.\n\nRequires the current password. Revokes every session (including the\ncaller's) so the browser must sign in again with the new password.","operationId":"change_password_api_auth_change_password_post","parameters":[{"name":"agentleak_session","in":"cookie","required":false,"schema":{"type":"string","default":"","title":"Agentleak Session"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Payload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Change Password Api Auth Change Password Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/auth/model-key":{"get":{"summary":"Get Model Key","description":"The signed-in user's default model endpoint (key never returned).","operationId":"get_model_key_api_auth_model_key_get","parameters":[{"name":"agentleak_session","in":"cookie","required":false,"schema":{"type":"string","default":"","title":"Agentleak Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Model Key Api Auth Model Key Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Set Model Key","description":"Save the account's default model endpoint (OpenRouter, OpenAI, …).\n\nA blank ``api_key`` preserves the stored key. When only a key is\ngiven, OpenRouter defaults fill in the base URL and model so the\ntest core works out of the box.","operationId":"set_model_key_api_auth_model_key_post","parameters":[{"name":"agentleak_session","in":"cookie","required":false,"schema":{"type":"string","default":"","title":"Agentleak Session"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Payload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Set Model Key Api Auth Model Key Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Delete Model Key","description":"Clear the account's default model endpoint and key.","operationId":"delete_model_key_api_auth_model_key_delete","parameters":[{"name":"agentleak_session","in":"cookie","required":false,"schema":{"type":"string","default":"","title":"Agentleak Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Delete Model Key Api Auth Model Key Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/auth/delete-account":{"post":{"summary":"Delete Account","description":"Self-service account deletion — removes all owned projects/runs/scans.\n\nRequires the current password as confirmation. The platform's last\nadmin cannot delete their own account (it would lock out the console).","operationId":"delete_account_api_auth_delete_account_post","parameters":[{"name":"agentleak_session","in":"cookie","required":false,"schema":{"type":"string","default":"","title":"Agentleak Session"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Payload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Delete Account Api Auth Delete Account Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/health":{"get":{"summary":"Health","description":"Unauthenticated liveness probe for load balancers / orchestrators.","operationId":"health_api_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Health Api Health Get"}}}}}}},"/readyz":{"get":{"summary":"Readyz","description":"Readiness probe: confirms the datastore answers a trivial query.\n\nReturns 503 (not 200) when the DB is unreachable so an orchestrator\nholds traffic until the instance is truly serving.","operationId":"readyz_readyz_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/meta":{"get":{"summary":"Meta","operationId":"meta_api_meta_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Meta Api Meta Get"}}}}}}},"/api/schemas":{"get":{"summary":"Schemas Catalog","description":"List versioned JSON Schemas for every public AgentLeak document.","operationId":"schemas_catalog_api_schemas_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Schemas Catalog Api Schemas Get"}}}}}}},"/api/schemas/{name}":{"get":{"summary":"Schema Document","description":"Return one versioned JSON Schema by catalog name.","operationId":"schema_document_api_schemas__name__get","parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Schema Document Api Schemas  Name  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/limits":{"get":{"summary":"Get Limits","description":"The signed-in account's current free-tier usage and quota window.","operationId":"get_limits_api_limits_get","parameters":[{"name":"agentleak_session","in":"cookie","required":false,"schema":{"type":"string","default":"","title":"Agentleak Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Limits Api Limits Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/scenarios":{"get":{"summary":"Scenarios","description":"Unified library: built-in scenarios first, then the user's own.","operationId":"scenarios_api_scenarios_get","parameters":[{"name":"agentleak_session","in":"cookie","required":false,"schema":{"type":"string","default":"","title":"Agentleak Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Scenarios Api Scenarios Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Create Scenario","description":"Create a scenario from an uploaded object (trace / spec / ai4privacy / chat log).\n\nOptional ``name``/``domain``/``description``/``tags`` override the values\ninferred from the upload.","operationId":"create_scenario_api_scenarios_post","parameters":[{"name":"agentleak_session","in":"cookie","required":false,"schema":{"type":"string","default":"","title":"Agentleak Session"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Payload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Create Scenario Api Scenarios Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/scenarios/{scenario_id}":{"get":{"summary":"Get Scenario Detail","operationId":"get_scenario_detail_api_scenarios__scenario_id__get","parameters":[{"name":"scenario_id","in":"path","required":true,"schema":{"type":"string","title":"Scenario Id"}},{"name":"agentleak_session","in":"cookie","required":false,"schema":{"type":"string","default":"","title":"Agentleak Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Scenario Detail Api Scenarios  Scenario Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Delete Scenario","operationId":"delete_scenario_api_scenarios__scenario_id__delete","parameters":[{"name":"scenario_id","in":"path","required":true,"schema":{"type":"string","title":"Scenario Id"}},{"name":"agentleak_session","in":"cookie","required":false,"schema":{"type":"string","default":"","title":"Agentleak Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"boolean"},"title":"Response Delete Scenario Api Scenarios  Scenario Id  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/example/{scenario_id}":{"get":{"summary":"Example","description":"A scenario's trace (built-in or stored) — used to seed the playground.","operationId":"example_api_example__scenario_id__get","parameters":[{"name":"scenario_id","in":"path","required":true,"schema":{"type":"string","title":"Scenario Id"}},{"name":"agentleak_session","in":"cookie","required":false,"schema":{"type":"string","default":"","title":"Agentleak Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Example Api Example  Scenario Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/scenario-packs":{"get":{"summary":"Scenario Packs","operationId":"scenario_packs_api_scenario_packs_get","parameters":[{"name":"agentleak_session","in":"cookie","required":false,"schema":{"type":"string","default":"","title":"Agentleak Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Scenario Packs Api Scenario Packs Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/scenario-packs/{pack_id}/import":{"post":{"summary":"Import Pack","operationId":"import_pack_api_scenario_packs__pack_id__import_post","parameters":[{"name":"pack_id","in":"path","required":true,"schema":{"type":"string","title":"Pack Id"}},{"name":"agentleak_session","in":"cookie","required":false,"schema":{"type":"string","default":"","title":"Agentleak Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Import Pack Api Scenario Packs  Pack Id  Import Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/stats":{"get":{"summary":"Stats","operationId":"stats_api_stats_get","parameters":[{"name":"agentleak_session","in":"cookie","required":false,"schema":{"type":"string","default":"","title":"Agentleak Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Stats Api Stats Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/leaderboard":{"get":{"summary":"Leaderboard","description":"The user's agents ranked by their latest AgentRisk result.","operationId":"leaderboard_api_leaderboard_get","parameters":[{"name":"agentleak_session","in":"cookie","required":false,"schema":{"type":"string","default":"","title":"Agentleak Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Leaderboard Api Leaderboard Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/analyze":{"post":{"summary":"Analyze","operationId":"analyze_api_analyze_post","parameters":[{"name":"agentleak_session","in":"cookie","required":false,"schema":{"type":"string","default":"","title":"Agentleak Session"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Payload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/report/{fmt}":{"post":{"summary":"Report","operationId":"report_api_report__fmt__post","parameters":[{"name":"fmt","in":"path","required":true,"schema":{"type":"string","title":"Fmt"}},{"name":"agentleak_session","in":"cookie","required":false,"schema":{"type":"string","default":"","title":"Agentleak Session"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Payload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/render/{fmt}":{"post":{"summary":"Render Report","description":"Render an already-computed report dict (e.g. a stored run).","operationId":"render_report_api_render__fmt__post","parameters":[{"name":"fmt","in":"path","required":true,"schema":{"type":"string","title":"Fmt"}},{"name":"agentleak_session","in":"cookie","required":false,"schema":{"type":"string","default":"","title":"Agentleak Session"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Payload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/projects":{"get":{"summary":"List Projects","operationId":"list_projects_api_projects_get","parameters":[{"name":"agentleak_session","in":"cookie","required":false,"schema":{"type":"string","default":"","title":"Agentleak Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response List Projects Api Projects Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Create Project","operationId":"create_project_api_projects_post","parameters":[{"name":"agentleak_session","in":"cookie","required":false,"schema":{"type":"string","default":"","title":"Agentleak Session"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Payload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}],"title":"Response Create Project Api Projects Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/projects/{pid}":{"get":{"summary":"Get Project","operationId":"get_project_api_projects__pid__get","parameters":[{"name":"pid","in":"path","required":true,"schema":{"type":"string","title":"Pid"}},{"name":"agentleak_session","in":"cookie","required":false,"schema":{"type":"string","default":"","title":"Agentleak Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}],"title":"Response Get Project Api Projects  Pid  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"summary":"Update Project","operationId":"update_project_api_projects__pid__patch","parameters":[{"name":"pid","in":"path","required":true,"schema":{"type":"string","title":"Pid"}},{"name":"agentleak_session","in":"cookie","required":false,"schema":{"type":"string","default":"","title":"Agentleak Session"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Payload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}],"title":"Response Update Project Api Projects  Pid  Patch"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Delete Project","operationId":"delete_project_api_projects__pid__delete","parameters":[{"name":"pid","in":"path","required":true,"schema":{"type":"string","title":"Pid"}},{"name":"agentleak_session","in":"cookie","required":false,"schema":{"type":"string","default":"","title":"Agentleak Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"boolean"},"title":"Response Delete Project Api Projects  Pid  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/projects/{pid}/connect":{"get":{"summary":"Connect Snippet","operationId":"connect_snippet_api_projects__pid__connect_get","parameters":[{"name":"pid","in":"path","required":true,"schema":{"type":"string","title":"Pid"}},{"name":"agentleak_session","in":"cookie","required":false,"schema":{"type":"string","default":"","title":"Agentleak Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Connect Snippet Api Projects  Pid  Connect Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/projects/{pid}/api-key":{"post":{"summary":"Generate Api Key","description":"Generate (or rotate) the project's self-test API key.\n\nThe key is stored inside the project config as ``selftest_api_key``.\nIt is used by agents to POST to ``/api/selftest`` without a browser\nsession — ideal for CI pipelines and autonomous self-improvement loops.","operationId":"generate_api_key_api_projects__pid__api_key_post","parameters":[{"name":"pid","in":"path","required":true,"schema":{"type":"string","title":"Pid"}},{"name":"agentleak_session","in":"cookie","required":false,"schema":{"type":"string","default":"","title":"Agentleak Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"string"},"title":"Response Generate Api Key Api Projects  Pid  Api Key Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"summary":"Get Api Key","description":"Return the existing API key for the project (owner only).","operationId":"get_api_key_api_projects__pid__api_key_get","parameters":[{"name":"pid","in":"path","required":true,"schema":{"type":"string","title":"Pid"}},{"name":"agentleak_session","in":"cookie","required":false,"schema":{"type":"string","default":"","title":"Agentleak Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Api Key Api Projects  Pid  Api Key Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/selftest":{"post":{"summary":"Selftest","description":"Agent self-test endpoint.\n\nAccepts a trace (or ``scenario_id``) plus an API key and returns a\nfull analysis report enriched with ``remediation_hints`` — structured,\nmachine-readable code fixes the agent can act on autonomously.\n\nAuth: ``X-AgentLeak-Key: ak_...`` header *or* ``api_key`` in the body —\nthe header is preferred and matches every other agent endpoint.\n\nSaves the run to the linked project automatically so the owner can\ntrack progress in the platform UI.","operationId":"selftest_api_selftest_post","parameters":[{"name":"x-agentleak-key","in":"header","required":false,"schema":{"type":"string","default":"","title":"X-Agentleak-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Payload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Selftest Api Selftest Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/selftest-header":{"post":{"summary":"Selftest With Header","description":"Variant of /api/selftest that reads the key from the X-AgentLeak-Key header.","operationId":"selftest_with_header_api_selftest_header_post","parameters":[{"name":"x-agentleak-key","in":"header","required":false,"schema":{"type":"string","default":"","title":"X-Agentleak-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Payload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Selftest With Header Api Selftest Header Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/overview":{"get":{"summary":"Admin Overview","description":"Platform-wide stats across ALL accounts (admin only).","operationId":"admin_overview_api_admin_overview_get","parameters":[{"name":"agentleak_session","in":"cookie","required":false,"schema":{"type":"string","default":"","title":"Agentleak Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Admin Overview Api Admin Overview Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/users":{"get":{"summary":"Admin Users","description":"Every account with its project/run counts (admin only).","operationId":"admin_users_api_admin_users_get","parameters":[{"name":"agentleak_session","in":"cookie","required":false,"schema":{"type":"string","default":"","title":"Agentleak Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Admin Users Api Admin Users Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/users/{uid}":{"patch":{"summary":"Admin Update User","description":"Toggle the admin role or disable/enable an account.\n\nLockout guards: you cannot disable yourself, and the last remaining\nadmin cannot drop their own role.","operationId":"admin_update_user_api_admin_users__uid__patch","parameters":[{"name":"uid","in":"path","required":true,"schema":{"type":"string","title":"Uid"}},{"name":"agentleak_session","in":"cookie","required":false,"schema":{"type":"string","default":"","title":"Agentleak Session"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Payload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Admin Update User Api Admin Users  Uid  Patch"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Admin Delete User","description":"Delete an account and everything it owns (projects, runs, scans).","operationId":"admin_delete_user_api_admin_users__uid__delete","parameters":[{"name":"uid","in":"path","required":true,"schema":{"type":"string","title":"Uid"}},{"name":"agentleak_session","in":"cookie","required":false,"schema":{"type":"string","default":"","title":"Agentleak Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"boolean"},"title":"Response Admin Delete User Api Admin Users  Uid  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/audit-log":{"get":{"summary":"Admin Audit Log","description":"Immutable trail of admin actions (promotions, disables, deletions).","operationId":"admin_audit_log_api_admin_audit_log_get","parameters":[{"name":"agentleak_session","in":"cookie","required":false,"schema":{"type":"string","default":"","title":"Agentleak Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Admin Audit Log Api Admin Audit Log Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/usage":{"get":{"summary":"Admin Usage","description":"Per-project monitoring for the console: runs executed, agent API\ncalls (\"consumption\"), results, and a 14-day daily activity series.","operationId":"admin_usage_api_admin_usage_get","parameters":[{"name":"agentleak_session","in":"cookie","required":false,"schema":{"type":"string","default":"","title":"Agentleak Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Admin Usage Api Admin Usage Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/projects/{pid}/agent-card":{"get":{"summary":"Get Agent Card","operationId":"get_agent_card_api_projects__pid__agent_card_get","parameters":[{"name":"pid","in":"path","required":true,"schema":{"type":"string","title":"Pid"}},{"name":"agentleak_session","in":"cookie","required":false,"schema":{"type":"string","default":"","title":"Agentleak Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Agent Card Api Projects  Pid  Agent Card Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"summary":"Put Agent Card","description":"Attach or replace the project's A2A-style agent card.","operationId":"put_agent_card_api_projects__pid__agent_card_put","parameters":[{"name":"pid","in":"path","required":true,"schema":{"type":"string","title":"Pid"}},{"name":"agentleak_session","in":"cookie","required":false,"schema":{"type":"string","default":"","title":"Agentleak Session"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Payload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Put Agent Card Api Projects  Pid  Agent Card Put"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Delete Agent Card","operationId":"delete_agent_card_api_projects__pid__agent_card_delete","parameters":[{"name":"pid","in":"path","required":true,"schema":{"type":"string","title":"Pid"}},{"name":"agentleak_session","in":"cookie","required":false,"schema":{"type":"string","default":"","title":"Agentleak Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"boolean"},"title":"Response Delete Agent Card Api Projects  Pid  Agent Card Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/projects/{pid}/agent-card/fetch":{"post":{"summary":"Fetch Card","description":"Fetch a card from a live agent's well-known endpoint and attach it.","operationId":"fetch_card_api_projects__pid__agent_card_fetch_post","parameters":[{"name":"pid","in":"path","required":true,"schema":{"type":"string","title":"Pid"}},{"name":"agentleak_session","in":"cookie","required":false,"schema":{"type":"string","default":"","title":"Agentleak Session"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Payload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Fetch Card Api Projects  Pid  Agent Card Fetch Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/projects/{pid}/code-scan":{"post":{"summary":"Create Code Scan","description":"Scan the agent's source code (github | zip | files) and store the result.","operationId":"create_code_scan_api_projects__pid__code_scan_post","parameters":[{"name":"pid","in":"path","required":true,"schema":{"type":"string","title":"Pid"}},{"name":"agentleak_session","in":"cookie","required":false,"schema":{"type":"string","default":"","title":"Agentleak Session"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Payload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Create Code Scan Api Projects  Pid  Code Scan Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/projects/{pid}/code-scans":{"get":{"summary":"List Code Scans","operationId":"list_code_scans_api_projects__pid__code_scans_get","parameters":[{"name":"pid","in":"path","required":true,"schema":{"type":"string","title":"Pid"}},{"name":"agentleak_session","in":"cookie","required":false,"schema":{"type":"string","default":"","title":"Agentleak Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response List Code Scans Api Projects  Pid  Code Scans Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/code-scans/{sid}":{"get":{"summary":"Get Code Scan","operationId":"get_code_scan_api_code_scans__sid__get","parameters":[{"name":"sid","in":"path","required":true,"schema":{"type":"string","title":"Sid"}},{"name":"agentleak_session","in":"cookie","required":false,"schema":{"type":"string","default":"","title":"Agentleak Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Code Scan Api Code Scans  Sid  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/agent/register":{"post":{"summary":"Agent Register","description":"Self-registration: an agent upserts its own agent card.\n\nBody: ``{\"agent_card\": {...}}`` (Nasiko/A2A ``AgentCard.json`` format,\noptionally with ``source`` pointing at the agent's GitHub repo).","operationId":"agent_register_api_agent_register_post","parameters":[{"name":"x-agentleak-key","in":"header","required":false,"schema":{"type":"string","default":"","title":"X-Agentleak-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Payload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Agent Register Api Agent Register Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/agent/card":{"get":{"summary":"Agent Get Card","operationId":"agent_get_card_api_agent_card_get","parameters":[{"name":"x-agentleak-key","in":"header","required":false,"schema":{"type":"string","default":"","title":"X-Agentleak-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Agent Get Card Api Agent Card Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/agent/code":{"post":{"summary":"Agent Scan Code","description":"An agent submits its own source (github | zip | files) for a scan.\n\nWith an empty body, re-scans the source declared in the agent card.","operationId":"agent_scan_code_api_agent_code_post","parameters":[{"name":"x-agentleak-key","in":"header","required":false,"schema":{"type":"string","default":"","title":"X-Agentleak-Key"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Payload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Agent Scan Code Api Agent Code Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/agent/status":{"get":{"summary":"Agent Status","description":"One-call answer to “where do I stand?” for an autonomous agent.\n\nReturns the latest run summary, the score progression, the compliance\nposture of the last run, the latest code scan, and prioritised next\nsteps.","operationId":"agent_status_api_agent_status_get","parameters":[{"name":"x-agentleak-key","in":"header","required":false,"schema":{"type":"string","default":"","title":"X-Agentleak-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Agent Status Api Agent Status Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/agent/improve":{"post":{"summary":"Agent Improve","description":"Self-improvement loop step: analyze a trace, compare with the\nprevious run, and return prioritised next steps.\n\nSame body as /api/selftest (``trace`` or ``scenario_id``); the response\nadds ``delta`` (vs the previous run) and ``next_steps``.","operationId":"agent_improve_api_agent_improve_post","parameters":[{"name":"x-agentleak-key","in":"header","required":false,"schema":{"type":"string","default":"","title":"X-Agentleak-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Payload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Agent Improve Api Agent Improve Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/redteam/catalog":{"get":{"summary":"Redteam Catalog","description":"Return selectable vulnerabilities, delivery strategies, and presets.","operationId":"redteam_catalog_api_redteam_catalog_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Redteam Catalog Api Redteam Catalog Get"}}}}}}},"/api/redteam/plugins/{plugin_id}":{"get":{"summary":"Redteam Plugin","description":"Return one executable plugin through a stable public permalink.","operationId":"redteam_plugin_api_redteam_plugins__plugin_id__get","parameters":[{"name":"plugin_id","in":"path","required":true,"schema":{"type":"string","title":"Plugin Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Redteam Plugin Api Redteam Plugins  Plugin Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/projects/{pid}/redteam":{"post":{"summary":"Run Redteam","description":"Generate and run a red-team batch for a project.\n\nBody params (all optional):\n- ``vertical``: healthcare | finance | legal | hr | customer_support (default: healthcare)\n- ``n``: number of adversarial scenarios (default: 5, max: 20)\n- ``adversary_level``: A0 | A1 | A2 (default: A1)\n- ``attack_class``: specific class id e.g. \"F1.1\" (default: balanced batch)\n- ``plugins`` / ``plugin_preset``: Promptfoo-compatible vulnerability selection.\n- ``strategies`` / ``strategy_profile``: delivery variants applied to plugins.\n- ``mode``: ``auto`` (default) | ``live`` | ``scripted``. ``live`` runs a\n  real LLM agent against every scenario; ``scripted`` uses the offline\n  deterministic agent; ``auto`` goes live when an endpoint is configured.\n- ``base_url`` / ``model`` / ``api_key``: optional live-endpoint override.","operationId":"run_redteam_api_projects__pid__redteam_post","parameters":[{"name":"pid","in":"path","required":true,"schema":{"type":"string","title":"Pid"}},{"name":"agentleak_session","in":"cookie","required":false,"schema":{"type":"string","default":"","title":"Agentleak Session"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Payload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Run Redteam Api Projects  Pid  Redteam Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/projects/{pid}/agents":{"get":{"summary":"List Agents","operationId":"list_agents_api_projects__pid__agents_get","parameters":[{"name":"pid","in":"path","required":true,"schema":{"type":"string","title":"Pid"}},{"name":"agentleak_session","in":"cookie","required":false,"schema":{"type":"string","default":"","title":"Agentleak Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response List Agents Api Projects  Pid  Agents Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Add Agent","operationId":"add_agent_api_projects__pid__agents_post","parameters":[{"name":"pid","in":"path","required":true,"schema":{"type":"string","title":"Pid"}},{"name":"agentleak_session","in":"cookie","required":false,"schema":{"type":"string","default":"","title":"Agentleak Session"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Payload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}],"title":"Response Add Agent Api Projects  Pid  Agents Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/projects/{pid}/agents/{aid}":{"patch":{"summary":"Update Agent","operationId":"update_agent_api_projects__pid__agents__aid__patch","parameters":[{"name":"pid","in":"path","required":true,"schema":{"type":"string","title":"Pid"}},{"name":"aid","in":"path","required":true,"schema":{"type":"string","title":"Aid"}},{"name":"agentleak_session","in":"cookie","required":false,"schema":{"type":"string","default":"","title":"Agentleak Session"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Payload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}],"title":"Response Update Agent Api Projects  Pid  Agents  Aid  Patch"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Delete Agent","operationId":"delete_agent_api_projects__pid__agents__aid__delete","parameters":[{"name":"pid","in":"path","required":true,"schema":{"type":"string","title":"Pid"}},{"name":"aid","in":"path","required":true,"schema":{"type":"string","title":"Aid"}},{"name":"agentleak_session","in":"cookie","required":false,"schema":{"type":"string","default":"","title":"Agentleak Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}],"title":"Response Delete Agent Api Projects  Pid  Agents  Aid  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/projects/{pid}/model":{"get":{"summary":"Project Model","operationId":"project_model_api_projects__pid__model_get","parameters":[{"name":"pid","in":"path","required":true,"schema":{"type":"string","title":"Pid"}},{"name":"agentleak_session","in":"cookie","required":false,"schema":{"type":"string","default":"","title":"Agentleak Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Project Model Api Projects  Pid  Model Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/projects/{pid}/runs":{"get":{"summary":"List Runs","operationId":"list_runs_api_projects__pid__runs_get","parameters":[{"name":"pid","in":"path","required":true,"schema":{"type":"string","title":"Pid"}},{"name":"agentleak_session","in":"cookie","required":false,"schema":{"type":"string","default":"","title":"Agentleak Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response List Runs Api Projects  Pid  Runs Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Create Run","operationId":"create_run_api_projects__pid__runs_post","parameters":[{"name":"pid","in":"path","required":true,"schema":{"type":"string","title":"Pid"}},{"name":"agentleak_session","in":"cookie","required":false,"schema":{"type":"string","default":"","title":"Agentleak Session"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Payload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Create Run Api Projects  Pid  Runs Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/projects/{pid}/history":{"get":{"summary":"Run History","description":"Ordered run history for a project with per-run score deltas.\n\nReturns ``runs`` (oldest first) and aggregate ``progression`` stats:\nbest score, latest score, total improvement from first to last run.","operationId":"run_history_api_projects__pid__history_get","parameters":[{"name":"pid","in":"path","required":true,"schema":{"type":"string","title":"Pid"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Limit"}},{"name":"agentleak_session","in":"cookie","required":false,"schema":{"type":"string","default":"","title":"Agentleak Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Run History Api Projects  Pid  History Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/projects/{pid}/compare":{"get":{"summary":"Compare Runs","description":"Side-by-side comparison of two runs belonging to the same project.\n\nQuery params: ``a`` and ``b`` are run IDs.\nReturns ``run_a``, ``run_b``, and ``diff`` (score/RI/findings deltas +\nper-framework compliance changes).","operationId":"compare_runs_api_projects__pid__compare_get","parameters":[{"name":"pid","in":"path","required":true,"schema":{"type":"string","title":"Pid"}},{"name":"a","in":"query","required":true,"schema":{"type":"string","title":"A"}},{"name":"b","in":"query","required":true,"schema":{"type":"string","title":"B"}},{"name":"agentleak_session","in":"cookie","required":false,"schema":{"type":"string","default":"","title":"Agentleak Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Compare Runs Api Projects  Pid  Compare Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/projects/{pid}/execute":{"post":{"summary":"Execute Agent","description":"Run the project's agent against a scenario and store the captured run.","operationId":"execute_agent_api_projects__pid__execute_post","parameters":[{"name":"pid","in":"path","required":true,"schema":{"type":"string","title":"Pid"}},{"name":"agentleak_session","in":"cookie","required":false,"schema":{"type":"string","default":"","title":"Agentleak Session"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Payload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Execute Agent Api Projects  Pid  Execute Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/runs/{rid}":{"get":{"summary":"Get Run","operationId":"get_run_api_runs__rid__get","parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","title":"Rid"}},{"name":"agentleak_session","in":"cookie","required":false,"schema":{"type":"string","default":"","title":"Agentleak Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Run Api Runs  Rid  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Delete Run","operationId":"delete_run_api_runs__rid__delete","parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","title":"Rid"}},{"name":"agentleak_session","in":"cookie","required":false,"schema":{"type":"string","default":"","title":"Agentleak Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"boolean"},"title":"Response Delete Run Api Runs  Rid  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/compare":{"post":{"summary":"Compare","operationId":"compare_api_compare_post","parameters":[{"name":"agentleak_session","in":"cookie","required":false,"schema":{"type":"string","default":"","title":"Agentleak Session"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Payload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Compare Api Compare Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}