Concurrent Requests
This is a guide to making concurrent requests for this REST API. Concurrency is account-wide and set by your highest subscription tier across asset classes. Holding subscriptions in multiple asset classes does not stack — additional subscriptions add data scope, not throughput. Your requests are NOT rate-limited in any way, but the number of concurrent requests is limited.
The table below describes the number of concurrent requests by subscription tier.
| Subscription Tier | Concurrent Requests (account-wide, shared across all endpoints) |
|---|---|
| FREE | 1 |
| VALUE | 2 |
| STANDARD | 4 |
| PRO | 8 |
Standard stocks + Pro options + Free indices + Free rates → highest tier is Pro → 8 concurrent, shared across every endpoint. Standard stocks does not contribute 4 extra stock-only slots; Pro options does not contribute 8 extra option-only slots. Need more? Contact sales.
You can make more requests than the number listed in the table above; however, they will be queued. The default queue size is 16, but can be configured up to 128. If the queue grows beyond its specified size, you may receive a 429 response from the server.
What are Concurrent Requests?
Making multiple requests at the same time instead of waiting for a response for each request sequentially. This will improve performance since a large part of a request's overhead can be the round trip between your computer and our servers. If it takes 100ms to get back a response from Theta Data due to your network, then 100ms per request is being wasted waiting for a response. If you make multiple requests at the same time, but staying within your limits, this overhead is eliminated.
Programming Considerations
You will need to be familiar with concurrency and multithreadding in the programming language you use. The best way to ensure you are not making more requests than your allowed number, is to leverage a semaphore.