REST API · v1

MakeFav API-dokumentáció

Hozzon létre teljes favicon-csomagokat saját kódjából, build-szkriptjeiből és CI-folyamataiból. Egyetlen kéréssel bármely képből favicon.ico, Apple touch ikonok, Android- és PWA-ikonok, webmanifest és azonnal beilleszthető HTML készül.

Ezen az oldalon

Gyors kezdés

A MakeFav API egy egyszerű HTTPS + JSON alapú REST API. Minden végpont egyetlen alap URL alatt érhető el:

https://makefav.com/api/v1
  1. Ingyenes fiók létrehozása
    Regisztráljon, erősítse meg az e-mail-címét, és tartsa aktívan a MakeFav hírlevél-feliratkozást – ez az ingyenes csomag egyetlen feltétele.
  2. API-kulcs létrehozása
    Nyissa meg a fiókjában az API-kulcsok oldalt, és hozzon létre egy személyes kulcsot. A kulcs mf_ előtaggal kezdődik, és csak egyszer jelenik meg, ezért tárolja biztonságosan. API-kulcsok kezelése
  3. Küldje el az első kérését
    Töltsön fel egy képet a generate végpontra, és mentse el a kapott ZIP-fájlt:
curl --fail-with-body -sS https://makefav.com/api/v1/generate \
  -H "Authorization: Bearer $MAKEFAV_API_KEY" \
  -F "[email protected]" \
  -F "app_name=My App" \
  -F "theme_color=#2f9e68" \
  -F "radius=20" \
  -o favicons.zip

Unzip favicons.zip, upload the files to your website and paste the HTML code from the end of readme-makefav.txt into the <head> of every page.

Hitelesítés

A védett végpontokra küldött minden kérésnek tartalmaznia kell egy személyes API-kulcsot. Kulcsokat bármikor létrehozhat, elnevezhet és visszavonhat a fiókoldalán: API-kulcsok

Send the key as a bearer token in the Authorization header, or – if your HTTP client makes that awkward – in the X-API-Key header. Both are equivalent.

Authorization: Bearer mf_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

# or, alternatively
X-API-Key: mf_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
A kulcsok olyan felhasználóhoz tartoznak, akinek az e-mail-címe megerősített, és a hírlevél-feliratkozása aktív (az ingyenes csomag feltétele). Ha az e-mail-cím nincs megerősítve, a hírlevél ki van kapcsolva, vagy a fiókot letiltották, minden kérés 403 Forbidden választ ad.
Kezelje az API-kulcsokat jelszóként: tartsa őket a szerveren vagy CI-titkokban, soha ne böngészőkódban, mobilalkalmazásokban vagy nyilvános tárolókban. Ha egy kulcs kiszivárog, azonnal vonja vissza.

Missing or invalid keys return 401 Unauthorized. The GET /sizes and GET /openapi.json endpoints do not require a key.

Kérési korlátok

Alapértelmezés szerint minden API-kulcs óránként 100 kérést küldhet. Minden hitelesített válasz megmutatja, hol tart:

FejlécLeírás
X-RateLimit-LimitAz aktuális időablakban engedélyezett kérések maximális száma.
X-RateLimit-RemainingAz aktuális időablakban hátralévő kérések.
X-RateLimit-ResetUnix időbélyeg (másodperc, UTC), amikor az időablak visszaáll.
HTTP/1.1 200 OK
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 97
X-RateLimit-Reset: 1767225600

When the limit is exceeded the API responds with HTTP 429 and the error code rate_limited. Wait until the time in X-RateLimit-Reset before retrying – do not retry in a tight loop.

HTTP/1.1 429 Too Many Requests
Content-Type: application/json
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1767225600

{"error": {"code": "rate_limited", "message": "Rate limit exceeded. Try again after the reset time."}}

You can check your current quota at any time with GET /me.

Végpontok

VégpontHitelesítésLeírás
POST /generateAPI-kulcsTeljes favicon-csomag létrehozása.
GET /meAPI-kulcsA fiókja és az aktuális kérési korlát állapota.
GET /sizesNincsA generátor által előállított összes ikonfájl és méret listája.
GET /openapi.jsonNincsGéppel olvasható OpenAPI 3.1 specifikáció.

Favicon-csomag generálása

POST/generate

Egyetlen forrásképből teljes favicon-csomagot hoz létre. A képet háromféleképpen küldheti el:

TartalomtípusKépmezőLeírás
multipart/form-dataimageFájlfeltöltés. Ajánlott – a leghatékonyabb megoldás.
application/jsonimage_base64Base64-encoded image, either raw base64 or a data URL such as data:image/png;base64,iVBOR….
application/jsonimage_urlA kép nyilvános http vagy https URL-je. A szerver letölti (max. 10 MB).

