{"components":{"schemas":{"Error":{"properties":{"error":{"properties":{"code":{"type":"string"},"message":{"type":"string"},"status":{"type":"integer"},"timestamp":{"format":"date-time","type":"string"}},"type":"object"},"ok":{"type":"boolean"}},"type":"object"},"Image":{"properties":{"checksum":{"type":"string"},"created_at":{"format":"date-time","type":"string"},"filename":{"type":"string"},"height":{"type":"integer"},"id":{"example":"img_9f1c2ab7c4e80a3d","type":"string"},"mime_type":{"type":"string"},"size_bytes":{"format":"int64","type":"integer"},"size_kb":{"format":"double","type":"number"},"urls":{"properties":{"cdn":{"type":"string"},"hd":{"type":"string"},"original":{"type":"string"},"placeholder":{"type":"string"},"preview":{"type":"string"},"thumbnail":{"type":"string"}},"type":"object"},"visibility":{"type":"string"},"width":{"type":"integer"}},"type":"object"}},"securitySchemes":{"ApiKeyAuth":{"in":"header","name":"X-API-Key","type":"apiKey"},"BearerAuth":{"bearerFormat":"JWT","scheme":"bearer","type":"http"}}},"info":{"contact":{"name":"LiveImg Support","url":"https://api.vebox.uz/docs"},"description":"Cloud image storage and delivery API with progressive delivery and zero-disk streaming.","title":"LiveImg API","version":"1.0.0"},"openapi":"3.0.3","paths":{"/cdn/{id}":{"get":{"description":"HD version with long-lived immutable caching. Optional ?w= resize (depends on owner's plan).","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"query","name":"w","schema":{"maximum":4096,"minimum":1,"type":"integer"}}],"responses":{"200":{"description":"Binary image stream"},"304":{"description":"Not modified"},"404":{"description":"Not found or private"}},"security":[],"summary":"Public CDN delivery (no key required for public images)"}},"/i/{id}":{"get":{"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"query","name":"v","schema":{"enum":["hd","thumb"],"type":"string"}},{"in":"query","name":"w","schema":{"maximum":4096,"minimum":1,"type":"integer"}}],"responses":{"200":{"description":"Binary image stream"},"206":{"description":"Partial content"},"304":{"description":"Not modified"}},"security":[{},{"ApiKeyAuth":[]}],"summary":"Stream an image (public: no key; private: owner's key)"}},"/preview/{id}":{"get":{"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Small JPEG placeholder"}},"security":[],"summary":"Instant blurred placeholder (no key required for public images)"}},"/v1/analytics":{"get":{"responses":{"200":{"description":"OK"},"402":{"description":"Upgrade required"}},"summary":"Usage analytics (Pro and Business)"}},"/v1/images":{"get":{"parameters":[{"in":"query","name":"limit","schema":{"default":30,"type":"integer"}},{"in":"query","name":"offset","schema":{"default":0,"type":"integer"}}],"responses":{"200":{"description":"OK"}},"summary":"List images"},"post":{"description":"Accepts multipart/form-data (field: file) or a raw byte stream. Visibility can be set with the `visibility` or `mode` parameter (query string or form field): public | private.","requestBody":{"content":{"multipart/form-data":{"schema":{"properties":{"file":{"format":"binary","type":"string"},"mode":{"description":"Alias of visibility","enum":["public","private"],"type":"string"},"visibility":{"default":"public","enum":["public","private"],"type":"string"}},"required":["file"],"type":"object"}}},"required":true},"responses":{"201":{"description":"Created"},"402":{"description":"Quota exceeded"},"413":{"description":"File too large"},"415":{"description":"Unsupported format"},"429":{"description":"Rate limit exceeded"},"503":{"description":"Server busy"}},"summary":"Upload an image"}},"/v1/images/{id}":{"delete":{"responses":{"200":{"description":"Deleted"},"404":{"description":"Not found"}},"summary":"Delete an image"},"get":{"responses":{"200":{"description":"OK"},"404":{"description":"Not found"}},"summary":"Get image metadata"},"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"patch":{"requestBody":{"content":{"application/json":{"schema":{"properties":{"visibility":{"enum":["public","private"],"type":"string"}},"type":"object"}}},"required":true},"responses":{"200":{"description":"OK"},"404":{"description":"Not found"}},"summary":"Change visibility"}},"/v1/me":{"get":{"responses":{"200":{"description":"OK"}},"summary":"Account status, plan and usage"}}},"security":[{"ApiKeyAuth":[]}],"servers":[{"url":"https://api.vebox.uz"}]}
