To get all your properties use this get API.

HTTP Request

GET https://api.hexometer.com/v2/app/services/v1/properties?key={YOUR_API_KEY}

Parameters
Fields
YOUR_API_KEY

string

to get YOUR_API_KEY visit hexometer select desired property then go to settings and copy your API key

Response Body

if request is successful you will get

JSON representation

{

"error": false,

"properties": [

Propertiy

]

}

Fields
error

boolean

if the error returns false, it means that no error has occurred

Propertiy []

object(Propertiy)

Propertiy represents a propertiy object

Propertiy

Propertiy object structure

JSON representation

Propertiy = {

"propertiy_id": Number,

"propertiy_address": String

}

Fields
propertiy_id

number

propertiy id

propertiy_address

string

URL address

Example

{

"error": false,

"properties": [

{

"propertiy_id": 8,

"propertiy_address": "test.io",

},

{

"propertiy_id": 9,

"propertiy_address": "https://example.com",

}

]

}

if request is not successful you will get

JSON representation

{

"error": true,

"message": String

}

Fields
error

boolean

if the error returns true, it means that an error has occurred

message

string

the message contains information about the error

Example

{

"error": true,

"message": "invalid API key"

}




To get your property's links HTTP statuses use this get API.

HTTP Request

POST https://api.hexometer.com/v2/app/services/v1/health_links/statuses?key={YOUR_API_KEY}

Parameters
Fields
YOUR_API_KEY

string

to get YOUR_API_KEY visit hexometer select desired property then go to settings and copy your API key

Request Body
Fields
property_id

number

you should provide property id

Example

{

"property_id": 25

}

Response Body

if request is successful you will get

JSON representation

{

"error": false,

"links_statuses": [

Number

]

}

Fields
error

boolean

if the error returns false, it means that no error has occurred

Number []

number(Number)

Number represents an interger

Example

{

"error": false,

"links_statuses": [

200,

999

]

}

if request is not successful you will get

JSON representation

{

"error": true,

"message": String

}

Fields
error

boolean

if the error returns true, it means that an error has occurred

message

string

the message contains information about the error

Example

{

"error": true,

"message": "invalid API key"

}




To get website links use this get API.

HTTP Request

POST https://api.hexometer.com/v2/app/services/v1/health_links?key={YOUR_API_KEY}

Parameters
Fields
YOUR_API_KEY

string

to get YOUR_API_KEY visit hexometer select desired property then go to settings and copy your API key

Request Body
Fields
property_id

number

you should provide property id

status

number

you should provide HTTP status number

Example

{

"property_id": 25,

"status": 200

}

Response Body

if request is successful you will get

JSON representation

{

"error": false,

"links": [

Link

]

}

Fields
error

boolean

if the error returns false, it means that no error has occurred

Link []

object(Link)

Link represents a link object

Link

Link object structure

JSON representation

Link = {

"metaTags": {

"open_graph": Array,

"twitter_card": Array,

"description": null | String

},

"error": null | String,

"url": null | String,

"fileType": null | String,

"redirectUrl": null | String,

"parent_url": null | String,

"status": Number,

"contentType": null | String,

"contentLength": Number,

"internal": Boolean,

"nofollow": Boolean,

"createdAt": String,

}

Fields
metaTags

object

consists of open graph, twitter card arrays and description field

error

null | string

null or error text

URL

null | string

link URL

filetype

null | string

file type

redirectUrl

null |string

redirect URL

parent_url

null | string

website base URL

status

number

status code

contentType

null | string

content type

contentLength

number

content length

internal

boolean

internal link

nofollow

boolean

nofollow link

createdAt

string

link creation date

Example 1

{

"error": false,

"links": [

{

"metaTags": {

"open_graph": [],

"twitter_card": [],

"description": null,

},

"error": null,

"url": "https://www.example.com/company",

"fileType": "html",

"redirectUrl": "https://www.example.com/company",

"parent_url": "https://example.io",

"status": 999,

"contentType": "text/html",

"contentLength": 1529,

"internal": false,

"nofollow": false,

"createdAt": "2021-07-02T13:51:08.023Z"

}

]

}

Example 2

{

"error": false,

"links": [

{

"metaTags": {

"open_graph": [],

"twitter_card": [

{

"name": "twitter:image",

"isExists": true",

"content": "https://example.io/example.jpg"

},

{

"name": "twitter:title",

"isExists": true",

"content": "Available Vacancies at company"

}

]

"description": We are looking for dedicated and inovative people to become a part of growing team

},

"error": null,

"url": "https://www.example.com/company",

"fileType": "html",

"redirectUrl": "https://www.example.com/company",

"parent_url": "https://example.io",

"status": 999,

"contentType": "text/html",

"contentLength": 1529,

"internal": false,

"nofollow": false,

"createdAt": "2021-07-02T13:51:08.023Z"

}

]

}

if request is not successful you will get

JSON representation

{

"error": true,

"message": String

}

Fields
error

boolean

if the error returns true, it means that an error has occurred

message

string

the message contains information about the error

Example

{

"error": true,

"message": "invalid API key"

}




To get detected errors use this get API.

HTTP Request for Domain & DNS tool (Security)

POST https://api.hexometer.com/v2/app/services/v1/detected_errors?key={YOUR_API_KEY}

Parameters
Fields
YOUR_API_KEY

string

to get YOUR_API_KEY visit hexometer select desired property then go to settings and copy your API key

Request Body
Fields
tool_name

string

you should provide the specific tool name to get the corresponding error. In this case "Security_Domain_&_DNS"

property_id

number

you should provide property id

Example

{

"tool_name": "Security_Domain_&_DNS",

"property_id": 25

}

Response Body

if request is successful you will get

JSON representation

{

"tool_logs": [

DomainWhoisTool,

IpExtractionTool

]

}

Fields
DomainWhoisTool

object(DomainWhoisTool)

DomainWhoisTool represents a domainWhoisTool object

IpExtractionTool

object(IpExtractionTool)

IpExtractionTool represents an ipExtractionTool object

Domain Whois Tool

DomainWhoisTool object structure

JSON representation

DomainWhoisTool = {

"domainWhoisTool": {

"error": null | Object,

"url": String,

"domain": String,

"status": String,

"exists": Boolean,

"expiresAt": String,

"expirationDays": Boolean,

"lastModified": String,

"registeredAt": String,

"fullText": String,

"dnsData": String

}

}

