Arkose Labs API Status and Health Checks
This page tells you
- How to check on whether the Arkose Labs APIs are up.
- How to see regional health checks.
It is applicable to both Arkose Detect and Arkose Protect.
Real Time Arkose Labs API Status
You can view real-time status of the Arkose Labs APIs at: http://status.arkoselabs.com.
This takes you to a dashboard that shows the health of Arkose Labs services.
Arkose Labs Status Endpoint
To access the Arkose Labs status endpoint, use:
GET https://status.arkoselabs.com/api/v2/status.json
The endpoint will return one of the following JSON responses.
All Systems Operational
{
"page": {
"id": "ntmkcpjv4jzt",
"name": "Arkose Labs",
"url": "https://status.arkoselabs.com",
"time_zone": "Australia/Brisbane",
"updated_at": "2019-12-21T12:23:44.180+10:00"
},
"status": {
"indicator": "none",
"description": "All Systems Operational"
}
}
Partially Degraded Service
{
"page": {
"id": "ntmkcpjv4jzt",
"name": "Arkose Labs",
"url": "https://status.arkoselabs.com",
"time_zone": "Australia/Brisbane",
"updated_at": "2020-03-06T09:01:34.496+10:00"
},
"status": {
"indicator": "minor",
"description": "Partially Degraded Service"
}
}
Major System Outage
{
"page": {
"id": "ntmkcpjv4jzt",
"name": "Arkose Labs",
"url": "https://status.arkoselabs.com",
"time_zone": "Australia/Brisbane",
"updated_at": "2020-03-06T09:07:06.394+10:00"
},
"status": {
"indicator": "critical",
"description": "Major System Outage"
}
}
The status:description
will contain information regarding outages. If there are no outages it will contain All Systems Operational.
Using the API Status Endpoint With Your Service
We use the term Fail Open to mean that even when failure conditions for the Arkose Platform are present, we want the overall process to proceed. We recommend you integrate and configure Arkose APIs so that they can be bypassed in the rare event of any Arkose API-related service disruption and your process can proceed.
Server-Side
On the server side, Verify API calls ensure that a valid token is present. An unexpectedly long response time or server side HTTP error code could signal an issue with a call. To rule out localized issues, please check Arkose Services' status by calling the Arkose Status API as shown above. You can use the response (Operational, Partially Degraded, or System Outage) to decide on the right fallback flow. If there is an outage or disruption, then your server should bypass any validity checks for the Arkose token and let the user continue the session.
Client-Side
An unexpected failure of the Client API could stop a website from loading or negatively impact the user experience. Use the Arkose Client API's onError()
callback to handle errors gracefully.
When the Client API request timeouts, use the Enforcement Object's reset
callback to retry the call. If the issue persists, check the service's status by calling the Arkose Status API as shown above. If the response confirms an outage, switch to your system's fallback flow. You should check for other JavaScript or third-party errors before bypassing the Arkose Client API or switching to a fallback option.
Regional Endpoint Health Checks
The values in the table below are subject to change at any time.
Use the following code to access regional health checks and response time information:
// General format:
GET https://status.arkoselabs.com/metrics-display/{component_ID}/{timerange}
// Or for a specific example getting the Singapore response time:
GET https://status.arkoselabs.com/metrics-display/13lww8jwjcfq/day.json
Use the table below to get the correct component_ID
and timerange
.
Healthcheck | component_id | timerange |
---|---|---|
North Virginia Healthcheck | x7vj2bf6ckzv | day.json |
North Virginia Response Time | 6wbnmjn5w03x | day.json |
Oregon Healthcheck | f5txw3k5rpbs | day.json |
Oregon Response Time | m3pl0rjry4cy | day.json |
Singapore Healthcheck | p3frx5vqjd5x | day.json |
Singapore Response Time | 13lww8jwjcfq | day.json |
Ireland Heathcheck | cdplvgx9msf1 | day.json |
Ireland Response Time | 8t7xx4yjbswj | day.json |
Here is a sample of code interrogates the Regional Endpoints for status and metrics.
const axios = require("axios");
const NorthVirginiaHealth = "x7vj2bf6ckzv";
const NorthVirginiaTiming = "6wbnmjn5w03x";
function getOperationalStatus() {
axios
.get(`https://status.arkoselabs.com/api/v2/status.json`)
.then(function(response) {
console.log(`Arkose Labs Status: ${response.data.status.description}`);
})
.catch(function(error) {
console.log(error);
});
}
function getCurrentHealthcheck(endpoint, timerange) {
axios
.get(
`https://status.arkoselabs.com/metrics-display/${endpoint}/${timerange}`
)
.then(function(response) {
console.log(`North Virginia health is ${response.data.summary.last}%`);
})
.catch(function(error) {
console.log(error);
});
}
function getLastResponseTiming(endpoint, timerange) {
axios
.get(
`https://status.arkoselabs.com/metrics-display/${endpoint}/${timerange}`
)
.then(function(response) {
console.log(`North Virginia last response time was: ${response.data.summary.last}ms`);
})
.catch(function(error) {
console.log(error);
});
}
getOperationalStatus();
getCurrentHealthcheck(NorthVirginiaHealth, "day.json");
getLastResponseTiming(NorthVirginiaTiming, "day.json");
Updated 20 days ago