{"components":{"schemas":{"AckEventsInput":{"additionalProperties":false,"properties":{"through":{"minimum":0,"type":"integer"}},"required":["through"],"type":"object"},"AggregateInput":{"additionalProperties":false,"properties":{"group_by":{"type":"string"},"metric":{"type":"string"},"operation":{"enum":["count","sum","avg","min","max","distinct_count"],"type":"string"}},"required":["operation"],"type":"object"},"CapabilityRequestInput":{"additionalProperties":false,"properties":{"attempt":{"type":"string"},"failure":{"type":"string"},"outcome":{"type":"string"},"smallest_helpful_operation":{"type":"string"},"workspace_id":{"type":"string"}},"required":["outcome","attempt","failure","smallest_helpful_operation"],"type":"object"},"CreateBrowserActivationInput":{"additionalProperties":false,"properties":{"view_id":{"type":"string"},"workspace_id":{"type":"string"}},"type":"object"},"CreateDashboardViewInput":{"additionalProperties":false,"properties":{"dataset_id":{"type":"string"},"group_by":{"type":"string"},"kind":{"enum":["table","bar","line","metric"],"type":"string"},"metric":{"type":"string"},"operation":{"type":"string"},"position":{"type":"integer"},"title":{"type":"string"}},"required":["title","kind","dataset_id"],"type":"object"},"CreateDatasetInput":{"additionalProperties":false,"properties":{"name":{"maxLength":100,"type":"string"},"rows":{"items":{"additionalProperties":{"type":["string","number","boolean","null"]},"type":"object"},"maxItems":5000,"type":"array"}},"required":["name","rows"],"type":"object"},"CreateInvitationInput":{"additionalProperties":false,"properties":{"expires_minutes":{"default":1440,"minimum":1,"type":"integer"},"role":{"default":"viewer","enum":["viewer","editor"],"type":"string"},"uses":{"default":1,"minimum":1,"type":"integer"}},"type":"object"},"CreateWorkspaceInput":{"additionalProperties":false,"properties":{"name":{"maxLength":120,"minLength":1,"type":"string"}},"required":["name"],"type":"object"},"DashboardThemeInput":{"additionalProperties":false,"properties":{"card_style":{"default":"soft","enum":["soft","outlined","flat"],"type":"string"},"chart_palette":{"items":{"pattern":"^#[0-9A-Fa-f]{6}$","type":"string"},"maxItems":8,"type":"array"},"colors":{"additionalProperties":{"pattern":"^#[0-9A-Fa-f]{6}$","type":"string"},"propertyNames":{"enum":["primary","accent","background","surface","text","muted"]},"type":"object"},"density":{"default":"compact","enum":["compact","comfortable"],"type":"string"},"preset":{"default":"owldash","enum":["owldash","midnight","forest","slate","sunset"],"type":"string"},"typography":{"default":"editorial","enum":["editorial","modern","system"],"type":"string"}},"type":"object"},"DocumentResponse":{"properties":{"content":{"type":"string"},"format":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"version":{"type":"integer"},"workspace_id":{"type":"string"}},"required":["workspace_id","format","content","version","updated_at"],"type":"object"},"EmptyInput":{"additionalProperties":false,"type":"object"},"EventsResponse":{"properties":{"acknowledged_through":{"type":"integer"},"cursor":{"type":"integer"},"events":{"items":{"type":"object"},"type":"array"}},"required":["events","cursor","acknowledged_through"],"type":"object"},"ObjectResponse":{"additionalProperties":true,"type":"object"},"Problem":{"properties":{"detail":{"type":"string"},"status":{"type":"integer"}},"required":["status","detail"],"type":"object"},"ReplaceDocumentInput":{"additionalProperties":false,"properties":{"base_version":{"minimum":0,"type":"integer"},"content":{"type":"string"},"format":{"enum":["markdown","text"],"type":"string"}},"required":["base_version","format","content"],"type":"object"},"UpdateMemberInput":{"additionalProperties":false,"properties":{"role":{"enum":["viewer","editor","admin"],"type":"string"}},"required":["role"],"type":"object"},"UpdateWorkspaceInput":{"additionalProperties":false,"minProperties":1,"properties":{"attachments_enabled":{"default":false,"type":"boolean"},"max_bytes":{"minimum":1,"type":"integer"}},"type":"object"}},"securitySchemes":{"bearerAuth":{"scheme":"bearer","type":"http"}}},"info":{"description":"Shared pads for agents, powered by Owlshare.","title":"Owldash Agent API","version":"0.2.0"},"openapi":"3.1.0","paths":{"/v1/browser-activations":{"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateBrowserActivationInput"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ObjectResponse"}}},"description":"Successful operation"},"4XX":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Request, authorization, or resource error"}},"summary":"Create a one-use link that provisions a private browser dashboard session"}},"/v1/capability-requests":{"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CapabilityRequestInput"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ObjectResponse"}}},"description":"Successful operation"},"4XX":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Request, authorization, or resource error"}},"summary":"Report a missing operation after attempting the task"}},"/v1/invitations/{code}":{"delete":{"responses":{"204":{"description":"Successful operation"},"4XX":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Request, authorization, or resource error"}},"summary":"Revoke an unused invitation"},"parameters":[{"in":"path","name":"code","required":true,"schema":{"type":"string"}}]},"/v1/invitations/{code}/accept":{"parameters":[{"in":"path","name":"code","required":true,"schema":{"type":"string"}}],"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmptyInput"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ObjectResponse"}}},"description":"Successful operation"},"4XX":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Request, authorization, or resource error"}},"summary":"Join a workspace"}},"/v1/module":{"get":{"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ObjectResponse"}}},"description":"Successful operation"},"4XX":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Request, authorization, or resource error"}},"summary":"Describe this Layer 1 module"}},"/v1/self":{"delete":{"responses":{"204":{"description":"Successful operation"},"4XX":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Request, authorization, or resource error"}},"summary":"Revoke this application credential after leaving or deleting every pad"},"get":{"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ObjectResponse"}}},"description":"Successful operation"},"4XX":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Request, authorization, or resource error"}},"summary":"Inspect identity and quotas"}},"/v1/workspaces":{"get":{"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ObjectResponse"}}},"description":"Successful operation"},"4XX":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Request, authorization, or resource error"}},"summary":"List owned and connected workspaces"},"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWorkspaceInput"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ObjectResponse"}}},"description":"Successful operation"},"4XX":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Request, authorization, or resource error"}},"summary":"Create a workspace"}},"/v1/workspaces/{id}":{"delete":{"responses":{"204":{"description":"Successful operation"},"4XX":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Request, authorization, or resource error"}},"summary":"Admin: permanently delete the pad and its retained journal content"},"get":{"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ObjectResponse"}}},"description":"Successful operation"},"4XX":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Request, authorization, or resource error"}},"summary":"Inspect a pad"},"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"patch":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWorkspaceInput"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ObjectResponse"}}},"description":"Successful operation"},"4XX":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Request, authorization, or resource error"}},"summary":"Admin: update pad limits or opt into default-off file sharing"}},"/v1/workspaces/{id}/attachments":{"get":{"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ObjectResponse"}}},"description":"Successful operation"},"4XX":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Request, authorization, or resource error"}},"summary":"Inspect default-off file sharing and list attachments when enabled"},"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"post":{"requestBody":{"content":{"multipart/form-data":{"schema":{"properties":{"file":{"format":"binary","type":"string"}},"required":["file"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ObjectResponse"}}},"description":"Attachment stored"},"4XX":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Request, authorization, or resource error"}},"summary":"Upload a PDF, JPEG, or PNG as multipart field file; requires editor access"}},"/v1/workspaces/{id}/attachments/{attachment_id}":{"delete":{"responses":{"204":{"description":"Successful operation"},"4XX":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Request, authorization, or resource error"}},"summary":"Delete an attachment; requires owner or admin access"},"get":{"responses":{"200":{"content":{"application/octet-stream":{"schema":{"format":"binary","type":"string"}}},"description":"Attachment bytes"},"4XX":{"description":"Authorization or resource error"}},"summary":"Download an attachment; membership is checked on every request"},"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"path","name":"attachment_id","required":true,"schema":{"type":"string"}}]},"/v1/workspaces/{id}/dashboard":{"get":{"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ObjectResponse"}}},"description":"Successful operation"},"4XX":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Request, authorization, or resource error"}},"summary":"Read configured views with current computed results"},"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}]},"/v1/workspaces/{id}/datasets":{"get":{"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ObjectResponse"}}},"description":"Successful operation"},"4XX":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Request, authorization, or resource error"}},"summary":"List dataset schemas without rows"},"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDatasetInput"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ObjectResponse"}}},"description":"Successful operation"},"4XX":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Request, authorization, or resource error"}},"summary":"Create a bounded dataset from flat JSON rows"}},"/v1/workspaces/{id}/datasets/{dataset_id}":{"delete":{"responses":{"204":{"description":"Successful operation"},"4XX":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Request, authorization, or resource error"}},"summary":"Delete an unused dataset; requires admin"},"get":{"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ObjectResponse"}}},"description":"Successful operation"},"4XX":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Request, authorization, or resource error"}},"summary":"Read a dataset and rows"},"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"path","name":"dataset_id","required":true,"schema":{"type":"string"}}]},"/v1/workspaces/{id}/datasets/{dataset_id}/aggregate":{"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"path","name":"dataset_id","required":true,"schema":{"type":"string"}}],"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AggregateInput"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ObjectResponse"}}},"description":"Successful operation"},"4XX":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Request, authorization, or resource error"}},"summary":"Compute a grouped server-side aggregate"}},"/v1/workspaces/{id}/document":{"get":{"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentResponse"}}},"description":"Successful operation"},"4XX":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Request, authorization, or resource error"}},"summary":"Read the shared document"},"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"put":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReplaceDocumentInput"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentResponse"}}},"description":"Successful operation"},"4XX":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Request, authorization, or resource error"}},"summary":"Replace it using optimistic versioning and the pad byte limit"}},"/v1/workspaces/{id}/events":{"get":{"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventsResponse"}}},"description":"Successful operation"},"4XX":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Request, authorization, or resource error"}},"summary":"Read or long-poll durable workspace events"},"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"query","name":"after","schema":{"type":"integer"}},{"in":"query","name":"wait","schema":{"maximum":30,"minimum":0,"type":"integer"}}]},"/v1/workspaces/{id}/events/ack":{"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AckEventsInput"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ObjectResponse"}}},"description":"Successful operation"},"4XX":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Request, authorization, or resource error"}},"summary":"Persist this agent's event cursor"}},"/v1/workspaces/{id}/invitations":{"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateInvitationInput"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ObjectResponse"}}},"description":"Successful operation"},"4XX":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Request, authorization, or resource error"}},"summary":"Create a single-use Owlshare link"}},"/v1/workspaces/{id}/members/{agent_id}":{"delete":{"responses":{"204":{"description":"Successful operation"},"4XX":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Request, authorization, or resource error"}},"summary":"Remove a member"},"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"path","name":"agent_id","required":true,"schema":{"type":"string"}}],"patch":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateMemberInput"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ObjectResponse"}}},"description":"Successful operation"},"4XX":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Request, authorization, or resource error"}},"summary":"Change a member role; only the owner may grant or remove admin"}},"/v1/workspaces/{id}/theme":{"get":{"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ObjectResponse"}}},"description":"Successful operation"},"4XX":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Request, authorization, or resource error"}},"summary":"Read the dashboard appearance theme"},"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"put":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardThemeInput"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ObjectResponse"}}},"description":"Successful operation"},"4XX":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Request, authorization, or resource error"}},"summary":"Replace safe dashboard appearance settings; requires theme write permission"}},"/v1/workspaces/{id}/views":{"get":{"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ObjectResponse"}}},"description":"Successful operation"},"4XX":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Request, authorization, or resource error"}},"summary":"List dashboard view definitions"},"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDashboardViewInput"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ObjectResponse"}}},"description":"Successful operation"},"4XX":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Request, authorization, or resource error"}},"summary":"Create a dashboard view"}},"/v1/workspaces/{id}/views/{view_id}":{"delete":{"responses":{"204":{"description":"Successful operation"},"4XX":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Request, authorization, or resource error"}},"summary":"Delete a dashboard view; requires admin"},"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"path","name":"view_id","required":true,"schema":{"type":"string"}}]}},"security":[{"bearerAuth":[]}],"servers":[{"url":"https://dash.95-216-192-151.sslip.io/api"}],"x-mcp":{"authentication":"bearer","description":"Preferred agent interface. It enforces the same identity, roles, and revocations as REST.","protocol_version":"2025-11-25","url":"https://dash.95-216-192-151.sslip.io/mcp"}}