Fields
error

null | object

if an error exists an object is returned with error code(string) and message(string)

url

string

website url

domain

string

domain name

status

string

domain status

exists

boolean

true if domain exists

expiresAt

string

domain expire date

expirationDays

string

days till expire

lastModified

string

last modified date

registeredAt

string

registered date

fullText

string

additional info (JSON)

IP Extraction Tool

IpExtractionTool object structure

JSON representation

IpExtractionTool = {

"ipExtractionTool": {

"error": null | Object,

"resolveInfo": [

{

"ip": String,

"address": String,

"country": Boolean,

"createdAt": String,

"lastModified": String,

"hostnames": Array,

"ipRange": String,

"company": String,

"ipInBlackList": Boolean,

"ipBlackList": Array

}

]

}

}

Fields
error

null | object

if an error exists an object is returned with error code(string) and message(string)

ip

string

website ip

address

string

website address

country

string

website country

createdAt

string

website creation date

lastModified

string

website last modified date

hostnames

array

host name list

ipRange

string

your ip range

company

string

company name

ipInBlackList

boolean

describe

ipBlackList

array

list of IP black lists

Example

{

"tool_logs": [

{

"domainWhoisTool": {

"error": null,

"url": "example.io",

"domain": "example.io",

"status": "Registered",

"exists": true,

"expiresAt": "2023-01-19T06:23:59.000Z",

"expirationDays": "561",

"lastModified": "2021-02-07T10:33:30.000Z",

"registeredAt": "2019-01-19T06:23:59.000Z",

"fullText": "example text",

"dnsData": "example text"

}

},

{

"ipExtractionTool": {

"error": null,

"resolveInfo": [

{

"ip": "100.21.84.99",

"address": "see http://www.example.org.",

"country": "EU",

"createdAt": "2019-02-04T15:28:58Z",

"lastModified": "2019-02-04T15:28:58Z,

"hostnames": [],

"ipRange": "100.252.92.0 - 104.37.31.255",

"company": "Internet Assigned Numbers Authority",

"ipInBlackList": false,

"ipBlackList": []

},

{

"ip": "100.21.84.99",

"address": "see http://www.example.org.",

"country": "US",

"createdAt": "2018-02-04T15:28:58Z",

"lastModified": "2019-02-04T15:28:58Z,

"hostnames": [],

"ipRange": "100.252.92.0 - 104.37.31.255",

"company": "Internet Assigned Numbers Authority",

"ipInBlackList": false,

"ipBlackList": []

}

]

}

}

]

}

if request is not successful you will get

JSON representation

{

"error": true,

"message": String

}

Fields
error

boolean

if the error returns true, it means that an error has occurred

message

string

the message contains information about the error

Example

{

"error": true,

"message": "invalid API key"

}




HTTP Request for Tech Stack tool (Health)

POST https://api.hexometer.com/v2/app/services/v1/detected_errors?key={YOUR_API_KEY}

Parameters
Fields
YOUR_API_KEY

string

to get YOUR_API_KEY visit hexometer select desired property then go to settings and copy your api key

Request Body
Fields
tool_name

string

you should provide the specific tool name to get the corresponding error. In this case "Health_Tech_Stack"

property_id

number

you should provide property id

Example

{

"tool_name": "Health_Tech_Stack",

"property_id": 25

}

Response Body

if request is successful you will get

JSON representation

{

"tool_logs": [

HealthTechStack

]

}

Fields
HealthTechStack

object(HealthTechStack)

HealthTechStack represents a healthTechStack object

Tech Stack (Health)

HealthTechStack object structure

JSON representation

HealthTechStack = {

"techStackTool": {

"error": null | Object,

"applications": [

{

"name": String,

"confidence": Boolean,

"version": null | String,

"icon": String,

"website": String,

"categories": Array

}

],

}

}

Fields
error

null | object

if an error exists an object is returned with error code(string) and message(string)

applications

array

applications list

Example

{

"tool_logs": [

{

"techStackTool": {

"error": null,

"applications": [

{

"name": "CloudFlare",

"confidence": "100",

"version": null,

"icon": "CloudFlare.svg",

"website": "http://www.cloudflare.com",

"categories": [

"CDN"

]

}

]

}

}

]

}

if request is not successful you will get

JSON representation

{

"error": true,

"message": String

}

Fields
error

boolean

if the error returns true, it means that an error has occurred

message

string

the message contains information about the error

Example

{

"error": true,

"message": "invalid API key"

}




HTTP Request for W3C tool (Health)

POST https://api.hexometer.com/v2/app/services/v1/detected_errors?key={YOUR_API_KEY}

Parameters
Fields
YOUR_API_KEY

string

to get YOUR_API_KEY visit hexometer select desired property then go to settings and copy your api key

Request Body
Fields
tool_name

string

you should provide the specific tool name to get the corresponding error. In this case "Health_W3C"

property_id

number

you should provide property id

Example

{

"tool_name": "Health_W3C",

"property_id": 25

}

Response Body

if request is successful you will get

JSON representation

{

"tool_logs": [

HealthW3C

]

}

Fields
HealthW3C

object(HealthW3C)

HealthW3C represents a healthW3C object

Health W3C

HealthW3C object structure

JSON representation

HealthW3C = {

"w3cCheckTool": {

"error": null | Object,

"validatorErrors": [

{

"subType": String,

"type": Boolean,

"explanation": String,

"position": Object,

"extract": String,

}

]

}

}

Fields
error

null | object

if an error exists an object is returned with error code(string) and message(string)

validatorErrors

array

validator errors list

Example

{

"tool_logs": [

{

"w3cCheckTool": {

"error": null | Object,

"validatorErrors": [

{

"subType": "",

"type": "error",

"explanation": "No 'p' element in scope but a 'p' end tag seen.",

"position": {

"lastLine": 132,

"firstColumn": 1,

"lastColumn": 4

},

"extract": "<li></ul></p></div"

}

]

}

}

]

}

if request is not successful you will get

JSON representation

{

"error": true,

"message": String

}

Fields
error

boolean

if the error returns true, it means that an error has occurred

message

string

the message contains information about the error

Example

{

"error": true,

"message": "invalid API key"

}




HTTP Request for JavaScript Errors tool (Health)

