{
"url": "https://web.dev/",
"finalUrl": "https://web.dev/",
"statusCode": 200,
"cached": false,
"checkedAt": "2026-10-13T23:42:25.027Z",
"note": "Service workers and icon file reachability are not evaluated; only the page HTML and the manifest JSON are read.",
"found": true,
"manifestUrl": "https://web.dev/_pwa/web/manifest.json",
"manifestStatus": 200,
"page": {
"manifestLinks": 1,
"themeColorMeta": "#3740ff",
"viewport": "width=device-width, initial-scale=1",
"appleTouchIcon": true,
"https": true
},
"installability": {
"installable": true,
"blockers": []
},
"grade": "B",
"score": 86,
"summary": {
"errors": 0,
"warnings": 1,
"infos": 4
},
"manifestSummary": {
"name": "web.dev",
"shortName": "web.dev",
"id": null,
"startUrl": "https://web.dev/",
"scope": null,
"display": "standalone",
"displayOverride": null,
"orientation": "portrait",
"themeColor": "#3740ff",
"backgroundColor": "#fff",
"lang": null,
"dir": null,
"iconCount": 8,
"hasMaskableIcon": false,
"screenshotCount": 0,
"shortcutCount": 0
},
"icons": [
{
"src": "icons/icon-72x72.png",
"resolved": "https://web.dev/_pwa/web/icons/icon-72x72.png",
"sizes": "72x72",
"type": "image/png",
"purpose": "any"
},
{
"src": "icons/icon-96x96.png",
"resolved": "https://web.dev/_pwa/web/icons/icon-96x96.png",
"sizes": "96x96",
"type": "image/png",
"purpose": "any"
},
{
"src": "icons/icon-128x128.png",
"resolved": "https://web.dev/_pwa/web/icons/icon-128x128.png",
"sizes": "128x128",
"type": "image/png",
"purpose": "any"
},
{
"src": "icons/icon-144x144.png",
"resolved": "https://web.dev/_pwa/web/icons/icon-144x144.png",
"sizes": "144x144",
"type": "image/png",
"purpose": "any"
},
{
"src": "icons/icon-152x152.png",
"resolved": "https://web.dev/_pwa/web/icons/icon-152x152.png",
"sizes": "152x152",
"type": "image/png",
"purpose": "any"
},
{
"src": "icons/icon-192x192.png",
"resolved": "https://web.dev/_pwa/web/icons/icon-192x192.png",
"sizes": "192x192",
"type": "image/png",
"purpose": "any"
},
{
"src": "icons/icon-384x384.png",
"resolved": "https://web.dev/_pwa/web/icons/icon-384x384.png",
"sizes": "384x384",
"type": "image/png",
"purpose": "any"
},
{
"src": "icons/icon-512x512.png",
"resolved": "https://web.dev/_pwa/web/icons/icon-512x512.png",
"sizes": "512x512",
"type": "image/png",
"purpose": "any"
}
],
"issues": [
{
"severity": "info",
"code": "description_missing",
"message": "No \"description\"; Chrome shows it in the richer install dialog and app stores use it."
},
{
"severity": "info",
"code": "id_missing",
"message": "No \"id\"; Chrome falls back to \"start_url\" as the app identity, so changing start_url later makes it a different app. Set an explicit \"id\"."
},
{
"severity": "info",
"code": "lang_missing",
"message": "No \"lang\"; screen readers and translation tools cannot tell the language of \"name\" and \"description\"."
},
{
"severity": "warning",
"code": "no_maskable_icon",
"message": "No icon with purpose \"maskable\"; Android launchers will shrink your icon onto a white circle or square instead of filling the adaptive shape."
},
{
"severity": "info",
"code": "screenshots_missing",
"message": "No \"screenshots\"; Chrome shows them in the richer install dialog, which improves installs."
}
]
}
curl --location --request GET 'https://zylalabs.com/api/14245/web+app+manifest+checker+api/35363/check+the+web+app+manifest+of+a+url?url=https://web.dev&fresh=1' --header 'Authorization: Bearer YOUR_API_KEY'
{
"grade": "C",
"score": 74,
"summary": {
"errors": 0,
"warnings": 2,
"infos": 6
},
"installability": {
"installable": true,
"blockers": []
},
"assumptions": {
"manifestUrl": "https://example.com/manifest.webmanifest",
"note": "Validated offline; the page HTTPS requirement is not evaluated."
},
"manifestSummary": {
"name": "My App",
"shortName": "App",
"id": null,
"startUrl": "https://example.com/",
"scope": null,
"display": "standalone",
"displayOverride": null,
"orientation": null,
"themeColor": null,
"backgroundColor": null,
"lang": null,
"dir": null,
"iconCount": 1,
"hasMaskableIcon": false,
"screenshotCount": 0,
"shortcutCount": 0
},
"icons": [
{
"src": "/icon-192.png",
"resolved": "https://example.com/icon-192.png",
"sizes": "192x192",
"type": "image/png",
"purpose": "any"
}
],
"issues": [
{
"severity": "info",
"code": "description_missing",
"message": "No \"description\"; Chrome shows it in the richer install dialog and app stores use it."
},
{
"severity": "info",
"code": "id_missing",
"message": "No \"id\"; Chrome falls back to \"start_url\" as the app identity, so changing start_url later makes it a different app. Set an explicit \"id\"."
},
{
"severity": "info",
"code": "theme_color_missing",
"message": "No \"theme_color\"; the browser cannot tint the title bar to match your app."
},
{
"severity": "info",
"code": "background_color_missing",
"message": "No \"background_color\"; the splash screen will use a default background."
},
{
"severity": "info",
"code": "lang_missing",
"message": "No \"lang\"; screen readers and translation tools cannot tell the language of \"name\" and \"description\"."
},
{
"severity": "warning",
"code": "icon_512_missing",
"message": "No icon of at least 512x512 with purpose \"any\"; Chrome uses it for the splash screen and install dialog."
},
{
"severity": "warning",
"code": "no_maskable_icon",
"message": "No icon with purpose \"maskable\"; Android launchers will shrink your icon onto a white circle or square instead of filling the adaptive shape."
},
{
"severity": "info",
"code": "screenshots_missing",
"message": "No \"screenshots\"; Chrome shows them in the richer install dialog, which improves installs."
}
],
"checkedAt": "2026-10-13T18:16:06.181Z"
}
curl --location --request POST 'https://zylalabs.com/api/14245/web+app+manifest+checker+api/35364/validate+manifest+json+offline' --header 'Authorization: Bearer YOUR_API_KEY'
--data-raw '{"manifest":{"name":"My App","short_name":"App","start_url":"/","display":"standalone","icons":[{"src":"/icon-192.png","sizes":"192x192","type":"image/png"}]},"manifestUrl":"https://example.com/manifest.webmanifest"}'
साइन अप करने के बाद, प्रत्येक डेवलपर को एक पर्सनल API एक्सेस की असाइन की जाती है, जो अक्षरों और अंकों का एक यूनिक संयोजन होता है, जिसका उपयोग हमारे API एंडपॉइंट तक पहुंचने के लिए किया जाता है। प्रमाणीकरण के लिए वेब ऐप मैनिफेस्ट चेकर्स API के साथ बस अपने बेयरर टोकन को Authorization हेडर में शामिल करें।
| हेडर | विवरण |
|---|---|
Authorization
|
आवश्यक
होना चाहिए Bearer access_key. जब आप सब्सक्राइब हों तो ऊपर "Your API Access Key" देखें।
|
कोई लंबी अवधि की प्रतिबद्धता नहीं। कभी भी अपग्रेड, डाउनग्रेड या कैंसल करें। फ्री ट्रायल में 50 रिक्वेस्ट तक शामिल हैं।