REST API · v1

MakeFav API ஆவணங்கள்

உங்கள் சொந்த குறியீடு, build ஸ்கிரிப்டுகள் மற்றும் CI pipeline-களிலிருந்து முழுமையான favicon தொகுப்புகளை உருவாக்குங்கள். ஒரே கோரிக்கையில் எந்தப் படமும் favicon.ico, Apple touch icons, Android மற்றும் PWA ஐகான்கள், web manifest மற்றும் ஒட்டத் தயாரான HTML-ஆக மாறும்.

இந்தப் பக்கத்தில்

விரைவு தொடக்கம்

MakeFav API என்பது எளிய HTTPS + JSON REST API ஆகும். அனைத்து endpoints-உம் ஒரே அடிப்படை URL-இன் கீழ் உள்ளன:

https://makefav.com/api/v1
  1. இலவசக் கணக்கை உருவாக்குங்கள்
    பதிவு செய்து, உங்கள் மின்னஞ்சல் முகவரியை உறுதிப்படுத்தி, MakeFav செய்திமடல் சந்தாவை செயலில் வைத்திருங்கள் – இதுவே இலவசத் திட்டத்தின் ஒரே நிபந்தனை.
  2. API key-ஐ உருவாக்குங்கள்
    உங்கள் கணக்கில் API keys பக்கத்தைத் திறந்து தனிப்பட்ட key-ஐ உருவாக்குங்கள். அது mf_ என்று தொடங்கும், ஒரு முறை மட்டுமே காட்டப்படும்; எனவே பாதுகாப்பாகச் சேமிக்கவும். API keys-ஐ நிர்வகி
  3. உங்கள் முதல் கோரிக்கையை அனுப்புங்கள்
    generate endpoint-க்கு ஒரு படத்தைப் பதிவேற்றி, திரும்பப் பெறப்படும் ZIP கோப்பைச் சேமிக்கவும்:
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.

அங்கீகாரம்

பாதுகாக்கப்பட்ட endpoint-க்கான ஒவ்வொரு கோரிக்கையிலும் தனிப்பட்ட API key இருக்க வேண்டும். உங்கள் கணக்குப் பக்கத்தில் எப்போது வேண்டுமானாலும் keys-ஐ உருவாக்கலாம், பெயரிடலாம், ரத்து செய்யலாம்: API keys

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
மின்னஞ்சல் உறுதிப்படுத்தப்பட்டு, செய்திமடல் சந்தா செயலில் உள்ள பயனருக்கே keys சொந்தம் (இலவசத் திட்ட நிபந்தனை). மின்னஞ்சல் உறுதிப்படுத்தப்படாவிட்டால், செய்திமடல் முடக்கப்பட்டால் அல்லது கணக்கு தடை செய்யப்பட்டால், ஒவ்வொரு கோரிக்கையும் 403 Forbidden திருப்பும்.
API keys-ஐ கடவுச்சொற்களைப் போலக் கையாளுங்கள்: அவற்றை சர்வரில் அல்லது CI secrets-இல் வைத்திருங்கள்; உலாவிக் குறியீடு, மொபைல் செயலிகள் அல்லது பொது repositories-இல் ஒருபோதும் வைக்காதீர்கள். கசிந்தால் உடனே key-ஐ ரத்து செய்யுங்கள்.

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

கோரிக்கை வரம்புகள்

இயல்பாக ஒவ்வொரு API key-உம் ஒரு மணி நேரத்திற்கு 100 கோரிக்கைகள் வரை அனுப்பலாம். அங்கீகரிக்கப்பட்ட ஒவ்வொரு பதிலும் உங்கள் நிலையைத் தெரிவிக்கும்:

Headerவிளக்கம்
X-RateLimit-Limitதற்போதைய கால அளவில் அனுமதிக்கப்படும் அதிகபட்ச கோரிக்கைகள்.
X-RateLimit-Remainingதற்போதைய கால அளவில் மீதமுள்ள கோரிக்கைகள்.
X-RateLimit-Resetகால அளவு மீட்டமையும் Unix timestamp (விநாடிகள், UTC).
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.

Endpoints

Endpointஅங்கீகாரம்விளக்கம்
POST /generateAPI keyமுழுமையான favicon தொகுப்பை உருவாக்குங்கள்.
GET /meAPI keyஉங்கள் கணக்கு மற்றும் தற்போதைய கோரிக்கை வரம்பு நிலை.
GET /sizesஎதுவுமில்லைஜெனரேட்டர் உருவாக்கும் அனைத்து ஐகான் கோப்புகள் மற்றும் அளவுகளின் பட்டியல்.
GET /openapi.jsonஎதுவுமில்லைஇயந்திரம் படிக்கக்கூடிய OpenAPI 3.1 விவரக்குறிப்பு.

favicon தொகுப்பை உருவாக்கவும்

POST/generate

ஒரே மூலப் படத்திலிருந்து முழுமையான favicon தொகுப்பை உருவாக்குகிறது. படத்தை மூன்று வழிகளில் ஒன்றில் அனுப்பலாம்:

உள்ளடக்க வகைபடப் புலம்விளக்கம்
multipart/form-dataimageகோப்பு பதிவேற்றம். பரிந்துரைக்கப்படுகிறது – மிகவும் திறமையான வழி.
application/jsonimage_base64Base64-encoded image, either raw base64 or a data URL such as data:image/png;base64,iVBOR….
application/jsonimage_urlபடத்தின் பொது http அல்லது https URL. சர்வர் அதைப் பதிவிறக்கும் (அதிகபட்சம் 10 MB).

ஆதரிக்கப்படும் உள்ளீட்டு வடிவங்கள்: PNG, JPG, WebP, AVIF, GIF, BMP, SVG மற்றும் ICO. அதிகபட்ச கோப்பு அளவு: 10 MB.

அளவுருக்கள்

அனைத்து அளவுருக்களும் விருப்பத்திற்குரியவை. அவற்றை படிவப் புலங்களாக (multipart) அல்லது JSON பண்புகளாக அனுப்பலாம். தவறான மதிப்புகள் இயல்புநிலைக்கு மாறும்.

பெயர்வகை / வரம்புஇயல்புநிலைவிளக்கம்
app_namestring, அதிகபட்சம் 60 எழுத்துகள்My Websiteஉங்கள் வலைதளம் அல்லது செயலியின் பெயர்; manifest.json மற்றும் எடுத்துக்காட்டுப் பக்கத்தில் பயன்படுத்தப்படும்.
short_namestring, அதிகபட்சம் 24 எழுத்துகள்app_name இன் முதல் 12 எழுத்துகள்Android முகப்புத் திரைகளில் ஐகானின் கீழ் காட்டப்படும் குறுகிய பெயர்.
theme_color#rrggbb#ffffffஉலாவி UI நிறம் (theme-color meta tag மற்றும் manifest).
tile_color#rrggbbtheme_color போன்றதேWindows Start டைல்களின் பின்னணி நிறம்.
backgroundtransparent | #rrggbbtransparentஉலாவி, Android மற்றும் Windows ஐகான்களின் பின்னணி.
apple_background#rrggbb#ffffffApple touch ஐகான்கள் மற்றும் maskable ஐகானின் பின்னணி (iOS ஊடுருவும் தன்மையை ஆதரிக்காது). background ஒரு நிறமாக இருந்தால் புறக்கணிக்கப்படும் – அந்த நிறமே பயன்படுத்தப்படும்.
paddingமுழு எண், 0–40 (%)0ஐகான் அளவின் சதவீதமாக, படத்தைச் சுற்றியுள்ள வெற்று இடம்.
radiusமுழு எண், 0–50 (%)0வட்டமான மூலைகள். 50 என்றால் வட்டம். iOS தானே வட்டமாக்கும் Apple ஐகான்களுக்குப் பொருந்தாது.
zoomமுழு எண், 50–400 (%)100ஐகானுக்குள் படத்தின் அளவுகோல். 100க்கு மேற்பட்ட மதிப்புகள் படத்தை வெட்டும்.
offset_x, offset_yஎண், -1 முதல் 1 வரை0ஐகான் அளவின் பின்னமாக, படத்தை கிடைமட்டமாக / செங்குத்தாக நகர்த்துகிறது.
pathstring/ஐகான்கள் இருக்கப்போகும் உங்கள் சர்வரில் உள்ள கோப்புறை. HTML துணுக்கு, manifest மற்றும் browserconfig இல் பயன்படுத்தப்படும்.
displaystandalone | fullscreen | minimal-ui | browserstandalonemanifest இல் எழுதப்படும் PWA காட்சி முறை.
pixelatedauto | 1 | 0autoபிக்சல் ஆர்ட்டுக்கான கூர்மையான nearest-neighbour அளவிடல். auto என்றால் 64 px அல்லது அதற்கும் சிறிய மூலங்களுக்கு இயக்கப்படும்.
maskable1 | 01Android adaptive ஐகான்களுக்கான பாதுகாப்பு மண்டல இடைவெளியுடன் maskable-icon-512x512.png ஐயும் உருவாக்கும்.
ico_sizes16, 24, 32, 48, 64, 128, 256 ஆகியவற்றின் கமாவால் பிரிக்கப்பட்ட பட்டியல்16,32,48favicon.ico இல் உட்பொதிக்கப்படும் அளவுகள்.
groupsfavicon, apple, android, ms ஆகியவற்றின் கமாவால் பிரிக்கப்பட்ட பட்டியல்favicon,apple,android,msஉருவாக்க வேண்டிய ஐகான் தொகுப்புகள்: உலாவி favicon-கள், Apple touch ஐகான்கள், Android / PWA ஐகான்கள் மற்றும் Windows டைல்கள்.
formatzip | jsonzipபதில் வடிவம் – கீழே காண்க.

பதில்

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.

எடுத்துக்காட்டு கோரிக்கை – multipart, ZIP பதில்

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>

எடுத்துக்காட்டு கோரிக்கை – பட URL உடன் JSON, JSON பதில்

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

உங்கள் கணக்கைப் பெறுங்கள்

GET/me

