{"openapi":"3.1.0","info":{"title":"kitoraapp API","version":"1.0.0","description":"Versioned image and PDF processing API for kitoraapp.com with API key auth, scopes, rate limits, and monthly quotas."},"servers":[{"url":"https://kitoraapp.com/","description":"Production"},{"url":"http://localhost:3001","description":"Local development"}],"security":[{"ApiKeyAuth":[]}],"tags":[{"name":"Account","description":"Read account-level API limits and current usage."},{"name":"Processing","description":"Process image and PDF tools through one versioned API."}],"paths":{"/api/v1/account/limits":{"get":{"tags":["Account"],"summary":"Get current API limits","description":"Returns the current plan, key scopes, active limits, and API usage counters.","security":[{"ApiKeyAuth":[]}],"responses":{"200":{"description":"Current API limits and usage summary."},"401":{"description":"Missing or invalid API key."},"403":{"description":"Scope or plan access is not allowed."},"429":{"description":"Rate or monthly quota has been reached."}}}},"/api/v1/process/{tool}":{"post":{"tags":["Processing"],"summary":"Process one tool request","description":"Processes one supported tool through multipart/form-data using the same validation and limits as the web app.","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"tool","in":"path","required":true,"schema":{"type":"string","enum":["resize-image","crop-image","compress-image","convert-image","image-to-text","image-to-pdf","pdf-to-word","extract-pdf-pages","delete-pdf-pages","rotate-pdf","add-page-numbers","reorder-pdf-pages","watermark-pdf","split-pdf","merge-pdf"]}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","additionalProperties":true,"properties":{"file":{"type":"string","format":"binary"},"files":{"type":"array","items":{"type":"string","format":"binary"}}}}}}},"responses":{"200":{"description":"Processed output and metadata."},"401":{"description":"Missing or invalid API key."},"403":{"description":"Scope or plan access is not allowed."},"404":{"description":"Unsupported tool."},"415":{"description":"Invalid content type."},"422":{"description":"Validation failed for the supplied files or fields."},"429":{"description":"Rate or monthly quota has been reached."},"500":{"description":"Processing failed unexpectedly."}}}}},"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"x-api-key","description":"Pass the API key with x-api-key or use Authorization: Bearer <key>."}}}}