Támogatott bemeneti formátumok: PNG, JPG, WebP, AVIF, GIF, BMP, SVG és ICO. Maximális fájlméret: 10 MB.

Paraméterek

Minden paraméter opcionális. Elküldheti őket űrlapmezőkként (multipart) vagy JSON-tulajdonságokként. Érvénytelen érték esetén az alapértelmezett érték lép életbe.

NévTípus / tartományAlapértelmezettLeírás
app_nameszöveg, max. 60 karakterMy WebsiteA weboldal vagy alkalmazás neve, a manifest.json fájlban és a példaoldalon használatos.
short_nameszöveg, max. 24 karakteraz app_name első 12 karaktereAz ikon alatt megjelenő rövid név az Android kezdőképernyőkön.
theme_color#rrggbb#ffffffA böngésző felületének színe (theme-color meta címke és manifest).
tile_color#rrggbbmegegyezik a theme_color értékévelA Windows Start csempéinek háttérszíne.
backgroundtransparent | #rrggbbtransparentA böngésző-, Android- és Windows-ikonok háttere.
apple_background#rrggbb#ffffffAz Apple touch ikonok és a maszkolható ikon háttere (az iOS nem támogatja az átlátszóságot). Figyelmen kívül marad, ha a background szín – ilyenkor azt a színt használja a rendszer.
paddingegész szám, 0–40 (%)0A kép körüli üres tér az ikonméret százalékában megadva.
radiusegész szám, 0–50 (%)0Lekerekített sarkok. Az 50 kört eredményez. Az Apple ikonokra nem vonatkozik, mert az iOS maga kerekíti őket.
zoomegész szám, 50–400 (%)100A kép léptéke az ikonon belül. 100 feletti értéknél a kép levágásra kerül.
offset_x, offset_yszám, -1 és 1 között0Vízszintesen / függőlegesen eltolja a képet az ikonméret törtrészeként megadva.
pathszöveg/A szerveren található mappa, ahol az ikonok lesznek. A HTML-kódrészletben, a manifestben és a browserconfigban használatos.
displaystandalone | fullscreen | minimal-ui | browserstandaloneA manifestbe írt PWA megjelenítési mód.
pixelatedauto | 1 | 0autoÉles, legközelebbi szomszéd módszerű skálázás pixelgrafikához. Az auto 64 képpontos vagy kisebb források esetén bekapcsolja.
maskable1 | 01A maskable-icon-512x512.png fájlt is létrehozza biztonsági zónával az Android adaptív ikonjaihoz.
ico_sizesvesszővel elválasztott lista: 16, 24, 32, 48, 64, 128, 25616,32,48A favicon.ico fájlba beágyazott méretek.
groupsvesszővel elválasztott lista: favicon, apple, android, msfavicon,apple,android,msGenerálandó ikonkészletek: böngészős faviconok, Apple touch ikonok, Android / PWA ikonok és Windows csempék.
formatzip | jsonzipVálaszformátum – lásd alább.

Válasz

format=zip
Binary ZIP archive with Content-Type: application/zip and Content-Disposition: attachment. Default.
format=json
JSON object with the package id (32 hex characters), the html snippet for your <head> and a files array; each file has name, mime, size (bytes) and base64 contents.

Példakérés – multipart, ZIP válasz

curl --fail-with-body -sS https://makefav.com/api/v1/generate \
  -H "Authorization: Bearer $MAKEFAV_API_KEY" \
  -F "[email protected]" \
  -F "app_name=My App" \
  -F "theme_color=#2f9e68" \
  -F "radius=20" \
  -o favicons.zip
HTTP/1.1 200 OK
Content-Type: application/zip
Content-Disposition: attachment
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 99
X-RateLimit-Reset: 1767225600

<binary ZIP data>

Példakérés – JSON képpel (URL), JSON válasz

curl --fail-with-body -sS https://makefav.com/api/v1/generate \
  -H "Authorization: Bearer $MAKEFAV_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "image_url": "https://example.com/logo.png",
    "app_name": "My App",
    "theme_color": "#2f9e68",
    "radius": 20,
    "groups": "favicon,apple,android",
    "format": "json"
  }'
{
  "id": "9f86d081884c7d659a2feaa0c55ad015",
  "html": "<link rel=\"apple-touch-icon\" sizes=\"57x57\" href=\"/apple-icon-57x57.png\">\n…\n<meta name=\"theme-color\" content=\"#2f9e68\">",
  "files": [
    {"name": "favicon.ico", "mime": "image/x-icon", "size": 15086, "base64": "AAABAAMAEBAAAAEAIABoBAAANgAAACAg…"},
    {"name": "favicon-16x16.png", "mime": "image/png", "size": 612, "base64": "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQ…"},
    {"name": "manifest.json", "mime": "application/json", "size": 1094, "base64": "ewogICAgIm5hbWUiOiAiTXkgQXBwIiwK…"}
  ]
}

