{"openapi":"3.1.0","info":{"title":"Lemo Drop API","version":"0.2.0","description":"API-first file drop. Authenticate every request with a bearer token minted from the dashboard (https://lemo-app.com/app/tokens). Free tier: 0 GB / 30 days, 0 GB per file."},"servers":[{"url":"https://lemo-app.com"}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer"}}},"security":[{"bearer":[]}],"paths":{"/api/upload":{"post":{"summary":"Upload a file","description":"Multipart upload. Headers `x-lemo-ttl-days` and `x-lemo-max-downloads` are optional. Quota is enforced against the bearer-token's owner.","requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","required":["file"],"properties":{"file":{"type":"string","format":"binary"}}}}}},"responses":{"200":{"description":"Uploaded","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid bearer token"},"402":{"description":"Quota exceeded — upgrade or wait for the window to roll"},"413":{"description":"Payload too large for this tier"}}}},"/api/files":{"get":{"summary":"List the caller's recent files","responses":{"200":{"description":"ok"}}}},"/api/files/{id}":{"delete":{"summary":"Delete one of the caller's files","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"ok"},"404":{"description":"not found"}}}},"/api/quota":{"get":{"summary":"Quota status for the caller","responses":{"200":{"description":"ok"}}}},"/d/{id}":{"get":{"summary":"Public download","security":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"File bytes (302 to presigned URL when stored in R2)"},"404":{"description":"Expired or unknown"}}}}}}