POST https://api.hexometer.com/v2/app/services/v1/detected_errors?key={YOUR_API_KEY}

Parameters
Fields
YOUR_API_KEY

string

to get YOUR_API_KEY visit hexometer select desired property then go to settings and copy your api key

Request Body
Fields
tool_name

string

you should provide the specific tool name to get the corresponding error. In this case "Health_JavaScript_Errors"

property_id

number

you should provide property id

Example

{

"tool_name": "Health_JavaScript_Errors",

"property_id": 25

}

Response Body

if request is successful you will get

JSON representation

{

"tool_logs": [

HealthJavaScriptErrors

]

}

Fields
HealthJavaScriptErrors

object(HealthJavaScriptErrors)

HealthJavaScriptErrors represents a healthJavaScriptErrors object

JavaScript Errors (Health)

HealthJavaScriptErrors object structure

JSON representation

HealthJavaScriptErrors = {

"JsErrorsTool": {

"error": null | Object,

"allConsoleMsgs": Array

}

}

}

Fields
error

null | object

if an error exists an object is returned with error code(string) and message(string)

allConsoleMsgs

array

console messages list

Example

{

"tool_logs": [

{

"JsErrorsTool": {

"error": null,

"allConsoleMsgs": []

}

}

]

}

if request is not successful you will get

JSON representation

{

"error": true,

"message": String

}

Fields
error

boolean

if the error returns true, it means that an error has occurred

message

string

the message contains information about the error

Example

{

"error": true,

"message": "invalid API key"

}




HTTP Request for URL Checker tool (SEO)

POST https://api.hexometer.com/v2/app/services/v1/detected_errors?key={YOUR_API_KEY}

Parameters
Fields
YOUR_API_KEY

string

to get YOUR_API_KEY visit hexometer select desired property then go to settings and copy your api key

Request Body
Fields
tool_name

string

you should provide the specific tool name to get the corresponding error. In this case "SEO_URL_Checker"

property_id

number

you should provide property id

Example

{

"tool_name": "SEO_URL_Checker",

"property_id": 25

}

Response Body

if request is successful you will get

JSON representation

{

"tool_logs": [

SEOURLChecker

]

}

Fields
SEOURLChecker

object(SEOURLChecker)

SEOURLChecker represents a SEOURLChecker object

URL Checker (SEO)

SEOURLChecker object structure

JSON representation

SEOURLChecker = {

"urlCheckerTool": {

"error": null | Object,

"favicon": Object,

"redirectUrl": String,

"canonicalUrl": Boolean,

"isHttps": Boolean,

"socialNetworks": Array,

"robotsTXT": Boolean,

"openGraphMetaTags": Array,

"twitterCardMetaTags": Array,

}

}

Fields
error

null | object

if an error exists an object is returned with error code(string) and message(string)

favicon

object

website favicon url

redirectUrl

string

redirect url

canonicalUrl

boolean

true if website has canonicalUrl

isHttps

boolean

true if website has SSL certificate

socialNetworks

array

social network url list

robotsTXT

boolean

true if website has robotsTXT file

openGraphMetaTags

array

open graph meta tags list

twitterCardMetaTags

array

twitter card meta tags list

Example

{

"tool_logs": [

{

"urlCheckerTool": {

"error": null,

"favicon": {

"favicon": "https://example.com/apple-touch-icon.png",

"hasIcon": true

},

"redirectUrl": "https://example.com/",

"canonicalUrl": true,

"isHttps": true,

"socialNetworks": [

{

"name": "instagram",

"url": "https://www.instagram.com/example/"

}

],

"robotsTXT": true,

"openGraphMetaTags": [

{

"name": "og:url",

"isExists": true,

"content": "https://www.example.com"

}

],

"twitterCardMetaTags": [

{

"name": "twitter:card",

"isExists": true,

"content": "summary_large_image"

}

],

"twitterCardMetaTags": {

"is_redirect":true,

"redirect_url": "https://www.example.com"

}

}

}

]

}

if request is not successful you will get

JSON representation

{

"error": true,

"message": String

}

Fields
error

boolean

if the error returns true, it means that an error has occurred

message

string

the message contains information about the error

Example

{

"error": true,

"message": "invalid API key"

}




HTTP Request for IP Address Blacklist tool (Security)

POST https://api.hexometer.com/v2/app/services/v1/detected_errors?key={YOUR_API_KEY}

Parameters
Fields
YOUR_API_KEY

string

to get YOUR_API_KEY visit hexometer select desired property then go to settings and copy your api key

Request Body
Fields
tool_name

string

you should provide the specific tool name to get the corresponding error. In this case "Security_IP_Address_Blacklist"

property_id

number

you should provide property id

Example

{

"tool_name": "Security_IP_Address_Blacklist",

"property_id": 25

}

Response Body

if request is successful you will get

JSON representation

{

"tool_logs": [

SecurityIPAddressBlacklist

]

}

Fields
SecurityIPAddressBlacklist

object(SecurityIPAddressBlacklist)

SecurityIPAddressBlacklist represents a securityIPAddressBlacklist object

IP Address Blacklist (Security)

SecurityIPAddressBlacklist object structure

JSON representation

SecurityIPAddressBlacklist = {

"ipExtractionTool": {

"error": null | Object,

"resolveInfo": [

{

"ip": String,

"address": String,

"country": String,

"createdAt": String,

"lastModified": String,

"hostnames": Array,

"ipRange": String,

"company": String,

"ipInBlackList": Boolean,

"ipBlackList": Array

}

]

}

}

Fields
error

null | object

if an error exists an object is returned with error code(string) and message(string)

ip

string

IP

address

string

URL address

country

string

country

createdAt

string

creation date

lastModified

string

last modified time

hostnames

array

hostname list

ipRange

string

range of IPs

company

string

company

ipInBlackList

boolean

true if IP is on black list

ipBlackList

array

IP black lists list

Example

{

"tool_logs": [

{

"ipExtractionTool": {

"error": null,

"resolveInfo": [

{

"ip": "100.21.84.00",

"address": "see http://www.example.org.",

"country": "EU",

"createdAt": "2019-02-04T15:28:58Z",

"lastModified": "2019-02-04T15:28:58Z",

"hostnames": [],

"ipRange": "03.252.92.0 - 100.37.31.255",

"company": "internet Assigned Numbers Authority",

"ipInBlackList": false,

"ipBlackList": []

}

]

}

}

]

}

