{"openapi":"3.1.1","info":{"title":"Genvernium Public Discovery API","version":"1.0.0","description":"The public, read-only discovery surface for Genvernium. Customer workspace APIs are authenticated and are not exposed as anonymous public endpoints. No public credential or OAuth client-credential flow is offered by this document. Versioning policy: stable operationIds are preserved; breaking changes publish a new major API version; deprecations are documented before removal and signal Deprecation and Sunset response headers."},"x-deprecation-policy":{"headers":["Deprecation","Sunset"],"documentation":"https://genvernium.com/developers#versioning","notice":"Breaking changes publish a new major API version; deprecated operations remain documented until their announced sunset date."},"x-idempotency-policy":{"header":"Idempotency-Key","appliesTo":"authenticated workspace write requests","documentation":"https://genvernium.com/auth.md#api-reliability-and-versioning"},"x-async-job-policy":{"acceptedStatus":202,"fields":["jobId","status","statusUrl"],"documentation":"https://genvernium.com/developers#async-jobs"},"servers":[{"url":"https://genvernium.com"}],"paths":{"/":{"get":{"operationId":"getPublicProductOverview","summary":"Get the public product overview","parameters":[{"name":"format","in":"query","required":false,"description":"Return a typed JSON document envelope instead of the default text or HTML representation.","schema":{"type":"string","enum":["json"]}}],"responses":{"200":{"description":"A public Genvernium discovery resource.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Sunset":{"$ref":"#/components/headers/Sunset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicTextDocument"}},"text/markdown":{"schema":{"type":"string"}},"text/html":{"schema":{"type":"string"}}}},"400":{"description":"The request was invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"401":{"description":"Authentication is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"404":{"description":"The requested public resource was not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"406":{"description":"The requested representation is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"409":{"description":"The request conflicts with current workspace state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"422":{"description":"The request could not be processed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"429":{"description":"The request was rate limited.","headers":{"Retry-After":{"schema":{"type":"integer"}},"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"500":{"description":"The service could not complete the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}}}}},"/about":{"get":{"operationId":"getAboutPage","summary":"Get public company and product context","parameters":[{"name":"format","in":"query","required":false,"description":"Return a typed JSON document envelope instead of the default text or HTML representation.","schema":{"type":"string","enum":["json"]}}],"responses":{"200":{"description":"A public Genvernium discovery resource.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Sunset":{"$ref":"#/components/headers/Sunset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicTextDocument"}},"text/markdown":{"schema":{"type":"string"}},"text/html":{"schema":{"type":"string"}}}},"400":{"description":"The request was invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"401":{"description":"Authentication is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"404":{"description":"The requested public resource was not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"406":{"description":"The requested representation is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"409":{"description":"The request conflicts with current workspace state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"422":{"description":"The request could not be processed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"429":{"description":"The request was rate limited.","headers":{"Retry-After":{"schema":{"type":"integer"}},"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"500":{"description":"The service could not complete the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}}}}},"/contact":{"get":{"operationId":"getPublicContactDetails","summary":"Get verified public contact details","parameters":[{"name":"format","in":"query","required":false,"description":"Return a typed JSON document envelope instead of the default text or HTML representation.","schema":{"type":"string","enum":["json"]}}],"responses":{"200":{"description":"A public Genvernium discovery resource.","headers":{"Deprecation":{"$ref":"#/components/headers/Deprecation"},"Sunset":{"$ref":"#/components/headers/Sunset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicTextDocument"}},"text/markdown":{"schema":{"type":"string"}},"text/html":{"schema":{"type":"string"}}}},"400":{"description":"The request was invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"401":{"description":"Authentication is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"404":{"description":"The requested public resource was not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"406":{"description":"The requested representation is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"409":{"description":"The request conflicts with current workspace state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"422":{"description":"The request could not be processed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"429":{"description":"The request was rate limited.","headers":{"Retry-After":{"schema":{"type":"integer"}},"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"500":{"description":"The service could not complete the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}}}}},"/llms.txt":{"get":{"operationId":"getAgentInstructions","summary":"Get bounded instructions for agents","parameters":[{"name":"format","in":"query","required":false,"description":"Return a typed JSON document envelope instead of the default text or HTML representation.","schema":{"type":"string","enum":["json"]}}],"responses":{"200":{"description":"Plain-text agent guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicTextDocument"}},"text/plain":{"schema":{"type":"string"}}}},"400":{"description":"The request was invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"401":{"description":"Authentication is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"404":{"description":"The requested public resource was not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"406":{"description":"The requested representation is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"409":{"description":"The request conflicts with current workspace state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"422":{"description":"The request could not be processed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"429":{"description":"The request was rate limited.","headers":{"Retry-After":{"schema":{"type":"integer"}},"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"500":{"description":"The service could not complete the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}}}}},"/ask":{"get":{"operationId":"answerPublicQuestion","summary":"Answer a bounded public product question","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":1}},{"name":"stream","in":"query","required":false,"schema":{"type":"string","enum":["1"]}}],"responses":{"200":{"description":"A source-linked public answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicAnswer"}},"text/event-stream":{"schema":{"type":"string"}}}},"400":{"description":"The request was invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"401":{"description":"Authentication is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"404":{"description":"The requested public resource was not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"406":{"description":"The requested representation is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"409":{"description":"The request conflicts with current workspace state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"422":{"description":"The request could not be processed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"429":{"description":"The request was rate limited.","headers":{"Retry-After":{"schema":{"type":"integer"}},"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"500":{"description":"The service could not complete the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}}}},"post":{"operationId":"answerPublicQuestionPost","summary":"Answer a bounded public product question","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["query"],"properties":{"query":{"type":"string","minLength":1}},"additionalProperties":false}}}},"responses":{"200":{"description":"A source-linked public answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicAnswer"}},"text/event-stream":{"schema":{"type":"string"}}}},"400":{"description":"The request was invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"401":{"description":"Authentication is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"404":{"description":"The requested public resource was not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"406":{"description":"The requested representation is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"409":{"description":"The request conflicts with current workspace state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"422":{"description":"The request could not be processed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"429":{"description":"The request was rate limited.","headers":{"Retry-After":{"schema":{"type":"integer"}},"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"500":{"description":"The service could not complete the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}}}}},"/mcp":{"post":{"operationId":"mcpPublicDiscovery","summary":"Use the public read-only MCP discovery server","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["jsonrpc","method"],"properties":{"jsonrpc":{"type":"string","const":"2.0"},"id":{"type":["string","integer","null"]},"method":{"type":"string"},"params":{"type":"object"}},"additionalProperties":false}}}},"responses":{"200":{"description":"A JSON-RPC MCP response with typed result or error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/McpJsonRpcResponse"}}}},"400":{"description":"The request was invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"401":{"description":"Authentication is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"404":{"description":"The requested public resource was not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"406":{"description":"The requested representation is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"409":{"description":"The request conflicts with current workspace state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"422":{"description":"The request could not be processed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"429":{"description":"The request was rate limited.","headers":{"Retry-After":{"schema":{"type":"integer"}},"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"500":{"description":"The service could not complete the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}}}}},"/api":{"get":{"operationId":"getAuthenticatedApiBoundary","summary":"Describe the authenticated API boundary","security":[{"sessionCookie":[]}],"responses":{"401":{"description":"An authenticated customer session is required.","headers":{"WWW-Authenticate":{"schema":{"type":"string"}},"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}}}}},"/api/v1":{"get":{"operationId":"getVersionedPublicApiIndex","summary":"Get the zero-auth versioned public API index","description":"Returns read-only public resources and the authenticated customer workspace boundary.","responses":{"200":{"description":"The versioned public API index.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicApiV1Index"}}}}}}},"/api/workspaces/{workspaceId}/analysis-requests":{"post":{"operationId":"createWorkspaceAnalysisRequest","summary":"Queue an authenticated website analysis request","description":"Creates a durable analysis request for an approved workspace website. The request is authenticated, workspace-scoped, and idempotent.","security":[{"sessionCookie":[]}],"parameters":[{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"Stable client-generated key used to make safe retries return the same request.","schema":{"type":"string","minLength":8,"maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAnalysisRequest"}}}},"responses":{"201":{"description":"The analysis request was created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnalysisRequestCreated"}}}},"400":{"description":"The request was invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"401":{"description":"Authentication is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"404":{"description":"The requested public resource was not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"406":{"description":"The requested representation is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"409":{"description":"The request conflicts with current workspace state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"422":{"description":"The request could not be processed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"429":{"description":"The request was rate limited.","headers":{"Retry-After":{"schema":{"type":"integer"}},"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"500":{"description":"The service could not complete the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}}}}},"/api/dashboard/geo":{"post":{"operationId":"startWorkspaceGeoAudit","summary":"Start an authenticated GEO audit job","description":"Starts a durable, approval-scoped GEO audit and returns a job identifier and status for polling.","security":[{"sessionCookie":[]}],"parameters":[{"name":"workspaceId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"Stable client-generated key used to make safe retries return the same audit job.","schema":{"type":"string","minLength":8,"maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["kind"],"properties":{"kind":{"type":"string","enum":["crawl","audit"]}},"additionalProperties":false}}}},"responses":{"202":{"description":"The GEO audit was accepted for asynchronous processing.","headers":{"Location":{"schema":{"type":"string","format":"uri"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeoJobAccepted"}}}},"400":{"description":"The request was invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"401":{"description":"Authentication is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"404":{"description":"The requested public resource was not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"406":{"description":"The requested representation is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"409":{"description":"The request conflicts with current workspace state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"422":{"description":"The request could not be processed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"429":{"description":"The request was rate limited.","headers":{"Retry-After":{"schema":{"type":"integer"}},"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"500":{"description":"The service could not complete the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}}}}},"/api/v1/discovery":{"get":{"operationId":"listPublicDiscoveryResources","summary":"List public discovery resources","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":50,"default":20}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"A paginated public discovery resource list.","headers":{"Link":{"schema":{"type":"string"}},"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicDiscoveryPage"}}}},"400":{"description":"The pagination parameter is invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}}}}},"/api/v1/batch":{"post":{"operationId":"batchPublicDiscoveryResources","summary":"Batch read public discovery resource descriptors","description":"Returns a bounded set of public discovery descriptors in one read-only request. Unknown IDs are reported without fetching customer data; the authenticated workspace MCP descriptor is metadata only.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicBatchRequest"}}}},"responses":{"200":{"description":"The bounded batch response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicBatchResponse"}}}},"400":{"description":"The batch request is invalid or exceeds the limit.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}}}}},"/api/v1/sandbox":{"get":{"operationId":"getPublicSandboxFixture","summary":"Get deterministic public sandbox fixture","description":"Returns synthetic, read-only discovery data for integration testing. It never reads customer data or mutates production state.","responses":{"200":{"description":"A deterministic sandbox fixture.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicSandboxFixture"}}}}}}},"/api/v1/onboarding":{"get":{"operationId":"getAgentOnboardingContract","summary":"Get the zero-auth agent onboarding contract","description":"Returns the live sandbox, zero-auth, and self-serve sandbox-token endpoints. No customer workspace credential is issued.","responses":{"200":{"description":"The agent onboarding contract.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentOnboardingContract"}}}}}},"post":{"operationId":"createSandboxOnboardingToken","summary":"Create a short-lived sandbox onboarding token","description":"Creates a sandbox-only onboarding token. It does not grant customer workspace access and is not a customer API key.","responses":{"201":{"description":"A short-lived sandbox-only onboarding token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxOnboardingToken"}}}}}}},"/openapi.json":{"get":{"operationId":"getPublicOpenApiDocument","summary":"Get this public discovery document","responses":{"200":{"description":"This OpenAPI document.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicOpenApiDocument"}}}},"400":{"description":"The request was invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"401":{"description":"Authentication is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"404":{"description":"The requested public resource was not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"406":{"description":"The requested representation is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"409":{"description":"The request conflicts with current workspace state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"422":{"description":"The request could not be processed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"429":{"description":"The request was rate limited.","headers":{"Retry-After":{"schema":{"type":"integer"}},"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"500":{"description":"The service could not complete the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}}}}}},"components":{"headers":{"Deprecation":{"description":"Present when an operation is deprecated; clients should migrate before the announced sunset date.","schema":{"type":"string","format":"date-time"}},"Sunset":{"description":"Present when a removal date has been committed; dates are announced at least 90 days in advance.","schema":{"type":"string","format":"date-time"}}},"schemas":{"PublicTextDocument":{"type":"object","required":["resource","mediaType","content","readOnly"],"properties":{"resource":{"type":"string","format":"uri"},"mediaType":{"type":"string"},"content":{"type":"string"},"readOnly":{"type":"boolean","const":true}},"additionalProperties":false},"PublicAnswer":{"type":"object","required":["_meta","answer","query","sources"],"properties":{"_meta":{"type":"object","required":["response_type","version"],"properties":{"response_type":{"type":"string","example":"nlweb.answer"},"version":{"type":"string","example":"1.0"}}},"answer":{"type":"string"},"query":{"type":"string"},"sources":{"type":"array","items":{"type":"string","format":"uri"}}},"additionalProperties":false},"CreateAnalysisRequest":{"type":"object","required":["websiteUrl"],"properties":{"websiteUrl":{"type":"string","format":"uri","pattern":"^https://"}},"additionalProperties":false},"AnalysisRequestCreated":{"type":"object","required":["request","traceId"],"properties":{"request":{"type":"object"},"traceId":{"type":"string"}},"additionalProperties":false},"GeoJobAccepted":{"type":"object","required":["id","status"],"properties":{"id":{"type":"string","format":"uuid"},"status":{"type":"string"}},"additionalProperties":false},"PublicError":{"type":"object","required":["code","message","status"],"properties":{"code":{"type":"string","example":"PUBLIC_RESOURCE_NOT_FOUND"},"message":{"type":"string","example":"The requested public resource was not found."},"status":{"type":"integer","format":"int32","example":404},"resolution":{"type":"string","description":"A safe next step for resolving the error."},"error":{"type":"object","required":["code","message","status"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"status":{"type":"integer","format":"int32"}},"additionalProperties":false},"requestId":{"type":"string","description":"Correlation identifier when supplied by the edge."}},"additionalProperties":false},"PublicDiscoveryPage":{"type":"object","required":["items","page"],"properties":{"items":{"type":"array","items":{"type":"object","required":["id","type","url","access"],"properties":{"id":{"type":"string"},"type":{"type":"string"},"url":{"type":"string","format":"uri"},"access":{"type":"string","const":"public-read"}},"additionalProperties":false}},"page":{"type":"object","required":["limit","cursor","nextCursor","next_cursor"],"properties":{"limit":{"type":"integer"},"cursor":{"type":["string","null"]},"nextCursor":{"type":["string","null"]},"next_cursor":{"type":["string","null"]}},"additionalProperties":false}},"additionalProperties":true},"PublicApiV1Index":{"type":"object","required":["product","version","access","readOnly","zeroAuth","onboarding","sandbox","discovery","resources"],"properties":{"product":{"type":"string","const":"Genvernium"},"version":{"type":"string","const":"v1"},"access":{"type":"string","const":"public-read"},"readOnly":{"type":"boolean","const":true},"zeroAuth":{"type":"boolean","const":true},"onboarding":{"type":"string","format":"uri"},"sandbox":{"type":"string","format":"uri"},"discovery":{"type":"string","format":"uri"},"resources":{"type":"array","items":{"type":"object"}}},"additionalProperties":true},"PublicBatchRequest":{"type":"object","required":["resourceIds"],"properties":{"resourceIds":{"type":"array","minItems":1,"maxItems":10,"uniqueItems":true,"items":{"type":"string"}}},"additionalProperties":false},"PublicBatchResponse":{"type":"object","required":["items","requested","unknown","readOnly"],"properties":{"items":{"type":"array","items":{"type":"object"}},"requested":{"type":"array","items":{"type":"string"}},"unknown":{"type":"array","items":{"type":"string"}},"readOnly":{"type":"boolean","const":true}},"additionalProperties":false},"PublicSandboxFixture":{"type":"object","required":["sandbox","readOnly","fixtureVersion","resources"],"properties":{"sandbox":{"type":"boolean","const":true},"readOnly":{"type":"boolean","const":true},"fixtureVersion":{"type":"string"},"resources":{"type":"array","items":{"type":"object"}}},"additionalProperties":false},"AgentOnboardingContract":{"type":"object","required":["onboarding","sandbox","selfServeKeyGeneration","selfServeApiKeyGeneration","zeroAuth"],"properties":{"onboarding":{"type":"boolean","const":true},"sandbox":{"type":"object"},"selfServeKeyGeneration":{"type":"object"},"selfServeApiKeyGeneration":{"type":"object"},"zeroAuth":{"type":"object"}},"additionalProperties":true},"SandboxOnboardingToken":{"type":"object","required":["tokenType","accessToken","apiKey","api_key","credentialType","scope","expiresIn","expires_in","token_type","credentialsRequiredForSandbox","grantsNoCustomerWorkspaceAccess"],"properties":{"tokenType":{"type":"string","const":"sandbox_onboarding_token"},"accessToken":{"type":"string","pattern":"^gvm_sandbox_"},"apiKey":{"type":"string","pattern":"^gvm_sandbox_"},"api_key":{"type":"string","pattern":"^gvm_sandbox_"},"credentialType":{"type":"string","const":"sandbox_onboarding_token"},"scope":{"type":"string","const":"sandbox.read"},"expiresIn":{"type":"integer","minimum":1},"expires_in":{"type":"integer","minimum":1},"token_type":{"type":"string","const":"sandbox_onboarding_token"},"credentialsRequiredForSandbox":{"type":"boolean","const":false},"grantsNoCustomerWorkspaceAccess":{"type":"boolean","const":true}},"additionalProperties":true},"PublicOpenApiDocument":{"type":"object","required":["openapi","info","paths"],"properties":{"openapi":{"type":"string","const":"3.1.1"},"info":{"type":"object"},"paths":{"type":"object"}},"additionalProperties":true},"McpJsonRpcResponse":{"type":"object","required":["jsonrpc","id"],"properties":{"jsonrpc":{"type":"string","const":"2.0"},"id":{"type":["string","integer","null"]},"result":{"type":"object"},"error":{"type":"object"}},"additionalProperties":false}},"securitySchemes":{"sessionCookie":{"type":"http","scheme":"cookie","name":"__Host-solutionco_session","description":"Authenticated workspace boundary carried by the host session cookie. Public discovery operations do not require it. Scoped permissions are public.read, workspace.read, workspace.write.approval, and workspace.admin.","x-scopes":["public.read","workspace.read","workspace.write.approval","workspace.admin"]}}}}