Service Outages
Market Data, as stated in our terms of service, makes no representation as to the reliability, availability, or timeliness of our service. This is not just a standard disclaimer. We have not yet been able to achieve 99.9% reliability, which is a metric we consider a minimum level of reliability that is needed to operate without a backup provider.
Market Data is a low cost provider and we have determined that cost, rather than reliability, is our key driver. While we hope to achieve 99.9% reliability in the future, our focus will remain on keeping down costs and avoiding price increases for our users.
We highly encourage users with mission critical applications to have a backup provider or utilize Market Data as their secondary provider.
How To Confirm Downtime
We utilize the service UptimeRobot to independently monitor our real-time and historical APIs and the results of this monitoring is made available to the public at our status page.
- Status Page: https://www.marketdata.app/status/
Confirm Downtime Programmatically
Use the /utilities/status/ endpoint to confirm the status of all Market Data services, including our APIs. This endpoint will remain online during outages and will send a JSON response that includes the status of all Market Data services.
This endpoint is ideal to allow for automatic switching between Market Data and your backup provider.
- NodeJS
- Python
// Importing the required library
const axios = require('axios');
// URL to the new JSON data
const url = "https://api.marketdata.app/status/";
// Service names for Historical Data API and Real-time Data API
const historicalDataApiName = "Historical Data API";
const realTimeDataApiName = "Real-time Data API";
// Function to check the status of the given service name
async function checkApiStatus(serviceName) {
try {
const response = await axios.get(url);
const jsonData = response.data;
if (jsonData.service.includes(serviceName)) {
const index = jsonData.service.indexOf(serviceName);
return jsonData.online[index] ? "Online" : "Offline";
} else {
return "Service name not found";
}
} catch (error) {
console.error("Error fetching API status:", error);
return "Failed to fetch API status";
}
}
// Checking the status of Historical Data API and Real-time Data API
async function checkStatuses() {
const historicalStatus = await checkApiStatus(historicalDataApiName);
const realTimeStatus = await checkApiStatus(realTimeDataApiName);
console.log(`Historical Data API: ${historicalStatus}`);
console.log(`Real-time Data API: ${realTimeStatus}`);
}
checkStatuses();
# Importing the required library
import requests
# URL to the new JSON data
url = "https://api.marketdata.app/status/"
json_data = requests.get(url).json()
# Service names for Historical Data API and Real-time Data API
historical_data_api_name = "Historical Data API"
real_time_data_api_name = "Real-time Data API"
# Function to check the status of the given service name
def check_api_status(service_name):
if service_name in json_data["service"]:
index = json_data["service"].index(service_name)
return "Online" if json_data["online"][index] else "Offline"
else:
return "Service name not found"
# Checking the status of Historical Data API and Real-time Data API
historical_status = check_api_status(historical_data_api_name)
real_time_status = check_api_status(real_time_data_api_name)
print(f"Historical Data API: {historical_status}")
print(f"Real-time Data API: {real_time_status}")
What To Do During Downtime
It is not necessary to advise us of downtime or service outages. We monitor the status of our systems and we investigate and respond to all service outages. During Market Data service outages, we encourage you to switch your systems over to your back-up provider until our systems come back online.