if request is not successful you will get

JSON representation

{

"error": true,

"message": String

}

Fields
error

boolean

if the error returns true, it means that an error has occurred

message

string

the message contains information about the error

Example

{

"error": true,

"message": "invalid API key"

}




HTTP Request for SSL Certificate tool (Security)

POST https://api.hexometer.com/v2/app/services/v1/detected_errors?key={YOUR_API_KEY}

Parameters
Fields
YOUR_API_KEY

string

to get YOUR_API_KEY visit hexometer select desired property then go to settings and copy your api key

Request Body
Fields
tool_name

string

you should provide the specific tool name to get the corresponding error. In this case "Security_SSL_Certificate"

property_id

number

you should provide property id

Example

{

"tool_name": "Security_SSL_Certificate",

"property_id": 25

}

Response Body

if request is successful you will get

JSON representation

{

"tool_logs": [

SecuritySSLCertificate

]

}

Fields
SecuritySSLCertificate

object(SecuritySSLCertificate)

SecuritySSLCertificate represents a SecuritySSLCertificate object

SSL Certificate (Security)

SecuritySSLCertificate object structure

JSON representation

SecuritySSLCertificate = {

"sslExtractionTool": {

"error": null | Object,

"protocol": String,

"cipher": String,

"issuer": String,

"subjectName": String,

"sanList": Array,

"validFrom": String,

"validTo": String,

"serialNumber": String,

"bits": Number

}

}

Fields
error

null | object

if an error exists an object is returned with error code(string) and message(string)

protocol

string

protocol

cipher

string

cipher

issuer

string

cloudflare destination issue

subjectName

string

subject name

sanList

array

cloudflare san list

validFrom

string

ssl validation date

validTo

string

ssl validation date

serialNumber

string

serial number

bits

number

bit count

Example

{

"tool_logs": [

{

"sslExtractionTool": {

"error": null,

"protocol": "TLSv1.3",

"cipher": "TLS_AES_256_GCM_SHA384",

"issuer": "US, Cloudflare, Inc., Cloudflare Inc ECC CA-3",

"subjectName": "sni.cloudflaressl.com",

"sanList": [

"sni.cloudflaressl.com",

"exapmle.com",

"*.exapmle.com"

],

"validFrom": "2022-06-10T23:50:59.000Z",

"validTo": "2022-06-10T23:59:59.000Z",

"serialNumber": "012C446D5584DB4D602A548E0DA4522B",

"bits": 256

}

}

]

}

if request is not successful you will get

JSON representation

{

"error": true,

"message": String

}

Fields
error

boolean

if the error returns true, it means that an error has occurred

message

string

the message contains information about the error

Example

{

"error": true,

"message": "invalid API key"

}




HTTP Request for Security Headers tool (Security)

POST https://api.hexometer.com/v2/app/services/v1/detected_errors?key={YOUR_API_KEY}

Parameters
Fields
YOUR_API_KEY

string

to get YOUR_API_KEY visit hexometer select desired property then go to settings and copy your api key

Request Body
Fields
tool_name

string

you should provide the specific tool name to get the corresponding error. In this case "Security_Headers"

property_id

number

you should provide property id

Example

{

"tool_name": "Security_Headers",

"property_id": 25

}

Response Body

if request is successful you will get

JSON representation

{

"tool_logs": [

SecurityHeaders

]

}

Fields
SecurityHeaders

object(SecurityHeaders)

SecurityHeaders represents a SecurityHeaders object

Security Headers (Security)

SecurityHeaders object structure

JSON representation

SecurityHeaders = {

"securityHeadersTool": {

"error": null | Object,

"allHeaders": Object,

"authenticationHeaders": Array,

"securityHeaders": Array,

"cachingHeaders": Array,

"conditionalsHeaders": Array,

"connectionHeaders": Array,

"cookies": Array,

"cors": Array,

"messageBodyHeaders": Array,

"responseContextHeaders": Array

}

}

Fields
error

null | object

if an error exists an object is returned with error code(string) and message(string)

allHeaders

object

all headers info

authenticationHeaders

array

authentication headers list

securityHeaders

array

security headers list

cachingHeaders

array

caching headers list

conditionalsHeaders

array

conditionals headers list

connectionHeaders

array

connection headers list

cookies

array

cookies list

cors

array

cors list

messageBodyHeaders

array

message body headers list

responseContextHeaders

array

response context headers list

Example

{

"tool_logs": [

{

"securityHeadersTool": {

"error": null,

"allHeaders": {

"date": "Tue, 06 Jul 2021 15:03:53 GMT",

"content-type": "text/html; charset=utf-8",

"transfer-encoding": "chunked",

"connection": "close",

"cf-ray": "56a9b8ec4a1415ee-DME" ,

"cache-control": "max-age=3600",

"last-modified": "Mon, 21 Jun 2021 14:18:14 GMT",,

"set-cookie": ["HttpOnly;Secure;SameSite=Strict"],

"strict-transport-security": "max-age=2000",

"vary": "x-fh-requested-host, accept-encoding",

"cf-cache-status": "DYNAMIC",

"content-security-policy": ,

"policy": "upgrade-insecure-requests",

"expect-ct": "max-age=604800, report-uri='https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct'",

"feature-policy": "usermedia *",

"referrer-policy": "strict-origin-when-cross-origin",

"x-cache": "HIT",

"x-cache-hits": "2",

"x-content-type-options": "nosniff",

"x-frame-options": "sameorigin",

"x-served-by": cache-ams21062-AMS",

"timer": "S1625583833.130368,VS0,VE0",

"x-xss-protection": "1; mode=block",

"report-to": "{"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v2?s=dsvQENRDbbg4gqKR9oHpMjekbomuWt543ORYf5pPYr8Xw8DUfGs%2BRtskRL7sAbHefs7aVGqpjNvJ8MhkVqWtZjjSA8S5FbQ%2F3hEZRAO0H2LMq4jjLhj8"}],"group":"cf-nel","max_age":604800}",

"nel": "{"report_to":"cf-nel","max_age":604800}" ,

"server":"cloudflare",

"content-encoding": "gzip",

"alt-svc": "h3-27=":443"; ma=86400, h3-28=":443"; ma=86400, h3-29=":443"; ma=86400, h3=":443"; ma=86400",

},

"authenticationHeaders": [

{

"headerName": "www-authenticate",

"isExists": true,

"headerValue": ""

}

],

"securityHeaders": [

{

"headerName": "content-security-policy",

"isExists": false,

"headerValue": "strict-origin-when-cross-origin"

}

],

"cachingHeaders": [

{

"headerName": "age",

"isExists": false,

"headerValue": ""

}

],

"conditionalsHeaders": [

{

"headerName": "last-modified",

"isExists": true,

"headerValue": "Mon, 21 Jun 2021 14:18:14 GMT"

}

],

"connectionHeaders": [

{

"headerName": "connection",

"isExists": true,

"headerValue": "close"

}

],

"cookies": [

{

"headerName": "set-cookie",

"isExists": true,

"headerValue": "["HttpOnly;Secure;SameSite=Strict"]"

}

],

"cors": [

{

"headerName": "access-control-allow-origin",

"isExists": false,

"headerValue": ""

}

],

"messageBodyHeaders": [

{

"headerName": "content-length",

"isExists": false,

"headerValue": ""

}

],

"responseContextHeaders": [

{

"headerName": "allow",

"isExists": false,

"headerValue": ""

}

]

}

}

]

}

