{"openapi":"3.1.0","info":{"title":"OncoRadar Developer API","version":"2.0.0","description":"Stable tenant-scoped oncology research API. Authentication uses OncoRadar API keys as Bearer credentials; OAuth is not advertised. Current legal acceptance remains required."},"servers":[{"url":"https://api.oncoradar.net"}],"tags":[{"name":"Research"},{"name":"Signals"},{"name":"Collections"},{"name":"Comparisons"},{"name":"Saved Searches"},{"name":"Workspace"},{"name":"Exports"},{"name":"Feedback"},{"name":"Alerts"},{"name":"Webhooks"},{"name":"MCP"},{"name":"Credentials"}],"paths":{"/api/v1/search":{"get":{"tags":["Research"],"operationId":"searchStudies","security":[{"apiKey":[]},{"sessionCookie":[]}],"x-required-scopes":["search:read"],"parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":2,"maxLength":500}},{"name":"cancer","in":"query","schema":{"type":"string","maxLength":120}},{"name":"topic","in":"query","schema":{"type":"string","maxLength":120}},{"name":"source","in":"query","schema":{"type":"string"}},{"name":"language","in":"query","schema":{"type":"string"}},{"name":"evidence","in":"query","schema":{"type":"string"}},{"name":"trialPhase","in":"query","schema":{"type":"string"}},{"name":"gene","in":"query","schema":{"type":"string"}},{"name":"drug","in":"query","schema":{"type":"string"}},{"name":"publishedFromDay","in":"query","schema":{"type":"integer"}},{"name":"publishedToDay","in":"query","schema":{"type":"integer"}},{"name":"peerReviewed","in":"query","schema":{"type":"boolean"}},{"name":"openAccess","in":"query","schema":{"type":"boolean"}},{"name":"retracted","in":"query","schema":{"type":"boolean"}},{"name":"strategy","in":"query","schema":{"type":"string","enum":["exact","ann"],"default":"ann"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":30}},{"name":"cursor","in":"query","schema":{"$ref":"#/components/schemas/Cursor"}}],"responses":{"200":{"description":"Search result page","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchResponse"}}}},"400":{"description":"Invalid request or cursor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope or current legal acceptance required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate or daily quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Dependency unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/studies/{id}":{"get":{"tags":["Research"],"operationId":"getStudy","security":[{"apiKey":[]},{"sessionCookie":[]}],"x-required-scopes":["studies:read"],"parameters":[{"$ref":"#/components/parameters/StudyId"}],"responses":{"200":{"description":"Canonical study detail","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StudyDetail"}}}},"400":{"description":"Invalid request or cursor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope or current legal acceptance required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate or daily quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Dependency unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/trials/{nctId}":{"get":{"tags":["Research"],"operationId":"getTrial","security":[{"apiKey":[]},{"sessionCookie":[]}],"x-required-scopes":["studies:read"],"parameters":[{"$ref":"#/components/parameters/NctId"}],"responses":{"200":{"description":"Canonical trial detail","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrialDetail"}}}},"400":{"description":"Invalid request or cursor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope or current legal acceptance required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate or daily quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Dependency unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/signals":{"get":{"tags":["Signals"],"operationId":"listSignals","security":[{"apiKey":[]},{"sessionCookie":[]}],"x-required-scopes":["signals:read"],"parameters":[{"name":"eventType","in":"query","schema":{"type":"string","enum":["new","version","published","retracted","trial_status"]}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":30}}],"responses":{"200":{"description":"Latest signals","content":{"application/json":{"schema":{"type":"object","required":["items"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Signal"}},"cursor":{"oneOf":[{"$ref":"#/components/schemas/Cursor"},{"type":"null"}]}},"additionalProperties":false}}}},"400":{"description":"Invalid request or cursor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope or current legal acceptance required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate or daily quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Dependency unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/collections":{"get":{"tags":["Collections"],"security":[{"apiKey":[]},{"sessionCookie":[]}],"operationId":"listCollections","x-required-scopes":["collections:read"],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["items"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Collection"}},"cursor":{"oneOf":[{"$ref":"#/components/schemas/Cursor"},{"type":"null"}]}},"additionalProperties":false}}}},"400":{"description":"Invalid request or cursor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope or current legal acceptance required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate or daily quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Dependency unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["Collections"],"security":[{"apiKey":[]},{"sessionCookie":[]}],"operationId":"createCollection","x-required-scopes":["collections:write"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectionInput"}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Collection"}}}},"400":{"description":"Invalid request or cursor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope or current legal acceptance required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate or daily quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Dependency unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/collections/{id}":{"put":{"tags":["Collections"],"operationId":"updateCollection","security":[{"apiKey":[]},{"sessionCookie":[]}],"x-required-scopes":["collections:write"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectionInput"}}}},"responses":{"200":{"description":"Updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Collection"}}}},"400":{"description":"Invalid request or cursor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope or current legal acceptance required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate or daily quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Dependency unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["Collections"],"operationId":"deleteCollection","security":[{"apiKey":[]},{"sessionCookie":[]}],"x-required-scopes":["collections:write"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Deleted"}}}},"400":{"description":"Invalid request or cursor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope or current legal acceptance required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate or daily quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Dependency unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/collections/{id}/items":{"get":{"tags":["Collections"],"operationId":"listCollectionItems","security":[{"apiKey":[]},{"sessionCookie":[]}],"x-required-scopes":["collections:read"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Collection items","content":{"application/json":{"schema":{"type":"object","required":["items"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/CollectionItem"}},"cursor":{"oneOf":[{"$ref":"#/components/schemas/Cursor"},{"type":"null"}]}},"additionalProperties":false}}}},"400":{"description":"Invalid request or cursor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope or current legal acceptance required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate or daily quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Dependency unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["Collections"],"operationId":"addCollectionItem","security":[{"apiKey":[]},{"sessionCookie":[]}],"x-required-scopes":["collections:write"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["studyId"],"properties":{"studyId":{"type":"string"},"note":{"type":"string","maxLength":4000,"default":""},"metadata":{"$ref":"#/components/schemas/JsonObject"}},"additionalProperties":false}}}},"responses":{"201":{"description":"Study saved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectionItem"}}}},"400":{"description":"Invalid request or cursor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope or current legal acceptance required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate or daily quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Dependency unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/collections/{id}/items/{itemId}":{"put":{"tags":["Collections"],"operationId":"updateCollectionItem","security":[{"apiKey":[]},{"sessionCookie":[]}],"x-required-scopes":["collections:write"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"itemId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"note":{"type":"string","maxLength":4000,"default":""},"metadata":{"$ref":"#/components/schemas/JsonObject"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Collection item updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectionItem"}}}},"400":{"description":"Invalid request or cursor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope or current legal acceptance required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate or daily quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Dependency unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["Collections"],"operationId":"deleteCollectionItem","security":[{"apiKey":[]},{"sessionCookie":[]}],"x-required-scopes":["collections:write"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"itemId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Deleted"}}}},"400":{"description":"Invalid request or cursor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope or current legal acceptance required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate or daily quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Dependency unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/alerts":{"get":{"tags":["Alerts"],"security":[{"apiKey":[]},{"sessionCookie":[]}],"operationId":"listAlerts","x-required-scopes":["alerts:read"],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["items"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Alert"}},"cursor":{"oneOf":[{"$ref":"#/components/schemas/Cursor"},{"type":"null"}]}},"additionalProperties":false}}}},"400":{"description":"Invalid request or cursor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope or current legal acceptance required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate or daily quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Dependency unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["Alerts"],"security":[{"apiKey":[]},{"sessionCookie":[]}],"operationId":"createAlert","x-required-scopes":["alerts:write"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlertInput"}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Alert"}}}},"400":{"description":"Invalid request or cursor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope or current legal acceptance required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate or daily quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Dependency unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/alerts/{id}":{"put":{"tags":["Alerts"],"operationId":"updateAlert","security":[{"apiKey":[]},{"sessionCookie":[]}],"x-required-scopes":["alerts:write"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlertInput"}}}},"responses":{"200":{"description":"Updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Alert"}}}},"400":{"description":"Invalid request or cursor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope or current legal acceptance required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate or daily quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Dependency unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["Alerts"],"operationId":"deleteAlert","security":[{"apiKey":[]},{"sessionCookie":[]}],"x-required-scopes":["alerts:write"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Deleted"}}}},"400":{"description":"Invalid request or cursor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope or current legal acceptance required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate or daily quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Dependency unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/comparisons":{"get":{"tags":["Comparisons"],"operationId":"listComparisons","security":[{"apiKey":[]},{"sessionCookie":[]}],"x-required-scopes":["collections:read"],"responses":{"200":{"description":"Comparisons","content":{"application/json":{"schema":{"type":"object","required":["items"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Comparison"}},"cursor":{"oneOf":[{"$ref":"#/components/schemas/Cursor"},{"type":"null"}]}},"additionalProperties":false}}}},"400":{"description":"Invalid request or cursor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope or current legal acceptance required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate or daily quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Dependency unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["Comparisons"],"operationId":"createComparison","security":[{"apiKey":[]},{"sessionCookie":[]}],"x-required-scopes":["collections:write"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComparisonInput"}}}},"responses":{"201":{"description":"Comparison and study details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComparisonCreated"}}}},"400":{"description":"Invalid request or cursor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope or current legal acceptance required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate or daily quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Dependency unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/comparisons/{id}":{"delete":{"tags":["Comparisons"],"operationId":"deleteComparison","security":[{"apiKey":[]},{"sessionCookie":[]}],"x-required-scopes":["collections:write"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Deleted"}}}},"400":{"description":"Invalid request or cursor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope or current legal acceptance required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate or daily quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Dependency unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/exports":{"post":{"tags":["Exports"],"operationId":"createExport","security":[{"apiKey":[]},{"sessionCookie":[]}],"x-required-scopes":["exports:read"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportInput"}}}},"responses":{"200":{"description":"Bibliographic export","headers":{"Content-Disposition":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ExportStudy"}}},"application/x-bibtex":{"schema":{"type":"string"}},"application/x-research-info-systems":{"schema":{"type":"string"}},"text/csv":{"schema":{"type":"string"}}}},"400":{"description":"Invalid request or cursor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope or current legal acceptance required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate or daily quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Dependency unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/feedback":{"post":{"tags":["Feedback"],"operationId":"saveFeedback","security":[{"apiKey":[]},{"sessionCookie":[]}],"x-required-scopes":["signals:write"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeedbackInput"}}}},"responses":{"201":{"description":"Feedback saved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Feedback"}}}},"400":{"description":"Invalid request or cursor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope or current legal acceptance required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate or daily quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Dependency unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/notes":{"get":{"tags":["Workspace"],"operationId":"listNotes","security":[{"apiKey":[]},{"sessionCookie":[]}],"x-required-scopes":["workspace:read"],"parameters":[{"name":"studyId","in":"query","schema":{"type":"string","maxLength":120}}],"responses":{"200":{"description":"Visible notes","content":{"application/json":{"schema":{"type":"object","required":["items"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Note"}},"cursor":{"oneOf":[{"$ref":"#/components/schemas/Cursor"},{"type":"null"}]}},"additionalProperties":false}}}},"400":{"description":"Invalid request or cursor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope or current legal acceptance required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate or daily quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Dependency unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["Workspace"],"operationId":"createNote","security":[{"apiKey":[]},{"sessionCookie":[]}],"x-required-scopes":["workspace:write"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NoteCreate"}}}},"responses":{"201":{"description":"Note created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Note"}}}},"400":{"description":"Invalid request or cursor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope or current legal acceptance required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate or daily quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Dependency unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/notes/{id}":{"put":{"tags":["Workspace"],"operationId":"updateNote","security":[{"apiKey":[]},{"sessionCookie":[]}],"x-required-scopes":["workspace:write"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NoteUpdate"}}}},"responses":{"200":{"description":"Note updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Note"}}}},"400":{"description":"Invalid request or cursor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope or current legal acceptance required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate or daily quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Dependency unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["Workspace"],"operationId":"deleteNote","security":[{"apiKey":[]},{"sessionCookie":[]}],"x-required-scopes":["workspace:write"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Deleted"}}}},"400":{"description":"Invalid request or cursor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope or current legal acceptance required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate or daily quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Dependency unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/saved-searches":{"get":{"tags":["Saved Searches"],"operationId":"listSavedSearches","security":[{"apiKey":[]},{"sessionCookie":[]}],"x-required-scopes":["saved-searches:read"],"responses":{"200":{"description":"Saved searches","content":{"application/json":{"schema":{"type":"object","required":["items"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/SavedSearch"}},"cursor":{"oneOf":[{"$ref":"#/components/schemas/Cursor"},{"type":"null"}]}},"additionalProperties":false}}}},"400":{"description":"Invalid request or cursor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope or current legal acceptance required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate or daily quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Dependency unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["Saved Searches"],"operationId":"createSavedSearch","security":[{"apiKey":[]},{"sessionCookie":[]}],"x-required-scopes":["saved-searches:write"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SavedSearchInput"}}}},"responses":{"201":{"description":"Saved search created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SavedSearch"}}}},"400":{"description":"Invalid request or cursor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope or current legal acceptance required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate or daily quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Dependency unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/saved-searches/{id}":{"put":{"tags":["Saved Searches"],"operationId":"updateSavedSearch","security":[{"apiKey":[]},{"sessionCookie":[]}],"x-required-scopes":["saved-searches:write"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SavedSearchInput"}}}},"responses":{"200":{"description":"Saved search updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SavedSearch"}}}},"400":{"description":"Invalid request or cursor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope or current legal acceptance required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate or daily quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Dependency unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["Saved Searches"],"operationId":"deleteSavedSearch","security":[{"apiKey":[]},{"sessionCookie":[]}],"x-required-scopes":["saved-searches:write"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Deleted"}}}},"400":{"description":"Invalid request or cursor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope or current legal acceptance required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate or daily quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Dependency unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/search-history":{"get":{"tags":["Research"],"operationId":"listSearchHistory","security":[{"apiKey":[]},{"sessionCookie":[]}],"x-required-scopes":["search:read"],"responses":{"200":{"description":"Latest 100 searches","content":{"application/json":{"schema":{"type":"object","required":["items"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/SearchHistoryEntry"}},"cursor":{"oneOf":[{"$ref":"#/components/schemas/Cursor"},{"type":"null"}]}},"additionalProperties":false}}}},"400":{"description":"Invalid request or cursor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope or current legal acceptance required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate or daily quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Dependency unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/signals/{id}/synthesis":{"post":{"tags":["Signals"],"operationId":"createSignalSynthesis","security":[{"apiKey":[]},{"sessionCookie":[]}],"x-required-scopes":["synthesis:write"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"201":{"description":"Signal synthesis created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignalSynthesisResponse"}}}},"400":{"description":"Invalid request or cursor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope or current legal acceptance required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate or daily quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Dependency unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/workspace":{"get":{"tags":["Workspace"],"operationId":"getWorkspace","security":[{"apiKey":[]},{"sessionCookie":[]}],"x-required-scopes":["workspace:read"],"responses":{"200":{"description":"Workspace overview","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceOverview"}}}},"400":{"description":"Invalid request or cursor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope or current legal acceptance required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate or daily quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Dependency unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"put":{"tags":["Workspace"],"operationId":"updateWorkspace","security":[{"apiKey":[]},{"sessionCookie":[]}],"x-required-scopes":["workspace:write"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceUpdate"}}}},"responses":{"200":{"description":"Workspace updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceUpdated"}}}},"400":{"description":"Invalid request or cursor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope or current legal acceptance required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate or daily quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Dependency unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/workspace/members":{"get":{"tags":["Workspace"],"operationId":"listWorkspaceMembers","security":[{"apiKey":[]},{"sessionCookie":[]}],"x-required-scopes":["workspace:read"],"responses":{"200":{"description":"Workspace members","content":{"application/json":{"schema":{"type":"object","required":["items"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/WorkspaceMember"}},"cursor":{"oneOf":[{"$ref":"#/components/schemas/Cursor"},{"type":"null"}]}},"additionalProperties":false}}}},"400":{"description":"Invalid request or cursor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope or current legal acceptance required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate or daily quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Dependency unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["Workspace"],"operationId":"addWorkspaceMember","security":[{"apiKey":[]},{"sessionCookie":[]}],"x-required-scopes":["workspace:write"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceMemberInput"}}}},"responses":{"201":{"description":"Workspace member added","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceMember"}}}},"400":{"description":"Invalid request or cursor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope or current legal acceptance required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate or daily quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Dependency unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/workspace/members/{id}":{"put":{"tags":["Workspace"],"operationId":"updateWorkspaceMember","security":[{"apiKey":[]},{"sessionCookie":[]}],"x-required-scopes":["workspace:write"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceMemberRoleInput"}}}},"responses":{"200":{"description":"Member role updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceMember"}}}},"400":{"description":"Invalid request or cursor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope or current legal acceptance required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate or daily quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Dependency unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["Workspace"],"operationId":"removeWorkspaceMember","security":[{"apiKey":[]},{"sessionCookie":[]}],"x-required-scopes":["workspace:write"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Deleted"}}}},"400":{"description":"Invalid request or cursor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope or current legal acceptance required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate or daily quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Dependency unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/synthesis":{"post":{"tags":["Research"],"operationId":"createSynthesis","security":[{"apiKey":[]},{"sessionCookie":[]}],"x-required-scopes":["synthesis:write"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["query"],"properties":{"query":{"type":"string","minLength":2,"maxLength":1000}},"additionalProperties":false}}}},"responses":{"201":{"description":"Grounded synthesis created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SynthesisResponse"}}}},"400":{"description":"Invalid request or cursor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope or current legal acceptance required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate or daily quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Dependency unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/webhooks/endpoints":{"get":{"tags":["Webhooks"],"operationId":"listWebhookEndpoints","security":[{"apiKey":[]},{"sessionCookie":[]}],"x-required-scopes":["webhooks:read"],"responses":{"200":{"description":"Webhook endpoints","content":{"application/json":{"schema":{"type":"object","required":["items"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/WebhookEndpoint"}},"cursor":{"oneOf":[{"$ref":"#/components/schemas/Cursor"},{"type":"null"}]}},"additionalProperties":false}}}},"400":{"description":"Invalid request or cursor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope or current legal acceptance required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate or daily quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Dependency unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["Webhooks"],"operationId":"createWebhookEndpoint","security":[{"apiKey":[]},{"sessionCookie":[]}],"x-required-scopes":["webhooks:write"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name","url"],"properties":{"name":{"type":"string","minLength":1,"maxLength":120},"url":{"type":"string","format":"uri","pattern":"^https://"},"secret":{"type":"string","minLength":32,"maxLength":256}},"additionalProperties":false}}}},"responses":{"201":{"description":"Endpoint created; signing secret returned once","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookEndpointCreated"}}}},"400":{"description":"Invalid request or cursor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope or current legal acceptance required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate or daily quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Dependency unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/webhooks/endpoints/{id}":{"delete":{"tags":["Webhooks"],"operationId":"deleteWebhookEndpoint","security":[{"apiKey":[]},{"sessionCookie":[]}],"x-required-scopes":["webhooks:write"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Deleted"}}}},"400":{"description":"Invalid request or cursor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope or current legal acceptance required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate or daily quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Dependency unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/webhooks/subscriptions":{"get":{"tags":["Webhooks"],"operationId":"listWebhookSubscriptions","security":[{"apiKey":[]},{"sessionCookie":[]}],"x-required-scopes":["webhooks:read"],"responses":{"200":{"description":"Webhook subscriptions","content":{"application/json":{"schema":{"type":"object","required":["items"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/WebhookSubscription"}},"cursor":{"oneOf":[{"$ref":"#/components/schemas/Cursor"},{"type":"null"}]}},"additionalProperties":false}}}},"400":{"description":"Invalid request or cursor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope or current legal acceptance required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate or daily quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Dependency unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["Webhooks"],"operationId":"createWebhookSubscription","security":[{"apiKey":[]},{"sessionCookie":[]}],"x-required-scopes":["webhooks:write"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["endpointId","eventTypes"],"properties":{"endpointId":{"type":"string","format":"uuid"},"eventTypes":{"type":"array","minItems":1,"uniqueItems":true,"items":{"type":"string","enum":["signal.new","signal.version","signal.published","signal.retracted","signal.trial_status"]}}},"additionalProperties":false}}}},"responses":{"201":{"description":"Subscription created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookSubscription"}}}},"400":{"description":"Invalid request or cursor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope or current legal acceptance required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate or daily quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Dependency unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/webhooks/subscriptions/{id}":{"delete":{"tags":["Webhooks"],"operationId":"deleteWebhookSubscription","security":[{"apiKey":[]},{"sessionCookie":[]}],"x-required-scopes":["webhooks:write"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Deleted"}}}},"400":{"description":"Invalid request or cursor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope or current legal acceptance required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate or daily quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Dependency unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/webhooks/deliveries":{"get":{"tags":["Webhooks"],"operationId":"listWebhookDeliveries","security":[{"apiKey":[]},{"sessionCookie":[]}],"x-required-scopes":["webhooks:read"],"parameters":[{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":50}}],"responses":{"200":{"description":"Recent delivery attempts","content":{"application/json":{"schema":{"type":"object","required":["items"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/WebhookDelivery"}},"cursor":{"oneOf":[{"$ref":"#/components/schemas/Cursor"},{"type":"null"}]}},"additionalProperties":false}}}},"400":{"description":"Invalid request or cursor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope or current legal acceptance required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate or daily quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Dependency unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/developer/credentials":{"get":{"tags":["Credentials"],"security":[{"sessionCookie":[]}],"operationId":"listCredentials","responses":{"200":{"description":"Credential metadata","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CredentialList"}}}},"400":{"description":"Invalid request or cursor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope or current legal acceptance required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate or daily quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Dependency unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["Credentials"],"security":[{"sessionCookie":[]}],"operationId":"createCredential","description":"Creates an API key. The secret is returned once.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CredentialCreate"}}}},"responses":{"201":{"description":"Credential created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CredentialCreated"}}}},"400":{"description":"Invalid request or cursor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope or current legal acceptance required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate or daily quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Dependency unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/developer/credentials/{id}":{"delete":{"tags":["Credentials"],"security":[{"sessionCookie":[]}],"operationId":"revokeCredential","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Credential revoked","content":{"application/json":{"schema":{"type":"object","required":["revoked"],"properties":{"revoked":{"type":"boolean","const":true}},"additionalProperties":false}}}},"400":{"description":"Invalid request or cursor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope or current legal acceptance required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Resource conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate or daily quota exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Dependency unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/mcp":{"post":{"tags":["MCP"],"operationId":"mcp","security":[{"apiKey":[]}],"description":"Stateless MCP 2025-06-18 JSON-RPC endpoint authenticated only with an OncoRadar API key.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/McpRequest"}}}},"responses":{"200":{"description":"JSON-RPC response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/McpResponse"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Insufficient scope or current legal acceptance required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"securitySchemes":{"apiKey":{"type":"http","scheme":"bearer","bearerFormat":"OncoRadar API key","description":"Use Authorization: Bearer okr_… This is API-key authentication, not OAuth."},"sessionCookie":{"type":"apiKey","in":"cookie","name":"__Host-oncoradar_session"}},"parameters":{"StudyId":{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^[0-9]+$"}},"NctId":{"name":"nctId","in":"path","required":true,"schema":{"type":"string","pattern":"^NCT[0-9]{8}$"}}},"schemas":{"JsonObject":{"type":"object","additionalProperties":true},"Error":{"type":"object","required":["error","requestId"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{}},"additionalProperties":false},"requestId":{"type":"string","format":"uuid"}},"additionalProperties":false},"Cursor":{"type":"string","minLength":1,"maxLength":2048,"description":"Opaque, request-bound pagination token. Clients must not parse or modify it."},"Deleted":{"type":"object","required":["deleted"],"properties":{"deleted":{"type":"boolean","const":true}},"additionalProperties":false},"ResearchPaper":{"type":"object","required":["id","source","externalId","doi","title","abstract","authors","publishedAt","cancerType","topic","evidenceLevel","url","journal","openAccess"],"properties":{"id":{"type":"string"},"source":{"type":"string"},"externalId":{"type":"string"},"doi":{"type":["string","null"]},"identifiers":{"type":"object","properties":{"doi":{"type":"string"},"pmid":{"type":"string"},"pmcid":{"type":"string"},"nct":{"type":"string"},"arxiv":{"type":"string"},"biorxiv":{"type":"string"},"fingerprint":{"type":"string"}},"additionalProperties":false},"title":{"type":"string"},"abstract":{"type":"string"},"authors":{"type":"array","items":{"type":"string"}},"publishedAt":{"type":"string"},"cancerType":{"type":"string"},"topic":{"type":"string"},"evidenceLevel":{"type":"string"},"url":{"type":"string","format":"uri"},"journal":{"type":"string"},"openAccess":{"type":"boolean"},"language":{"type":"string"},"license":{"type":["string","null"]},"peerReviewed":{"type":"boolean"},"retracted":{"type":"boolean"},"corrected":{"type":"boolean"},"trialPhase":{"type":"string"},"versionId":{"type":"string"},"relevanceScore":{"type":"number"},"matchFragments":{"type":"array","maxItems":3,"items":{"type":"string"}},"matchedChunks":{"type":"integer"}},"additionalProperties":false},"SearchDiagnostics":{"type":"object","required":["approximate","totalDocuments","eligibleDocuments","lexicalCandidates","retrievalCandidates","matchedCandidates","embeddingModel","strategy"],"properties":{"approximate":{"type":"boolean"},"totalDocuments":{"type":"integer"},"eligibleDocuments":{"type":"integer"},"lexicalCandidates":{"type":"integer"},"retrievalCandidates":{"type":"integer"},"matchedCandidates":{"type":"integer"},"embeddingModel":{"type":"string"},"strategy":{"type":"string"},"snapshot":{"type":"string"},"collectionId":{"type":"string"}},"additionalProperties":false},"FacetBucket":{"type":"object","required":["value","count"],"properties":{"value":{"type":"string"},"count":{"type":"integer","minimum":0}},"additionalProperties":false},"SearchResponse":{"type":"object","required":["query","papers","facets","diagnostics"],"properties":{"query":{"type":"string"},"papers":{"type":"array","items":{"$ref":"#/components/schemas/ResearchPaper"}},"facets":{"type":"object","required":["cancers","topics"],"properties":{"cancers":{"type":"array","items":{"$ref":"#/components/schemas/FacetBucket"}},"topics":{"type":"array","items":{"$ref":"#/components/schemas/FacetBucket"}}},"additionalProperties":false},"diagnostics":{"$ref":"#/components/schemas/SearchDiagnostics"},"cursor":{"oneOf":[{"$ref":"#/components/schemas/Cursor"},{"type":"null"}]}},"additionalProperties":false},"StudyChunk":{"type":"object","required":["id","publicationId","ordinal","section","content","indexedText"],"properties":{"id":{"type":"string"},"publicationId":{"type":"string"},"versionId":{"type":"string"},"ordinal":{"type":"integer"},"section":{"type":"string"},"content":{"type":"string"},"indexedText":{"type":"string"},"embeddingModel":{"type":"string"},"checksum":{"type":"string"}},"additionalProperties":false},"StudyTrial":{"type":"object","required":["nctId","phase","status","interventions","conditions","sourceUrl"],"properties":{"nctId":{"type":"string","pattern":"^NCT[0-9]{8}$"},"phase":{"type":"string"},"status":{"type":"string"},"interventions":{"type":"array","items":{"type":"string"}},"conditions":{"type":"array","items":{"type":"string"}},"sourceUrl":{"type":"string","format":"uri"}},"additionalProperties":false},"StudyVersion":{"type":"object","required":["id","source","externalId","relationType","publishedAt","peerReviewed","retracted","corrected","license","checksum","provenanceUrl"],"properties":{"id":{"type":"string"},"source":{"type":"string"},"externalId":{"type":"string"},"relationType":{"type":"string"},"publishedAt":{"type":"string"},"peerReviewed":{"type":"boolean"},"retracted":{"type":"boolean"},"corrected":{"type":"boolean"},"license":{"type":["string","null"]},"checksum":{"type":"string"},"provenanceUrl":{"type":"string","format":"uri"}},"additionalProperties":false},"StudyEntity":{"type":"object","required":["id","type","name","confidence","matchedText","extractor"],"properties":{"id":{"type":"string"},"type":{"type":"string"},"name":{"type":"string"},"confidence":{"type":"number"},"matchedText":{"type":"string"},"extractor":{"type":"string"}},"additionalProperties":false},"Provenance":{"type":"object","required":["source","url","license","checksum"],"properties":{"source":{"type":"string"},"url":{"type":"string","format":"uri"},"license":{"type":["string","null"]},"checksum":{"type":"string"}},"additionalProperties":false},"StudyDetail":{"type":"object","required":["paper","chunks","related","versions","trials","entities","passagesAllowed","provenance"],"properties":{"paper":{"$ref":"#/components/schemas/ResearchPaper"},"chunks":{"type":"array","items":{"$ref":"#/components/schemas/StudyChunk"}},"related":{"type":"array","items":{"$ref":"#/components/schemas/ResearchPaper"}},"versions":{"type":"array","items":{"$ref":"#/components/schemas/StudyVersion"}},"trials":{"type":"array","items":{"$ref":"#/components/schemas/StudyTrial"}},"entities":{"type":"array","items":{"$ref":"#/components/schemas/StudyEntity"}},"passagesAllowed":{"type":"boolean","description":"Whether indexed evidence passages may be redistributed."},"provenance":{"type":"array","items":{"$ref":"#/components/schemas/Provenance"}}},"additionalProperties":false},"TrialDetail":{"type":"object","required":["nctId","title","phase","status","interventions","conditions","enrollment","sourceUrl","updatedAt","studies"],"properties":{"nctId":{"type":"string","pattern":"^NCT[0-9]{8}$"},"title":{"type":"string"},"phase":{"type":"string"},"status":{"type":"string"},"interventions":{"type":"array","items":{"type":"string"}},"conditions":{"type":"array","items":{"type":"string"}},"enrollment":{"type":["integer","null"]},"sourceUrl":{"type":"string","format":"uri"},"updatedAt":{"type":"string","format":"date-time"},"studies":{"type":"array","maxItems":50,"items":{"$ref":"#/components/schemas/ResearchPaper"}}},"additionalProperties":false},"Signal":{"type":"object","required":["id","signalDate","studyId","title","summary","fingerprint","metadata","createdAt"],"properties":{"id":{"type":"string","format":"uuid"},"signalDate":{"type":"string","format":"date"},"studyId":{"type":"string"},"title":{"type":"string"},"summary":{"type":"string"},"sourceUrl":{"type":["string","null"]},"fingerprint":{"type":"string"},"metadata":{"$ref":"#/components/schemas/JsonObject"},"eventId":{"type":["string","null"]},"eventType":{"type":["string","null"],"enum":["new","version","published","retracted","trial_status",null]},"subscriptionType":{"type":["string","null"]},"subscriptionId":{"type":["string","null"]},"matchedEntities":{"type":"array","items":{"type":"string"}},"eventData":{"$ref":"#/components/schemas/JsonObject"},"createdAt":{"type":"string","format":"date-time"}},"additionalProperties":false},"Collection":{"type":"object","required":["id","name","description","createdAt","updatedAt"],"properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"description":{"type":"string"},"itemCount":{"type":"integer","minimum":0},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"additionalProperties":false},"CollectionInput":{"type":"object","required":["name"],"properties":{"name":{"type":"string","minLength":1,"maxLength":120},"description":{"type":"string","maxLength":2000,"default":""}},"additionalProperties":false},"CollectionItem":{"type":"object","required":["id","collectionId","studyId","note","metadata","createdAt","updatedAt"],"properties":{"id":{"type":"string","format":"uuid"},"collectionId":{"type":"string","format":"uuid"},"studyId":{"type":"string"},"note":{"type":"string"},"metadata":{"$ref":"#/components/schemas/JsonObject"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"additionalProperties":false},"Alert":{"type":"object","required":["id","name","query","filters","schedule","status","createdAt","updatedAt"],"properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"query":{"type":"string"},"filters":{"$ref":"#/components/schemas/JsonObject"},"schedule":{"type":"string","enum":["daily","weekly"]},"status":{"type":"string","enum":["active","paused"]},"lastEvaluatedAt":{"type":["string","null"]},"lastTriggeredAt":{"type":["string","null"]},"lastMatchCount":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"additionalProperties":false},"AlertInput":{"type":"object","required":["name","query"],"properties":{"name":{"type":"string","minLength":1,"maxLength":120},"query":{"type":"string","minLength":2,"maxLength":500},"filters":{"$ref":"#/components/schemas/JsonObject"},"schedule":{"type":"string","enum":["daily","weekly"],"default":"daily"},"status":{"type":"string","enum":["active","paused"],"default":"active"}},"additionalProperties":false},"Synthesis":{"type":"object","required":["answer","pico","evidenceLevel","limitations","contradictions","evidenceTable","citedStudyIds","model","generatedAt"],"properties":{"answer":{"type":"string"},"pico":{"type":"object","required":["population","intervention","comparator","outcomes"],"properties":{"population":{"type":"string"},"intervention":{"type":"string"},"comparator":{"type":"string"},"outcomes":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"evidenceLevel":{"type":"string"},"limitations":{"type":"array","items":{"type":"string"}},"contradictions":{"type":"array","items":{"type":"string"}},"evidenceTable":{"type":"array","items":{"type":"object","required":["studyId","population","intervention","comparator","outcome","finding","citation"],"properties":{"studyId":{"type":"string"},"population":{"type":"string"},"intervention":{"type":"string"},"comparator":{"type":"string"},"outcome":{"type":"string"},"finding":{"type":"string"},"citation":{"type":"string"}},"additionalProperties":false}},"citedStudyIds":{"type":"array","items":{"type":"string"}},"model":{"type":"string"},"generatedAt":{"type":"string","format":"date-time"}},"additionalProperties":false},"SynthesisResponse":{"type":"object","required":["artifactId","catalogArtifactId","synthesis","retrieval"],"properties":{"artifactId":{"type":"string","format":"uuid"},"catalogArtifactId":{"type":"string"},"synthesis":{"$ref":"#/components/schemas/Synthesis"},"retrieval":{"$ref":"#/components/schemas/SearchDiagnostics"}},"additionalProperties":false},"ApiScope":{"type":"string","enum":["search:read","studies:read","saved-searches:read","saved-searches:write","collections:read","collections:write","alerts:read","alerts:write","synthesis:write","signals:read","signals:write","workspace:read","workspace:write","exports:read","webhooks:read","webhooks:write"]},"Credential":{"type":"object","required":["id","name","prefix","scopes","createdAt"],"properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"prefix":{"type":"string","pattern":"^okr_"},"scopes":{"type":"array","uniqueItems":true,"items":{"$ref":"#/components/schemas/ApiScope"}},"createdAt":{"type":"string","format":"date-time"},"lastUsedAt":{"type":["string","null"],"format":"date-time"},"expiresAt":{"type":["string","null"],"format":"date-time"},"revokedAt":{"type":["string","null"],"format":"date-time"}},"additionalProperties":false},"CredentialCreate":{"type":"object","required":["name","scopes"],"properties":{"name":{"type":"string","minLength":1,"maxLength":120},"scopes":{"type":"array","minItems":1,"uniqueItems":true,"items":{"$ref":"#/components/schemas/ApiScope"}},"expiresAt":{"type":["string","null"],"format":"date-time"}},"additionalProperties":false},"CredentialCreated":{"type":"object","required":["id","name","prefix","secret","scopes","createdAt","notice"],"properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"prefix":{"type":"string","pattern":"^okr_"},"secret":{"type":"string","readOnly":true},"scopes":{"type":"array","items":{"$ref":"#/components/schemas/ApiScope"}},"expiresAt":{"type":["string","null"],"format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"notice":{"type":"string"}},"additionalProperties":false},"CredentialList":{"type":"object","required":["items","availableScopes"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Credential"}},"availableScopes":{"type":"array","items":{"$ref":"#/components/schemas/ApiScope"}}},"additionalProperties":false},"WebhookEndpoint":{"type":"object","required":["id","name","url","status","createdAt","updatedAt"],"properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"url":{"type":"string","format":"uri"},"status":{"type":"string","enum":["active","disabled"]},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"additionalProperties":false},"WebhookEndpointCreated":{"type":"object","required":["id","name","url","status","secret","createdAt","updatedAt"],"properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"url":{"type":"string","format":"uri"},"status":{"type":"string","enum":["active","disabled"]},"secret":{"type":"string","readOnly":true,"description":"Signing secret returned only by endpoint creation."},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"additionalProperties":false},"WebhookSubscription":{"type":"object","required":["id","endpointId","eventTypes","status","createdAt","updatedAt"],"properties":{"id":{"type":"string","format":"uuid"},"endpointId":{"type":"string","format":"uuid"},"endpointName":{"type":"string"},"eventTypes":{"type":"array","uniqueItems":true,"items":{"type":"string","enum":["signal.new","signal.version","signal.published","signal.retracted","signal.trial_status"]}},"status":{"type":"string","enum":["active","paused"]},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"additionalProperties":false},"WebhookDelivery":{"type":"object","required":["id","endpointId","subscriptionId","eventKey","eventType","status","attemptCount","nextAttemptAt","createdAt","updatedAt"],"properties":{"id":{"type":"string","format":"uuid"},"endpointId":{"type":"string","format":"uuid"},"subscriptionId":{"type":"string","format":"uuid"},"eventKey":{"type":"string"},"eventType":{"type":"string"},"status":{"type":"string","enum":["pending","delivering","delivered","failed"]},"attemptCount":{"type":"integer","minimum":0},"nextAttemptAt":{"type":"string","format":"date-time"},"responseStatus":{"type":["integer","null"]},"responseExcerpt":{"type":["string","null"]},"lastError":{"type":["string","null"]},"deliveredAt":{"type":["string","null"]},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"additionalProperties":false},"Comparison":{"type":"object","required":["id","name","studyIds","createdAt","updatedAt"],"properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"studyIds":{"type":"array","minItems":2,"maxItems":5,"uniqueItems":true,"items":{"type":"string","pattern":"^[0-9]+$"}},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"additionalProperties":false},"ComparisonInput":{"type":"object","required":["name","studyIds"],"properties":{"name":{"type":"string","minLength":1,"maxLength":120},"studyIds":{"type":"array","minItems":2,"maxItems":5,"uniqueItems":true,"items":{"type":"string","pattern":"^[0-9]+$"}}},"additionalProperties":false},"ComparisonCreated":{"type":"object","required":["comparison","studies"],"properties":{"comparison":{"$ref":"#/components/schemas/Comparison"},"studies":{"type":"array","minItems":2,"maxItems":5,"items":{"$ref":"#/components/schemas/StudyDetail"}}},"additionalProperties":false},"ExportInput":{"type":"object","required":["format"],"properties":{"format":{"type":"string","enum":["bibtex","ris","csv","json"]},"studyIds":{"type":"array","maxItems":500,"uniqueItems":true,"default":[],"items":{"type":"string","pattern":"^[0-9]+$"}},"collectionId":{"type":"string","format":"uuid"}},"anyOf":[{"required":["studyIds"]},{"required":["collectionId"]}],"additionalProperties":false},"ExportStudy":{"type":"object","required":["paper","versions","trials","entities","provenance"],"properties":{"paper":{"$ref":"#/components/schemas/ResearchPaper"},"versions":{"type":"array","items":{"$ref":"#/components/schemas/StudyVersion"}},"trials":{"type":"array","items":{"$ref":"#/components/schemas/StudyTrial"}},"entities":{"type":"array","items":{"$ref":"#/components/schemas/StudyEntity"}},"provenance":{"type":"array","items":{"$ref":"#/components/schemas/Provenance"}}},"additionalProperties":false},"FeedbackInput":{"type":"object","required":["resourceType","resourceId","rating"],"properties":{"resourceType":{"type":"string","enum":["signal","synthesis"]},"resourceId":{"type":"string","minLength":1,"maxLength":120},"rating":{"type":"string","enum":["helpful","not_helpful","incorrect"]},"comment":{"type":"string","maxLength":2000,"default":""}},"additionalProperties":false},"Feedback":{"type":"object","required":["id","resourceType","resourceId","rating","comment","updatedAt"],"properties":{"id":{"type":"string","format":"uuid"},"resourceType":{"type":"string","enum":["signal","synthesis"]},"resourceId":{"type":"string"},"rating":{"type":"string","enum":["helpful","not_helpful","incorrect"]},"comment":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"}},"additionalProperties":false},"Note":{"type":"object","required":["id","studyId","collectionItemId","visibility","content","createdBy","createdAt","updatedAt"],"properties":{"id":{"type":"string","format":"uuid"},"studyId":{"type":"string"},"collectionItemId":{"type":["string","null"],"format":"uuid"},"visibility":{"type":"string","enum":["private","shared"]},"content":{"type":"string"},"createdBy":{"type":"string","format":"uuid"},"authorName":{"type":["string","null"]},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"additionalProperties":false},"NoteCreate":{"type":"object","required":["studyId","visibility","content"],"properties":{"studyId":{"type":"string","minLength":1,"maxLength":120},"collectionItemId":{"type":["string","null"],"format":"uuid"},"visibility":{"type":"string","enum":["private","shared"]},"content":{"type":"string","minLength":1,"maxLength":10000}},"additionalProperties":false},"NoteUpdate":{"type":"object","required":["visibility","content"],"properties":{"visibility":{"type":"string","enum":["private","shared"]},"content":{"type":"string","minLength":1,"maxLength":10000}},"additionalProperties":false},"SavedSearch":{"type":"object","required":["id","name","query","filters","createdAt","updatedAt"],"properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"query":{"type":"string"},"filters":{"$ref":"#/components/schemas/JsonObject"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"additionalProperties":false},"SavedSearchInput":{"type":"object","required":["name","query"],"properties":{"name":{"type":"string","minLength":1,"maxLength":120},"query":{"type":"string","minLength":2,"maxLength":500},"filters":{"$ref":"#/components/schemas/JsonObject"}},"additionalProperties":false},"SearchHistoryEntry":{"type":"object","required":["id","query","filters","strategy","request","resultIds","createdAt"],"properties":{"id":{"type":"string","format":"uuid"},"query":{"type":"string"},"filters":{"$ref":"#/components/schemas/JsonObject"},"strategy":{"type":"string"},"request":{"$ref":"#/components/schemas/JsonObject"},"resultIds":{"type":"array","items":{"type":"string"}},"snapshot":{"type":["string","null"]},"collectionId":{"type":["string","null"]},"createdAt":{"type":"string","format":"date-time"}},"additionalProperties":false},"SignalSynthesisResponse":{"type":"object","required":["artifactId","synthesis"],"properties":{"artifactId":{"type":"string","format":"uuid"},"synthesis":{"$ref":"#/components/schemas/Synthesis"}},"additionalProperties":false},"OrganizationSummary":{"type":["object","null"],"required":["id","name"],"properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"slug":{"type":"string"}},"additionalProperties":false},"ProjectSummary":{"type":["object","null"],"required":["id","name","slug","isPersonal"],"properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"slug":{"type":"string"},"isPersonal":{"type":"boolean"}},"additionalProperties":false},"WorkspaceMember":{"type":"object","required":["id","userId","role"],"properties":{"id":{"type":"string","format":"uuid"},"userId":{"type":"string","format":"uuid"},"role":{"type":"string","enum":["owner","admin","member","viewer"]},"email":{"type":"string","format":"email"},"displayName":{"type":["string","null"]}},"additionalProperties":false},"WorkspaceOverview":{"type":"object","required":["organization","project","members"],"properties":{"organization":{"$ref":"#/components/schemas/OrganizationSummary"},"project":{"$ref":"#/components/schemas/ProjectSummary"},"members":{"type":"array","items":{"$ref":"#/components/schemas/WorkspaceMember"}}},"additionalProperties":false},"WorkspaceUpdate":{"type":"object","required":["organizationName","projectName"],"properties":{"organizationName":{"type":"string","minLength":1,"maxLength":120},"projectName":{"type":"string","minLength":1,"maxLength":120}},"additionalProperties":false},"WorkspaceUpdated":{"type":"object","required":["organization","project"],"properties":{"organization":{"$ref":"#/components/schemas/OrganizationSummary"},"project":{"$ref":"#/components/schemas/ProjectSummary"}},"additionalProperties":false},"WorkspaceMemberInput":{"type":"object","required":["email","role"],"properties":{"email":{"type":"string","format":"email"},"role":{"type":"string","enum":["admin","member","viewer"]}},"additionalProperties":false},"WorkspaceMemberRoleInput":{"type":"object","required":["role"],"properties":{"role":{"type":"string","enum":["admin","member","viewer"]}},"additionalProperties":false},"McpRequest":{"type":"object","required":["jsonrpc","method"],"properties":{"jsonrpc":{"type":"string","const":"2.0"},"id":{"type":["string","number","null"]},"method":{"type":"string"},"params":{}},"additionalProperties":false},"McpResponse":{"type":"object","required":["jsonrpc","id"],"properties":{"jsonrpc":{"type":"string","const":"2.0"},"id":{"type":["string","number","null"]},"result":{},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"},"data":{}},"additionalProperties":false}},"additionalProperties":false}}}}