{"openapi":"3.0.3","info":{"title":"Pixelift API","description":"\n# Pixelift API Documentation\n\nPixelift provides AI-powered image processing services including:\n- **Image Upscaling** - Increase image resolution up to 8x using Real-ESRGAN\n- **Quality Enhancement** - Improve image quality without resizing\n- **Face Enhancement** - Enhance faces using GFPGAN\n- **Background Removal** - Remove backgrounds from images\n- **Image Compression** - Optimize images for web\n\n## Authentication\n\nAll API endpoints require authentication using an API key. Include your API key in the request header:\n\n```\nAuthorization: Bearer YOUR_API_KEY\n```\n\nYou can generate API keys in your [dashboard](/dashboard/api-keys).\n\n## Rate Limits\n\nRate limits depend on your plan:\n- **Free**: 10 requests/minute\n- **Starter**: 60 requests/minute\n- **Pro**: 300 requests/minute\n- **Business**: 1000 requests/minute\n- **Enterprise**: Custom limits\n\n## Credits\n\nEach image processing operation consumes credits based on the operation type and image size.\n    ","version":"1.0.0","contact":{"name":"Pixelift Support","email":"support@pixelift.pl","url":"https://pixelift.pl"},"license":{"name":"Proprietary"}},"servers":[{"url":"https://pixelift.pl/api","description":"Production server"},{"url":"http://localhost:3000/api","description":"Development server"}],"tags":[{"name":"Image Processing","description":"AI-powered image processing endpoints"},{"name":"History","description":"Image processing history management"},{"name":"User","description":"User account and credits management"},{"name":"Payments","description":"Stripe payment and subscription management"},{"name":"API Keys","description":"API key management for programmatic access"},{"name":"Tools","description":"All Pixelift tools available over the API (generated from the tool registry)"}],"paths":{"/upscale":{"post":{"tags":["Tools"],"summary":"upscaler","description":"Runs the “upscaler” tool. Engine: AuraSR · Topaz Pro · Crisp · Ideogram. Cost: 1-5 credits.","operationId":"tool_upscaler","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"image":{"description":"Zdjecie do powiekszenia (JPG/PNG/WEBP, do 25 MB)","type":"string","format":"binary"},"scale":{"description":"Krotnosc powiekszenia","type":"string","enum":["2","4","8"],"example":"4"},"type":{"description":"Tryb: ogolny albo portret","type":"string","enum":["general","portrait"],"example":"general"}},"required":["image"]}}}},"responses":{"200":{"description":"Result ready","content":{"application/json":{"schema":{"type":"object","properties":{"imageUrl":{"type":"string","example":"https://pixelift.pl/uploads/…"},"creditsUsed":{"type":"number","example":1}}}}}},"400":{"description":"Invalid input (missing field, unsupported format, file too large)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Not enough credits — the response carries the required amount"},"429":{"description":"Rate limit exceeded (100 requests per minute)"},"503":{"description":"Model provider unavailable — credits are not charged"}}}},"/enhance":{"post":{"tags":["Image Processing"],"summary":"Enhance image quality","description":"Improve image quality without changing resolution.","operationId":"enhanceImage","requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","required":["image"],"properties":{"image":{"type":"string","format":"binary","description":"Image file to enhance"},"strength":{"type":"number","minimum":0,"maximum":1,"default":0.5,"description":"Enhancement strength (0-1)"}}}}}},"responses":{"200":{"description":"Image enhanced successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessingResult"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/InsufficientCredits"}},"security":[{"bearerAuth":[]}]}},"/background-remove":{"post":{"tags":["Image Processing"],"summary":"Remove background from image","description":"Remove the background from an image, leaving only the subject.","operationId":"removeBackground","requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","required":["image"],"properties":{"image":{"type":"string","format":"binary"},"output_format":{"type":"string","enum":["png","webp"],"default":"png","description":"Output format (PNG for transparency)"}}}}}},"responses":{"200":{"description":"Background removed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessingResult"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/InsufficientCredits"}},"security":[{"bearerAuth":[]}]}},"/history":{"get":{"tags":["History"],"summary":"Get processing history","description":"Retrieve your image processing history with pagination and filters.","operationId":"getHistory","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","default":20,"maximum":100},"description":"Number of entries to return"},{"name":"offset","in":"query","schema":{"type":"integer","default":0},"description":"Number of entries to skip"},{"name":"type","in":"query","schema":{"type":"string","enum":["upscale","enhance","restore","background_remove","compress","packshot"]},"description":"Filter by processing type"},{"name":"status","in":"query","schema":{"type":"string","enum":["pending","processing","completed","failed"]},"description":"Filter by status"},{"name":"stats","in":"query","schema":{"type":"boolean","default":false},"description":"Include usage statistics"}],"responses":{"200":{"description":"History retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HistoryResponse"}}}},"401":{"$ref":"#/components/responses/Unauthorized"}},"security":[{"bearerAuth":[]}]},"delete":{"tags":["History"],"summary":"Delete all history","description":"Delete all your image processing history.","operationId":"deleteHistory","responses":{"200":{"description":"History deleted successfully","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"},"deletedCount":{"type":"integer"}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"}},"security":[{"bearerAuth":[]}]}},"/history/{id}":{"get":{"tags":["History"],"summary":"Get history entry","description":"Get a single history entry by ID.","operationId":"getHistoryEntry","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Entry retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HistoryEntry"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"}},"security":[{"bearerAuth":[]}]},"delete":{"tags":["History"],"summary":"Delete history entry","description":"Delete a single history entry.","operationId":"deleteHistoryEntry","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Entry deleted successfully"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"}},"security":[{"bearerAuth":[]}]}},"/user/credits":{"get":{"tags":["User"],"summary":"Get credit balance","description":"Get your current credit balance and usage.","operationId":"getCredits","responses":{"200":{"description":"Credits retrieved successfully","content":{"application/json":{"schema":{"type":"object","properties":{"credits":{"type":"integer","description":"Available credits"},"totalUsage":{"type":"integer","description":"Total credits used"},"plan":{"type":"string","description":"Current subscription plan"}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"}},"security":[{"bearerAuth":[]}]}},"/stripe/checkout":{"post":{"tags":["Payments"],"summary":"Create checkout session","description":"Create a Stripe checkout session for subscription or one-time purchase.","operationId":"createCheckout","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["subscription","onetime"]},"planId":{"type":"string","description":"For subscriptions: starter, pro, business, enterprise"},"packageId":{"type":"string","description":"For one-time: starter, basic, standard, pro, business"},"billingPeriod":{"type":"string","enum":["monthly","yearly"],"default":"monthly"}}}}}},"responses":{"200":{"description":"Checkout session created","content":{"application/json":{"schema":{"type":"object","properties":{"sessionId":{"type":"string"},"url":{"type":"string","format":"uri"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"}},"security":[{"bearerAuth":[]}]}},"/stripe/portal":{"get":{"tags":["Payments"],"summary":"Get customer portal URL","description":"Get Stripe customer portal URL for subscription management.","operationId":"getPortal","responses":{"200":{"description":"Portal URL retrieved","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri"}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"}},"security":[{"bearerAuth":[]}]}},"/upscale-premium":{"post":{"tags":["Tools"],"summary":"upscale-premium","description":"Runs the “upscale-premium” tool. Cost: see pricing.","operationId":"tool_upscale_premium","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"image":{"description":"URL albo data URI zdjecia","type":"string"},"model":{"type":"string","enum":["topaz","crystal","aurasr"],"example":"topaz"},"scale":{"type":"number","example":4},"faceEnhance":{"description":"Dodatkowy przebieg na twarzach","type":"boolean","example":true},"outputFormat":{"type":"string","enum":["png","jpg","webp"],"example":"png"}},"required":["image"]}}}},"responses":{"200":{"description":"Result ready","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","example":"https://pixelift.pl/uploads/…"},"creditsUsed":{"type":"number","example":1}}}}}},"400":{"description":"Invalid input (missing field, unsupported format, file too large)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Not enough credits — the response carries the required amount"},"429":{"description":"Rate limit exceeded (100 requests per minute)"},"503":{"description":"Model provider unavailable — credits are not charged"}}}},"/colorize":{"post":{"tags":["Tools"],"summary":"colorize","description":"Runs the “colorize” tool. Engine: FLUX.2 Pro. Cost: 1.5 credits. Asynchronous — poll `/api/colorize/status?jobId={jobId}`.","operationId":"tool_colorize","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"description":"Zdjecie czarno-biale","type":"string","format":"binary"}},"required":["file"]}}}},"responses":{"202":{"description":"Job accepted — poll the status endpoint or wait for the webhook","content":{"application/json":{"schema":{"type":"object","properties":{"videoId":{"type":"string","example":"cmk8…"},"status":{"type":"string","example":"processing"}}}}}},"400":{"description":"Invalid input (missing field, unsupported format, file too large)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Not enough credits — the response carries the required amount"},"429":{"description":"Rate limit exceeded (100 requests per minute)"},"503":{"description":"Model provider unavailable — credits are not charged"}}}},"/old-photo-restore":{"post":{"tags":["Tools"],"summary":"old-photo-restore","description":"Runs the “old-photo-restore” tool. Engine: Microsoft AI. Cost: 3 credits.","operationId":"tool_old_photo_restore","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"description":"Stare zdjecie","type":"string","format":"binary"},"mode":{"type":"string","enum":["basic","full"],"example":"basic"},"withScratch":{"type":"boolean","example":true}},"required":["file"]}}}},"responses":{"200":{"description":"Result ready","content":{"application/json":{"schema":{"type":"object","properties":{"processedImage":{"type":"string","example":"https://pixelift.pl/uploads/…"},"creditsUsed":{"type":"number","example":1}}}}}},"400":{"description":"Invalid input (missing field, unsupported format, file too large)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Not enough credits — the response carries the required amount"},"429":{"description":"Rate limit exceeded (100 requests per minute)"},"503":{"description":"Model provider unavailable — credits are not charged"}}}},"/deblur":{"post":{"tags":["Tools"],"summary":"deblur","description":"Runs the “deblur” tool. Engine: NAFNet · Bria FIBO (Mocna rekonstrukcja). Cost: 0.5 credits.","operationId":"tool_deblur","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"description":"Rozmyte zdjecie","type":"string","format":"binary"},"mode":{"description":"standard = NAFNet, strong = rekonstrukcja generatywna","type":"string","enum":["standard","strong"],"example":"standard"}},"required":["file"]}}}},"responses":{"200":{"description":"Result ready","content":{"application/json":{"schema":{"type":"object","properties":{"processedImage":{"type":"string","example":"https://pixelift.pl/uploads/…"},"creditsUsed":{"type":"number","example":1}}}}}},"400":{"description":"Invalid input (missing field, unsupported format, file too large)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Not enough credits — the response carries the required amount"},"429":{"description":"Rate limit exceeded (100 requests per minute)"},"503":{"description":"Model provider unavailable — credits are not charged"}}}},"/document-enhance":{"post":{"tags":["Tools"],"summary":"document-enhance","description":"Runs the “document-enhance” tool. Engine: DocRes. Cost: 0.5 credits.","operationId":"tool_document_enhance","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"description":"Skan albo zdjecie dokumentu","type":"string","format":"binary"},"task":{"type":"string","enum":["appearance","deblurring","deshadowing","binarization","dewarping"],"example":"appearance"}},"required":["file"]}}}},"responses":{"200":{"description":"Result ready","content":{"application/json":{"schema":{"type":"object","properties":{"processedImage":{"type":"string","example":"https://pixelift.pl/uploads/…"},"creditsUsed":{"type":"number","example":1}}}}}},"400":{"description":"Invalid input (missing field, unsupported format, file too large)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Not enough credits — the response carries the required amount"},"429":{"description":"Rate limit exceeded (100 requests per minute)"},"503":{"description":"Model provider unavailable — credits are not charged"}}}},"/night-enhancement":{"post":{"tags":["Tools"],"summary":"night-enhancement","description":"Runs the “night-enhancement” tool. Engine: LEDNet. Cost: 0.5 credits.","operationId":"tool_night_enhancement","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"description":"Zdjecie zrobione w ciemnosci","type":"string","format":"binary"}},"required":["file"]}}}},"responses":{"200":{"description":"Result ready","content":{"application/json":{"schema":{"type":"object","properties":{"processedImage":{"type":"string","example":"https://pixelift.pl/uploads/…"},"creditsUsed":{"type":"number","example":1}}}}}},"400":{"description":"Invalid input (missing field, unsupported format, file too large)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Not enough credits — the response carries the required amount"},"429":{"description":"Rate limit exceeded (100 requests per minute)"},"503":{"description":"Model provider unavailable — credits are not charged"}}}},"/face-restore":{"post":{"tags":["Tools"],"summary":"face-restore","description":"Runs the “face-restore” tool. Engine: fal photo-restoration. Cost: 3 credits.","operationId":"tool_face_restore","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"description":"Zdjecie z twarza","type":"string","format":"binary"},"fidelity":{"description":"Wiernosc oryginalowi (0-1)","type":"number","example":0.7},"scale":{"type":"number","example":2}},"required":["file"]}}}},"responses":{"200":{"description":"Result ready","content":{"application/json":{"schema":{"type":"object","properties":{"restoredImage":{"type":"string","example":"https://pixelift.pl/uploads/…"},"creditsUsed":{"type":"number","example":1}}}}}},"400":{"description":"Invalid input (missing field, unsupported format, file too large)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Not enough credits — the response carries the required amount"},"429":{"description":"Rate limit exceeded (100 requests per minute)"},"503":{"description":"Model provider unavailable — credits are not charged"}}}},"/restoration-pack":{"post":{"tags":["Tools"],"summary":"restoration-pack","description":"Runs the “restoration-pack” tool. Engine: Kontext + AuraSR 4×. Cost: 3 credits. Asynchronous — poll `/api/restoration-pack/{batchId}/status`.","operationId":"tool_restoration_pack","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"description":"Jedno zdjecie z paczki (wysylaj po kolei)","type":"string","format":"binary"},"batchId":{"description":"Id paczki zwrocone przy pierwszym zdjeciu","type":"string"}},"required":["file"]}}}},"responses":{"202":{"description":"Job accepted — poll the status endpoint or wait for the webhook","content":{"application/json":{"schema":{"type":"object","properties":{"videoId":{"type":"string","example":"cmk8…"},"status":{"type":"string","example":"processing"}}}}}},"400":{"description":"Invalid input (missing field, unsupported format, file too large)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Not enough credits — the response carries the required amount"},"429":{"description":"Rate limit exceeded (100 requests per minute)"},"503":{"description":"Model provider unavailable — credits are not charged"}}}},"/remove-background":{"post":{"tags":["Tools"],"summary":"remove-background","description":"Runs the “remove-background” tool. Engine: BiRefNet Light · Heavy Premium. Cost: 0.5-1.5 credits.","operationId":"tool_remove_background","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"description":"Zdjecie produktu albo osoby","type":"string","format":"binary"}},"required":["file"]}}}},"responses":{"200":{"description":"Result ready","content":{"application/json":{"schema":{"type":"object","properties":{"image.processedUrl":{"type":"string","example":"https://pixelift.pl/uploads/…"},"creditsUsed":{"type":"number","example":1}}}}}},"400":{"description":"Invalid input (missing field, unsupported format, file too large)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Not enough credits — the response carries the required amount"},"429":{"description":"Rate limit exceeded (100 requests per minute)"},"503":{"description":"Model provider unavailable — credits are not charged"}}}},"/object-removal":{"post":{"tags":["Tools"],"summary":"object-removal","description":"Runs the “object-removal” tool. Engine: FLUX Fill Pro. Cost: 2 credits.","operationId":"tool_object_removal","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"description":"Zdjecie","type":"string","format":"binary"},"mask":{"description":"Maska PNG — biale = do usuniecia","type":"string","format":"binary"}},"required":["file","mask"]}}}},"responses":{"200":{"description":"Result ready","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","example":"https://pixelift.pl/uploads/…"},"creditsUsed":{"type":"number","example":1}}}}}},"400":{"description":"Invalid input (missing field, unsupported format, file too large)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Not enough credits — the response carries the required amount"},"429":{"description":"Rate limit exceeded (100 requests per minute)"},"503":{"description":"Model provider unavailable — credits are not charged"}}}},"/inpaint":{"post":{"tags":["Tools"],"summary":"inpaint","description":"Runs the “inpaint” tool. Engine: FLUX Fill Pro. Cost: 1 credits.","operationId":"tool_inpaint","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"description":"Zdjecie","type":"string","format":"binary"},"mask":{"description":"Maska PNG obszaru do zamalowania","type":"string","format":"binary"},"prompt":{"description":"Co ma sie pojawic w masce","type":"string","example":"drewniany stol"}},"required":["file","mask","prompt"]}}}},"responses":{"200":{"description":"Result ready","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","example":"https://pixelift.pl/uploads/…"},"creditsUsed":{"type":"number","example":1}}}}}},"400":{"description":"Invalid input (missing field, unsupported format, file too large)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Not enough credits — the response carries the required amount"},"429":{"description":"Rate limit exceeded (100 requests per minute)"},"503":{"description":"Model provider unavailable — credits are not charged"}}}},"/expand-image":{"post":{"tags":["Tools"],"summary":"image-expand","description":"Runs the “image-expand” tool. Engine: FLUX Fill. Cost: 2 credits.","operationId":"tool_image_expand","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"description":"Zdjecie do rozszerzenia","type":"string","format":"binary"},"expandMode":{"description":"Kierunek albo krotnosc rozszerzenia kadru","type":"string","enum":["zoom_1.5x","zoom_2x","make_square","expand_left","expand_right","expand_up","expand_down","expand_horizontal"],"example":"zoom_1.5x"}},"required":["file"]}}}},"responses":{"200":{"description":"Result ready","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","example":"https://pixelift.pl/uploads/…"},"creditsUsed":{"type":"number","example":1}}}}}},"400":{"description":"Invalid input (missing field, unsupported format, file too large)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Not enough credits — the response carries the required amount"},"429":{"description":"Rate limit exceeded (100 requests per minute)"},"503":{"description":"Model provider unavailable — credits are not charged"}}}},"/vectorize":{"post":{"tags":["Tools"],"summary":"vectorize","description":"Runs the “vectorize” tool. Engine: VTracer · Recraft AI. Cost: 0.5-2 credits.","operationId":"tool_vectorize","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"description":"Logo albo plaska grafika","type":"string","format":"binary"},"colorMode":{"type":"string","enum":["color","bw"],"example":"color"},"detailLevel":{"type":"string","enum":["low","medium","high"],"example":"medium"}},"required":["file"]}}}},"responses":{"200":{"description":"Result ready","content":{"application/json":{"schema":{"type":"object","properties":{"svg":{"type":"string","example":"https://pixelift.pl/uploads/…"},"creditsUsed":{"type":"number","example":1}}}}}},"400":{"description":"Invalid input (missing field, unsupported format, file too large)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Not enough credits — the response carries the required amount"},"429":{"description":"Rate limit exceeded (100 requests per minute)"},"503":{"description":"Model provider unavailable — credits are not charged"}}}},"/color-matcher":{"post":{"tags":["Tools"],"summary":"color-matcher","description":"Runs the “color-matcher” tool. Engine: Nano Banana. Cost: 1 credits.","operationId":"tool_color_matcher","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"source":{"description":"Zdjecie do przefarbowania","type":"string","format":"binary"},"target":{"description":"Zdjecie wzorcowe (paleta)","type":"string","format":"binary"}},"required":["source","target"]}}}},"responses":{"200":{"description":"Result ready","content":{"application/json":{"schema":{"type":"object","properties":{"processedImage":{"type":"string","example":"https://pixelift.pl/uploads/…"},"creditsUsed":{"type":"number","example":1}}}}}},"400":{"description":"Invalid input (missing field, unsupported format, file too large)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Not enough credits — the response carries the required amount"},"429":{"description":"Rate limit exceeded (100 requests per minute)"},"503":{"description":"Model provider unavailable — credits are not charged"}}}},"/smart-edit":{"post":{"tags":["Tools"],"summary":"smart-edit","description":"Runs the “smart-edit” tool. Engine: Nano Banana Pro. Cost: 8 credits.","operationId":"tool_smart_edit","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"description":"Zdjecie","type":"string","format":"binary"},"prompt":{"type":"string","example":"zmien tlo na biale studio"}},"required":["file","prompt"]}}}},"responses":{"200":{"description":"Result ready","content":{"application/json":{"schema":{"type":"object","properties":{"processedImage":{"type":"string","example":"https://pixelift.pl/uploads/…"},"creditsUsed":{"type":"number","example":1}}}}}},"400":{"description":"Invalid input (missing field, unsupported format, file too large)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Not enough credits — the response carries the required amount"},"429":{"description":"Rate limit exceeded (100 requests per minute)"},"503":{"description":"Model provider unavailable — credits are not charged"}}}},"/background-generate":{"post":{"tags":["Tools"],"summary":"ai-background-generator","description":"Runs the “ai-background-generator” tool. Engine: BRIA AI. Cost: 3 credits.","operationId":"tool_ai_background_generator","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"description":"Zdjecie produktu (tlo zostanie wymienione)","type":"string","format":"binary"},"prompt":{"type":"string","example":"marmurowy blat, miekkie swiatlo"},"negative_prompt":{"type":"string","example":"tekst, znak wodny"}},"required":["file","prompt"]}}}},"responses":{"200":{"description":"Result ready","content":{"application/json":{"schema":{"type":"object","properties":{"generatedImage":{"type":"string","example":"https://pixelift.pl/uploads/…"},"creditsUsed":{"type":"number","example":1}}}}}},"400":{"description":"Invalid input (missing field, unsupported format, file too large)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Not enough credits — the response carries the required amount"},"429":{"description":"Rate limit exceeded (100 requests per minute)"},"503":{"description":"Model provider unavailable — credits are not charged"}}}},"/ai-headshot":{"post":{"tags":["Tools"],"summary":"ai-headshot","description":"Runs the “ai-headshot” tool. Engine: Flux Kontext Pro. Cost: 2 credits.","operationId":"tool_ai_headshot","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"description":"Selfie","type":"string","format":"binary"},"style":{"type":"string","enum":["corporate","creative","casual"],"example":"corporate"}},"required":["file"]}}}},"responses":{"200":{"description":"Result ready","content":{"application/json":{"schema":{"type":"object","properties":{"processedImage":{"type":"string","example":"https://pixelift.pl/uploads/…"},"creditsUsed":{"type":"number","example":1}}}}}},"400":{"description":"Invalid input (missing field, unsupported format, file too large)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Not enough credits — the response carries the required amount"},"429":{"description":"Rate limit exceeded (100 requests per minute)"},"503":{"description":"Model provider unavailable — credits are not charged"}}}},"/portrait-relight":{"post":{"tags":["Tools"],"summary":"portrait-relight","description":"Runs the “portrait-relight” tool. Engine: IC-Light v2. Cost: 2 credits.","operationId":"tool_portrait_relight","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"description":"Portret","type":"string","format":"binary"},"preset":{"type":"string","enum":["studio","sunset","window","neon"],"example":"studio"},"prompt":{"type":"string","example":"cieple swiatlo z lewej"}},"required":["file"]}}}},"responses":{"200":{"description":"Result ready","content":{"application/json":{"schema":{"type":"object","properties":{"image.processedUrl":{"type":"string","example":"https://pixelift.pl/uploads/…"},"creditsUsed":{"type":"number","example":1}}}}}},"400":{"description":"Invalid input (missing field, unsupported format, file too large)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Not enough credits — the response carries the required amount"},"429":{"description":"Rate limit exceeded (100 requests per minute)"},"503":{"description":"Model provider unavailable — credits are not charged"}}}},"/soul-portrait":{"post":{"tags":["Tools"],"summary":"soul-portrait","description":"Runs the “soul-portrait” tool. Engine: FLUX Kontext Pro. Cost: 3 credits.","operationId":"tool_soul_portrait","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"description":"Portret","type":"string","format":"binary"},"style":{"type":"string","example":"Quiet luxury"}},"required":["file","style"]}}}},"responses":{"200":{"description":"Result ready","content":{"application/json":{"schema":{"type":"object","properties":{"processedImage":{"type":"string","example":"https://pixelift.pl/uploads/…"},"creditsUsed":{"type":"number","example":1}}}}}},"400":{"description":"Invalid input (missing field, unsupported format, file too large)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Not enough credits — the response carries the required amount"},"429":{"description":"Rate limit exceeded (100 requests per minute)"},"503":{"description":"Model provider unavailable — credits are not charged"}}}},"/anime-style":{"post":{"tags":["Tools"],"summary":"anime-style","description":"Runs the “anime-style” tool. Engine: Mirage Ghibli. Cost: 0.5 credits.","operationId":"tool_anime_style","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"description":"Zdjecie","type":"string","format":"binary"}},"required":["file"]}}}},"responses":{"200":{"description":"Result ready","content":{"application/json":{"schema":{"type":"object","properties":{"processedImage":{"type":"string","example":"https://pixelift.pl/uploads/…"},"creditsUsed":{"type":"number","example":1}}}}}},"400":{"description":"Invalid input (missing field, unsupported format, file too large)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Not enough credits — the response carries the required amount"},"429":{"description":"Rate limit exceeded (100 requests per minute)"},"503":{"description":"Model provider unavailable — credits are not charged"}}}},"/face-swap":{"post":{"tags":["Tools"],"summary":"face-swap","description":"Runs the “face-swap” tool. Engine: Face Swap AI. Cost: 0.5 credits.","operationId":"tool_face_swap","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"source":{"description":"Twarz zrodlowa","type":"string","format":"binary"},"target":{"description":"Zdjecie docelowe","type":"string","format":"binary"}},"required":["source","target"]}}}},"responses":{"200":{"description":"Result ready","content":{"application/json":{"schema":{"type":"object","properties":{"processedImage":{"type":"string","example":"https://pixelift.pl/uploads/…"},"creditsUsed":{"type":"number","example":1}}}}}},"400":{"description":"Invalid input (missing field, unsupported format, file too large)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Not enough credits — the response carries the required amount"},"429":{"description":"Rate limit exceeded (100 requests per minute)"},"503":{"description":"Model provider unavailable — credits are not charged"}}}},"/consistent-character":{"post":{"tags":["Tools"],"summary":"consistent-character","description":"Runs the “consistent-character” tool. Engine: Ideogram Character. Cost: 2 credits.","operationId":"tool_consistent_character","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"description":"Referencja postaci","type":"string","format":"binary"},"prompt":{"type":"string","example":"ta sama postac w kawiarni"}},"required":["file","prompt"]}}}},"responses":{"200":{"description":"Result ready","content":{"application/json":{"schema":{"type":"object","properties":{"processedImage":{"type":"string","example":"https://pixelift.pl/uploads/…"},"creditsUsed":{"type":"number","example":1}}}}}},"400":{"description":"Invalid input (missing field, unsupported format, file too large)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Not enough credits — the response carries the required amount"},"429":{"description":"Rate limit exceeded (100 requests per minute)"},"503":{"description":"Model provider unavailable — credits are not charged"}}}},"/ai-image/generate":{"post":{"tags":["Tools"],"summary":"ai-image","description":"Runs the “ai-image” tool. Engine: FLUX Schnell · 35+ Premium AI. Cost: 0.5-7 credits.","operationId":"tool_ai_image","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","example":"gorski krajobraz o wschodzie slonca"},"model":{"description":"Id modelu z /api/ai-chat/models","type":"string","example":"flux-schnell"},"aspectRatio":{"type":"string","enum":["1:1","16:9","9:16","4:3"],"example":"1:1"}},"required":["prompt"]}}}},"responses":{"200":{"description":"Result ready","content":{"application/json":{"schema":{"type":"object","properties":{"imageUrl":{"type":"string","example":"https://pixelift.pl/uploads/…"},"creditsUsed":{"type":"number","example":1}}}}}},"400":{"description":"Invalid input (missing field, unsupported format, file too large)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Not enough credits — the response carries the required amount"},"429":{"description":"Rate limit exceeded (100 requests per minute)"},"503":{"description":"Model provider unavailable — credits are not charged"}}}},"/logo-maker":{"post":{"tags":["Tools"],"summary":"logo-maker","description":"Runs the “logo-maker” tool. Engine: Ideogram. Cost: 5 credits.","operationId":"tool_logo_maker","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","example":"kawiarnia Bruno, minimalistyczne"},"style":{"type":"string","enum":["minimal","vintage","modern","playful"],"example":"minimal"},"colorScheme":{"type":"string","example":"zielen i biel"}},"required":["prompt"]}}}},"responses":{"200":{"description":"Result ready","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","example":"https://pixelift.pl/uploads/…"},"creditsUsed":{"type":"number","example":1}}}}}},"400":{"description":"Invalid input (missing field, unsupported format, file too large)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Not enough credits — the response carries the required amount"},"429":{"description":"Rate limit exceeded (100 requests per minute)"},"503":{"description":"Model provider unavailable — credits are not charged"}}}},"/sketch-to-image":{"post":{"tags":["Tools"],"summary":"sketch-to-image","description":"Runs the “sketch-to-image” tool. Engine: ControlNet. Cost: 3 credits.","operationId":"tool_sketch_to_image","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"description":"Szkic","type":"string","format":"binary"},"prompt":{"type":"string","example":"realistyczny dom nad jeziorem"}},"required":["file","prompt"]}}}},"responses":{"200":{"description":"Result ready","content":{"application/json":{"schema":{"type":"object","properties":{"processedImage":{"type":"string","example":"https://pixelift.pl/uploads/…"},"creditsUsed":{"type":"number","example":1}}}}}},"400":{"description":"Invalid input (missing field, unsupported format, file too large)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Not enough credits — the response carries the required amount"},"429":{"description":"Rate limit exceeded (100 requests per minute)"},"503":{"description":"Model provider unavailable — credits are not charged"}}}},"/style-transfer":{"post":{"tags":["Tools"],"summary":"style-transfer","description":"Runs the “style-transfer” tool. Engine: FLUX Redux. Cost: 3 credits.","operationId":"tool_style_transfer","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"description":"Zdjecie","type":"string","format":"binary"},"prompt":{"type":"string","example":"akwarela"},"style_preset":{"type":"string","example":"watercolor"}},"required":["file"]}}}},"responses":{"200":{"description":"Result ready","content":{"application/json":{"schema":{"type":"object","properties":{"styledImage":{"type":"string","example":"https://pixelift.pl/uploads/…"},"creditsUsed":{"type":"number","example":1}}}}}},"400":{"description":"Invalid input (missing field, unsupported format, file too large)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Not enough credits — the response carries the required amount"},"429":{"description":"Rate limit exceeded (100 requests per minute)"},"503":{"description":"Model provider unavailable — credits are not charged"}}}},"/reimagine":{"post":{"tags":["Tools"],"summary":"reimagine","description":"Runs the “reimagine” tool. Engine: FLUX Redux. Cost: 2 credits.","operationId":"tool_reimagine","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"description":"Zdjecie wyjsciowe","type":"string","format":"binary"},"num_variations":{"type":"number","example":2},"prompt":{"type":"string","example":"ta sama scena zima"}},"required":["file"]}}}},"responses":{"200":{"description":"Result ready","content":{"application/json":{"schema":{"type":"object","properties":{"variations":{"type":"string","example":"https://pixelift.pl/uploads/…"},"creditsUsed":{"type":"number","example":1}}}}}},"400":{"description":"Invalid input (missing field, unsupported format, file too large)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Not enough credits — the response carries the required amount"},"429":{"description":"Rate limit exceeded (100 requests per minute)"},"503":{"description":"Model provider unavailable — credits are not charged"}}}},"/structure-control":{"post":{"tags":["Tools"],"summary":"structure-control","description":"Runs the “structure-control” tool. Engine: FLUX Depth. Cost: 3 credits.","operationId":"tool_structure_control","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"description":"Obraz referencyjny","type":"string","format":"binary"},"prompt":{"type":"string","example":"nowoczesne wnetrze"},"control_mode":{"type":"string","enum":["depth","canny","pose"],"example":"depth"},"strength":{"type":"number","example":0.7}},"required":["file","prompt"]}}}},"responses":{"200":{"description":"Result ready","content":{"application/json":{"schema":{"type":"object","properties":{"processedImage":{"type":"string","example":"https://pixelift.pl/uploads/…"},"creditsUsed":{"type":"number","example":1}}}}}},"400":{"description":"Invalid input (missing field, unsupported format, file too large)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Not enough credits — the response carries the required amount"},"429":{"description":"Rate limit exceeded (100 requests per minute)"},"503":{"description":"Model provider unavailable — credits are not charged"}}}},"/emoji-generator":{"post":{"tags":["Tools"],"summary":"emoji-generator","description":"Runs the “emoji-generator” tool. Engine: SDXL Emoji. Cost: 0.5 credits.","operationId":"tool_emoji_generator","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","example":"usmiechniety kot w okularach"}},"required":["prompt"]}}}},"responses":{"200":{"description":"Result ready","content":{"application/json":{"schema":{"type":"object","properties":{"processedImage":{"type":"string","example":"https://pixelift.pl/uploads/…"},"creditsUsed":{"type":"number","example":1}}}}}},"400":{"description":"Invalid input (missing field, unsupported format, file too large)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Not enough credits — the response carries the required amount"},"429":{"description":"Rate limit exceeded (100 requests per minute)"},"503":{"description":"Model provider unavailable — credits are not charged"}}}},"/sticker-maker":{"post":{"tags":["Tools"],"summary":"sticker-maker","description":"Runs the “sticker-maker” tool. Engine: LayerDiffuse. Cost: 0.5 credits.","operationId":"tool_sticker_maker","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","example":"naklejka: rakieta z plomieniem"}},"required":["prompt"]}}}},"responses":{"200":{"description":"Result ready","content":{"application/json":{"schema":{"type":"object","properties":{"processedImage":{"type":"string","example":"https://pixelift.pl/uploads/…"},"creditsUsed":{"type":"number","example":1}}}}}},"400":{"description":"Invalid input (missing field, unsupported format, file too large)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Not enough credits — the response carries the required amount"},"429":{"description":"Rate limit exceeded (100 requests per minute)"},"503":{"description":"Model provider unavailable — credits are not charged"}}}},"/material-generator":{"post":{"tags":["Tools"],"summary":"material-generator","description":"Runs the “material-generator” tool. Engine: Material Diffusion. Cost: 0.5-2 credits.","operationId":"tool_material_generator","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","example":"chropowaty beton"},"resolution":{"type":"string","enum":["512","1024","2048"],"example":"1024"}},"required":["prompt"]}}}},"responses":{"200":{"description":"Result ready","content":{"application/json":{"schema":{"type":"object","properties":{"processedImage":{"type":"string","example":"https://pixelift.pl/uploads/…"},"creditsUsed":{"type":"number","example":1}}}}}},"400":{"description":"Invalid input (missing field, unsupported format, file too large)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Not enough credits — the response carries the required amount"},"429":{"description":"Rate limit exceeded (100 requests per minute)"},"503":{"description":"Model provider unavailable — credits are not charged"}}}},"/text-effects":{"post":{"tags":["Tools"],"summary":"text-effects","description":"Runs the “text-effects” tool. Engine: AI Text FX. Cost: 5 credits.","operationId":"tool_text_effects","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","example":"PIXELIFT"},"style":{"type":"string","enum":["3d","neon","metallic","fire"],"example":"neon"},"backgroundColor":{"type":"string","example":"#0b0b0b"}},"required":["text"]}}}},"responses":{"200":{"description":"Result ready","content":{"application/json":{"schema":{"type":"object","properties":{"generatedImage":{"type":"string","example":"https://pixelift.pl/uploads/…"},"creditsUsed":{"type":"number","example":1}}}}}},"400":{"description":"Invalid input (missing field, unsupported format, file too large)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Not enough credits — the response carries the required amount"},"429":{"description":"Rate limit exceeded (100 requests per minute)"},"503":{"description":"Model provider unavailable — credits are not charged"}}}},"/compress-image":{"post":{"tags":["Tools"],"summary":"image-compressor","description":"Runs the “image-compressor” tool. Engine: Sharp AI. Cost: free.","operationId":"tool_image_compressor","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"description":"Zdjecie","type":"string","format":"binary"},"quality":{"type":"number","example":80},"format":{"type":"string","enum":["jpeg","png","webp","avif"],"example":"webp"}},"required":["file"]}}}},"responses":{"200":{"description":"Result ready","content":{"application/json":{"schema":{"type":"object","properties":{"image":{"type":"string","example":"https://pixelift.pl/uploads/…"},"creditsUsed":{"type":"number","example":1}}}}}},"400":{"description":"Invalid input (missing field, unsupported format, file too large)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Not enough credits — the response carries the required amount"},"429":{"description":"Rate limit exceeded (100 requests per minute)"},"503":{"description":"Model provider unavailable — credits are not charged"}}}},"/crop-image":{"post":{"tags":["Tools"],"summary":"crop-image","description":"Runs the “crop-image” tool. Engine: Sharp. Cost: free.","operationId":"tool_crop_image","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"description":"Plik wejsciowy","type":"string","format":"binary"},"x":{"description":"Lewy gorny rog kadru w pikselach","type":"number","example":0},"y":{"type":"number","example":0},"width":{"description":"Szerokosc kadru w pikselach","type":"number","example":512},"height":{"type":"number","example":512}},"required":["file","x","y","width","height"]}}}},"responses":{"200":{"description":"Result ready","content":{"application/json":{"schema":{"type":"object","properties":{"image":{"type":"string","example":"https://pixelift.pl/uploads/…"},"creditsUsed":{"type":"number","example":1}}}}}},"400":{"description":"Invalid input (missing field, unsupported format, file too large)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Not enough credits — the response carries the required amount"},"429":{"description":"Rate limit exceeded (100 requests per minute)"},"503":{"description":"Model provider unavailable — credits are not charged"}}}},"/resize-image":{"post":{"tags":["Tools"],"summary":"resize-image","description":"Runs the “resize-image” tool. Engine: Sharp. Cost: free.","operationId":"tool_resize_image","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"description":"Plik wejsciowy","type":"string","format":"binary"},"width":{"type":"number","example":1600},"height":{"type":"number","example":900},"fit":{"type":"string","enum":["cover","contain","fill"],"example":"cover"}},"required":["file"]}}}},"responses":{"200":{"description":"Result ready","content":{"application/json":{"schema":{"type":"object","properties":{"image":{"type":"string","example":"https://pixelift.pl/uploads/…"},"creditsUsed":{"type":"number","example":1}}}}}},"400":{"description":"Invalid input (missing field, unsupported format, file too large)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Not enough credits — the response carries the required amount"},"429":{"description":"Rate limit exceeded (100 requests per minute)"},"503":{"description":"Model provider unavailable — credits are not charged"}}}},"/convert-format":{"post":{"tags":["Tools"],"summary":"format-converter","description":"Runs the “format-converter” tool. Engine: Sharp. Cost: free.","operationId":"tool_format_converter","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"description":"Plik wejsciowy","type":"string","format":"binary"},"format":{"type":"string","enum":["jpeg","png","webp","avif"],"example":"webp"},"quality":{"type":"number","example":90}},"required":["file","format"]}}}},"responses":{"200":{"description":"Result ready","content":{"application/json":{"schema":{"type":"object","properties":{"image":{"type":"string","example":"https://pixelift.pl/uploads/…"},"creditsUsed":{"type":"number","example":1}}}}}},"400":{"description":"Invalid input (missing field, unsupported format, file too large)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Not enough credits — the response carries the required amount"},"429":{"description":"Rate limit exceeded (100 requests per minute)"},"503":{"description":"Model provider unavailable — credits are not charged"}}}},"/image-filters":{"post":{"tags":["Tools"],"summary":"image-filters","description":"Runs the “image-filters” tool. Engine: Sharp. Cost: free.","operationId":"tool_image_filters","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"description":"Plik wejsciowy","type":"string","format":"binary"},"preset":{"type":"string","enum":["grayscale","sepia","vivid","cool","warm"],"example":"vivid"}},"required":["file"]}}}},"responses":{"200":{"description":"Result ready","content":{"application/json":{"schema":{"type":"object","properties":{"image":{"type":"string","example":"https://pixelift.pl/uploads/…"},"creditsUsed":{"type":"number","example":1}}}}}},"400":{"description":"Invalid input (missing field, unsupported format, file too large)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Not enough credits — the response carries the required amount"},"429":{"description":"Rate limit exceeded (100 requests per minute)"},"503":{"description":"Model provider unavailable — credits are not charged"}}}},"/ocr":{"post":{"tags":["Tools"],"summary":"ocr","description":"Runs the “ocr” tool. Engine: Datalab OCR. Cost: free.","operationId":"tool_ocr","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"description":"Zdjecie albo skan z tekstem","type":"string","format":"binary"}},"required":["file"]}}}},"responses":{"200":{"description":"Result ready","content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","example":"https://pixelift.pl/uploads/…"},"creditsUsed":{"type":"number","example":1}}}}}},"400":{"description":"Invalid input (missing field, unsupported format, file too large)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Not enough credits — the response carries the required amount"},"429":{"description":"Rate limit exceeded (100 requests per minute)"},"503":{"description":"Model provider unavailable — credits are not charged"}}}},"/image-captioning":{"post":{"tags":["Tools"],"summary":"image-captioning","description":"Runs the “image-captioning” tool. Engine: BLIP. Cost: free.","operationId":"tool_image_captioning","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"description":"Zdjecie","type":"string","format":"binary"}},"required":["file"]}}}},"responses":{"200":{"description":"Result ready","content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","example":"https://pixelift.pl/uploads/…"},"creditsUsed":{"type":"number","example":1}}}}}},"400":{"description":"Invalid input (missing field, unsupported format, file too large)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Not enough credits — the response carries the required amount"},"429":{"description":"Rate limit exceeded (100 requests per minute)"},"503":{"description":"Model provider unavailable — credits are not charged"}}}},"/pdf-to-markdown":{"post":{"tags":["Tools"],"summary":"pdf-to-markdown","description":"Runs the “pdf-to-markdown” tool. Engine: Marker AI. Cost: free.","operationId":"tool_pdf_to_markdown","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"description":"Plik PDF","type":"string","format":"binary"}},"required":["file"]}}}},"responses":{"200":{"description":"Result ready","content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","example":"https://pixelift.pl/uploads/…"},"creditsUsed":{"type":"number","example":1}}}}}},"400":{"description":"Invalid input (missing field, unsupported format, file too large)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Not enough credits — the response carries the required amount"},"429":{"description":"Rate limit exceeded (100 requests per minute)"},"503":{"description":"Model provider unavailable — credits are not charged"}}}},"/qr-generator":{"post":{"tags":["Tools"],"summary":"qr-generator","description":"Runs the “qr-generator” tool. Engine: qrcode. Cost: free.","operationId":"tool_qr_generator","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"content":{"description":"Tresc kodu: adres, tekst, vCard","type":"string","example":"https://pixelift.pl"},"size":{"type":"number","example":512}},"required":["content"]}}}},"responses":{"200":{"description":"Result ready","content":{"application/json":{"schema":{"type":"object","properties":{"qrCode":{"type":"string","example":"https://pixelift.pl/uploads/…"},"creditsUsed":{"type":"number","example":1}}}}}},"400":{"description":"Invalid input (missing field, unsupported format, file too large)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Not enough credits — the response carries the required amount"},"429":{"description":"Rate limit exceeded (100 requests per minute)"},"503":{"description":"Model provider unavailable — credits are not charged"}}}},"/collage":{"post":{"tags":["Tools"],"summary":"collage","description":"Runs the “collage” tool. Engine: Sharp. Cost: free.","operationId":"tool_collage","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"images":{"description":"Tablica 2-9 obrazow jako data URI albo adresy URL","type":"string"},"layout":{"type":"string","enum":["2x1","1x2","2x2","3x3","1+2","2+1"],"example":"2x2"},"gap":{"description":"Odstep miedzy kadrami w pikselach","type":"number","example":10},"backgroundColor":{"type":"string","example":"#ffffff"},"outputWidth":{"type":"number","example":1200}},"required":["images"]}}}},"responses":{"200":{"description":"Result ready","content":{"application/json":{"schema":{"type":"object","properties":{"collage":{"type":"string","example":"https://pixelift.pl/uploads/…"},"creditsUsed":{"type":"number","example":1}}}}}},"400":{"description":"Invalid input (missing field, unsupported format, file too large)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Not enough credits — the response carries the required amount"},"429":{"description":"Rate limit exceeded (100 requests per minute)"},"503":{"description":"Model provider unavailable — credits are not charged"}}}},"/audio-waveform":{"post":{"tags":["Tools"],"summary":"audio-waveform","description":"Runs the “audio-waveform” tool. Engine: Waveform AI. Cost: free.","operationId":"tool_audio_waveform","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"audio":{"description":"Plik audio","type":"string","format":"binary"}},"required":["audio"]}}}},"responses":{"200":{"description":"Result ready","content":{"application/json":{"schema":{"type":"object","properties":{"videoUrl":{"type":"string","example":"https://pixelift.pl/uploads/…"},"creditsUsed":{"type":"number","example":1}}}}}},"400":{"description":"Invalid input (missing field, unsupported format, file too large)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Not enough credits — the response carries the required amount"},"429":{"description":"Rate limit exceeded (100 requests per minute)"},"503":{"description":"Model provider unavailable — credits are not charged"}}}},"/ai-audio/text-to-speech":{"post":{"tags":["Tools"],"summary":"text-to-speech","description":"Runs the “text-to-speech” tool. Engine: F5-TTS. Cost: 0.5 credits.","operationId":"tool_text_to_speech","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","example":"Dzien dobry, tu Pixelift."},"voice":{"description":"Glos z zestawu Kokoro (pelna lista w odpowiedzi bledu)","type":"string","enum":["af_bella","af_nova","af_sarah","am_adam","am_michael","bf_emma","bm_george"],"example":"af_bella"},"speed":{"type":"number","example":1}},"required":["text","voice"]}}}},"responses":{"200":{"description":"Result ready","content":{"application/json":{"schema":{"type":"object","properties":{"audioUrl":{"type":"string","example":"https://pixelift.pl/uploads/…"},"creditsUsed":{"type":"number","example":1}}}}}},"400":{"description":"Invalid input (missing field, unsupported format, file too large)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Not enough credits — the response carries the required amount"},"429":{"description":"Rate limit exceeded (100 requests per minute)"},"503":{"description":"Model provider unavailable — credits are not charged"}}}},"/ai-audio/sound-effects":{"post":{"tags":["Tools"],"summary":"sound-effects","description":"Runs the “sound-effects” tool. Engine: ElevenLabs Sound Effects v2. Cost: 0.5 credits.","operationId":"tool_sound_effects","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","example":"deszcz na blaszanym dachu"},"duration":{"type":"number","example":8}},"required":["prompt"]}}}},"responses":{"200":{"description":"Result ready","content":{"application/json":{"schema":{"type":"object","properties":{"audioUrl":{"type":"string","example":"https://pixelift.pl/uploads/…"},"creditsUsed":{"type":"number","example":1}}}}}},"400":{"description":"Invalid input (missing field, unsupported format, file too large)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Not enough credits — the response carries the required amount"},"429":{"description":"Rate limit exceeded (100 requests per minute)"},"503":{"description":"Model provider unavailable — credits are not charged"}}}},"/ai-audio/music-generation":{"post":{"tags":["Tools"],"summary":"music-generation","description":"Runs the “music-generation” tool. Engine: MusicGen. Cost: 3 credits.","operationId":"tool_music_generation","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","example":"spokojne lo-fi do pracy"},"duration":{"type":"number","example":30}},"required":["prompt"]}}}},"responses":{"200":{"description":"Result ready","content":{"application/json":{"schema":{"type":"object","properties":{"audioUrl":{"type":"string","example":"https://pixelift.pl/uploads/…"},"creditsUsed":{"type":"number","example":1}}}}}},"400":{"description":"Invalid input (missing field, unsupported format, file too large)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Not enough credits — the response carries the required amount"},"429":{"description":"Rate limit exceeded (100 requests per minute)"},"503":{"description":"Model provider unavailable — credits are not charged"}}}},"/ai-audio/speech-to-text":{"post":{"tags":["Tools"],"summary":"speech-to-text","description":"Runs the “speech-to-text” tool. Engine: Whisper v3. Cost: 0.5 credits.","operationId":"tool_speech_to_text","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"audio":{"description":"Nagranie","type":"string","format":"binary"},"language":{"description":"Pelna nazwa jezyka po angielsku albo „None\" dla autodetekcji","type":"string","example":"polish"}},"required":["audio"]}}}},"responses":{"200":{"description":"Result ready","content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","example":"https://pixelift.pl/uploads/…"},"creditsUsed":{"type":"number","example":1}}}}}},"400":{"description":"Invalid input (missing field, unsupported format, file too large)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Not enough credits — the response carries the required amount"},"429":{"description":"Rate limit exceeded (100 requests per minute)"},"503":{"description":"Model provider unavailable — credits are not charged"}}}},"/ai-audio/audio-separation":{"post":{"tags":["Tools"],"summary":"audio-separation","description":"Runs the “audio-separation” tool. Engine: Demucs. Cost: 0.5 credits.","operationId":"tool_audio_separation","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"audio":{"description":"Utwor do rozdzielenia na slady","type":"string","format":"binary"}},"required":["audio"]}}}},"responses":{"200":{"description":"Result ready","content":{"application/json":{"schema":{"type":"object","properties":{"stems":{"type":"string","example":"https://pixelift.pl/uploads/…"},"creditsUsed":{"type":"number","example":1}}}}}},"400":{"description":"Invalid input (missing field, unsupported format, file too large)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Not enough credits — the response carries the required amount"},"429":{"description":"Rate limit exceeded (100 requests per minute)"},"503":{"description":"Model provider unavailable — credits are not charged"}}}},"/ai-audio/voice-cloning":{"post":{"tags":["Tools"],"summary":"voice-cloning","description":"Runs the “voice-cloning” tool. Engine: F5-TTS. Cost: 2 credits.","operationId":"tool_voice_cloning","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"audio":{"description":"Probka glosu (10-30 s)","type":"string","format":"binary"},"refText":{"description":"Transkrypcja probki","type":"string"},"text":{"description":"Tekst do wypowiedzenia","type":"string"}},"required":["audio","refText","text"]}}}},"responses":{"200":{"description":"Result ready","content":{"application/json":{"schema":{"type":"object","properties":{"audioUrl":{"type":"string","example":"https://pixelift.pl/uploads/…"},"creditsUsed":{"type":"number","example":1}}}}}},"400":{"description":"Invalid input (missing field, unsupported format, file too large)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Not enough credits — the response carries the required amount"},"429":{"description":"Rate limit exceeded (100 requests per minute)"},"503":{"description":"Model provider unavailable — credits are not charged"}}}},"/ai-video/colorize":{"post":{"tags":["Tools"],"summary":"video-colorize","description":"Runs the “video-colorize” tool. Engine: DDColor HD · audio · max 5 min. Cost: 10 credits. Asynchronous — poll `/ai-video/{id}/status`.","operationId":"tool_video_colorize","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"video":{"description":"Plik wideo (do 5 min, 35 MB)","type":"string","format":"binary"},"engine":{"description":"Domyslnie dobierany po dlugosci klipu","type":"string","enum":["ddcolor","deoldify"],"example":"ddcolor"},"email_when_done":{"type":"boolean","example":true}},"required":["video"]}}}},"responses":{"202":{"description":"Job accepted — poll the status endpoint or wait for the webhook","content":{"application/json":{"schema":{"type":"object","properties":{"videoId":{"type":"string","example":"cmk8…"},"status":{"type":"string","example":"processing"}}}}}},"400":{"description":"Invalid input (missing field, unsupported format, file too large)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Not enough credits — the response carries the required amount"},"429":{"description":"Rate limit exceeded (100 requests per minute)"},"503":{"description":"Model provider unavailable — credits are not charged"}}}},"/ai-video/face-restore":{"post":{"tags":["Tools"],"summary":"video-face-restore","description":"Runs the “video-face-restore” tool. Engine: GFPGAN Video · max 60 s. Cost: 4-24 credits. Asynchronous — poll `/ai-video/{id}/status`.","operationId":"tool_video_face_restore","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"video":{"description":"Klip z twarza (do 60 s)","type":"string","format":"binary"},"scale":{"type":"number","example":1},"email_when_done":{"type":"boolean","example":true}},"required":["video"]}}}},"responses":{"202":{"description":"Job accepted — poll the status endpoint or wait for the webhook","content":{"application/json":{"schema":{"type":"object","properties":{"videoId":{"type":"string","example":"cmk8…"},"status":{"type":"string","example":"processing"}}}}}},"400":{"description":"Invalid input (missing field, unsupported format, file too large)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Not enough credits — the response carries the required amount"},"429":{"description":"Rate limit exceeded (100 requests per minute)"},"503":{"description":"Model provider unavailable — credits are not charged"}}}},"/video-upscale":{"post":{"tags":["Tools"],"summary":"video-upscaler","description":"Runs the “video-upscaler” tool. Engine: Real-ESRGAN · Topaz Video AI. Cost: 5+ credits. Asynchronous — poll `/api/video-upscale?jobId={jobId}`.","operationId":"tool_video_upscaler","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"video":{"description":"Plik wideo","type":"string","format":"binary"},"model":{"type":"string","enum":["real-esrgan","topaz"],"example":"real-esrgan"},"targetResolution":{"type":"string","enum":["1080p","4k"],"example":"1080p"}},"required":["video"]}}}},"responses":{"202":{"description":"Job accepted — poll the status endpoint or wait for the webhook","content":{"application/json":{"schema":{"type":"object","properties":{"videoId":{"type":"string","example":"cmk8…"},"status":{"type":"string","example":"processing"}}}}}},"400":{"description":"Invalid input (missing field, unsupported format, file too large)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Not enough credits — the response carries the required amount"},"429":{"description":"Rate limit exceeded (100 requests per minute)"},"503":{"description":"Model provider unavailable — credits are not charged"}}}},"/ai-video/reframe":{"post":{"tags":["Tools"],"summary":"reframe","description":"Runs the “reframe” tool. Engine: AI Reframe. Cost: 0.5-36 credits. Asynchronous — poll `/ai-video/{id}/status`.","operationId":"tool_reframe","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"video":{"description":"Plik wideo","type":"string","format":"binary"},"aspect_ratio":{"type":"string","enum":["9:16","1:1","16:9"],"example":"9:16"},"prompt":{"type":"string","example":"trzymaj osobe w kadrze"}},"required":["video","aspect_ratio"]}}}},"responses":{"202":{"description":"Job accepted — poll the status endpoint or wait for the webhook","content":{"application/json":{"schema":{"type":"object","properties":{"videoId":{"type":"string","example":"cmk8…"},"status":{"type":"string","example":"processing"}}}}}},"400":{"description":"Invalid input (missing field, unsupported format, file too large)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Not enough credits — the response carries the required amount"},"429":{"description":"Rate limit exceeded (100 requests per minute)"},"503":{"description":"Model provider unavailable — credits are not charged"}}}},"/ai-video/add-sound":{"post":{"tags":["Tools"],"summary":"add-sound","description":"Runs the “add-sound” tool. Engine: MMAudio. Cost: 0.5 credits. Asynchronous — poll `/ai-video/{id}/status`.","operationId":"tool_add_sound","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"video":{"description":"Nieme wideo","type":"string","format":"binary"},"prompt":{"type":"string","example":"szum ulicy i kroki"},"duration":{"type":"number","example":8}},"required":["video","prompt"]}}}},"responses":{"202":{"description":"Job accepted — poll the status endpoint or wait for the webhook","content":{"application/json":{"schema":{"type":"object","properties":{"videoId":{"type":"string","example":"cmk8…"},"status":{"type":"string","example":"processing"}}}}}},"400":{"description":"Invalid input (missing field, unsupported format, file too large)"},"401":{"description":"Missing or invalid API key"},"402":{"description":"Not enough credits — the response carries the required amount"},"429":{"description":"Rate limit exceeded (100 requests per minute)"},"503":{"description":"Model provider unavailable — credits are not charged"}}}}},"components":{"schemas":{"ProcessingResult":{"type":"object","properties":{"id":{"type":"string","description":"Processing job ID"},"status":{"type":"string","enum":["completed","processing","failed"]},"output_url":{"type":"string","format":"uri","description":"URL of processed image"},"original_width":{"type":"integer"},"original_height":{"type":"integer"},"processed_width":{"type":"integer"},"processed_height":{"type":"integer"},"credits_used":{"type":"integer"},"processing_time":{"type":"integer","description":"Processing time in ms"}}},"HistoryEntry":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["upscale","enhance","restore","background_remove","compress","packshot"]},"status":{"type":"string","enum":["pending","processing","completed","failed"]},"preset":{"type":"string"},"scale":{"type":"integer"},"originalUrl":{"type":"string"},"processedUrl":{"type":"string"},"creditsUsed":{"type":"integer"},"processingTime":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"completedAt":{"type":"string","format":"date-time"}}},"HistoryResponse":{"type":"object","properties":{"entries":{"type":"array","items":{"$ref":"#/components/schemas/HistoryEntry"}},"total":{"type":"integer"},"limit":{"type":"integer"},"offset":{"type":"integer"},"hasMore":{"type":"boolean"},"stats":{"type":"object","properties":{"totalImages":{"type":"integer"},"totalCreditsUsed":{"type":"integer"},"byType":{"type":"object"},"byStatus":{"type":"object"}}}}},"Error":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"details":{"type":"object"}}}},"responses":{"BadRequest":{"description":"Bad request - invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Unauthorized":{"description":"Unauthorized - invalid or missing API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotFound":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"InsufficientCredits":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"RateLimitExceeded":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":"Rate limit exceeded","code":"RATE_LIMIT","details":{"limit":60,"remaining":0,"reset":1699999999}}}}}},"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API Key","description":"API key authentication. Get your key from the dashboard."}}}}