if request is not successful you will get

JSON representation

{

"error": true,

"message": String

}

Fields
error

boolean

if the error returns true, it means that an error has occurred

message

string

the message contains information about the error

Example

{

"error": true,

"message": "invalid API key"

}




HTTP Request for Malicious Check tool (Security)

POST https://api.hexometer.com/v2/app/services/v1/detected_errors?key={YOUR_API_KEY}

Parameters
Fields
YOUR_API_KEY

string

to get YOUR_API_KEY visit hexometer select desired property then go to settings and copy your api key

Request Body
Fields
tool_name

string

you should provide the specific tool name to get the corresponding error. In this case "Security_Malicious_Check"

property_id

number

you should provide property id

Example

{

"tool_name": "Security_Malicious_Check",

"property_id": 25

}

Response Body

if request is successful you will get

JSON representation

{

"tool_logs": [

SecurityMaliciousCheck

]

}

Fields
SecurityMaliciousCheck

object(SecurityMaliciousCheck)

SecurityMaliciousCheck represents a SecurityMaliciousCheck object

Security Malicious Check

SecurityMaliciousCheck object structure

JSON representation

SecurityMaliciousCheck = {

"maliciousUrlTool": {

"error": null | Object,

"problems": Boolean,

"threatTypes": Array,

"expireTime": String

}

}

Fields
error

null | object

if an error exists an object is returned with error code(string) and message(string)

problems

boolean

it true url has problems

threatTypes

array

threat array

expireTime

string

expire time

Example

{

"tool_logs": [

{

"maliciousUrlTool": {

"error": null,

"problems": false,

"threatTypes": [],

"expireTime": ""

}

}

]

}

if request is not successful you will get

JSON representation

{

"error": true,

"message": String

}

Fields
error

boolean

if the error returns true, it means that an error has occurred

message

string

the message contains information about the error

Example

{

"error": true,

"message": "invalid API key"

}




HTTP Request for Assets tool (Performance)

POST https://api.hexometer.com/v2/app/services/v1/detected_errors?key={YOUR_API_KEY}

Parameters
Fields
YOUR_API_KEY

string

to get YOUR_API_KEY visit hexometer select desired property then go to settings and copy your api key

Request Body
Fields
tool_name

string

you should provide the specific tool name to get the corresponding error. In this case "Performance_Assets"

property_id

number

you should provide property id

Example

{

"tool_name": "Performance_Assets",

"property_id": 25

}

Response Body

if request is successful you will get

JSON representation

{

"tool_logs": [

PerformanceAssets

]

}

Fields
PerformanceAssets

object(PerformanceAssets)

PerformanceAssets represents a PerformanceAssets object

Assets (Performance)

PerformanceAssets object structure

JSON representation

PerformanceAssets = {

"assetsCheckerTool": {

"error": null | Object,

"assets": Array,

"totalSize": Number,

"mainHtmlSize": Number

}

}

Fields
error

null | object

if an error exists an object is returned with error code(string) and message(string)

assets

array

asset array

totalSize

number

total size

mainHtmlSize

number

main Html size

Example

{

"tool_logs": [

{

"assetsCheckerTool": {

"error": null,

"assets": [

{

"encodedSize": 12332,

"size": 12332,

"mimeType": "application/javascript",

"url": "https://ajax.cloudflare.com/cdn-cgi/scripts/7d5fb10a/cloudflare-static/example.min.js"

}

],

"totalSize": 2187601,

"mainHtmlSize": 25235

}

}

]

}

if request is not successful you will get

JSON representation

{

"error": true,

"message": String

}

Fields
error

boolean

if the error returns true, it means that an error has occurred

message

string

the message contains information about the error

Example

{

"error": true,

"message": "invalid API key"

}




HTTP Request for Page Speed Desktop tool (Performance)

POST https://api.hexometer.com/v2/app/services/v1/detected_errors?key={YOUR_API_KEY}

Parameters
Fields
YOUR_API_KEY

string

to get YOUR_API_KEY visit hexometer select desired property then go to settings and copy your api key

Request Body
Fields
tool_name

string

you should provide the specific tool name to get the corresponding error. In this case "Performance_Page_Speed_Desktop"

property_id

number

you should provide property id

Example

{

"tool_name": "Performance_Page_Speed_Desktop",

"property_id": 25

}

Response Body

if request is successful you will get

JSON representation

{

"tool_logs": [

PerformancePageSpeedDesktop

]

}

Fields
PerformancePageSpeedDesktop

object(PerformancePageSpeedDesktop)

PerformancePageSpeedDesktop represents a PerformancePageSpeedDesktop object

Performance Page Speed Desktop

PerformancePageSpeedDesktop object structure

JSON representation

PerformancePageSpeedDesktop = {

"webMetricsDesktopTool": {

"error": null | Object,

"result": {

"performance": Object,

"accessibility": Object,

"bestPractices": Object,

"pwa": Object,

"seo": Object,

"assets": Object (JSON)

}

}

}

Fields
error

null | object

if an error exists an object is returned with error code(string) and message(string)

performance

object

performance info

accessibility

object

accessibility info

bestPractices

object

best practices info

seo

object

