{"openapi":"3.1.0","info":{"title":"Alex Studio HQ API","version":"0.5.0","description":"Private ecosystem API. Obtain a project key from the owner. Use from server runtimes only."},"servers":[{"url":"https://admin.alexstudiohq.com"}],"components":{"securitySchemes":{"projectKey":{"type":"http","scheme":"bearer","bearerFormat":"ashq_<64 hex characters>"}}},"paths":{"/v1/sandboxes":{"post":{"summary":"Provision an isolated, short-lived sandbox","description":"Required project permission: sandbox. All resources are scoped to the authenticated project.","security":[{"projectKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"credentialId":{"type":"string"}},"required":[]}}}},"responses":{"202":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Invalid or revoked key","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"403":{"description":"Feature forbidden or project paused","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"429":{"description":"Quota exceeded","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":120}}]}},"/v1/sandboxes/{id}":{"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"}}],"get":{"summary":"Read pinned sandbox state","description":"Required project permission: sandbox. All resources are scoped to the authenticated project.","security":[{"projectKey":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Invalid or revoked key","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"403":{"description":"Feature forbidden or project paused","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"429":{"description":"Quota exceeded","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}},"delete":{"summary":"Destroy pinned sandbox; poll status until destroyed","description":"Required project permission: sandbox. All resources are scoped to the authenticated project.","security":[{"projectKey":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Invalid or revoked key","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"403":{"description":"Feature forbidden or project paused","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"429":{"description":"Quota exceeded","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}},"/v1/sandboxes/{id}/files":{"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"}}],"post":{"summary":"Read UTF-8 file or write when content is supplied; 16 KiB limit","description":"Required project permission: sandbox. All resources are scoped to the authenticated project.","security":[{"projectKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"path":{"type":"string","maxLength":512},"content":{"type":"string","maxLength":16384}},"required":["path"]}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Invalid or revoked key","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"403":{"description":"Feature forbidden or project paused","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"429":{"description":"Quota exceeded","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}},"/v1/sandboxes/{id}/commands":{"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"}}],"post":{"summary":"Execute a bounded remote command without retries","description":"Required project permission: sandbox. All resources are scoped to the authenticated project.","security":[{"projectKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"command":{"type":"string","maxLength":4000},"timeoutSeconds":{"type":"integer","minimum":1,"maximum":5}},"required":["command"]}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Invalid or revoked key","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"403":{"description":"Feature forbidden or project paused","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"429":{"description":"Quota exceeded","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}},"/v1/sandboxes/{id}/preview":{"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"}}],"post":{"summary":"Get restricted provider preview access; never render on admin origin","description":"Required project permission: sandbox. All resources are scoped to the authenticated project.","security":[{"projectKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"port":{"type":"integer","minimum":1024,"maximum":49151}},"required":["port"]}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Invalid or revoked key","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"403":{"description":"Feature forbidden or project paused","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"429":{"description":"Quota exceeded","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}},"/v1/sandboxes/{id}/start":{"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"}}],"post":{"summary":"Start an existing Daytona sandbox if still present","description":"Required project permission: sandbox. All resources are scoped to the authenticated project.","security":[{"projectKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"required":[]}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Invalid or revoked key","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"403":{"description":"Feature forbidden or project paused","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"429":{"description":"Quota exceeded","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}},"/v1/sandboxes/{id}/stop":{"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"}}],"post":{"summary":"Stop a Daytona sandbox; ephemeral resources are deleted","description":"Required project permission: sandbox. All resources are scoped to the authenticated project.","security":[{"projectKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"required":[]}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Invalid or revoked key","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"403":{"description":"Feature forbidden or project paused","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"429":{"description":"Quota exceeded","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}},"/identity/authorize":{"get":{"summary":"Start shared Google sign-in","security":[],"parameters":[{"name":"client_id","in":"query","required":true,"schema":{"type":"string"}},{"name":"redirect_uri","in":"query","required":true,"schema":{"type":"string"}},{"name":"state","in":"query","required":true,"schema":{"type":"string"}},{"name":"code_challenge","in":"query","required":true,"schema":{"type":"string"}},{"name":"response_type","in":"query","required":true,"schema":{"type":"string","enum":["code"]}},{"name":"code_challenge_method","in":"query","required":true,"schema":{"type":"string","enum":["S256"]}}],"responses":{"303":{"description":"Redirect to Google"},"400":{"description":"Invalid callback, state or PKCE","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"403":{"description":"Login disabled","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"429":{"description":"Sign-in limit reached","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}},"/v1/reports":{"post":{"summary":"Submit a user report to the private HQ inbox","description":"Required project permission: reports. All resources are scoped to the authenticated project.","security":[{"projectKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"category":{"type":"string","enum":["bug","feedback","abuse","other"]},"title":{"type":"string","minLength":1,"maxLength":120},"message":{"type":"string","minLength":1,"maxLength":4000},"pagePath":{"type":"string","maxLength":300},"userRef":{"type":"string","maxLength":120},"contactEmail":{"type":"string","maxLength":254},"appVersion":{"type":"string","maxLength":80}},"required":["category","title","message"]}}}},"responses":{"200":{"description":"Same report already submitted","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"201":{"description":"Report created","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Invalid report","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Invalid key","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"403":{"description":"Missing reports scope","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"409":{"description":"Idempotency conflict","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"429":{"description":"Shared capacity exceeded","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","maxLength":120,"pattern":"^[A-Za-z0-9_.:-]+$"}}]}},"/v1/auth/token":{"post":{"summary":"Exchange a single-use code with PKCE for a one-hour opaque user token","description":"Required project permission: auth. All resources are scoped to the authenticated project.","security":[{"projectKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"clientId":{"type":"string"},"redirectUri":{"type":"string"},"code":{"type":"string"},"codeVerifier":{"type":"string"}},"required":["clientId","redirectUri","code","codeVerifier"]}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Invalid or revoked key","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"403":{"description":"Feature forbidden or project paused","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"429":{"description":"Quota exceeded","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}},"/v1/auth/user":{"post":{"summary":"Read the user profile for this exact project key and client","description":"Required project permission: auth. All resources are scoped to the authenticated project.","security":[{"projectKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"clientId":{"type":"string"},"accessToken":{"type":"string"}},"required":["clientId","accessToken"]}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Invalid or revoked key","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"403":{"description":"Feature forbidden or project paused","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"429":{"description":"Quota exceeded","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}},"/v1/auth/revoke":{"post":{"summary":"Revoke this client's user session","description":"Required project permission: auth. All resources are scoped to the authenticated project.","security":[{"projectKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"clientId":{"type":"string"},"accessToken":{"type":"string"}},"required":["clientId","accessToken"]}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Invalid or revoked key","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"403":{"description":"Feature forbidden or project paused","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"429":{"description":"Quota exceeded","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}},"/v1/files":{"get":{"summary":"List project files; at most 50 per page; follow cursor query parameter","description":"Required project permission: files. All resources are scoped to the authenticated project.","security":[{"projectKey":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Invalid or revoked key","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"403":{"description":"Feature forbidden or project paused","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"429":{"description":"Quota exceeded","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}},"/v1/files/{name}":{"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"}}],"get":{"summary":"Download a private file","description":"Required project permission: files. All resources are scoped to the authenticated project.","security":[{"projectKey":[]}],"responses":{"200":{"description":"Binary attachment","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"401":{"description":"Invalid key","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}},"put":{"summary":"Upload a private file; maximum 1 MiB","description":"Required project permission: files. All resources are scoped to the authenticated project.","security":[{"projectKey":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Invalid or revoked key","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"403":{"description":"Feature forbidden or project paused","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"429":{"description":"Quota exceeded","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}},"requestBody":{"required":true,"content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}}},"delete":{"summary":"Delete a private file","description":"Required project permission: files. All resources are scoped to the authenticated project.","security":[{"projectKey":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Invalid or revoked key","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"403":{"description":"Feature forbidden or project paused","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"429":{"description":"Quota exceeded","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}},"/v1/workflows":{"post":{"summary":"Run durable AI generation and save a D1 record","description":"Required project permission: workflows + ai + data. All resources are scoped to the authenticated project.","security":[{"projectKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","const":"ai-to-record"},"prompt":{"type":"string"},"collection":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"},"key":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"}},"required":["type","prompt","collection","key"]}}}},"responses":{"202":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Invalid or revoked key","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"403":{"description":"Feature forbidden or project paused","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"429":{"description":"Quota exceeded","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}]}},"/v1/workflows/{id}":{"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"}}],"get":{"summary":"Read project workflow status and result","description":"Required project permission: workflows. All resources are scoped to the authenticated project.","security":[{"projectKey":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Invalid or revoked key","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"403":{"description":"Feature forbidden or project paused","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"429":{"description":"Quota exceeded","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}},"/v1/email/send":{"post":{"summary":"Send one transactional text email; SMTP acceptance is not confirmed inbox delivery","description":"Required project permission: email. All resources are scoped to the authenticated project.","security":[{"projectKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","format":"email","maxLength":254},"subject":{"type":"string","maxLength":200},"body":{"type":"string","maxLength":32768}},"required":["to","subject","body"]}}}},"responses":{"202":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Invalid or revoked key","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"403":{"description":"Feature forbidden or project paused","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"429":{"description":"Quota exceeded","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","maxLength":120}}]}},"/v1/capabilities":{"get":{"summary":"Discover enabled project capabilities","description":"Required project permission: any valid key. All resources are scoped to the authenticated project.","security":[{"projectKey":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Invalid or revoked key","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"403":{"description":"Feature forbidden or project paused","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"429":{"description":"Quota exceeded","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}},"/v1/data/{collection}":{"parameters":[{"name":"collection","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"}},{"name":"offset","in":"query","schema":{"type":"integer","minimum":0,"maximum":10000,"default":0}}],"get":{"summary":"List up to 50 project records; follow nextOffset","description":"Required project permission: data. All resources are scoped to the authenticated project.","security":[{"projectKey":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Invalid or revoked key","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"403":{"description":"Feature forbidden or project paused","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"429":{"description":"Quota exceeded","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}},"/v1/data/{collection}/{key}":{"parameters":[{"name":"collection","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"}},{"name":"key","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"}}],"get":{"summary":"Read a record","description":"Required project permission: data. All resources are scoped to the authenticated project.","security":[{"projectKey":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Invalid or revoked key","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"403":{"description":"Feature forbidden or project paused","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"429":{"description":"Quota exceeded","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}},"put":{"summary":"Write a record; 16 KiB request limit","description":"Required project permission: data. All resources are scoped to the authenticated project.","security":[{"projectKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"value":{}},"required":["value"]}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Invalid or revoked key","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"403":{"description":"Feature forbidden or project paused","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"429":{"description":"Quota exceeded","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}},"delete":{"summary":"Delete a record","description":"Required project permission: data. All resources are scoped to the authenticated project.","security":[{"projectKey":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Invalid or revoked key","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"403":{"description":"Feature forbidden or project paused","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"429":{"description":"Quota exceeded","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}},"/v1/config/{key}":{"parameters":[{"name":"key","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"}}],"get":{"summary":"Read eventual-consistency KV configuration","description":"Required project permission: config. All resources are scoped to the authenticated project.","security":[{"projectKey":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Invalid or revoked key","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"403":{"description":"Feature forbidden or project paused","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"429":{"description":"Quota exceeded","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}},"put":{"summary":"Write KV configuration; 4 KiB request limit","description":"Required project permission: config. All resources are scoped to the authenticated project.","security":[{"projectKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"value":{}},"required":["value"]}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Invalid or revoked key","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"403":{"description":"Feature forbidden or project paused","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"429":{"description":"Quota exceeded","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}},"delete":{"summary":"Delete configuration","description":"Required project permission: config. All resources are scoped to the authenticated project.","security":[{"projectKey":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Invalid or revoked key","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"403":{"description":"Feature forbidden or project paused","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"429":{"description":"Quota exceeded","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}},"/v1/ai/generate":{"post":{"summary":"Generate text or normalized SSE; no retries after headers","description":"Required project permission: ai. All resources are scoped to the authenticated project.","security":[{"projectKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","minLength":1,"maxLength":4000},"alias":{"type":"string","default":"Alextra"},"stream":{"type":"boolean","default":false}},"required":["prompt"]}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}},"text/event-stream":{"schema":{"type":"string"},"example":"data: {\"alias\":\"Alextra\",\"delta\":\"Hello\"}\n\ndata: {\"alias\":\"Alextra\",\"done\":true}\n\n"}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Invalid or revoked key","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"403":{"description":"Feature forbidden or project paused","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"429":{"description":"Quota exceeded","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}},"/v1/agents/{session}/messages":{"parameters":[{"name":"session","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,80}$"}}],"post":{"summary":"Send a message to a project-scoped conversation","description":"Required project permission: agents + ai. All resources are scoped to the authenticated project.","security":[{"projectKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","minLength":1,"maxLength":4000}},"required":["message"]}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Invalid or revoked key","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"403":{"description":"Feature forbidden or project paused","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"429":{"description":"Quota exceeded","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}},"/v1/jobs":{"post":{"summary":"Submit a queued AI generation job","description":"Required project permission: jobs + ai. All resources are scoped to the authenticated project.","security":[{"projectKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"task":{"type":"string","enum":["ai.generate"]},"input":{"type":"object","properties":{"prompt":{"type":"string","minLength":1,"maxLength":4000}},"required":["prompt"]}},"required":["task","input"]}}}},"responses":{"202":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Invalid or revoked key","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"403":{"description":"Feature forbidden or project paused","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"429":{"description":"Quota exceeded","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":120}}]}},"/v1/jobs/{id}":{"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"get":{"summary":"Read job status and result","description":"Required project permission: jobs. All resources are scoped to the authenticated project.","security":[{"projectKey":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Invalid or revoked key","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"403":{"description":"Feature forbidden or project paused","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"429":{"description":"Quota exceeded","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"503":{"description":"Service unavailable","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}}}}