{"openapi":"3.1.0","info":{"title":"Seedling API","version":"1.0.0","description":"Manage your Seedling screen recordings. Recording itself happens in the Chrome extension.","contact":{"email":"support@yourotherai.com"},"termsOfService":"https://sendseedling.com/terms"},"servers":[{"url":"https://sendseedling.com"}],"security":[{"bearer":[]}],"paths":{"/api/health":{"get":{"summary":"Health check","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"}}}}}}}}},"/api/me":{"get":{"summary":"Current account","responses":{"200":{"description":"Account","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Me"}}}},"401":{"$ref":"#/components/responses/Error"}}}},"/api/videos":{"get":{"summary":"List your videos, newest first","responses":{"200":{"description":"Videos","content":{"application/json":{"schema":{"type":"object","properties":{"videos":{"type":"array","items":{"$ref":"#/components/schemas/Video"}}}}}}},"401":{"$ref":"#/components/responses/Error"}}}},"/api/videos/{id}":{"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"Video id (the last part of its share link)."}],"get":{"summary":"Get one of your videos","responses":{"200":{"description":"Video","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Video"}}}},"401":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"}}},"patch":{"summary":"Rename a video or replace its cuts","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","maxLength":200},"cuts":{"type":"array","items":{"$ref":"#/components/schemas/Cut"},"description":"Ranges to remove, in seconds of the original recording. Overlaps are merged."}}}}}},"responses":{"200":{"description":"Updated"},"401":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"}}},"delete":{"summary":"Delete a video and its files permanently","responses":{"200":{"description":"Deleted"},"401":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"}}}},"/api/videos/{id}/status":{"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"Video id (the last part of its share link)."}],"get":{"summary":"Upload status (public)","security":[],"responses":{"200":{"description":"Status","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"enum":["uploading","ready"]}}}}}},"404":{"$ref":"#/components/responses/Error"}}}}},"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Personal API token from the dashboard (\"API access\")."}},"responses":{"Error":{"description":"Error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}}},"schemas":{"Cut":{"type":"object","required":["start","end"],"properties":{"start":{"type":"number"},"end":{"type":"number"}}},"Me":{"type":"object","properties":{"email":{"type":"string"},"plan":{"enum":["trial","active"]},"trialDaysLeft":{"type":["integer","null"]},"canRecord":{"type":"boolean"},"notifyViews":{"type":"boolean"}}},"Video":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"status":{"enum":["uploading","ready"]},"url":{"type":"string","format":"uri","description":"Share link"},"thumbnailUrl":{"type":["string","null"],"format":"uri"},"durationSeconds":{"type":["number","null"],"description":"Length of the original recording"},"editedDurationSeconds":{"type":["number","null"],"description":"Length after cuts"},"cuts":{"type":"array","items":{"$ref":"#/components/schemas/Cut"}},"viewCount":{"type":"integer","description":"Unique viewers"},"createdAt":{"type":"string","format":"date-time"}}}}}}