SEO info

assets

object

assets info

Example

{

"tool_logs": [

{

"webMetricsDesktopTool": {

"error": null,

"result": {

"performance": {

"title": "Performance",

"auditRefs": [

"id": "first-contentful-paint",

"weight": 15,

"group": "metrics"

]

},

"accessibility": {

"title": "Accessibility",

"description": "These checks highlight opportunities to [improve the accessibility of your web app](https://developers.google.com/web/fundamentals/accessibility). Only a subset of accessibility issues can be automatically detected so manual testing is also encouraged.",

"manualDescription": "These items address areas which an automated testing tool cannot cover. Learn more in our guide on [conducting an accessibility review](https://developers.google.com/web/fundamentals/accessibility/how-to-review).",

"auditRefs": [

"id": "accesskeys",

"weight": 0,

"group": "a11y-navigation"

]

},

"bestPractices": {

"title": "Best Practices",

"auditRefs": [

"id": "is-on-https",

"weight": 1,

"group": "best-practices-trust-safety"

]

},

"pwa": {

"title": "Progressive Web App",

"description": "These checks validate the aspects of a Progressive Web App. [Learn more](https://developers.google.com/web/progressive-web-apps/checklist).",

"manualDescription": "These checks are required by the baseline [PWA Checklist](https://developers.google.com/web/progressive-web-apps/checklist) but are not automatically checked by Lighthouse. They do not affect your score but it's important that you verify them manually.",

"auditRefs": [

"id": "nstallable-manifest",

"weight": 2,

"group": "pwa-installable"

]

},

"seo": {

"title": "SEO",

"description": "These checks ensure that your page is optimized for search engine results ranking. There are additional factors Lighthouse does not check that may affect your search ranking. [Learn more](https://support.google.com/webmasters/answer/35769).",

"manualDescription": "Run these additional validators on your site to check additional SEO best practices.",

"auditRefs": [

"id": "viewport",

"weight": 1,

"group": "seo-mobile"

]

},

"assets":"{"total_size":2554807,"size_by_domain":{"example.com":2290254,"fonts.googleapis.com":6180,"ajax.cloudflare.com":12332,"fonts.gstatic.com":39344,"www.googletagmanager.com":206697}"

},

}

}

]

}

if request is not successful you will get

JSON representation

{

"error": true,

"message": String

}

Fields
error

boolean

if the error returns true, it means that an error has occurred

message

string

the message contains information about the error

Example

{

"error": true,

"message": "invalid API key"

}




HTTP Request for Page Speed Mobile tool (Performance)

POST https://api.hexometer.com/v2/app/services/v1/detected_errors?key={YOUR_API_KEY}

Parameters
Fields
YOUR_API_KEY

string

to get YOUR_API_KEY visit hexometer select desired property then go to settings and copy your api key

Request Body
Fields
tool_name

string

you should provide the specific tool name to get the corresponding error. In this case "Performance_Page_Speed_Mobile"

property_id

number

you should provide property id

Example

{

"tool_name": "Performance_Page_Speed_Mobile",

"property_id": 25

}

Response Body

if request is successful you will get

JSON representation

{

"tool_logs": [

PerformancePageSpeedMobile

]

}

Fields
PerformancePageSpeedMobile

object(PerformancePageSpeedMobile)

PerformancePageSpeedMobile represents a PerformancePageSpeedMobile object

Page Speed Mobile (Performance)

PerformancePageSpeedMobile object structure

JSON representation

PerformancePageSpeedMobile = {

"webMetricsMobileTool": {

"error": null | Object,

"result": {

"performance": Object,

"accessibility": Object,

"bestPractices": Object,

"pwa": Object,

"seo": Object,

"assets": Object (JSON)

}

}

}

Fields
error

null | object

if an error exists an object is returned with error code(string) and message(string)

performance

object

performance info

accessibility

object

accessibiliy info

bestPractices

object

best practices info

seo

object

SEO info

assets

object

assets info

Example

{

"tool_logs": [

{

"webMetricsMobileTool": {

"error": null,

"result": {

"performance": {

"title": "Performance",

"auditRefs": [

"id": "first-contentful-paint",

"weight": 15,

"group": "metrics"

]

},

"accessibility": {

"title": "Accessibility",

"description": "These checks highlight opportunities to [improve the accessibility of your web app](https://developers.google.com/web/fundamentals/accessibility). Only a subset of accessibility issues can be automatically detected so manual testing is also encouraged.",

"manualDescription": "These items address areas which an automated testing tool cannot cover. Learn more in our guide on [conducting an accessibility review](https://developers.google.com/web/fundamentals/accessibility/how-to-review).",

"auditRefs": [

"id": "accesskeys",

"weight": 0,

"group": "a11y-navigation"

]

},

"bestPractices": {

"title": "Best Practices"",

"auditRefs": [

"id": "is-on-https",

"weight": 1,

"group": "best-practices-trust-safety"

]

},

"pwa": {

"title": "Progressive Web App",

"description": "These checks validate the aspects of a Progressive Web App. [Learn more](https://developers.google.com/web/progressive-web-apps/checklist).",

"manualDescription": "These checks are required by the baseline [PWA Checklist](https://developers.google.com/web/progressive-web-apps/checklist) but are not automatically checked by Lighthouse. They do not affect your score but it's important that you verify them manually.",

"auditRefs": [

"id": "nstallable-manifest",

"weight": 2,

"group": "pwa-installable"

]

},

"seo": {

"title": "SEO",

"description": "These checks ensure that your page is optimized for search engine results ranking. There are additional factors Lighthouse does not check that may affect your search ranking. [Learn more](https://support.google.com/webmasters/answer/35769).",

"manualDescription": "Run these additional validators on your site to check additional SEO best practices.",

"auditRefs": [

"id": "viewport",

"weight": 1,

"group": "seo-mobile"

]

},

"assets":"{"total_size":2554807,"size_by_domain":{"example.com":2290254,"fonts.googleapis.com":6180,"ajax.cloudflare.com":12332,"fonts.gstatic.com":39344,"www.googletagmanager.com":206697}"

},

}

}

]

}

if request is not successful you will get

JSON representation

{

"error": true,

"message": String

}

Fields
error

boolean

if the error returns true, it means that an error has occurred

message

string

the message contains information about the error

Example

{

"error": true,

"message": "invalid API key"

}




