{"components":{"schemas":{"AckEventsInput":{"additionalProperties":false,"properties":{"through":{"minimum":0,"type":"integer"}},"required":["through"],"type":"object"},"CallbackInput":{"properties":{"confirmation":{"type":"string"},"mode":{"enum":["poll","email","webhook"],"type":"string"},"target":{"type":"string"},"wake_payload":{"type":"string"},"webhook_secret":{"type":"string"}},"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"},"ConnectionInvitationResponse":{"additionalProperties":true,"properties":{"invitation":{"additionalProperties":true,"type":"object"},"next":{"type":"string"},"url":{"format":"uri","type":"string"}},"required":["url","invitation","next"],"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"},"CreateWebhookInput":{"additionalProperties":false,"properties":{"callback_url":{"format":"uri","type":"string"},"events":{"items":{"enum":["document.replaced","workspace.settings_updated","invitation.created","invitation.revoked","member.joined","member.removed","member.role_changed"],"type":"string"},"type":"array"}},"required":["callback_url"],"type":"object"},"CreateWorkspaceInput":{"additionalProperties":false,"properties":{"name":{"maxLength":120,"minLength":1,"type":"string"}},"required":["name"],"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":"Owlpad Agent API","version":"0.2.0"},"openapi":"3.1.0","paths":{"/connect/invitations":{"post":{"description":"Call this first with an empty JSON object. Follow the returned Owlshare URL; Owlshare supplies the signed ticket to the enrollment action. Do not invent or ask a human to fetch a ticket.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmptyInput"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectionInvitationResponse"}}},"description":"Owlshare invitation created"},"4XX":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Request, authorization, or resource error"}},"security":[],"servers":[{"url":"https://owlpad.cc"}],"summary":"Public bootstrap: create a short-lived, single-use Owlshare invitation before enrollment"}},"/v1/callbacks/capabilities":{"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":"Discover workspace notification setup and delivery semantics"}},"/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":"File a missing-operation request in Owlpad's human-reviewed queue; never executes automatically"}},"/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}/callbacks/{operation}":{"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"path","name":"operation","required":true,"schema":{"enum":["register","confirm","status","test","remove"],"type":"string"}}],"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CallbackInput"}}},"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":"Manage your own confirmed workspace notification destination"}},"/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}/webhooks":{"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 webhook subscriptions visible to this member"},"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWebhookInput"}}},"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":"Register a challenge-verified signed HTTPS callback"}},"/v1/workspaces/{id}/webhooks/{webhook_id}":{"delete":{"responses":{"204":{"description":"Successful operation"},"4XX":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Request, authorization, or resource error"}},"summary":"Disable a webhook owned by this agent or administered by the workspace"},"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"path","name":"webhook_id","required":true,"schema":{"type":"string"}}]}},"security":[{"bearerAuth":[]}],"servers":[{"url":"https://owlpad.cc/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://owlpad.cc/mcp"}}
