REST API in MCP
Slikovni API in strežnik MCP
Vse, kar zmore spletna stran, kot API. Stisnite na točno velikost datoteke, pretvarjajte med formati, odstranjujte ozadja in optimizirajte celotno spletno stran iz svoje kode ali prek pomočnika UI.
curl -X POST "https://imagecompressor.si/api/v1/compress?format=webp&target_bytes=100000" \ -H "Authorization: Bearer $IMAGECOMPRESSOR_API_KEY" \ --data-binary @photo.jpg \ -o photo.webp- REST APIEna zahteva noter, ena slika ven. Vsaka končna točka je opisana v OpenAPI.
- SDK-ji in ukazOdjemalca za TypeScript in Python brez odvisnosti ter ukaz za terminale in gradbene skripte.
- Cevovodi in webhookiVeč korakov nad številnimi slikami kot eno opravilo in podpisan klic, ko se konča.
- Strežnik MCPSvojemu agentu UI za programiranje dajte ista orodja prek ene končne točke HTTP.
Hiter začetek
Sliko pošljite kot telo zahteve in rezultat prejmite kot telo odgovora.
curl -X POST "https://imagecompressor.si/api/v1/compress?format=webp&target_bytes=100000" \ -H "Authorization: Bearer $IMAGECOMPRESSOR_API_KEY" \ --data-binary @photo.jpg \ -o photo.webpIsti klic v treh jezikih
import { ImageCompressor } from "@imagecompressor/sdk";import { readFile, writeFile } from "node:fs/promises"; const client = new ImageCompressor({ apiKey: process.env.IMAGECOMPRESSOR_API_KEY });const result = await client.compress(await readFile("photo.jpg"), { format: "webp", targetBytes: 100000,});await writeFile("photo.webp", result.data);import osfrom imagecompressor import ImageCompressor client = ImageCompressor(os.environ["IMAGECOMPRESSOR_API_KEY"])with open("photo.jpg", "rb") as handle: result = client.compress(handle.read(), format="webp", target_bytes=100000)result.save("photo.webp")SDK-ji in orodje za ukazno vrstico
Uradna odjemalca brez odvisnosti: TypeScript/JavaScript in Python. Paket za JavaScript namesti tudi ukaz imagecompressor za terminale in gradbene skripte.
npm install @imagecompressor/sdk # the client and the imagecompressor commandpip install imagecompressor # the Python client export IMAGECOMPRESSOR_API_KEY=ic_live_...imagecompressor compress photos/ --recursive --out optimizedimagecompressor pipeline products/ --preset product-squareKončne točke
- POST/api/v1/compress
- Stiskanje, pretvorba, sprememba velikosti, izrez, zasuk ali zrcaljenje. Parametri: spodnje možnosti v poljubni kombinaciji.
- POST/api/v1/inspect
- Podatki o sliki: format, mere, barve, EXIF, položaj GPS in odtisi. Ničesar ne spremeni.
- POST/api/v1/remove-background
- Odstranitev ozadja. Parametri: background (transparent, barva, gradient, blur ali image), feather, refine, format, output. Slika za ozadje se pošlje kot dela multipart image in background_image (Pro).
- POST/api/v1/id-photo
- Izdela fotografijo za osebni dokument ali potni list. Parametri: preset ali width_mm in height_mm (ali width in height v slikovnih pikah), dpi, crop, format, min_bytes, max_bytes, background, remove_background, sheet, output. GET vrne prednastavitve z uradnimi viri.
- POST/api/v1/favicon
- Izdela paket favicon kot ZIP: favicon.ico, ikone PNG od 16 do 512 slikovnih pik, maskirno ikono, site.webmanifest in favicon.html. Parametri: name, short_name, theme_color, background, padding, output.
- POST/api/v1/gif
- Uredi animirani GIF. Parametri: crop, width, trim_start, trim_end, speed, reverse, every, colours, loop, format (gif ali webp), output.
- POST/api/v1/faces
- Poišče obraze na sliki. Vrne width, height in faces (x, y, width, height, score), največji najprej. Nič se ne shrani.
- POST/api/v1/blur-faces
- Zamegli ali pikselizira obraze. Parametri: effect (blur ali pixelate), strength, boxes (x,y,width,height;… za prekritje le teh območij; brez njega se prekrije vsak najdeni obraz), format, output.
- POST/api/v1/upscale
- Podvoji velikost slike z modelom za super ločljivost. Parametri: format, output. Do 1 megapiksla brezplačno, 2,25 v paketu Pro.
- POST/api/v1/ocr
- Prebere besedilo na sliki. Parameter: lang (eng, slv ali oba). Vrne besedilo in zanesljivost kot JSON.
- POST/api/v1/sites/optimize
- Pregleda strani spletnega mesta in njihove slike pretvori v WebP. Telo: url, quality, max_pages. Brezplačno 5 strani, Pro 50. Vrne opravilo, ki ga preverjate.
- GET/api/v1/sites/optimize/{id}
- Stanje opravila in, ko je končano, poročilo z zip_url in replacements.
- GET/api/v1/files/{id}
- Prenos shranjenega rezultata (če ste zahtevali output=json).
- GET/api/v1/formats
- Formati, ki jih storitev bere in zapisuje.
- GET/api/v1/usage
- Poraba v tem mesecu in vaše omejitve.
Možnosti stiskanja
- format
- auto, jpeg, png, webp, avif, gif, tiff, bmp, ico, jxl, pdf, tga ali psd. Privzeto auto ohrani vhodni format. ico vsebuje sliko v velikostih od 16 do 256 slikovnih pik. pdf je ena stran s sliko JPEG. psd je ploska slika, z eno plastjo, kadar ima prosojnost.
- mode
- quality (privzeto) uporabi quality. smart poišče najmanjšo datoteko, ki je še videti kot izvirnik. lossless ohrani vsako slikovno točko (png, webp, avif, tiff, jxl, bmp, ico, tga, psd).
- quality
- Od 1 do 100. Privzeto 75.
- target_bytes
- Stisne na največ toliko bajtov. Nadomesti quality.
- crop, crop_ratio, crop_shape
- x,y,width,height v slikovnih točkah ali crop_ratio, na primer 16:9, za sredinski izrez. crop_shape=circle počisti vogale.
- rotate, flip
- rotate: cele stopinje v smeri urinega kazalca, od -359 do 359. Četrt obrata je natančen; pri drugih kotih se slika poveča, novi vogali pa so prosojni (v JPEG in BMP v barvi ozadja). flip: h, v ali hv. Zrcaljenje se izvede pred zasukom, oboje po izrezu.
- width, height, percent, fit, enlarge
- width in height v slikovnih točkah ali percent. fit: inside (privzeto), exact, cover ali contain. enlarge=true dovoli povečavo slike.
- print_width, print_height, dpi
- print_width in print_height v milimetrih z dpi (od 72 do 1200, privzeto 300) spremenita velikost na mero na papirju in v datoteko zapišeta ločljivost. Brez enlarge=true majhna slika ohrani svoje slikovne točke in dobi nižjo ločljivost, pri kateri se natisne v tej velikosti, z opozorilom print_resolution_low. Sam dpi zapiše le ločljivost.
- max_width, max_height
- Zmanjša, da se prilega, in ohrani razmerje stranic. Nikoli ne poveča.
- background
- Barva, na primer #ffffff, ki se nariše za prosojnimi točkami, kadar je izhod JPEG ali BMP. Privzeto bela.
- brightness … border
- brightness, contrast, saturation, exposure: od -100 do 100. grayscale=true. blur: od 0 do 100. border v slikovnih točkah z border_color (barva ali transparent).
- enhance, sharpen, denoise, score
- enhance=true, sharpen in denoise (od 0 do 100). crop_gravity=attention postavi izrez z razmerjem na motiv. score=true doda X-IC-Similarity, podobnost rezultata z izvirnikom.
- watermark_*
- watermark_text z watermark_color, watermark_opacity, watermark_size in watermark_position (tl, tc, tr, cl, c, cr, bl, bc, br ali tile). Logotip se pošlje kot del multipart watermark_image (Pro).
- metadata
- strip (privzeto), keep, no_gps (ohrani fotoaparat in datum, odstrani lokacijo) ali color (samo barvni profil).
- fingerprint
- true doda X-IC-Fingerprint, zaznavni odtis za iskanje dvojnikov.
- output
- binary (privzeto) vrne sliko. json jo shrani za eno uro in vrne povezavo.
Glave odgovora: X-IC-Original-Bytes, X-IC-Bytes, X-IC-Width, X-IC-Height, X-IC-Format, X-IC-Outcome, X-IC-Warnings in X-IC-Duration-Ms (čas obdelave).
Omejitve
- Brezplačno: 1000 zahtev in 100 zahtev UI na mesec, 120 na minuto, datoteke do 20 MB.
- Pro: 20.000 zahtev in 2000 zahtev UI na mesec, 600 na minuto, datoteke do 200 MB.
- Ena zahteva je en kredit, ne glede na uporabljene možnosti. Optimizator spletnih strani šteje eno zahtevo za vsako pretvorjeno sliko.
- Odstranjevanje ozadja, povečava in pretvorba slike v besedilo so zahteve UI in se štejejo v kvoto UI, ne v običajno. Cevovod, ki zažene model, šteje kot ena zahteva vsake vrste. X-Quota-Meter pove, v katero kvoto je bil odgovor štet.
- Testni ključi (ic_test_…) so namenjeni razvoju in sistemom CI: ne porabljajo vaše kvote, sprejmejo datoteke do 1 MB in dovolijo 50 zahtev na dan. Njihovi odgovori vsebujejo X-IC-Test-Mode: true.
- Živi ključ ima lahko lastno mesečno omejitev, ki jo nastavite ob ustvarjanju, da ena integracija ne porabi kvote celotnega računa.
- Lastniku računa pošljemo e-pošto enkrat, ko je porabljenih 80 % mesečne kvote, in enkrat, ko je kvota porabljena.
- Naloženih datotek nikoli ne shranimo. Rezultati, ki jih zahtevate kot povezavo, se izbrišejo po eni uri.
Napake
Napake so v obliki JSON s kodo in sporočilom. Odgovori 429 in 503 vsebujejo glavo Retry-After.
{ "error": { "code": "file_too_large", "message": "…" } }Cevovodi in opravila
Cevovod v eni zahtevi izvede več korakov na eni sliki: odstrani ozadje, spremeni velikost, pretvori, stisne. Koraki imajo lahko pogoje, poskusni zagon pokaže, kaj bi se zgodilo, opravilo pa cevovod v ozadju izvede na številnih slikah. Za cevovode in opravila potrebujete paket Pro; brezplačen račun dobi upgrade_required (403).
curl -X POST "https://imagecompressor.si/api/v1/jobs" \ -H "Authorization: Bearer $IMAGECOMPRESSOR_API_KEY" \ -H "Content-Type: application/json" \ -H "Idempotency-Key: order-1001" \ -d '{ "inputs": [{ "url": "https://example.com/a.jpg" }, { "url": "https://example.com/b.png" }], "pipeline": { "steps": [ { "op": "resize", "when": { "min_width": 2561 }, "params": { "width": 2560 } }, { "op": "compress", "params": { "format": "webp", "mode": "smart" } } ] }, "webhook_url": "https://example.com/hooks/images" }'Webhooki
Opravilu dodajte webhook_url in končano opravilo pošljemo tja z zahtevo POST, podpisano s skrivnostjo vašega računa (Standard Webhooks). Neuspešno dostavo ponovimo po 5 sekundah, 30 sekundah in 2 minutah. Pred uporabo vsebine preverite podpis.
import { verifyWebhook } from "@imagecompressor/sdk"; // body: the raw request body, exactly as receivedconst event = await verifyWebhook(process.env.IMAGECOMPRESSOR_WEBHOOK_SECRET, body, request.headers);if (event.type === "job.finished") { for (const result of event.data.results) console.log(result.status, result.url);}OpenAPI in raziskovalec API-ja
Celoten API je opisan v dokumentu OpenAPI 3.1, ki ga lahko naložite v kateri koli generator odjemalcev ali orodje za API. Spodnji raziskovalec je zgrajen iz njega: izberite operacijo, dodajte ključ in datoteko ter pošljite pravo zahtevo.
Prenesi openapi.jsonStanje storitve
Nalaganje opisa API-ja…
Strežnik MCP
Povežite svojega pomočnika UI za programiranje in ga prosite, naj optimizira slike v vašem projektu ali na vaši strani. Orodja: compress_image, convert_image, remove_background, optimize_website, get_website_report in get_usage.
Končna točka (Streamable HTTP)
https://imagecompressor.si/api/mcpPrimer nastavitve
{ "mcpServers": { "imagecompressor": { "type": "http", "url": "https://imagecompressor.si/api/mcp", "headers": { "Authorization": "Bearer ic_live_..." } } }}Orodje optimize_website vrne seznam zamenjav, zato lahko pomočnik namesto vas posodobi vse sklice na slike.
Optimizator spletnih mest prek MCP
Preglede, narejene v optimizatorju spletnih mest, lahko agent bere, njihove zamenjave pa uporabi v projektu na vašem računalniku. Orodja sledijo pogodbi različice 1: vsak rezultat vsebuje contract_version, polja se znotraj različice samo dodajajo, sprememba, ki bi kaj pokvarila, pa dobi nova imena orodij.
Gostovani strežnik, samo bere (dovoljenje ključa: sites)
list_website_scans()get_website_scan(scan_id)list_website_pages(scan_id, status?, search?, offset?, limit?)list_website_assets(scan_id, kind?, status?, finding?, page?, search?, offset?, limit?)get_replacement_mapping(scan_id, offset?, limit?)get_agent_prompt(scan_id, agent?)Lokalni strežnik, v mapi vašega projekta
imagecompressor mcp --root . load_replacement_package(path | scan_id)find_references(package_id?)preview_replacements(package_id?) -> plan_id, diffapply_replacements(plan_id, approved: true) -> backup_idvalidate_replacements(plan_id?)replacement_report(plan_id?)rollback(backup_id?, approved: true)Lokalni strežnik bere in piše samo v mapi, za katero ga zaženete, vsako spremembo najprej pokaže kot razliko, brez approved: true in načrta, ki ga je pokazal v tej seji, ne spremeni ničesar, varnostno kopira vsako datoteko, ki se je dotakne, in nikoli ne naloži vaše izvorne kode.