HTTP Request for Mobile Friendly tool (User Experience)

POST https://api.hexometer.com/v2/app/services/v1/detected_errors?key={YOUR_API_KEY}

Parameters
Fields
YOUR_API_KEY

string

to get YOUR_API_KEY visit hexometer select desired property then go to settings and copy your api key

Request Body
Fields
tool_name

string

you should provide the specific tool name to get the corresponding error. In this case "User_Experience_Mobile_Friendly"

property_id

number

you should provide property id

Example

{

"tool_name": "User_Experience_Mobile_Friendly",

"property_id": 25

}

Response Body

if request is successful you will get

JSON representation

{

"tool_logs": [

UserExperienceMobileFriendly

]

}

Fields
UserExperienceMobileFriendly

object(UserExperienceMobileFriendly)

UserExperienceMobileFriendly represents a UserExperienceMobileFriendly object

Mobile Friendly (User Experience)

UserExperienceMobileFriendly object structure

JSON representation

UserExperienceMobileFriendly = {

"mobileFriendlyCheckTool": {

"error": null | Object,

"mobileFriendly": Boolean,

"mobileFriendlyIssues": Array,

"screenShootUrl": String

}

}

Fields
error

null | object

if an error exists an object is returned with error code(string) and message(string)

mobileFriendly

boolean

if website is mobile friendly

mobileFriendlyIssues

array

mobile friendly issues

screenShootUrl

string

screenshoot url

Example

{

"tool_logs": [

{

"mobileFriendlyCheckTool": {

"error": null,

"mobileFriendly": false,

"mobileFriendlyIssues": [],

"screenShootUrl": "https://storage.googleapis.com/hx-screenshots/example.com-mobile-api.png"

}

}

]

}

if request is not successful you will get

JSON representation

{

"error": true,

"message": String

}

Fields
error

boolean

if the error returns true, it means that an error has occurred

message

string

the message contains information about the error

Example

{

"error": true,

"message": "invalid API key"

}




HTTP Request for Devices Check tool (User Experience)

POST https://api.hexometer.com/v2/app/services/v1/detected_errors?key={YOUR_API_KEY}

Parameters
Fields
YOUR_API_KEY

string

to get YOUR_API_KEY visit hexometer select desired property then go to settings and copy your api key

Request Body
Fields
tool_name

string

you should provide the specific tool name to get the corresponding error. In this case "User_Experience_Devices_Check"

property_id

number

you should provide property id

Example

{

"tool_name": "User_Experience_Devices_Check",

"property_id": 25

}

Response Body

if request is successful you will get

JSON representation

{

"tool_logs": [

UserExperienceDevicesCheck

]

}

Fields
UserExperienceDevicesCheck

object(UserExperienceDevicesCheck)

UserExperienceDevicesCheck represents a UserExperienceDevicesCheck object

User Experience Devices Check

UserExperienceDevicesCheck object structure

JSON representation

UserExperienceDevicesCheck = {

"deviceCheckTool": {

"result": {

"MOBILE_SMALL": Object,

"MOBILE_MEDIUM": Object,

"MOBILE_LARGE": Object,

"TABLET": Object,

"LAPTOP_SMALL": Object,

"LAPTOP_MEDIUM": Object,

"LAPTOP_LARGE": Object,

"DESKTOP_4K": Object

},

"error": null | String,

"warnings": null | String

}

}

Fields
result

object

result info

MOBILE_SMALL

object

small mobile device info

MOBILE_MEDIUM

object

medium mobile device info

MOBILE_LARGE

object

large mobile device info

TABLET

object

tablet device info

LAPTOP_SMALL

object

small laptop device info

LAPTOP_MEDIUM

object

medium laptop device info

LAPTOP_LARGE

object

large laptop device info

DESKTOP_4K

object

desktop device info

error

null | string

error info

warnings

null | string

warnings info

Example

