API endpoint:
https://hubservices.vn/api/v1/crawler
Yêu cầu ví dụ:
curl --location --request GET 'https://hubservices.vn/api/v1/crawler' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {api_key}'
url
Response example:
{ "data": { "title": { "passed": boolean, "importance": "high", "value": string, "errors": { // If there's no title "missing": null, // If the title length is incorrect "length": { "min": number, "max": number }, // If the title is > 1 "too_many": null } }, "meta_description": { "passed": boolean, "importance": "high", "value": string, "errors": { "missing": null // If there's no meta description } }, "headings": { "passed": boolean, "importance": "high", "value": { "h1": [], "h3": [], "h5": [], "h6": [] }, "errors": { "missing": null, // If there's no h1 tag "too_many": null, // If there's more than one h1 tag on the page "duplicate": null // If the h1 tag is the same with the title tag } }, "content_keywords": { "passed": boolean, "importance": "high", "value": [], "errors": { "missing": [] // If the content keywords are not found in the title } }, "image_keywords": { "passed": boolean, "importance": "high", "value": null, "errors": { // If there are images with no alt attribute set "missing": [ { "url": string, "text": string } ] } }, "image_format": { "passed": boolean, "importance": "medium", "value": [], "errors": { // If there are images that are not in WebP format "bad_format": [ { "url": string, "text": string } ] } }, "in_page_links": { "passed": boolean, "importance": "medium", "value": { "Internals": [ { "url": string, "text": string } ], "Externals": [ { "url": string, "text": string } ] }, "errors": { // If there are too many links "too_many": { "max": number } } }, "load_time": { "passed": boolean, "importance": "medium", "value": float, "errors": { // If the load time exceeds the limit "too_slow": { "max": integer } } }, "page_size": { "passed": boolean, "importance": "medium", "value": integer, "errors": { // If the load time exceeds the limit "too_large": { "max": integer } } }, "http_requests": { "passed": boolean, "importance": "medium", "value": { "JavaScripts": [], "CSS": [], "Images": [], "Audios": [], "Videos": [], "Iframes": [] }, "errors": { // If there are too many HTTP requests "too_many": { "max": integer } } }, "defer_javascript": { "passed": boolean, "importance": "low", "value": null, "errors": { // If there are resources without the defer attribute "missing": [] } }, "dom_size": { "passed": boolean, "importance": "low", "value": integer, "errors": { // If the dom size exceeds the limit "too_many": { "max": integer } } }, "text_compression": { "passed": boolean, "importance": "high", "value": integer, "errors": { // If the page is not text_compression compressed "missing": null } }, "structured_data": { "passed": boolean, "importance": "medium", "value": [], "errors": { // If there's no structured data "missing": null } }, "meta_viewport": { "passed": boolean, "importance": "medium", "value": string, "errors": { // If the page does not have a meta viewport set "missing": null } }, "https_encryption": { "passed": boolean, "importance": "high", "value": string, "errors": { // If the page is not served over HTTPS "missing": "https" } }, "seo_friendly_url": { "passed": boolean, "importance": "high", "value": string, "errors": { // If the URL contains characters that are not considered friendly (?=_%, ) "bad_format": null, // If the title keywords are not found in URL keywords "missing": null } }, "language": { "passed": boolean, "importance": "medium", "value": string, "errors": { // If the page doesn't have a language set "missing": null } }, "favicon": { "passed": boolean, "importance": "medium", "value": string, "errors": { // If the page doesn't have a favicon "missing": null } }, "content_length": { "passed": boolean, "importance": "low", "value": integer, "errors": { // If there are not enough words on the page "too_few": { "min": integer } } }, "text_html_ratio": { "passed": boolean, "importance": "low", "value": integer, "errors": { // If the text ratio is less than the minimum ratio "too_small": { "min": integer } } }, "charset": { "passed": boolean, "importance": "medium", "value": string, "errors": { // If the page doesn't have a charset set "missing": null } }, "deprecated_html_tags": { "passed": boolean, "importance": "low", "value": null, "errors": { // If the page has deprecated HTML tags "bad_tags": [] } }, "404_page": { "passed": boolean, "importance": "high", "value": string, "errors": { // If the website does not have a 404 page "missing": null } }, "noindex": { "passed": boolean, "importance": "high", "value": string, "errors": { // If the website has noindex "missing": null } }, "robots": { "passed": boolean, "importance": "high", "value": null, "errors": { // If the page is blocked by robots.txt rule "failed": [] } }, "sitemap": { "passed": boolean, "importance": "low", "value": [], "errors": { // If the website does not have sitemaps "failed": null } }, "mixed_content": { "passed": boolean, "importance": "medium", "value": null, "errors": { // If the website does not have sitemaps "failed": [] } }, "server_signature": { "passed": boolean, "importance": "medium", "value": [], "errors": { // If the page has a server signature "failed": null } }, "unsafe_cross_origin_links": { "passed": boolean, "importance": "medium", "value": null, "errors": { // If there are unsafe cross-origin links "failed": [] } }, "plaintext_email": { "passed": boolean, "importance": "low", "value": null, "errors": { // If there are plaintext emails "failed": string } }, "social": { "passed": boolean, "importance": "low", "value": { // Facebook, Instagram, Youtube, Twitter, LinkedIn "Facebook": [ { "url": string, "text": string } ], }, "errors": { // If there's no social links "missing": null } }, "inline_css": { "passed": boolean, "importance": "low", "value": null, "errors": { // If the page has inline CSS "failed": [] } } }, "status": 200, "result": float }