API key சொந்தமான பயனரையும் தற்போதைய வரம்பு நிலையையும் வழங்கும். key ஐச் சரிபார்க்க உதவும். அங்கீகாரம் தேவை; அளவுருக்கள் இல்லை.

எடுத்துக்காட்டு கோரிக்கை

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

எடுத்துக்காட்டு பதில்

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

ஐகான் அளவுகளின் பட்டியல்

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.

எடுத்துக்காட்டு கோரிக்கை

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

எடுத்துக்காட்டு பதில்

{
  "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 விவரக்குறிப்பு

GET/openapi.json

இந்த API இன் OpenAPI 3.1 விளக்கத்தை வழங்கும். அங்கீகாரம் தேவையில்லை. Postman, Insomnia அல்லது Swagger UI இல் இறக்குமதி செய்யலாம், அல்லது உங்கள் மொழிக்கான typed client ஐ உருவாக்கப் பயன்படுத்தலாம்.

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

பிழைகள்

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 நிலைபிழைக் குறியீடுபொருள்
400bad_requestகோரிக்கை சரியான வடிவில் இல்லை; எடுத்துக்காட்டாக படம் அனுப்பப்படவில்லை அல்லது JSON body செல்லாதது.
401unauthorizedAPI key இல்லை அல்லது செல்லாதது.
403forbiddenkey உரிமையாளரின் மின்னஞ்சல் உறுதிப்படுத்தப்படவில்லை, செய்திமடல் சந்தா முடக்கப்பட்டுள்ளது, அல்லது கணக்கு தடைசெய்யப்பட்டுள்ளது.
413file_too_largeபடம் 10 MB ஐ விடப் பெரியது.
415unsupported_typeகோப்பு வகை அல்லது கோரிக்கை உள்ளடக்க வகை ஆதரிக்கப்படவில்லை.
422invalid_imageகோப்பை படமாக டிகோட் செய்ய முடியவில்லை, அல்லது பட URL ஐப் பதிவிறக்க முடியவில்லை.
429rate_limitedமிக அதிகமான கோரிக்கைகள். X-RateLimit-Reset வரை காத்திருக்கவும்.
500server_errorஎங்கள் பக்கத்தில் ஏதோ தவறு நேர்ந்தது. பின்னர் மீண்டும் முயலவும்; தொடர்ந்தால் ஆதரவைத் தொடர்புகொள்ளவும்.

வெளியீட்டுக் கோப்புகள்

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

கோப்புஅளவுகுழு
favicon.ico16, 32, 48 (கட்டமைக்கக்கூடியது)எப்போதும்
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

கூடுதல் கோப்புகள்

கோப்புசேர்க்கப்பட்டதுவிளக்கம்
favicon.svgcrop, zoom, padding, corners அல்லது background இல்லாத SVG உள்ளீட்டுக்கு மட்டும்vector favicon-களை ஆதரிக்கும் உலாவிகளுக்கான, சுத்திகரிக்கப்பட்ட உங்கள் SVG நகல்.
manifest.json, site.webmanifestandroidAndroid மற்றும் நிறுவக்கூடிய PWA-க்களுக்கான web app manifest (இரண்டு ஒத்த நகல்கள்).
browserconfig.xmlmsஉங்கள் டைல் நிறத்துடன் Windows டைல் கட்டமைப்பு.
readme-makefav.txtஎப்போதும்இறுதியில் உங்கள் <head> க்கான HTML குறியீட்டுடன் நிறுவல் வழிமுறைகள்.

குறியீட்டு எடுத்துக்காட்டுகள்

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 பதிவேற்றம்:

# 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; }

base64-குறியாக்கப்பட்ட படத்துடன் JSON body (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 பயன்பாடு

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>

வெளியிட்ட பிறகு, உலாவி cache ஐ அழிக்கவும் அல்லது தனிப்பட்ட சாளரத்தில் தளத்தைத் திறக்கவும் – உலாவிகள் favicon-களை அதிகமாக cache செய்கின்றன.

மாற்றப் பதிவு

v1

  • MakeFav REST API இன் முதல் பொது வெளியீடு.
  • Endpoints POST /generate, GET /me, GET /sizes and GET /openapi.json.
  • ZIP மற்றும் JSON பதில் வடிவங்கள், multipart, base64 மற்றும் URL பட உள்ளீடு.
  • மணிக்கு 100 கோரிக்கைகளுடன் தனிப்பட்ட API key-கள்.

பதிப்பு 1 நிலையானது: விருப்ப அளவுருக்களையும் புலங்களையும் மட்டுமே சேர்ப்போம். இணக்கம் உடைக்கும் மாற்றங்கள் முன்கூட்டிய அறிவிப்புடன் புதிய பதிப்பாக வெளியிடப்படும்.

ஆதரவு

கேள்விகள், பிழை அறிக்கைகள் அல்லது அதிக வரம்பு தேவையா? உதவ மகிழ்ச்சி. உங்கள் செய்தியில் கோரிக்கை நேரத்தையும் பிழைக் குறியீட்டையும் சேர்க்கவும் – உங்கள் API key ஐ ஒருபோதும் சேர்க்க வேண்டாம்.