REST API · v1

MakeFav API skjölun

Búðu til fullkomna favicon-pakka úr þínum eigin kóða, byggingarskriftum og CI-ferlum. Ein beiðni breytir hvaða mynd sem er í favicon.ico, Apple touch icon, Android- og PWA-tákn, vefmanifest og tilbúinn HTML-kóða til að líma inn.

Á þessari síðu

Fljótleg byrjun

MakeFav API er einfalt HTTPS + JSON REST API. Allir endapunktar eru undir einni grunnslóð:

https://makefav.com/api/v1
  1. Stofnaðu ókeypis aðgang
    Skráðu þig, staðfestu netfangið þitt og hafðu áskriftina að fréttabréfi MakeFav virka – það er eina skilyrði ókeypis áskriftarleiðarinnar.
  2. Búðu til API-lykil
    Opnaðu síðuna með API-lyklum í aðganginum þínum og búðu til persónulegan lykil. Hann byrjar á mf_ og birtist aðeins einu sinni, svo geymdu hann á öruggum stað. Stjórna API-lyklum
  3. Sendu fyrstu beiðnina þína
    Hladdu upp mynd á generate-endapunktinn og vistaðu ZIP-skrána sem berst til baka:
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.

Auðkenning

Sérhver beiðni til varins endapunkts verður að innihalda persónulegan API-lykil. Þú getur búið til lykla, gefið þeim nöfn og afturkallað þá hvenær sem er á aðgangssíðunni þinni: API-lyklar

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
Lyklar tilheyra notanda sem hefur staðfest netfang og virka áskrift að fréttabréfi (skilyrði ókeypis leiðarinnar). Ef netfang er ekki staðfest, fréttabréfið er óvirkt eða aðgangurinn er bannaður skilar sérhver beiðni 403 Forbidden.
Farðu með API-lykla eins og lykilorð: geymdu þá á þjóninum eða í CI-leyndarmálum, aldrei í vafrakóða, farsímaforritum eða opinberum hugbúnaðarsöfnum. Afturkallaðu lykil strax ef hann lekur.

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

Takmörk á fjölda beiðna

Sjálfgefið má hver API-lykill senda 100 beiðnir á klukkustund. Hvert auðkennt svar sýnir þér stöðuna:

HausLýsing
X-RateLimit-LimitHámarksfjöldi beiðna sem leyfður er í núverandi tímaglugga.
X-RateLimit-RemainingBeiðnir sem eru eftir í núverandi tímaglugga.
X-RateLimit-ResetUnix-tímastimpill (sekúndur, UTC) þegar glugginn endurstillist.
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.

Endapunktar

EndapunkturAuðkenningLýsing
POST /generateAPI-lykillBúa til fullkominn favicon-pakka.
GET /meAPI-lykillAðgangurinn þinn og núverandi staða takmarkana á beiðnum.
GET /sizesEkkertListi yfir allar táknmyndaskrár og stærðir sem generatorinn býr til.
GET /openapi.jsonEkkertVéllæsileg OpenAPI 3.1 lýsing.

Búa til favicon-pakka

POST/generate

Býr til heildstæðan favicon-pakka úr einni upprunamynd. Sendu myndina á einn af þremur leiðum:

EfnistegundMyndareiturLýsing
multipart/form-dataimageSkráarupphleðsla. Mælt með – skilvirkasti kosturinn.
application/jsonimage_base64Base64-encoded image, either raw base64 or a data URL such as data:image/png;base64,iVBOR….
application/jsonimage_urlOpinber http- eða https-vefslóð myndarinnar. Þjónninn sækir hana (hámark 10 MB).

Studd inntakssnið: PNG, JPG, WebP, AVIF, GIF, BMP, SVG og ICO. Hámarksstærð skráar: 10 MB.

Færibreytur

Allar færibreytur eru valkvæðar. Sendu þær sem eyðublaðsreiti (multipart) eða sem JSON-eigindi. Ógild gildi víkja fyrir sjálfgefna gildinu.