Fiók lekérdezése

GET/me

Visszaadja azt a felhasználót, akihez az API-kulcs tartozik, valamint az aktuális kérésszám-korlát állapotát. Kulcs ellenőrzésére használható. Hitelesítés szükséges; nincsenek paraméterek.

Példakérés

curl -sS https://makefav.com/api/v1/me \
  -H "Authorization: Bearer $MAKEFAV_API_KEY"

Példaválasz

{
  "id": 1,
  "email": "[email protected]",
  "name": "Jane Doe",
  "rate_limit": {"limit": 100, "remaining": 97, "reset": 1767225600}
}

Ikonméretek listázása

GET/sizes

Returns every icon file the generator can produce, with its pixel size and group. No authentication and no parameters. The group value matches the groups parameter of POST /generate.

Példakérés

curl -sS https://makefav.com/api/v1/sizes

Példaválasz

{
  "files": [
    {"name": "favicon-16x16.png", "size": 16, "group": "favicon"},
    {"name": "favicon-32x32.png", "size": 32, "group": "favicon"},
    {"name": "apple-touch-icon.png", "size": 180, "group": "apple"},
    {"name": "android-icon-192x192.png", "size": 192, "group": "android"},
    {"name": "ms-icon-144x144.png", "size": 144, "group": "ms"}
  ]
}

OpenAPI-specifikáció

GET/openapi.json

Visszaadja az API OpenAPI 3.1 leírását. Hitelesítés nélkül elérhető. Importálhatod Postmanbe, Insomniába vagy Swagger UI-ba, illetve használhatod típusos kliens generálására a választott nyelvedhez.

curl -sS https://makefav.com/api/v1/openapi.json -o makefav-openapi.json

Hibák

Successful requests return HTTP 200. Every error returns a JSON body with a stable, machine-readable code and a human-readable message. Always branch on the code, not on the message text.

HTTP/1.1 422 Unprocessable Content
Content-Type: application/json

{
  "error": {
    "code": "invalid_image",
    "message": "The uploaded file could not be decoded as an image."
  }
}
HTTP-státuszHibakódJelentés
400bad_requestA kérés hibás formátumú, például nem érkezett kép, vagy érvénytelen a JSON törzs.
401unauthorizedAz API-kulcs hiányzik vagy érvénytelen.
403forbiddenA kulcs tulajdonosának e-mail-címe nincs megerősítve, a hírlevél-feliratkozás ki van kapcsolva, vagy a fiók ki van tiltva.
413file_too_largeA kép nagyobb 10 MB-nál.
415unsupported_typeA fájltípus vagy a kérés tartalomtípusa nem támogatott.
422invalid_imageA fájlt nem sikerült képként dekódolni, vagy a kép URL-je nem tölthető le.
429rate_limitedTúl sok kérés. Várj az X-RateLimit-Reset időpontig.
500server_errorHiba történt a mi oldalunkon. Próbáld újra később; ha a probléma továbbra is fennáll, fordulj az ügyfélszolgálathoz.

Kimeneti fájlok

With all groups enabled, a package contains the files below. Files from disabled groups are left out.

FájlMéretCsoport
favicon.ico16, 32, 48 (állítható)mindig
favicon-16x16.png16 × 16favicon
favicon-32x32.png32 × 32favicon
favicon-96x96.png96 × 96favicon
apple-icon-57x57.png57 × 57apple
apple-icon-60x60.png60 × 60apple
apple-icon-72x72.png72 × 72apple
apple-icon-76x76.png76 × 76apple
apple-icon-114x114.png114 × 114apple
apple-icon-120x120.png120 × 120apple
apple-icon-144x144.png144 × 144apple
apple-icon-152x152.png152 × 152apple
apple-icon-180x180.png180 × 180apple
apple-icon.png192 × 192apple
apple-icon-precomposed.png192 × 192apple
apple-touch-icon.png180 × 180apple
android-icon-36x36.png36 × 36android
android-icon-48x48.png48 × 48android
android-icon-72x72.png72 × 72android
android-icon-96x96.png96 × 96android
android-icon-144x144.png144 × 144android
android-icon-192x192.png192 × 192android
android-icon-512x512.png512 × 512android
web-app-manifest-192x192.png192 × 192android
web-app-manifest-512x512.png512 × 512android
maskable-icon-512x512.png512 × 512android
ms-icon-70x70.png70 × 70ms
ms-icon-144x144.png144 × 144ms
ms-icon-150x150.png150 × 150ms
ms-icon-310x310.png310 × 310ms

További fájlok