{

"tool_logs": [

{

"deviceCheckTool": {

"result": {

"MOBILE_SMALL": {

"result": {

"image": "https://storage.googleapis.com/hx-screenshots/tool-upload-checkDeviceTool-f99256bba8cfd70fbede7810d00a8f93-1225573836480.png"

"closeTouchables": {

"isValid": true,

"data": []

},

"fontSizeMean": {

"isValid": true,

"data": 16.055073874192693

},

"domElementCount": {

"isValid": true,

"data": 187

},

"cookieSize": {

"isValid": true,

"data": 456

},

"imgAlt": {

"isValid": true,

"data": [0]

},

"imgWidth": {

"isValid": false,

"data": ["<img src="img/example-logo.svg" alt="example" class="prod-logo">"]

},

"viewportWidth": {

"isValid": true,

"data": ["width=device-width"]

},

"viewport": {

"isValid": true,

"data": ["<meta content="width=device-width, initial-scale=1, maximum-scale=1" name="viewport">"]

},

"badElements": [],

"leftRightSlider": {

"isValid": true,

"data": 0

},

},

"error": null,

"warnings": null

},

},

"MOBILE_MEDIUM": {

"result": {

"image": "https://storage.googleapis.com/hx-screenshots/tool-upload-checkDeviceTool-f99256bba8cfd70fbede7810d00a8f93-1225573836480.png"

"closeTouchables": {

"isValid": true,

"data": []

},

"fontSizeMean": {

"isValid": true,

"data": 16.055073874192693

},

"domElementCount": {

"isValid": true,

"data": 187

},

"cookieSize": {

"isValid": true,

"data": 456

},

"imgAlt": {

"isValid": true,

"data": [0]

},

"imgWidth": {

"isValid": false,

"data": ["<img src="img/example-logo.svg" alt="example" class="prod-logo">"]

},

"viewportWidth": {

"isValid": true,

"data": ["width=device-width"]

},

"viewport": {

"isValid": true,

"data": ["<meta content="width=device-width, initial-scale=1, maximum-scale=1" name="viewport">"]

},

"badElements": [],

"leftRightSlider": {

"isValid": true,

"data": 0

},

},

"error": null,

"warnings": null

},

},

"MOBILE_LARGE": {

"result": {

"image": "https://storage.googleapis.com/hx-screenshots/tool-upload-checkDeviceTool-f99256bba8cfd70fbede7810d00a8f93-1225573836480.png"

"closeTouchables": {

"isValid": true,

"data": []

},

"fontSizeMean": {

"isValid": true,

"data": 16.055073874192693

},

"domElementCount": {

"isValid": true,

"data": 187

},

"cookieSize": {

"isValid": true,

"data": 456

},

"imgAlt": {

"isValid": true,

"data": [0]

},

"imgWidth": {

"isValid": false,

"data": ["<img src="img/example-logo.svg" alt="example" class="prod-logo">"]

},

"viewportWidth": {

"isValid": true,

"data": ["width=device-width"]

},

"viewport": {

"isValid": true,

"data": ["<meta content="width=device-width, initial-scale=1, maximum-scale=1" name="viewport">"]

},

"badElements": [],

"leftRightSlider": {

"isValid": true,

"data": 0

},

},

"error": null,

"warnings": null

},

},

"TABLET": {

"result": {

"image": "https://storage.googleapis.com/hx-screenshots/tool-upload-checkDeviceTool-f99256bba8cfd70fbede7810d00a8f93-1225573836480.png"

"closeTouchables": {

"isValid": true,

"data": []

},

"fontSizeMean": {

"isValid": true,

"data": 16.055073874192693

},

"domElementCount": {

"isValid": true,

"data": 187

},

"cookieSize": {

"isValid": true,

"data": 456

},

"imgAlt": {

"isValid": true,

"data": [0]

},

"imgWidth": {

"isValid": false,

"data": ["<img src="img/example-logo.svg" alt="example" class="prod-logo">"]

},

"viewportWidth": {

"isValid": true,

"data": ["width=device-width"]

},

"viewport": {

"isValid": true,

"data": ["<meta content="width=device-width, initial-scale=1, maximum-scale=1" name="viewport">"]

},

"badElements": [],

"leftRightSlider": {

"isValid": true,

"data": 0

},

},

"error": null,

"warnings": null

},

},

"LAPTOP_SMALL": {

"result": {

"image": "https://storage.googleapis.com/hx-screenshots/tool-upload-checkDeviceTool-f99256bba8cfd70fbede7810d00a8f93-1225573836480.png"

"closeTouchables": {

"isValid": true,

"data": []

},

"fontSizeMean": {

"isValid": true,

"data": 16.055073874192693

},

"domElementCount": {

"isValid": true,

"data": 187

},

"cookieSize": {

"isValid": true,

"data": 456

},

"imgAlt": {

"isValid": true,

"data": [0]

},

"imgWidth": {

"isValid": false,

"data": ["<img src="img/example-logo.svg" alt="example" class="prod-logo">"]

},

"viewportWidth": {

"isValid": true,

"data": ["width=device-width"]

},

"viewport": {

"isValid": true,

"data": ["<meta content="width=device-width, initial-scale=1, maximum-scale=1" name="viewport">"]

},

"badElements": [],

"leftRightSlider": {

"isValid": true,

"data": 0

},

},

"error": null,

"warnings": null

},

},

"LAPTOP_MEDIUM": {

"result": {

"image": "https://storage.googleapis.com/hx-screenshots/tool-upload-checkDeviceTool-f99256bba8cfd70fbede7810d00a8f93-1225573836480.png"

"closeTouchables": {

"isValid": true,

"data": []

},

"fontSizeMean": {

"isValid": true,

"data": 16.055073874192693

},

"domElementCount": {

"isValid": true,

"data": 187

},

"cookieSize": {

"isValid": true,

"data": 456

},

"imgAlt": {

"isValid": true,

"data": [0]

},

"imgWidth": {

"isValid": false,

"data": ["<img src="img/example-logo.svg" alt="example" class="prod-logo">"]

},

"viewportWidth": {

"isValid": true,

"data": ["width=device-width"]

},

"viewport": {

"isValid": true,

"data": ["<meta content="width=device-width, initial-scale=1, maximum-scale=1" name="viewport">"]

},

"badElements": [],

"leftRightSlider": {

"isValid": true,

"data": 0

},

},

"error": null,

"warnings": null

},

},

"LAPTOP_LARGE": {

"result": {

"image": "https://storage.googleapis.com/hx-screenshots/tool-upload-checkDeviceTool-f99256bba8cfd70fbede7810d00a8f93-1225573836480.png"

"closeTouchables": {

"isValid": true,

"data": []

},

"fontSizeMean": {

"isValid": true,

"data": 16.055073874192693

},

"domElementCount": {

"isValid": true,

"data": 187

},

"cookieSize": {

"isValid": true,

"data": 456

},

"imgAlt": {

"isValid": true,

"data": [0]

},

"imgWidth": {

"isValid": false,

"data": ["<img src="img/example-logo.svg" alt="example" class="prod-logo">"]

},

"viewportWidth": {

"isValid": true,

"data": ["width=device-width"]

},

"viewport": {

"isValid": true,

"data": ["<meta content="width=device-width, initial-scale=1, maximum-scale=1" name="viewport">"]

},

"badElements": [],

"leftRightSlider": {

"isValid": true,

"data": 0

},

},

"error": null,

"warnings": null

},

},

"DESKTOP_4K": {

"result": {

"image": "https://storage.googleapis.com/hx-screenshots/tool-upload-checkDeviceTool-f99256bba8cfd70fbede7810d00a8f93-1225573836480.png"

"closeTouchables": {

"isValid": true,

"data": []

},

"fontSizeMean": {

"isValid": true,

"data": 16.055073874192693

},

"domElementCount": {

"isValid": true,

"data": 187

},

"cookieSize": {

"isValid": true,

"data": 456

},

"imgAlt": {

"isValid": true,

"data": [0]

},

"imgWidth": {

"isValid": false,

"data": ["<img src="img/example-logo.svg" alt="example" class="prod-logo">"]

},

"viewportWidth": {

"isValid": true,

"data": ["width=device-width"]

},

"viewport": {

"isValid": true,

"data": ["<meta content="width=device-width, initial-scale=1, maximum-scale=1" name="viewport">"]

},

"badElements": [],

"leftRightSlider": {

"isValid": true,

"data": 0

},

}

"error": null,

"warnings": null

},

},

"error": null,

"warnings": null

}

}

}

]

}

if request is not successful you will get

JSON representation

{

"error": true,

"message": String

}

Fields
error

boolean

if the error returns true, it means that an error has occurred

message

string

the message contains information about the error

Example

{

"error": true,

"message": "invalid API key"

}