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
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

Hiter začetek

Sliko pošljite kot telo zahteve in rezultat prejmite kot telo odgovora.

curl
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

Isti klic v treh jezikih

TypeScript
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);
Python
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.

terminal
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-square

Konč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.

JSON
{ "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
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.

TypeScript
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/mcp

Primer nastavitve

JSON
{  "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

terminal
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.

Več

Na Pro

Videz

Jezik

ZasebnostPogoji uporabeVračila