Stock Market API StockMarketClock

Full Access to Stock Market Holidays API

Integrate our Stock Market Holiday API into your website or application. Know ahead of time when markets are closed in order to plan trades, predict market trends, and avoid submitting trades when markets are closed.

Our data is collected 100% from primary sources by a dedicated team of researchers working year-round. Database updates are available immediately through the API as soon as changes are made.

Request a Quote

Real-Time Stock Market Trading Hours API

Timely information is the key to successful trading and that begins with knowing exactly when markets are open around the world.

The StockMarketClock API that powers this site is now available for use in your project. StockMarketClock offers a simple RESTful API that can be easily integrated into your new or existing trading tools. Our API is built using industry standard best practices which allows you to use the API with existing tools like AJAX, cURL, or your programming language of choice.

This API only tells you the current status if a market—whether it is open or closed. For holiday information ahead of time, check out our Stock Market Holiday API above.

Monthly Subscription

Full Access to the API
Flexible monthly subscription

19.99 / mo

Start 7-Day Trial

Yearly Subscription

Full access to the API
Simple yearly subscription

$199.00 / yr (Save 20%)

Get Access Now

Instant access, 100% money-back guarantee, and cancel at anytime.

Secure Stripe Payment Processing

  • Provides accurate opening and closing time for 70+ stock exchanges
  • Immediately get your API key with a 100% money-back guarantee
  • All holiday closures and special hours are taken into account
  • Please contact us to inquire about receiving additional data or other special requests


There are two endpoints available

First is the list endpoint which enumerates all available stock exchanges:
    "results": [

Second is the status endpoint which returns the real-time stock exchange open/closed status:,jpx
    "results": {
        "nyse": {
            "name": "New York Stock Exchange",
            "status": "closed",
            "reason": null,
            "until": "Tue, 19 Mar 2019 13:30:00 +0000",
            "timezone": "America/New_York"
        "jpx": {
            "name": "Tokyo Stock Exchange",
            "status": "closed",
            "reason": null,
            "until": "Wed, 20 Mar 2019 00:00:00 +0000",
            "timezone": "Asia/Tokyo"

Code Examples


$endpoint  = '';
$markets   = ["nyse", "jpx"];
$api_token = "YourApiKeyHere";

// Please follow proper format for your user agent
$userAgent = "UserAgentForYourScript/1.0";

$curl = curl_init($endpoint);
$curl_post_data = [
    'exchange'  => join(",", $markets),
    'api_token' => $api_token,
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $curl_post_data);
curl_setopt($curl, CURLOPT_USERAGENT, $user_agent);

$curl_response = curl_exec($curl);
if ($curl_response === false) {
    $info = curl_getinfo($curl);
    die('error occurred during curl exec. Additional info: ' . var_dump($info));
$decoded = json_decode($curl_response, true);
if (isset($decoded->response->status) && $decoded->response->status == 'ERROR') {
    die('error occurred: ' . $decoded->response->errormessage);

import urllib
from urllib2 import Request, urlopen, URLError

# Please follow proper format for your user agent

request = Request('', headers={'User-Agent' : "UserAgentForYourScript/1.0"})
data = urllib.urlencode({
	'exchange': 'nyse,jpx',
	'api_token': 'YourApiKeyHere'

	response = urlopen(request,data)
	results =
	print results
except URLError, e:
	print 'There was an error:', e
import urllib.request, urllib.parse, urllib.error
from urllib.request import Request, urlopen
from urllib.error import URLError

# Please follow proper format for your user agent

request = Request('', headers={'User-Agent' : "UserAgentForYourScript/1.0"})
data = urllib.parse.urlencode({
	'exchange': 'nyse,jpx',
	'api_token': 'YourApiKeyHere'

	response = urlopen(request,data)
	results =
except URLError as e:
	print('There was an error:', e)

Looking for a different language? Contact us.

Frequently Asked Questions

Is there a Rate Limit?

In order to ensure the availability of this API for all customers, we implement a rate limiting scheme that prevents high bursts of traffic. Users are limited to 1,000 requests per minute. This should be more than enough for any application, but if you need more requests for any reason, please contact us.

How will I receive my API key?

After subscribing you will be able to login to manage you account. In your account settings API you will be able to set up an API key.

I'm not sure how to use the API

We are here to help. If you need help integrating the API into your application, contact us for a free consultation.

Disclaimer and Terms

Please read the terms and conditions for a description of the data included and the disclaimer of liability. We provide this data on an as-is basis, and while we take all measures to ensure accuracy and completion we cannot be held liable for the contents of the data provided. We provide a 100% money-back guarantee if you are dissatisfied with your order for any reason.