{"openapi":"3.1.0","info":{"title":"ZeroLeaks Developer API","version":"2.1.0","description":"Versioned API used by @zeroleaks/sdk for production-fidelity runtime scans, endpoint scans, prompt scans, skill scans, and reports.","contact":{"name":"ZeroLeaks","email":"support@zeroleaks.ai","url":"https://www.zeroleaks.ai"},"license":{"name":"Proprietary service; MIT SDK"}},"servers":[{"url":"https://www.zeroleaks.ai"}],"security":[{"BearerAuth":[]}],"tags":[{"name":"Health"},{"name":"Prompt scans"},{"name":"Reports"},{"name":"Runtime scans"},{"name":"Endpoint configs"},{"name":"Endpoint scans"},{"name":"Skill scans"}],"paths":{"/api/v1/health":{"get":{"tags":["Health"],"operationId":"getHealth","summary":"Check service health","security":[],"responses":{"200":{"description":"Service status","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}},"/api/v1/capabilities":{"get":{"tags":["Health"],"operationId":"getCapabilities","summary":"List current scan capabilities and limits","security":[],"responses":{"200":{"description":"Supported modes, models, options, and limits","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}},"/api/v1/scans":{"get":{"tags":["Prompt scans"],"operationId":"listPromptScans","summary":"List prompt scans","parameters":[{"name":"cursor","in":"query","schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"workspaceId","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated scans","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScanList"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["Prompt scans"],"operationId":"createPromptScan","summary":"Start a prompt security scan","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateScanRequest"}}}},"responses":{"200":{"description":"Scan started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateScanResponse"}}}},"400":{"description":"Invalid scan request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Subscription or workspace limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/scans/{scanId}":{"get":{"tags":["Prompt scans"],"operationId":"getPromptScan","summary":"Get scan state and report","parameters":[{"name":"scanId","in":"path","required":true,"description":"ZeroLeaks scan identifier","schema":{"type":"string"}}],"responses":{"200":{"description":"Scan state","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScanResult"}}}},"404":{"description":"Scan not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/scans/{scanId}/cancel":{"post":{"tags":["Prompt scans"],"operationId":"cancelPromptScan","summary":"Cancel an active prompt scan","parameters":[{"name":"scanId","in":"path","required":true,"description":"ZeroLeaks scan identifier","schema":{"type":"string"}}],"responses":{"200":{"description":"Cancellation accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Success"}}}},"400":{"description":"Scan is not active","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Scan not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/reports":{"get":{"tags":["Reports"],"operationId":"listReports","summary":"List prompt-scan report summaries","parameters":[{"name":"cursor","in":"query","schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"workspaceId","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated report summaries","content":{"application/json":{"schema":{"type":"object","required":["items","nextCursor","hasMore"],"properties":{"items":{"type":"array","items":{"type":"object","additionalProperties":true}},"nextCursor":{"type":["string","null"]},"hasMore":{"type":"boolean"}}}}}}}}},"/api/v1/reports/{reportId}":{"get":{"tags":["Reports"],"operationId":"getReport","summary":"Get a report by ID","parameters":[{"name":"reportId","in":"path","required":true,"description":"ZeroLeaks report identifier","schema":{"type":"string"}}],"responses":{"200":{"description":"Security report","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Report"}}}},"404":{"description":"Report not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/reports/by-scan/{scanId}":{"get":{"tags":["Reports"],"operationId":"getReportByScan","summary":"Get a report by scan ID","parameters":[{"name":"scanId","in":"path","required":true,"description":"ZeroLeaks scan identifier","schema":{"type":"string"}}],"responses":{"200":{"description":"Security report","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Report"}}}},"404":{"description":"Report not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/runtime-scans":{"get":{"tags":["Runtime scans"],"operationId":"listRuntimeScans","summary":"List SDK runtime scans","parameters":[{"name":"workspaceId","in":"query","schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100}}],"responses":{"200":{"description":"Runtime scans","content":{"application/json":{"schema":{"type":"object","properties":{"scans":{"type":"array","items":{"$ref":"#/components/schemas/RuntimeScan"}}}}}}}}},"post":{"tags":["Runtime scans"],"operationId":"createRuntimeScan","summary":"Start a production-fidelity SDK relay scan","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRuntimeScanRequest"}}}},"responses":{"202":{"description":"Runtime scan workflow started","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRuntimeScanResponse"}}}},"403":{"description":"Subscription limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/runtime-scans/{runtimeScanId}":{"get":{"tags":["Runtime scans"],"operationId":"getRuntimeScan","summary":"Get runtime scan state and report","parameters":[{"name":"runtimeScanId","in":"path","required":true,"description":"SDK runtime scan identifier","schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime scan","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RuntimeScan"}}}},"404":{"description":"Runtime scan not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/runtime-scans/{runtimeScanId}/cancel":{"post":{"tags":["Runtime scans"],"operationId":"cancelRuntimeScan","summary":"Cancel a runtime scan and relay workflow","parameters":[{"name":"runtimeScanId","in":"path","required":true,"description":"SDK runtime scan identifier","schema":{"type":"string"}}],"responses":{"200":{"description":"Cancellation accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Success"}}}},"404":{"description":"Runtime scan not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/runtime-scans/{runtimeScanId}/events/next":{"post":{"tags":["Runtime scans"],"operationId":"claimRuntimeScanEvent","summary":"Claim the next invoke or reset event for an SDK runner","parameters":[{"name":"runtimeScanId","in":"path","required":true,"description":"SDK runtime scan identifier","schema":{"type":"string"}}],"responses":{"200":{"description":"Claimed relay event","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RuntimeScanEvent"}}}},"204":{"description":"No relay event is ready"},"404":{"description":"Runtime scan not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/runtime-scans/{runtimeScanId}/events/{eventId}":{"post":{"tags":["Runtime scans"],"operationId":"completeRuntimeScanEvent","summary":"Submit a target response or runner error","parameters":[{"name":"runtimeScanId","in":"path","required":true,"description":"SDK runtime scan identifier","schema":{"type":"string"}},{"name":"eventId","in":"path","required":true,"description":"SDK relay event identifier","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["claimToken"],"properties":{"claimToken":{"type":"string"},"response":{"$ref":"#/components/schemas/RuntimeTargetResponse"},"error":{"type":"string"}}}}}},"responses":{"200":{"description":"Event completed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Success"}}}},"400":{"description":"Event claim is stale or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/agent-configs":{"get":{"tags":["Endpoint configs"],"operationId":"listAgentConfigs","summary":"List deployed endpoint configurations","parameters":[{"name":"workspaceId","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Endpoint configurations","content":{"application/json":{"schema":{"type":"object","properties":{"configs":{"type":"array","items":{"$ref":"#/components/schemas/AgentConfig"}}}}}}}}},"post":{"tags":["Endpoint configs"],"operationId":"createAgentConfig","summary":"Register a deployed HTTP agent","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentConfigInput"}}}},"responses":{"201":{"description":"Configuration created","content":{"application/json":{"schema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}}}}}},"400":{"description":"Invalid endpoint configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/agent-configs/{configId}":{"patch":{"tags":["Endpoint configs"],"operationId":"updateAgentConfig","summary":"Update a deployed endpoint configuration","parameters":[{"name":"configId","in":"path","required":true,"description":"Deployed-agent configuration ID","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentConfigInput"}}}},"responses":{"200":{"description":"Configuration updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Success"}}}},"404":{"description":"Configuration not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["Endpoint configs"],"operationId":"deleteAgentConfig","summary":"Delete a deployed endpoint configuration","parameters":[{"name":"configId","in":"path","required":true,"description":"Deployed-agent configuration ID","schema":{"type":"string"}}],"responses":{"200":{"description":"Configuration deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Success"}}}},"404":{"description":"Configuration not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/agent-scans":{"get":{"tags":["Endpoint scans"],"operationId":"listAgentScans","summary":"List deployed endpoint scans","parameters":[{"name":"workspaceId","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Agent scans","content":{"application/json":{"schema":{"type":"object","properties":{"scans":{"type":"array","items":{"type":"object","additionalProperties":true}}}}}}}}},"post":{"tags":["Endpoint scans"],"operationId":"createAgentScan","summary":"Start a deployed endpoint scan","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["agentConfigId"],"properties":{"agentConfigId":{"type":"string"}}}}}},"responses":{"202":{"description":"Agent scan queued","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateScanResponse"}}}},"403":{"description":"Subscription limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/agent-scans/{scanId}":{"get":{"tags":["Endpoint scans"],"operationId":"getAgentScan","summary":"Get deployed endpoint scan state","parameters":[{"name":"scanId","in":"path","required":true,"description":"ZeroLeaks scan identifier","schema":{"type":"string"}}],"responses":{"200":{"description":"Agent scan and report","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"404":{"description":"Agent scan not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/agent-scans/{scanId}/cancel":{"post":{"tags":["Endpoint scans"],"operationId":"cancelAgentScan","summary":"Cancel a deployed endpoint scan","parameters":[{"name":"scanId","in":"path","required":true,"description":"ZeroLeaks scan identifier","schema":{"type":"string"}}],"responses":{"200":{"description":"Cancellation accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Success"}}}},"400":{"description":"Agent scan is not active","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Agent scan not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/skill-scans":{"get":{"tags":["Skill scans"],"operationId":"listSkillScans","summary":"List recent skill scans","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100}}],"responses":{"200":{"description":"Skill scans","content":{"application/json":{"schema":{"type":"object","properties":{"scans":{"type":"array","items":{"$ref":"#/components/schemas/SkillScan"}}}}}}}}},"post":{"tags":["Skill scans"],"operationId":"createSkillScan","summary":"Scan a remote source or uploaded ZIP archive","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSkillScanRequest"}},"multipart/form-data":{"schema":{"allOf":[{"$ref":"#/components/schemas/CreateSkillScanRequest"},{"type":"object","properties":{"archive":{"type":"string","format":"binary"}}}]}}}},"responses":{"200":{"description":"Synchronous report","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"202":{"description":"Asynchronous scan queued","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSkillScanResponse"}}}},"400":{"description":"Invalid skill-scan request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/skill-scans/{scanId}":{"get":{"tags":["Skill scans"],"operationId":"getSkillScan","summary":"Get skill-scan state and report","parameters":[{"name":"scanId","in":"path","required":true,"description":"ZeroLeaks scan identifier","schema":{"type":"string"}}],"responses":{"200":{"description":"Skill scan","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SkillScan"}}}},"404":{"description":"Skill scan not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"zl_live_...","description":"ZeroLeaks API key created in dashboard settings."}},"schemas":{"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"reset":{"type":"string","format":"date-time"}},"additionalProperties":true},"Success":{"type":"object","required":["success"],"properties":{"success":{"type":"boolean"}}},"CreateScanRequest":{"type":"object","required":["systemPrompt"],"properties":{"systemPrompt":{"type":"string","minLength":10},"scanMode":{"type":"string","enum":["extraction","injection","dual","sandbox","full"],"default":"dual"},"targetModel":{"type":"string"},"temperature":{"type":"number","minimum":0,"maximum":1},"reasoningEffort":{"type":"string","enum":["low","medium","high"]},"knowledgeProfile":{"type":"string","enum":["baseline","production","research"],"default":"production"},"attackSurfaces":{"type":"array","items":{"type":"string","enum":["direct_chat","indirect_content","tool_calling","mcp","repo_ci","rag_vector","multi_turn"]}},"userTools":{"type":"array","items":{"type":"object"}},"autoDetectTools":{"type":"boolean"},"sandboxScanType":{"type":"string","enum":["both","extraction","injection"]},"usePineconeKnowledge":{"type":"boolean"},"maxAdaptiveCandidates":{"type":"integer","minimum":1,"maximum":24},"workspaceId":{"type":"string"}}},"CreateScanResponse":{"type":"object","required":["scanId"],"properties":{"scanId":{"type":"string"},"workflowRunId":{"type":"string"},"status":{"type":"string"},"processingMethod":{"type":"string","const":"workflow"}},"additionalProperties":true},"Scan":{"type":"object","required":["id","status","createdAt"],"properties":{"id":{"type":"string"},"status":{"type":"string"},"source":{"type":"string"},"targetModel":{"type":"string"},"createdAt":{"type":"integer"},"completedAt":{"type":"integer"},"progressStatus":{"type":"string"},"currentTurn":{"type":"integer"},"maxTurns":{"type":"integer"}},"additionalProperties":true},"ScanResult":{"type":"object","required":["scan","report"],"properties":{"scan":{"$ref":"#/components/schemas/Scan"},"report":{"oneOf":[{"$ref":"#/components/schemas/Report"},{"type":"null"}]}}},"ScanList":{"type":"object","required":["items","nextCursor","hasMore"],"properties":{"items":{"type":"array","items":{"type":"object","additionalProperties":true}},"nextCursor":{"type":["string","null"]},"hasMore":{"type":"boolean"}}},"Report":{"type":"object","required":["overallScore","overallVulnerability","findings"],"properties":{"id":{"type":"string"},"scanId":{"type":"string"},"overallScore":{"type":"number","minimum":0,"maximum":100},"overallVulnerability":{"type":"string","enum":["critical","high","medium","low","secure"]},"findings":{"type":"array","items":{}},"recommendations":{"type":"array","items":{}},"summary":{"type":"string"},"toolTrace":{"type":"array","items":{"$ref":"#/components/schemas/RuntimeToolCall"}}},"additionalProperties":true},"ToolDefinition":{"type":"object","required":["name"],"properties":{"name":{"type":"string"},"description":{"type":"string"},"inputSchema":{},"outputSchema":{},"strict":{"type":"boolean"},"type":{"type":"string"},"providerOptions":{},"definition":{}},"additionalProperties":true},"RuntimeTargetDefinition":{"type":"object","required":["name","provider"],"properties":{"name":{"type":"string"},"provider":{"type":"string"},"model":{"type":"string"},"instructions":{},"tools":{"type":"array","maxItems":250,"items":{"$ref":"#/components/schemas/ToolDefinition"}},"metadata":{}}},"RuntimeScanOptions":{"type":"object","properties":{"scanMode":{"type":"string","enum":["full","quick"],"default":"full"},"targetModel":{"type":"string"},"temperature":{"type":"number","minimum":0,"maximum":1},"reasoningEffort":{"type":"string","enum":["low","medium","high"]},"knowledgeProfile":{"type":"string","enum":["baseline","production","research"]},"attackSurfaces":{"type":"array","items":{"type":"string"}},"usePineconeKnowledge":{"type":"boolean"},"maxAdaptiveCandidates":{"type":"integer","minimum":1,"maximum":24}}},"CreateRuntimeScanRequest":{"type":"object","required":["target"],"properties":{"target":{"$ref":"#/components/schemas/RuntimeTargetDefinition"},"options":{"$ref":"#/components/schemas/RuntimeScanOptions"},"workspaceId":{"type":"string"}}},"CreateRuntimeScanResponse":{"type":"object","required":["runtimeScanId","workflowRunId","status","processingMethod"],"properties":{"runtimeScanId":{"type":"string"},"workflowRunId":{"type":"string"},"status":{"type":"string"},"processingMethod":{"type":"string","const":"sdk-relay"}}},"RuntimeToolCall":{"type":"object","required":["name"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"arguments":{},"result":{},"error":{"type":"string"},"providerExecuted":{"type":"boolean"},"attackPrompt":{"type":"string"},"sessionId":{"type":"string"}},"additionalProperties":true},"RuntimeTargetResponse":{"type":"object","required":["text"],"properties":{"text":{"type":"string"},"toolCalls":{"type":"array","items":{"$ref":"#/components/schemas/RuntimeToolCall"}},"finishReason":{"type":"string"},"usage":{},"metadata":{}}},"RuntimeScanEvent":{"type":"object","required":["id","kind","sessionId","claimToken"],"properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["invoke","reset"]},"sessionId":{"type":"string"},"message":{"type":"string"},"claimToken":{"type":"string"}}},"RuntimeScan":{"type":"object","required":["_id","status","target","createdAt","updatedAt"],"properties":{"_id":{"type":"string"},"status":{"type":"string"},"target":{"$ref":"#/components/schemas/RuntimeTargetDefinition"},"options":{"$ref":"#/components/schemas/RuntimeScanOptions"},"currentPhase":{"type":"string"},"workflowRunId":{"type":"string"},"report":{"$ref":"#/components/schemas/Report"},"error":{"type":"string"},"runnerLastSeenAt":{"type":"integer"},"workerLastSeenAt":{"type":"integer"},"createdAt":{"type":"integer"},"updatedAt":{"type":"integer"},"completedAt":{"type":"integer"}}},"AgentConfigInput":{"type":"object","required":["name","endpointUrl"],"properties":{"name":{"type":"string","maxLength":200},"endpointUrl":{"type":"string","format":"uri"},"authMethod":{"type":"string","enum":["none","bearer","api_key","custom_header"],"default":"none"},"authValue":{"type":"string","writeOnly":true},"authHeaderName":{"type":"string"},"requestFormat":{"type":"object","properties":{"method":{"type":"string","enum":["POST","GET"]},"headers":{"type":"object","additionalProperties":{"type":"string"}},"bodyTemplate":{"type":"string"},"messageField":{"type":"string"},"messagesField":{"type":"string"},"sessionField":{"type":"string"},"responseField":{"type":"string"},"toolCallsField":{"type":"string"},"finishReasonField":{"type":"string"},"usageField":{"type":"string"}}},"description":{"type":"string"},"tools":{"type":"array","items":{"$ref":"#/components/schemas/ToolDefinition"}},"workspaceId":{"type":"string"}}},"AgentConfig":{"allOf":[{"$ref":"#/components/schemas/AgentConfigInput"},{"type":"object","properties":{"_id":{"type":"string"},"authValueConfigured":{"type":"boolean"},"createdAt":{"type":"integer"},"updatedAt":{"type":"integer"}}}]},"CreateSkillScanRequest":{"type":"object","properties":{"source":{"type":"string"},"skill":{"type":"string"},"delivery":{"type":"string","enum":["async","sync"]},"webhookUrl":{"type":"string","format":"uri"},"webhookSecret":{"type":"string","writeOnly":true},"model":{"type":"string"},"behaviorModel":{"type":"string"},"maxFiles":{"type":"integer","minimum":1},"maxBytes":{"type":"integer","minimum":1},"toolProfile":{"type":"string","enum":["readonly","standard","networked"]},"mode":{"type":"string","enum":["review","risk","behavior","full"]},"behaviorTrials":{"type":"integer","minimum":1},"behaviorAdaptiveLimit":{"type":"integer","minimum":1},"includeAssets":{"type":"boolean"},"timeoutMs":{"type":"integer","minimum":1}}},"CreateSkillScanResponse":{"type":"object","required":["scanId","status","pollUrl"],"properties":{"scanId":{"type":"string"},"status":{"type":"string"},"pollUrl":{"type":"string"},"processingMethod":{"type":"string","const":"workflow"}}},"SkillScan":{"type":"object","required":["scanId","status","source"],"properties":{"scanId":{"type":"string"},"status":{"type":"string"},"source":{"type":"string"},"skill":{"type":"string"},"inputKind":{"type":"string"},"report":{},"error":{"type":"string"},"createdAt":{"type":"integer"},"updatedAt":{"type":"integer"},"completedAt":{"type":"integer"}},"additionalProperties":true}}}}