Updated
API v1 Reference
The /api/v1 surface is a curated, additive re-export of the existing API. Breaking changes will be introduced under a new major version.
Base URL:
https://app.lyrashieldai.com/api/v1. Authenticate with a workspace API key in the Authorization: Bearer <key> header.Download the OpenAPI 3.1 spec as JSON: openapi.json
OpenAPI 3.1 Specification
{
"openapi": "3.1.0",
"info": {
"title": "LyraShield AI API",
"version": "1.0.0",
"description": "Curated public v1 surface for scans, findings, targets, fix proposals, retests, reports, launch readiness, workspaces, schedules, and projects."
},
"servers": [
{
"url": "/api/v1",
"description": "Version 1 API root"
}
],
"security": [
{
"bearerAuth": []
}
],
"paths": {
"/scans": {
"get": {
"summary": "List scans",
"parameters": [
{
"name": "workspaceId",
"in": "query",
"required": true,
"description": "The workspace UUID the request operates on. Caller-supplied, not inferred from the API key. A key bound to workspace A is rejected for workspace B.",
"schema": {
"type": "string",
"minLength": 1
}
},
{
"name": "targetId",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "status",
"in": "query",
"required": false,
"schema": {
"type": "string",
"description": "Single status or comma-separated list"
}
},
{
"name": "cursor",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "limit",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "If-None-Match",
"in": "header",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "List of scans",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": true,
"description": "Request succeeded"
},
"data": {
"description": "Response payload"
}
},
"required": [
"success",
"data"
]
},
{
"type": "object",
"properties": {
"data": {
"allOf": [
{
"type": "object",
"properties": {
"items": {
"type": "array",
"description": "Page of results",
"items": {}
},
"nextCursor": {
"description": "Opaque cursor for the next page, or null on the last page",
"oneOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"total": {
"type": "integer",
"description": "Optional total count across all pages"
}
},
"required": [
"items",
"nextCursor"
]
},
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true,
"description": "See response examples"
}
}
},
"required": [
"items"
]
}
]
}
},
"required": [
"data"
]
}
]
}
}
}
},
"304": {
"description": "Not Modified",
"headers": {
"ETag": {
"schema": {
"type": "string"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"409": {
"description": "Conflict",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"429": {
"description": "Rate limited",
"headers": {
"Retry-After": {
"schema": {
"type": "string"
},
"description": "Seconds to wait before retrying"
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"500": {
"description": "Internal server error",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"503": {
"description": "Service temporarily unavailable",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
}
}
},
"post": {
"summary": "Create a scan",
"parameters": [
{
"name": "workspaceId",
"in": "query",
"required": true,
"description": "The workspace UUID the request operates on. Caller-supplied, not inferred from the API key. A key bound to workspace A is rejected for workspace B.",
"schema": {
"type": "string",
"minLength": 1
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateScan"
}
}
}
},
"responses": {
"201": {
"description": "Scan created",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": true,
"description": "Request succeeded"
},
"data": {
"description": "Response payload"
}
},
"required": [
"success",
"data"
]
},
{
"type": "object",
"properties": {
"data": {
"type": "object",
"additionalProperties": true,
"description": "See response examples"
}
},
"required": [
"data"
]
}
]
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"409": {
"description": "Conflict",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"429": {
"description": "Rate limited",
"headers": {
"Retry-After": {
"schema": {
"type": "string"
},
"description": "Seconds to wait before retrying"
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"500": {
"description": "Internal server error",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"503": {
"description": "Service temporarily unavailable",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
}
}
}
},
"/scans/{id}": {
"get": {
"summary": "Get a scan",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"description": "Resource UUID",
"schema": {
"type": "string",
"minLength": 1
}
},
{
"name": "workspaceId",
"in": "query",
"required": true,
"description": "The workspace UUID the request operates on. Caller-supplied, not inferred from the API key. A key bound to workspace A is rejected for workspace B.",
"schema": {
"type": "string",
"minLength": 1
}
},
{
"name": "If-None-Match",
"in": "header",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Scan details",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": true,
"description": "Request succeeded"
},
"data": {
"description": "Response payload"
}
},
"required": [
"success",
"data"
]
},
{
"type": "object",
"properties": {
"data": {
"type": "object",
"additionalProperties": true,
"description": "See response examples"
}
},
"required": [
"data"
]
}
]
}
}
}
},
"304": {
"description": "Not Modified",
"headers": {
"ETag": {
"schema": {
"type": "string"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"409": {
"description": "Conflict",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"429": {
"description": "Rate limited",
"headers": {
"Retry-After": {
"schema": {
"type": "string"
},
"description": "Seconds to wait before retrying"
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"500": {
"description": "Internal server error",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"503": {
"description": "Service temporarily unavailable",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
}
}
},
"post": {
"summary": "Cancel a scan",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"description": "Resource UUID",
"schema": {
"type": "string",
"minLength": 1
}
},
{
"name": "workspaceId",
"in": "query",
"required": true,
"description": "The workspace UUID the request operates on. Caller-supplied, not inferred from the API key. A key bound to workspace A is rejected for workspace B.",
"schema": {
"type": "string",
"minLength": 1
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"workspaceId": {
"type": "string"
}
},
"required": [
"workspaceId"
]
}
}
}
},
"responses": {
"200": {
"description": "Scan cancelled",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": true,
"description": "Request succeeded"
},
"data": {
"description": "Response payload"
}
},
"required": [
"success",
"data"
]
},
{
"type": "object",
"properties": {
"data": {
"type": "object",
"additionalProperties": true,
"description": "See response examples"
}
},
"required": [
"data"
]
}
]
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"409": {
"description": "Conflict",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"429": {
"description": "Rate limited",
"headers": {
"Retry-After": {
"schema": {
"type": "string"
},
"description": "Seconds to wait before retrying"
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"500": {
"description": "Internal server error",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"503": {
"description": "Service temporarily unavailable",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
}
}
}
},
"/findings": {
"get": {
"summary": "List findings",
"parameters": [
{
"name": "workspaceId",
"in": "query",
"required": true,
"description": "The workspace UUID the request operates on. Caller-supplied, not inferred from the API key. A key bound to workspace A is rejected for workspace B.",
"schema": {
"type": "string",
"minLength": 1
}
},
{
"name": "targetId",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "scanId",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "severity",
"in": "query",
"required": false,
"schema": {
"type": "string",
"enum": [
"INFO",
"LOW",
"MEDIUM",
"HIGH",
"CRITICAL"
]
}
},
{
"name": "status",
"in": "query",
"required": false,
"schema": {
"type": "string",
"enum": [
"OPEN",
"FIX_READY",
"PR_OPENED",
"TICKET_CREATED",
"FIXED_PENDING_RETEST",
"FIXED",
"ACCEPTED_RISK",
"FALSE_POSITIVE",
"DUPLICATE"
]
}
},
{
"name": "verified",
"in": "query",
"required": false,
"schema": {
"type": "string",
"enum": [
"true",
"false"
]
}
},
{
"name": "category",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "stats",
"in": "query",
"required": false,
"schema": {
"type": "string",
"enum": [
"true"
]
}
},
{
"name": "cursor",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "limit",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "List of findings",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": true,
"description": "Request succeeded"
},
"data": {
"description": "Response payload"
}
},
"required": [
"success",
"data"
]
},
{
"type": "object",
"properties": {
"data": {
"allOf": [
{
"type": "object",
"properties": {
"items": {
"type": "array",
"description": "Page of results",
"items": {}
},
"nextCursor": {
"description": "Opaque cursor for the next page, or null on the last page",
"oneOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"total": {
"type": "integer",
"description": "Optional total count across all pages"
}
},
"required": [
"items",
"nextCursor"
]
},
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true,
"description": "See response examples"
}
}
},
"required": [
"items"
]
}
]
}
},
"required": [
"data"
]
}
]
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"409": {
"description": "Conflict",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"429": {
"description": "Rate limited",
"headers": {
"Retry-After": {
"schema": {
"type": "string"
},
"description": "Seconds to wait before retrying"
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"500": {
"description": "Internal server error",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"503": {
"description": "Service temporarily unavailable",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
}
}
}
},
"/findings/{id}": {
"get": {
"summary": "Get a finding",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"description": "Resource UUID",
"schema": {
"type": "string",
"minLength": 1
}
},
{
"name": "workspaceId",
"in": "query",
"required": true,
"description": "The workspace UUID the request operates on. Caller-supplied, not inferred from the API key. A key bound to workspace A is rejected for workspace B.",
"schema": {
"type": "string",
"minLength": 1
}
}
],
"responses": {
"200": {
"description": "Finding details",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": true,
"description": "Request succeeded"
},
"data": {
"description": "Response payload"
}
},
"required": [
"success",
"data"
]
},
{
"type": "object",
"properties": {
"data": {
"type": "object",
"additionalProperties": true,
"description": "See response examples"
}
},
"required": [
"data"
]
}
]
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"409": {
"description": "Conflict",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"429": {
"description": "Rate limited",
"headers": {
"Retry-After": {
"schema": {
"type": "string"
},
"description": "Seconds to wait before retrying"
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"500": {
"description": "Internal server error",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"503": {
"description": "Service temporarily unavailable",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
}
}
},
"patch": {
"summary": "Update a finding",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"description": "Resource UUID",
"schema": {
"type": "string",
"minLength": 1
}
},
{
"name": "workspaceId",
"in": "query",
"required": true,
"description": "The workspace UUID the request operates on. Caller-supplied, not inferred from the API key. A key bound to workspace A is rejected for workspace B.",
"schema": {
"type": "string",
"minLength": 1
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PatchFinding"
}
}
}
},
"responses": {
"200": {
"description": "Finding updated",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": true,
"description": "Request succeeded"
},
"data": {
"description": "Response payload"
}
},
"required": [
"success",
"data"
]
},
{
"type": "object",
"properties": {
"data": {
"type": "object",
"additionalProperties": true,
"description": "See response examples"
}
},
"required": [
"data"
]
}
]
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"409": {
"description": "Conflict",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"429": {
"description": "Rate limited",
"headers": {
"Retry-After": {
"schema": {
"type": "string"
},
"description": "Seconds to wait before retrying"
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"500": {
"description": "Internal server error",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"503": {
"description": "Service temporarily unavailable",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
}
}
}
},
"/findings/{id}/fix-proposals": {
"post": {
"summary": "Create a fix proposal",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"description": "Resource UUID",
"schema": {
"type": "string",
"minLength": 1
}
},
{
"name": "workspaceId",
"in": "query",
"required": true,
"description": "The workspace UUID the request operates on. Caller-supplied, not inferred from the API key. A key bound to workspace A is rejected for workspace B.",
"schema": {
"type": "string",
"minLength": 1
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateFixProposal"
}
}
}
},
"responses": {
"200": {
"description": "Fix proposal created",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": true,
"description": "Request succeeded"
},
"data": {
"description": "Response payload"
}
},
"required": [
"success",
"data"
]
},
{
"type": "object",
"properties": {
"data": {
"type": "object",
"additionalProperties": true,
"description": "See response examples"
}
},
"required": [
"data"
]
}
]
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"409": {
"description": "Conflict",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"429": {
"description": "Rate limited",
"headers": {
"Retry-After": {
"schema": {
"type": "string"
},
"description": "Seconds to wait before retrying"
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"500": {
"description": "Internal server error",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"503": {
"description": "Service temporarily unavailable",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
}
}
}
},
"/findings/{id}/retests": {
"post": {
"summary": "Queue a retest",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"description": "Resource UUID",
"schema": {
"type": "string",
"minLength": 1
}
},
{
"name": "workspaceId",
"in": "query",
"required": true,
"description": "The workspace UUID the request operates on. Caller-supplied, not inferred from the API key. A key bound to workspace A is rejected for workspace B.",
"schema": {
"type": "string",
"minLength": 1
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateRetest"
}
}
}
},
"responses": {
"201": {
"description": "Retest queued",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": true,
"description": "Request succeeded"
},
"data": {
"description": "Response payload"
}
},
"required": [
"success",
"data"
]
},
{
"type": "object",
"properties": {
"data": {
"type": "object",
"additionalProperties": true,
"description": "See response examples"
}
},
"required": [
"data"
]
}
]
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"409": {
"description": "Conflict",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"429": {
"description": "Rate limited",
"headers": {
"Retry-After": {
"schema": {
"type": "string"
},
"description": "Seconds to wait before retrying"
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"500": {
"description": "Internal server error",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"503": {
"description": "Service temporarily unavailable",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
}
}
}
},
"/targets": {
"get": {
"summary": "List targets",
"parameters": [
{
"name": "workspaceId",
"in": "query",
"required": true,
"description": "The workspace UUID the request operates on. Caller-supplied, not inferred from the API key. A key bound to workspace A is rejected for workspace B.",
"schema": {
"type": "string",
"minLength": 1
}
},
{
"name": "projectId",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "cursor",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "limit",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "List of targets",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": true,
"description": "Request succeeded"
},
"data": {
"description": "Response payload"
}
},
"required": [
"success",
"data"
]
},
{
"type": "object",
"properties": {
"data": {
"allOf": [
{
"type": "object",
"properties": {
"items": {
"type": "array",
"description": "Page of results",
"items": {}
},
"nextCursor": {
"description": "Opaque cursor for the next page, or null on the last page",
"oneOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"total": {
"type": "integer",
"description": "Optional total count across all pages"
}
},
"required": [
"items",
"nextCursor"
]
},
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true,
"description": "See response examples"
}
}
},
"required": [
"items"
]
}
]
}
},
"required": [
"data"
]
}
]
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"409": {
"description": "Conflict",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"429": {
"description": "Rate limited",
"headers": {
"Retry-After": {
"schema": {
"type": "string"
},
"description": "Seconds to wait before retrying"
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"500": {
"description": "Internal server error",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"503": {
"description": "Service temporarily unavailable",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
}
}
},
"post": {
"summary": "Create a target",
"parameters": [
{
"name": "workspaceId",
"in": "query",
"required": true,
"description": "The workspace UUID the request operates on. Caller-supplied, not inferred from the API key. A key bound to workspace A is rejected for workspace B.",
"schema": {
"type": "string",
"minLength": 1
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"oneOf": [
{
"$ref": "#/components/schemas/CreateRepoTarget"
},
{
"$ref": "#/components/schemas/CreateUrlTarget"
}
]
}
}
}
},
"responses": {
"200": {
"description": "Target created",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": true,
"description": "Request succeeded"
},
"data": {
"description": "Response payload"
}
},
"required": [
"success",
"data"
]
},
{
"type": "object",
"properties": {
"data": {
"type": "object",
"additionalProperties": true,
"description": "See response examples"
}
},
"required": [
"data"
]
}
]
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"409": {
"description": "Conflict",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"429": {
"description": "Rate limited",
"headers": {
"Retry-After": {
"schema": {
"type": "string"
},
"description": "Seconds to wait before retrying"
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"500": {
"description": "Internal server error",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"503": {
"description": "Service temporarily unavailable",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
}
}
}
},
"/fix-proposals": {
"get": {
"summary": "List fix proposals",
"parameters": [
{
"name": "workspaceId",
"in": "query",
"required": true,
"description": "The workspace UUID the request operates on. Caller-supplied, not inferred from the API key. A key bound to workspace A is rejected for workspace B.",
"schema": {
"type": "string",
"minLength": 1
}
},
{
"name": "findingId",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "status",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "cursor",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "limit",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "List of fix proposals",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": true,
"description": "Request succeeded"
},
"data": {
"description": "Response payload"
}
},
"required": [
"success",
"data"
]
},
{
"type": "object",
"properties": {
"data": {
"allOf": [
{
"type": "object",
"properties": {
"items": {
"type": "array",
"description": "Page of results",
"items": {}
},
"nextCursor": {
"description": "Opaque cursor for the next page, or null on the last page",
"oneOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"total": {
"type": "integer",
"description": "Optional total count across all pages"
}
},
"required": [
"items",
"nextCursor"
]
},
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true,
"description": "See response examples"
}
}
},
"required": [
"items"
]
}
]
}
},
"required": [
"data"
]
}
]
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"409": {
"description": "Conflict",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"429": {
"description": "Rate limited",
"headers": {
"Retry-After": {
"schema": {
"type": "string"
},
"description": "Seconds to wait before retrying"
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"500": {
"description": "Internal server error",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"503": {
"description": "Service temporarily unavailable",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
}
}
}
},
"/fix-proposals/{id}/create-pr": {
"post": {
"summary": "Create a pull request",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"description": "Resource UUID",
"schema": {
"type": "string",
"minLength": 1
}
},
{
"name": "workspaceId",
"in": "query",
"required": true,
"description": "The workspace UUID the request operates on. Caller-supplied, not inferred from the API key. A key bound to workspace A is rejected for workspace B.",
"schema": {
"type": "string",
"minLength": 1
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreatePR"
}
}
}
},
"responses": {
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"409": {
"description": "Pull request creation is blocked pending server-generated patch evidence",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"429": {
"description": "Rate limited",
"headers": {
"Retry-After": {
"schema": {
"type": "string"
},
"description": "Seconds to wait before retrying"
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"500": {
"description": "Internal server error",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"503": {
"description": "Service temporarily unavailable",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
}
}
}
},
"/retests": {
"get": {
"summary": "List retests",
"parameters": [
{
"name": "workspaceId",
"in": "query",
"required": true,
"description": "The workspace UUID the request operates on. Caller-supplied, not inferred from the API key. A key bound to workspace A is rejected for workspace B.",
"schema": {
"type": "string",
"minLength": 1
}
},
{
"name": "findingId",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "status",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "cursor",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "limit",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "List of retests",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": true,
"description": "Request succeeded"
},
"data": {
"description": "Response payload"
}
},
"required": [
"success",
"data"
]
},
{
"type": "object",
"properties": {
"data": {
"allOf": [
{
"type": "object",
"properties": {
"items": {
"type": "array",
"description": "Page of results",
"items": {}
},
"nextCursor": {
"description": "Opaque cursor for the next page, or null on the last page",
"oneOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"total": {
"type": "integer",
"description": "Optional total count across all pages"
}
},
"required": [
"items",
"nextCursor"
]
},
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true,
"description": "See response examples"
}
}
},
"required": [
"items"
]
}
]
}
},
"required": [
"data"
]
}
]
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"409": {
"description": "Conflict",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"429": {
"description": "Rate limited",
"headers": {
"Retry-After": {
"schema": {
"type": "string"
},
"description": "Seconds to wait before retrying"
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"500": {
"description": "Internal server error",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"503": {
"description": "Service temporarily unavailable",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
}
}
}
},
"/reports": {
"get": {
"summary": "List reports",
"parameters": [
{
"name": "workspaceId",
"in": "query",
"required": true,
"description": "The workspace UUID the request operates on. Caller-supplied, not inferred from the API key. A key bound to workspace A is rejected for workspace B.",
"schema": {
"type": "string",
"minLength": 1
}
},
{
"name": "cursor",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "limit",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "List of reports",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": true,
"description": "Request succeeded"
},
"data": {
"description": "Response payload"
}
},
"required": [
"success",
"data"
]
},
{
"type": "object",
"properties": {
"data": {
"allOf": [
{
"type": "object",
"properties": {
"items": {
"type": "array",
"description": "Page of results",
"items": {}
},
"nextCursor": {
"description": "Opaque cursor for the next page, or null on the last page",
"oneOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"total": {
"type": "integer",
"description": "Optional total count across all pages"
}
},
"required": [
"items",
"nextCursor"
]
},
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true,
"description": "See response examples"
}
}
},
"required": [
"items"
]
}
]
}
},
"required": [
"data"
]
}
]
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"409": {
"description": "Conflict",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"429": {
"description": "Rate limited",
"headers": {
"Retry-After": {
"schema": {
"type": "string"
},
"description": "Seconds to wait before retrying"
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"500": {
"description": "Internal server error",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"503": {
"description": "Service temporarily unavailable",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
}
}
},
"post": {
"summary": "Create a report",
"parameters": [
{
"name": "workspaceId",
"in": "query",
"required": true,
"description": "The workspace UUID the request operates on. Caller-supplied, not inferred from the API key. A key bound to workspace A is rejected for workspace B.",
"schema": {
"type": "string",
"minLength": 1
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateReport"
}
}
}
},
"responses": {
"201": {
"description": "Report created",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": true,
"description": "Request succeeded"
},
"data": {
"description": "Response payload"
}
},
"required": [
"success",
"data"
]
},
{
"type": "object",
"properties": {
"data": {
"type": "object",
"additionalProperties": true,
"description": "See response examples"
}
},
"required": [
"data"
]
}
]
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"409": {
"description": "Conflict",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"429": {
"description": "Rate limited",
"headers": {
"Retry-After": {
"schema": {
"type": "string"
},
"description": "Seconds to wait before retrying"
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"500": {
"description": "Internal server error",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"503": {
"description": "Service temporarily unavailable",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
}
}
}
},
"/reports/{id}": {
"get": {
"summary": "Get a report",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"description": "Resource UUID",
"schema": {
"type": "string",
"minLength": 1
}
},
{
"name": "workspaceId",
"in": "query",
"required": true,
"description": "The workspace UUID the request operates on. Caller-supplied, not inferred from the API key. A key bound to workspace A is rejected for workspace B.",
"schema": {
"type": "string",
"minLength": 1
}
}
],
"responses": {
"200": {
"description": "Report details",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": true,
"description": "Request succeeded"
},
"data": {
"description": "Response payload"
}
},
"required": [
"success",
"data"
]
},
{
"type": "object",
"properties": {
"data": {
"type": "object",
"additionalProperties": true,
"description": "See response examples"
}
},
"required": [
"data"
]
}
]
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"409": {
"description": "Conflict",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"429": {
"description": "Rate limited",
"headers": {
"Retry-After": {
"schema": {
"type": "string"
},
"description": "Seconds to wait before retrying"
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"500": {
"description": "Internal server error",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"503": {
"description": "Service temporarily unavailable",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
}
}
},
"post": {
"summary": "Share or revoke a report",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"description": "Resource UUID",
"schema": {
"type": "string",
"minLength": 1
}
},
{
"name": "workspaceId",
"in": "query",
"required": true,
"description": "The workspace UUID the request operates on. Caller-supplied, not inferred from the API key. A key bound to workspace A is rejected for workspace B.",
"schema": {
"type": "string",
"minLength": 1
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ReportAction"
}
}
}
},
"responses": {
"200": {
"description": "Report action completed",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": true,
"description": "Request succeeded"
},
"data": {
"description": "Response payload"
}
},
"required": [
"success",
"data"
]
},
{
"type": "object",
"properties": {
"data": {
"type": "object",
"additionalProperties": true,
"description": "See response examples"
}
},
"required": [
"data"
]
}
]
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"409": {
"description": "Conflict",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"429": {
"description": "Rate limited",
"headers": {
"Retry-After": {
"schema": {
"type": "string"
},
"description": "Seconds to wait before retrying"
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"500": {
"description": "Internal server error",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"503": {
"description": "Service temporarily unavailable",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
}
}
}
},
"/reports/{id}/download": {
"get": {
"summary": "Download a report",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"description": "Resource UUID",
"schema": {
"type": "string",
"minLength": 1
}
},
{
"name": "workspaceId",
"in": "query",
"required": true,
"description": "The workspace UUID the request operates on. Caller-supplied, not inferred from the API key. A key bound to workspace A is rejected for workspace B.",
"schema": {
"type": "string",
"minLength": 1
}
}
],
"responses": {
"200": {
"description": "Report HTML",
"content": {
"text/html": {
"schema": {
"type": "string"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"409": {
"description": "Conflict",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"429": {
"description": "Rate limited",
"headers": {
"Retry-After": {
"schema": {
"type": "string"
},
"description": "Seconds to wait before retrying"
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"500": {
"description": "Internal server error",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"503": {
"description": "Service temporarily unavailable",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
}
}
}
},
"/launch-readiness": {
"get": {
"summary": "Launch readiness report",
"parameters": [
{
"name": "workspaceId",
"in": "query",
"required": true,
"description": "The workspace UUID the request operates on. Caller-supplied, not inferred from the API key. A key bound to workspace A is rejected for workspace B.",
"schema": {
"type": "string",
"minLength": 1
}
},
{
"name": "targetId",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Launch readiness summary",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": true,
"description": "Request succeeded"
},
"data": {
"description": "Response payload"
}
},
"required": [
"success",
"data"
]
},
{
"type": "object",
"properties": {
"data": {
"type": "object",
"additionalProperties": true,
"description": "See response examples"
}
},
"required": [
"data"
]
}
]
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"409": {
"description": "Conflict",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"429": {
"description": "Rate limited",
"headers": {
"Retry-After": {
"schema": {
"type": "string"
},
"description": "Seconds to wait before retrying"
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"500": {
"description": "Internal server error",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"503": {
"description": "Service temporarily unavailable",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
}
}
}
},
"/workspaces": {
"get": {
"summary": "List workspaces",
"parameters": [
{
"name": "workspaceId",
"in": "query",
"required": true,
"description": "The workspace UUID the request operates on. Caller-supplied, not inferred from the API key. A key bound to workspace A is rejected for workspace B.",
"schema": {
"type": "string",
"minLength": 1
}
}
],
"responses": {
"200": {
"description": "List of workspaces",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": true,
"description": "Request succeeded"
},
"data": {
"description": "Response payload"
}
},
"required": [
"success",
"data"
]
},
{
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true,
"description": "See response examples"
}
}
},
"required": [
"data"
]
}
]
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"409": {
"description": "Conflict",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"429": {
"description": "Rate limited",
"headers": {
"Retry-After": {
"schema": {
"type": "string"
},
"description": "Seconds to wait before retrying"
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"500": {
"description": "Internal server error",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"503": {
"description": "Service temporarily unavailable",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
}
}
},
"post": {
"summary": "Create a workspace",
"parameters": [
{
"name": "workspaceId",
"in": "query",
"required": true,
"description": "The workspace UUID the request operates on. Caller-supplied, not inferred from the API key. A key bound to workspace A is rejected for workspace B.",
"schema": {
"type": "string",
"minLength": 1
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateWorkspace"
}
}
}
},
"responses": {
"200": {
"description": "Workspace created",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": true,
"description": "Request succeeded"
},
"data": {
"description": "Response payload"
}
},
"required": [
"success",
"data"
]
},
{
"type": "object",
"properties": {
"data": {
"type": "object",
"additionalProperties": true,
"description": "See response examples"
}
},
"required": [
"data"
]
}
]
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"409": {
"description": "Conflict",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"429": {
"description": "Rate limited",
"headers": {
"Retry-After": {
"schema": {
"type": "string"
},
"description": "Seconds to wait before retrying"
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"500": {
"description": "Internal server error",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"503": {
"description": "Service temporarily unavailable",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
}
}
}
},
"/schedules": {
"get": {
"summary": "List schedules",
"parameters": [
{
"name": "workspaceId",
"in": "query",
"required": true,
"description": "The workspace UUID the request operates on. Caller-supplied, not inferred from the API key. A key bound to workspace A is rejected for workspace B.",
"schema": {
"type": "string",
"minLength": 1
}
},
{
"name": "targetId",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "enabled",
"in": "query",
"required": false,
"schema": {
"type": "string",
"enum": [
"true",
"false"
]
}
},
{
"name": "cursor",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "limit",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "List of schedules",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": true,
"description": "Request succeeded"
},
"data": {
"description": "Response payload"
}
},
"required": [
"success",
"data"
]
},
{
"type": "object",
"properties": {
"data": {
"allOf": [
{
"type": "object",
"properties": {
"items": {
"type": "array",
"description": "Page of results",
"items": {}
},
"nextCursor": {
"description": "Opaque cursor for the next page, or null on the last page",
"oneOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"total": {
"type": "integer",
"description": "Optional total count across all pages"
}
},
"required": [
"items",
"nextCursor"
]
},
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true,
"description": "See response examples"
}
}
},
"required": [
"items"
]
}
]
}
},
"required": [
"data"
]
}
]
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"409": {
"description": "Conflict",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"429": {
"description": "Rate limited",
"headers": {
"Retry-After": {
"schema": {
"type": "string"
},
"description": "Seconds to wait before retrying"
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"500": {
"description": "Internal server error",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"503": {
"description": "Service temporarily unavailable",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
}
}
},
"post": {
"summary": "Create a schedule",
"parameters": [
{
"name": "workspaceId",
"in": "query",
"required": true,
"description": "The workspace UUID the request operates on. Caller-supplied, not inferred from the API key. A key bound to workspace A is rejected for workspace B.",
"schema": {
"type": "string",
"minLength": 1
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateSchedule"
}
}
}
},
"responses": {
"201": {
"description": "Schedule created",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": true,
"description": "Request succeeded"
},
"data": {
"description": "Response payload"
}
},
"required": [
"success",
"data"
]
},
{
"type": "object",
"properties": {
"data": {
"type": "object",
"additionalProperties": true,
"description": "See response examples"
}
},
"required": [
"data"
]
}
]
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"409": {
"description": "Conflict",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"429": {
"description": "Rate limited",
"headers": {
"Retry-After": {
"schema": {
"type": "string"
},
"description": "Seconds to wait before retrying"
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"500": {
"description": "Internal server error",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"503": {
"description": "Service temporarily unavailable",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
}
}
}
},
"/schedules/{id}": {
"get": {
"summary": "Get a schedule",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"description": "Resource UUID",
"schema": {
"type": "string",
"minLength": 1
}
},
{
"name": "workspaceId",
"in": "query",
"required": true,
"description": "The workspace UUID the request operates on. Caller-supplied, not inferred from the API key. A key bound to workspace A is rejected for workspace B.",
"schema": {
"type": "string",
"minLength": 1
}
}
],
"responses": {
"200": {
"description": "Schedule details",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": true,
"description": "Request succeeded"
},
"data": {
"description": "Response payload"
}
},
"required": [
"success",
"data"
]
},
{
"type": "object",
"properties": {
"data": {
"type": "object",
"additionalProperties": true,
"description": "See response examples"
}
},
"required": [
"data"
]
}
]
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"409": {
"description": "Conflict",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"429": {
"description": "Rate limited",
"headers": {
"Retry-After": {
"schema": {
"type": "string"
},
"description": "Seconds to wait before retrying"
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"500": {
"description": "Internal server error",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"503": {
"description": "Service temporarily unavailable",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
}
}
},
"patch": {
"summary": "Update a schedule",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"description": "Resource UUID",
"schema": {
"type": "string",
"minLength": 1
}
},
{
"name": "workspaceId",
"in": "query",
"required": true,
"description": "The workspace UUID the request operates on. Caller-supplied, not inferred from the API key. A key bound to workspace A is rejected for workspace B.",
"schema": {
"type": "string",
"minLength": 1
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PatchSchedule"
}
}
}
},
"responses": {
"200": {
"description": "Schedule updated",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": true,
"description": "Request succeeded"
},
"data": {
"description": "Response payload"
}
},
"required": [
"success",
"data"
]
},
{
"type": "object",
"properties": {
"data": {
"type": "object",
"additionalProperties": true,
"description": "See response examples"
}
},
"required": [
"data"
]
}
]
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"409": {
"description": "Conflict",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"429": {
"description": "Rate limited",
"headers": {
"Retry-After": {
"schema": {
"type": "string"
},
"description": "Seconds to wait before retrying"
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"500": {
"description": "Internal server error",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"503": {
"description": "Service temporarily unavailable",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
}
}
},
"delete": {
"summary": "Delete a schedule",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"description": "Resource UUID",
"schema": {
"type": "string",
"minLength": 1
}
},
{
"name": "workspaceId",
"in": "query",
"required": true,
"description": "The workspace UUID the request operates on. Caller-supplied, not inferred from the API key. A key bound to workspace A is rejected for workspace B.",
"schema": {
"type": "string",
"minLength": 1
}
}
],
"responses": {
"200": {
"description": "Schedule deleted",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": true,
"description": "Request succeeded"
},
"data": {
"description": "Response payload"
}
},
"required": [
"success",
"data"
]
},
{
"type": "object",
"properties": {
"data": {
"type": "object",
"additionalProperties": true,
"description": "See response examples"
}
},
"required": [
"data"
]
}
]
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"409": {
"description": "Conflict",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"429": {
"description": "Rate limited",
"headers": {
"Retry-After": {
"schema": {
"type": "string"
},
"description": "Seconds to wait before retrying"
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"500": {
"description": "Internal server error",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"503": {
"description": "Service temporarily unavailable",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
}
}
}
},
"/projects": {
"get": {
"summary": "List projects",
"parameters": [
{
"name": "workspaceId",
"in": "query",
"required": true,
"description": "The workspace UUID the request operates on. Caller-supplied, not inferred from the API key. A key bound to workspace A is rejected for workspace B.",
"schema": {
"type": "string",
"minLength": 1
}
},
{
"name": "cursor",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "limit",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "List of projects",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": true,
"description": "Request succeeded"
},
"data": {
"description": "Response payload"
}
},
"required": [
"success",
"data"
]
},
{
"type": "object",
"properties": {
"data": {
"allOf": [
{
"type": "object",
"properties": {
"items": {
"type": "array",
"description": "Page of results",
"items": {}
},
"nextCursor": {
"description": "Opaque cursor for the next page, or null on the last page",
"oneOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"total": {
"type": "integer",
"description": "Optional total count across all pages"
}
},
"required": [
"items",
"nextCursor"
]
},
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true,
"description": "See response examples"
}
}
},
"required": [
"items"
]
}
]
}
},
"required": [
"data"
]
}
]
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"409": {
"description": "Conflict",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"429": {
"description": "Rate limited",
"headers": {
"Retry-After": {
"schema": {
"type": "string"
},
"description": "Seconds to wait before retrying"
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"500": {
"description": "Internal server error",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"503": {
"description": "Service temporarily unavailable",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
}
}
},
"post": {
"summary": "Create a project",
"parameters": [
{
"name": "workspaceId",
"in": "query",
"required": true,
"description": "The workspace UUID the request operates on. Caller-supplied, not inferred from the API key. A key bound to workspace A is rejected for workspace B.",
"schema": {
"type": "string",
"minLength": 1
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateProject"
}
}
}
},
"responses": {
"200": {
"description": "Project created",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": true,
"description": "Request succeeded"
},
"data": {
"description": "Response payload"
}
},
"required": [
"success",
"data"
]
},
{
"type": "object",
"properties": {
"data": {
"type": "object",
"additionalProperties": true,
"description": "See response examples"
}
},
"required": [
"data"
]
}
]
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"409": {
"description": "Conflict",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"429": {
"description": "Rate limited",
"headers": {
"Retry-After": {
"schema": {
"type": "string"
},
"description": "Seconds to wait before retrying"
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"500": {
"description": "Internal server error",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"503": {
"description": "Service temporarily unavailable",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
}
}
}
},
"/agent-approvals": {
"get": {
"summary": "List agent approvals",
"parameters": [
{
"name": "workspaceId",
"in": "query",
"required": true,
"description": "The workspace UUID the request operates on. Caller-supplied, not inferred from the API key. A key bound to workspace A is rejected for workspace B.",
"schema": {
"type": "string",
"minLength": 1
}
},
{
"name": "status",
"in": "query",
"required": false,
"schema": {
"type": "string",
"enum": [
"PENDING",
"APPROVED",
"DENIED",
"EXPIRED"
]
}
},
{
"name": "cursor",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "limit",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "List of agent approvals",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": true,
"description": "Request succeeded"
},
"data": {
"description": "Response payload"
}
},
"required": [
"success",
"data"
]
},
{
"type": "object",
"properties": {
"data": {
"allOf": [
{
"type": "object",
"properties": {
"items": {
"type": "array",
"description": "Page of results",
"items": {}
},
"nextCursor": {
"description": "Opaque cursor for the next page, or null on the last page",
"oneOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"total": {
"type": "integer",
"description": "Optional total count across all pages"
}
},
"required": [
"items",
"nextCursor"
]
},
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true,
"description": "See response examples"
}
}
},
"required": [
"items"
]
}
]
}
},
"required": [
"data"
]
}
]
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"409": {
"description": "Conflict",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"429": {
"description": "Rate limited",
"headers": {
"Retry-After": {
"schema": {
"type": "string"
},
"description": "Seconds to wait before retrying"
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"500": {
"description": "Internal server error",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"503": {
"description": "Service temporarily unavailable",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
}
}
},
"post": {
"summary": "Create an agent approval",
"parameters": [
{
"name": "workspaceId",
"in": "query",
"required": true,
"description": "The workspace UUID the request operates on. Caller-supplied, not inferred from the API key. A key bound to workspace A is rejected for workspace B.",
"schema": {
"type": "string",
"minLength": 1
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"workspaceId": {
"type": "string"
},
"actionName": {
"type": "string"
},
"input": {
"type": "object"
},
"expiresAt": {
"type": "string",
"format": "date-time"
}
},
"required": [
"workspaceId",
"actionName",
"input"
]
}
}
}
},
"responses": {
"201": {
"description": "Agent approval created",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": true,
"description": "Request succeeded"
},
"data": {
"description": "Response payload"
}
},
"required": [
"success",
"data"
]
},
{
"type": "object",
"properties": {
"data": {
"type": "object",
"additionalProperties": true,
"description": "See response examples"
}
},
"required": [
"data"
]
}
]
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"409": {
"description": "Conflict",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"429": {
"description": "Rate limited",
"headers": {
"Retry-After": {
"schema": {
"type": "string"
},
"description": "Seconds to wait before retrying"
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"500": {
"description": "Internal server error",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"503": {
"description": "Service temporarily unavailable",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
}
}
}
},
"/agent-approvals/{id}/approve": {
"post": {
"summary": "Approve an agent action",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"description": "Resource UUID",
"schema": {
"type": "string",
"minLength": 1
}
},
{
"name": "workspaceId",
"in": "query",
"required": true,
"description": "The workspace UUID the request operates on. Caller-supplied, not inferred from the API key. A key bound to workspace A is rejected for workspace B.",
"schema": {
"type": "string",
"minLength": 1
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"workspaceId": {
"type": "string"
},
"input": {
"type": "object"
}
},
"required": [
"workspaceId",
"input"
]
}
}
}
},
"responses": {
"200": {
"description": "Agent approval approved",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": true,
"description": "Request succeeded"
},
"data": {
"description": "Response payload"
}
},
"required": [
"success",
"data"
]
},
{
"type": "object",
"properties": {
"data": {
"type": "object",
"additionalProperties": true,
"description": "See response examples"
}
},
"required": [
"data"
]
}
]
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"409": {
"description": "Conflict",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"429": {
"description": "Rate limited",
"headers": {
"Retry-After": {
"schema": {
"type": "string"
},
"description": "Seconds to wait before retrying"
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"500": {
"description": "Internal server error",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"503": {
"description": "Service temporarily unavailable",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
}
}
}
},
"/agent-approvals/{id}/deny": {
"post": {
"summary": "Deny an agent action",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"description": "Resource UUID",
"schema": {
"type": "string",
"minLength": 1
}
},
{
"name": "workspaceId",
"in": "query",
"required": true,
"description": "The workspace UUID the request operates on. Caller-supplied, not inferred from the API key. A key bound to workspace A is rejected for workspace B.",
"schema": {
"type": "string",
"minLength": 1
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"workspaceId": {
"type": "string"
}
},
"required": [
"workspaceId"
]
}
}
}
},
"responses": {
"200": {
"description": "Agent approval denied",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": true,
"description": "Request succeeded"
},
"data": {
"description": "Response payload"
}
},
"required": [
"success",
"data"
]
},
{
"type": "object",
"properties": {
"data": {
"type": "object",
"additionalProperties": true,
"description": "See response examples"
}
},
"required": [
"data"
]
}
]
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"409": {
"description": "Conflict",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"422": {
"description": "Validation failed",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"429": {
"description": "Rate limited",
"headers": {
"Retry-After": {
"schema": {
"type": "string"
},
"description": "Seconds to wait before retrying"
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"500": {
"description": "Internal server error",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
},
"503": {
"description": "Service temporarily unavailable",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
}
}
}
}
}
}
}
},
"components": {
"securitySchemes": {
"bearerAuth": {
"type": "http",
"scheme": "bearer",
"bearerFormat": "lsk_<key>",
"description": "Workspace-scoped API key. Pass `Authorization: Bearer lsk_...`. Keys are bound to a single workspace and must be supplied with `workspaceId` on every call. Two scopes exist: `read` and `write`. A `read`-scoped key is only allowed for: scan:view, finding:view, retest:view, schedule:view, report:download, audit:view, agent:view, notification:view. All other actions, including creating scans, findings updates, retests, schedules, reports, and targets, require `write`."
}
},
"schemas": {
"CreateScan": {
"type": "object",
"properties": {
"workspaceId": {
"type": "string",
"minLength": 1
},
"targetId": {
"type": "string",
"minLength": 1
},
"goal": {
"type": "string",
"enum": [
"CHECK_PR",
"TEST_APP",
"LAUNCH_REVIEW",
"WEEKLY_MONITOR",
"FULL_PENTEST",
"COMPLIANCE_REVIEW"
]
},
"mode": {
"default": "SAFE",
"type": "string",
"enum": [
"SAFE",
"QUICK",
"STANDARD",
"DEEP",
"CUSTOM"
]
},
"policyId": {
"type": "string"
}
},
"required": [
"workspaceId",
"targetId",
"goal",
"mode"
],
"additionalProperties": false
},
"ScanStatus": {
"type": "string",
"enum": [
"QUEUED",
"PREFLIGHT",
"RUNNING",
"VERIFYING",
"COMPLETED",
"PARTIAL",
"FAILED",
"CANCELLED",
"REQUIRES_APPROVAL",
"STOPPED_BUDGET",
"TIMED_OUT"
]
},
"ScanGoal": {
"type": "string",
"enum": [
"CHECK_PR",
"TEST_APP",
"LAUNCH_REVIEW",
"WEEKLY_MONITOR",
"FULL_PENTEST",
"COMPLIANCE_REVIEW"
]
},
"ScanMode": {
"type": "string",
"enum": [
"SAFE",
"QUICK",
"STANDARD",
"DEEP",
"CUSTOM"
]
},
"FindingSeverity": {
"type": "string",
"enum": [
"INFO",
"LOW",
"MEDIUM",
"HIGH",
"CRITICAL"
]
},
"FindingStatus": {
"type": "string",
"enum": [
"OPEN",
"FIX_READY",
"PR_OPENED",
"TICKET_CREATED",
"FIXED_PENDING_RETEST",
"FIXED",
"ACCEPTED_RISK",
"FALSE_POSITIVE",
"DUPLICATE"
]
},
"CreateWorkspace": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"mode": {
"default": "VIBE",
"type": "string",
"enum": [
"VIBE",
"TEAM",
"ENTERPRISE"
]
}
},
"required": [
"name",
"mode"
],
"additionalProperties": false
},
"CreateRepoTarget": {
"type": "object",
"properties": {
"workspaceId": {
"type": "string",
"minLength": 1
},
"projectId": {
"type": "string"
},
"type": {
"type": "string",
"const": "REPO"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"repoProvider": {
"default": "github",
"type": "string"
},
"repoOwner": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[A-Za-z0-9_.-]+$"
},
"repoName": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[A-Za-z0-9_.-]+$"
},
"installationId": {
"type": "string",
"maxLength": 20,
"pattern": "^\\d+$"
},
"branch": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"environment": {
"default": "STAGING",
"type": "string",
"enum": [
"LOCAL",
"PREVIEW",
"STAGING",
"PRODUCTION"
]
}
},
"required": [
"workspaceId",
"type",
"name",
"repoProvider",
"repoOwner",
"repoName",
"environment"
],
"additionalProperties": false
},
"CreateUrlTarget": {
"type": "object",
"properties": {
"workspaceId": {
"type": "string",
"minLength": 1
},
"projectId": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"WEB_APP",
"API"
]
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"url": {
"type": "string",
"format": "uri"
},
"apiSpecUrl": {
"type": "string"
},
"environment": {
"default": "STAGING",
"type": "string",
"enum": [
"LOCAL",
"PREVIEW",
"STAGING",
"PRODUCTION"
]
},
"ownershipAttested": {
"type": "boolean"
}
},
"required": [
"workspaceId",
"type",
"name",
"url",
"environment",
"ownershipAttested"
],
"additionalProperties": false
},
"CreateProject": {
"type": "object",
"properties": {
"workspaceId": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"description": {
"type": "string",
"maxLength": 500
}
},
"required": [
"workspaceId",
"name"
],
"additionalProperties": false
},
"CreateReport": {
"type": "object",
"properties": {
"workspaceId": {
"type": "string",
"minLength": 1
},
"scanId": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"developer",
"executive",
"compliance"
]
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"required": [
"workspaceId",
"title"
],
"additionalProperties": false
},
"ReportAction": {
"type": "object",
"properties": {
"workspaceId": {
"type": "string",
"minLength": 1
},
"action": {
"type": "string",
"enum": [
"share",
"revoke"
]
}
},
"required": [
"workspaceId",
"action"
],
"additionalProperties": false
},
"CreateFixProposal": {
"type": "object",
"properties": {
"workspaceId": {
"type": "string",
"minLength": 1
},
"summary": {
"type": "string",
"minLength": 10
},
"diffRef": {
"type": "string"
},
"generatedByModel": {
"type": "string"
},
"safetyScore": {
"type": "integer",
"minimum": 0,
"maximum": 100
}
},
"required": [
"workspaceId",
"summary"
],
"additionalProperties": false
},
"CreateRetest": {
"type": "object",
"properties": {
"workspaceId": {
"type": "string",
"minLength": 1
},
"scanId": {
"type": "string"
}
},
"required": [
"workspaceId"
],
"additionalProperties": false
},
"PatchFinding": {
"type": "object",
"properties": {
"workspaceId": {
"type": "string",
"minLength": 1
},
"action": {
"type": "string",
"enum": [
"false_positive",
"accept_risk",
"update_status"
]
},
"status": {
"type": "string",
"enum": [
"OPEN",
"FIX_READY",
"PR_OPENED",
"TICKET_CREATED",
"FIXED_PENDING_RETEST",
"FIXED",
"ACCEPTED_RISK",
"FALSE_POSITIVE",
"DUPLICATE"
]
},
"reason": {
"type": "string",
"maxLength": 1000
}
},
"required": [
"workspaceId",
"action"
],
"additionalProperties": false
},
"CreateSchedule": {
"type": "object",
"properties": {
"workspaceId": {
"type": "string",
"minLength": 1
},
"targetId": {
"type": "string",
"minLength": 1
},
"cron": {
"type": "string",
"minLength": 1
},
"goal": {
"type": "string",
"enum": [
"CHECK_PR",
"TEST_APP",
"LAUNCH_REVIEW",
"WEEKLY_MONITOR",
"FULL_PENTEST",
"COMPLIANCE_REVIEW"
]
},
"mode": {
"default": "SAFE",
"type": "string",
"enum": [
"SAFE",
"QUICK",
"STANDARD",
"DEEP"
]
}
},
"required": [
"workspaceId",
"targetId",
"cron",
"goal",
"mode"
],
"additionalProperties": false
},
"PatchSchedule": {
"type": "object",
"properties": {
"workspaceId": {
"type": "string",
"minLength": 1
},
"cron": {
"type": "string",
"minLength": 1
},
"goal": {
"type": "string",
"enum": [
"CHECK_PR",
"TEST_APP",
"LAUNCH_REVIEW",
"WEEKLY_MONITOR",
"FULL_PENTEST",
"COMPLIANCE_REVIEW"
]
},
"mode": {
"type": "string",
"enum": [
"SAFE",
"QUICK",
"STANDARD",
"DEEP"
]
},
"enabled": {
"type": "boolean"
}
},
"required": [
"workspaceId"
],
"additionalProperties": false
},
"FindingQuery": {
"type": "object",
"properties": {
"workspaceId": {
"type": "string",
"minLength": 1
},
"targetId": {
"type": "string"
},
"scanId": {
"type": "string"
},
"severity": {
"type": "string",
"enum": [
"INFO",
"LOW",
"MEDIUM",
"HIGH",
"CRITICAL"
]
},
"status": {
"type": "string",
"enum": [
"OPEN",
"FIX_READY",
"PR_OPENED",
"TICKET_CREATED",
"FIXED_PENDING_RETEST",
"FIXED",
"ACCEPTED_RISK",
"FALSE_POSITIVE",
"DUPLICATE"
]
},
"verified": {
"type": "string",
"enum": [
"true",
"false"
]
},
"category": {
"type": "string"
},
"stats": {
"type": "string",
"enum": [
"true"
]
},
"cursor": {
"type": "string"
},
"limit": {
"type": "string"
}
},
"required": [
"workspaceId"
],
"additionalProperties": false
},
"CreatePR": {
"type": "object",
"properties": {
"workspaceId": {
"type": "string",
"minLength": 1
}
},
"required": [
"workspaceId"
],
"additionalProperties": false
},
"successEnvelope": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": true,
"description": "Request succeeded"
},
"data": {
"description": "Response payload"
}
},
"required": [
"success",
"data"
]
},
"errorEnvelope": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": false,
"description": "Request failed"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Stable machine-readable error code"
},
"message": {
"type": "string",
"description": "Human-readable error description"
}
},
"required": [
"code",
"message"
]
}
},
"required": [
"success",
"error"
]
},
"paginatedEnvelope": {
"type": "object",
"properties": {
"items": {
"type": "array",
"description": "Page of results",
"items": {}
},
"nextCursor": {
"description": "Opaque cursor for the next page, or null on the last page",
"oneOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"total": {
"type": "integer",
"description": "Optional total count across all pages"
}
},
"required": [
"items",
"nextCursor"
]
}
}
}
}