NafnTegund / bilSjálfgefiðLýsing
app_namestrengur, hámark 60 stafirMy WebsiteHeiti vefsvæðis þíns eða appsins, notað í manifest.json og dæmisíðunni.
short_namestrengur, hámark 24 stafirfyrstu 12 stafirnir í app_nameStutt heiti sem birtist undir táknmyndinni á heimaskjá Android.
theme_color#rrggbb#ffffffLitur viðmóts vafrans (theme-color meta-tag og manifest).
tile_color#rrggbbsama og theme_colorBakgrunnslitur Windows Start-flísa.
backgroundtransparent | #rrggbbtransparentBakgrunnur táknmynda fyrir vafra, Android og Windows.
apple_background#rrggbb#ffffffBakgrunnur Apple touch-táknmynda og maskable-táknmyndarinnar (iOS styður ekki gegnsæi). Hunsað þegar bakgrunnur er litur – þá er sá litur notaður.
paddingheiltala, 0–40 (%)0Autt svæði í kringum myndina, sem hlutfall af stærð táknmyndarinnar.
radiusheiltala, 0–50 (%)0Ávalar hornlínur. 50 býr til hring. Á ekki við um Apple-táknmyndir, því iOS ávalar þær sjálft.
zoomheiltala, 50–400 (%)100Kvarði myndarinnar innan táknmyndarinnar. Gildi yfir 100 skera myndina.
offset_x, offset_ytala, -1 til 10Færir myndina lárétt / lóðrétt, sem hlutfall af stærð táknmyndarinnar.
pathstrengur/Mappa á þjóninum þínum þar sem táknmyndirnar verða vistaðar. Notuð í HTML-kóðanum, manifest og browserconfig.
displaystandalone | fullscreen | minimal-ui | browserstandalonePWA-birtingarhamur sem er skrifaður í manifest.
pixelatedauto | 1 | 0autoSkörp nearest-neighbour stærðarbreyting fyrir pixel art. auto kveikir á henni fyrir upprunamyndir sem eru 64 px eða minni.
maskable1 | 01Búa einnig til maskable-icon-512x512.png með öryggisjaðri fyrir aðlögunarhæfar Android-táknmyndir.
ico_sizeskommuaðskilinn listi af 16, 24, 32, 48, 64, 128, 25616,32,48Stærðir sem eru felldar inn í favicon.ico.
groupskommuaðskilinn listi af favicon, apple, android, msfavicon,apple,android,msTáknmyndasett sem á að búa til: vafra-favicons, Apple touch-táknmyndir, Android / PWA-táknmyndir og Windows-flísar.
formatzip | jsonzipSvarsnið – sjá hér að neðan.

Svar

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.

Dæmi um beiðni – multipart, ZIP-svar

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>

Dæmi um beiðni – JSON með vefslóð myndar, JSON-svar

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…"}
  ]
}

Sækja reikninginn þinn

GET/me

Skilar notandanum sem API-lykillinn tilheyrir og núverandi stöðu hraðatakmarkana. Gagnlegt til að sannreyna lykil. Krefst auðkenningar; engar færibreytur.

Dæmi um beiðni

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

Dæmi um svar

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

Birta táknmyndastærðir

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.

Dæmi um beiðni

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

Dæmi um svar

{
  "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 lýsing

GET/openapi.json

Skilar OpenAPI 3.1 lýsingu á þessu API. Engin auðkenning. Fluttu hana inn í Postman, Insomnia eða Swagger UI, eða notaðu hana til að búa til tegundaðan biðlara fyrir þitt forritunarmál.

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

Villur

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-staðaVillukóðiMerking
400bad_requestBeiðnin er gölluð, til dæmis var engin mynd send eða JSON-hlutinn er ógildur.
401unauthorizedAPI-lykil vantar eða hann er ógildur.
403forbiddenNetfang lykilhafa er ekki staðfest, áskrift að fréttabréfi er óvirk eða reikningurinn er í banni.
413file_too_largeMyndin er stærri en 10 MB.
415unsupported_typeSkráartegundin eða efnistegund beiðninnar er ekki studd.
422invalid_imageEkki tókst að afkóða skrána sem mynd eða ekki tókst að sækja vefslóð myndarinnar.
429rate_limitedOf margar beiðnir. Bíddu þar til X-RateLimit-Reset.
500server_errorEitthvað fór úrskeiðis hjá okkur. Reyndu aftur síðar; hafðu samband við þjónustuver ef vandinn heldur áfram.

Úttaksskrár

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

SkráStærðHópur
favicon.ico16, 32, 48 (stillanlegt)alltaf
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

Aukaskrár

SkráInnifaliðLýsing
favicon.svgAðeins fyrir SVG-inntak án skurðar, aðdráttar, jaðars, hornaávölunar eða bakgrunnsHreinsað afrit af SVG-skránni þinni fyrir vafra sem styðja vektor-favicons.
manifest.json, site.webmanifestandroidWeb app manifest fyrir Android og PWA sem hægt er að setja upp (tvö eins afrit).
browserconfig.xmlmsStillingar Windows-flísa með flísalitnum þínum.
readme-makefav.txtalltafUppsetningarleiðbeiningar með HTML-kóða fyrir <head> aftast.

Kóðadæmi

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-upphleðsla:

# 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-hluti með base64-kóðaðri mynd (krefst jq):

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

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>

Eftir uppsetningu skaltu hreinsa skyndiminni vafrans eða opna vefsvæðið í huliðsglugga – vafrar geyma favicons mjög ákaft í skyndiminni.

Breytingaskrá

v1

  • Fyrsta opinbera útgáfa MakeFav REST API.
  • Endpoints POST /generate, GET /me, GET /sizes and GET /openapi.json.
  • ZIP- og JSON-svarsnið, multipart, base64 og vefslóð sem myndinntak.
  • Persónulegir API-lyklar með 100 beiðnum á klukkustund.

Útgáfa 1 er stöðug: við bætum aðeins við valkvæðum færibreytum og reitum. Breytingar sem rjúfa samhæfni koma út sem ný útgáfa með fyrirvara.

Aðstoð

Spurningar, villutilkynningar eða þarftu hærri hraðatakmörk? Við hjálpum glöð. Láttu tíma beiðninnar og villukóðann fylgja með í skilaboðunum – aldrei API-lykilinn þinn.