FájlTartalmazzaLeírás
favicon.svgCsak SVG bemenethez, kivágás, nagyítás, margó, lekerekítés és háttér nélkülAz SVG fájlod megtisztított másolata a vektoros faviconokat támogató böngészők számára.
manifest.json, site.webmanifestandroidWebalkalmazás-manifest Androidhoz és telepíthető PWA-khoz (két azonos példány).
browserconfig.xmlmsWindows csempe konfigurációja a választott csempeszínnel.
readme-makefav.txtmindigTelepítési útmutató a <head> részbe illesztendő HTML-kóddal a végén.

Kódpéldák

Each example uploads logo.png with a few options and saves favicons.zip, handling API errors. Set the environment variable MAKEFAV_API_KEY to your API key first.

Multipart feltöltés:

# Multipart upload (recommended). --fail-with-body exits non-zero on HTTP errors
# and still saves the JSON error body, so you can inspect it.
curl --fail-with-body -sS https://makefav.com/api/v1/generate \
  -H "Authorization: Bearer $MAKEFAV_API_KEY" \
  -F "[email protected]" \
  -F "app_name=My App" \
  -F "theme_color=#2f9e68" \
  -F "radius=20" \
  -o favicons.zip \
  || { echo "Request failed:"; cat favicons.zip; rm -f favicons.zip; exit 1; }

JSON törzs base64 kódolású képpel (jq szükséges):

# JSON body with a base64-encoded image (built with jq to avoid argument length limits)
base64 < logo.png | tr -d '\n' > logo.b64
jq -n --rawfile img logo.b64 \
  '{image_base64: $img, app_name: "My App", theme_color: "#2f9e68", radius: 20}' \
| curl --fail-with-body -sS https://makefav.com/api/v1/generate \
    -H "Authorization: Bearer $MAKEFAV_API_KEY" \
    -H "Content-Type: application/json" \
    --data-binary @- \
    -o favicons.zip \
  || { echo "Request failed:"; cat favicons.zip; rm -f favicons.zip; exit 1; }

HTML-használat

Upload all files to the folder you set with path, then paste the snippet into the <head> of every page. It is included at the end of readme-makefav.txt in the package and, with format=json, returned in the html field. Example for the options used in the code examples above:

<head>
  <meta charset="utf-8">
  <title>My App</title>

  <link rel="apple-touch-icon" sizes="57x57" href="/apple-icon-57x57.png">
  <link rel="apple-touch-icon" sizes="60x60" href="/apple-icon-60x60.png">
  <link rel="apple-touch-icon" sizes="72x72" href="/apple-icon-72x72.png">
  <link rel="apple-touch-icon" sizes="76x76" href="/apple-icon-76x76.png">
  <link rel="apple-touch-icon" sizes="114x114" href="/apple-icon-114x114.png">
  <link rel="apple-touch-icon" sizes="120x120" href="/apple-icon-120x120.png">
  <link rel="apple-touch-icon" sizes="144x144" href="/apple-icon-144x144.png">
  <link rel="apple-touch-icon" sizes="152x152" href="/apple-icon-152x152.png">
  <link rel="apple-touch-icon" sizes="180x180" href="/apple-icon-180x180.png">
  <link rel="icon" type="image/png" sizes="192x192" href="/android-icon-192x192.png">
  <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
  <link rel="icon" type="image/png" sizes="96x96" href="/favicon-96x96.png">
  <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
  <link rel="icon" href="/favicon.ico" sizes="any">
  <link rel="manifest" href="/manifest.json">
  <meta name="msapplication-TileColor" content="#2f9e68">
  <meta name="msapplication-TileImage" content="/ms-icon-144x144.png">
  <meta name="msapplication-config" content="/browserconfig.xml">
  <meta name="theme-color" content="#2f9e68">
</head>

Telepítés után ürítsd a böngésző gyorsítótárát, vagy nyisd meg az oldalt privát ablakban – a böngészők agresszívan gyorsítótárazzák a faviconokat.

Változásnapló

v1

  • A MakeFav REST API első nyilvános kiadása.
  • Endpoints POST /generate, GET /me, GET /sizes and GET /openapi.json.
  • ZIP és JSON válaszformátumok, multipart, base64 és URL alapú képbemenet.
  • Személyes API-kulcsok óránként 100 kéréssel.

Az 1. verzió stabil: csak opcionális paramétereket és mezőket adunk hozzá. A visszafelé nem kompatibilis módosítások előzetes értesítéssel, új verzióként jelennek meg.

Támogatás

Kérdésed van, hibát találtál, vagy magasabb kérésszám-korlátra van szükséged? Szívesen segítünk. Kérjük, add meg az üzenetben a kérés időpontját és a hibakódot – az API-kulcsodat soha.