{"components":{"schemas":{"ClipboardCreate":{"properties":{"content":{"description":"Text to store (max 128 KB)","type":"string"},"max_views":{"default":0,"description":"Max reads before auto-delete (0 = unlimited)","type":"integer"},"ttl_minutes":{"default":60,"description":"Time-to-live in minutes (5\u20131440)","type":"integer"}},"required":["content"],"type":"object"},"ClipboardCreated":{"properties":{"code":{"type":"string"},"expires_at":{"format":"date-time","type":"string"},"url":{"type":"string"}},"type":"object"},"ClipboardRead":{"properties":{"content":{"type":"string"},"expires_at":{"format":"date-time","type":"string"},"views_remaining":{"nullable":true,"type":"integer"}},"type":"object"},"ClipboardUpdate":{"properties":{"content":{"type":"string"}},"required":["content"],"type":"object"},"Error":{"properties":{"error":{"type":"string"}},"type":"object"},"Ok":{"properties":{"ok":{"type":"boolean"}},"type":"object"},"Words":{"properties":{"code":{"type":"string"}},"type":"object"}},"securitySchemes":{"bearerAuth":{"scheme":"bearer","type":"http"}}},"info":{"description":"Ephemeral encrypted clipboard API. All endpoints require a Bearer API key obtained at /mcp.","title":"Ghostclip.dev REST API","version":"1.0.0"},"openapi":"3.1.0","paths":{"/api/v1/clipboard":{"post":{"operationId":"createClipboard","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClipboardCreate"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClipboardCreated"}}},"description":"Created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"429":{"description":"Rate limit exceeded"}},"summary":"Create a clipboard"}},"/api/v1/clipboard/{code}":{"delete":{"operationId":"deleteClipboard","parameters":[{"in":"path","name":"code","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ok"}}},"description":"Deleted"},"401":{"description":"Missing or invalid API key"},"404":{"description":"Not found"}},"summary":"Delete clipboard immediately"},"get":{"operationId":"readClipboard","parameters":[{"description":"Space-separated word code","in":"path","name":"code","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClipboardRead"}}},"description":"OK"},"401":{"description":"Missing or invalid API key"},"404":{"description":"Not found or expired"}},"summary":"Read clipboard content"},"put":{"operationId":"updateClipboard","parameters":[{"in":"path","name":"code","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClipboardUpdate"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ok"}}},"description":"OK"},"401":{"description":"Missing or invalid API key"},"404":{"description":"Not found or expired"}},"summary":"Update clipboard content"}},"/api/v1/words":{"get":{"operationId":"generateCode","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Words"}}},"description":"OK"},"401":{"description":"Missing or invalid API key"}},"summary":"Generate a random access code"}}},"security":[{"bearerAuth":[]}],"servers":[{"url":"https://ghostclip.dev"}]}
