Please enable JavaScript in order to get the most from this website.

Introduction

You can use our data services from the website through dowloadable links or in your own application by means of API requests. Logged-in users can browse to dedicated pages, use visualization tools and download data. For example you can visit the Instruments page, choose an instrument and explore End-Of-Day, Intraday, Indicators or Options Chains data. On the other hand you can build your own application and interact with our data services through API requests.
This documentation will help you explore our exposed endpoints and give you specific details about their usage. We strive to make it as simple and legible as possible. Feel free to contact us should you experience any issue using it.

Global Specifications

API base url: https://tallacoptions.com/api

Additional segments and parameters are appended to the base url according to the topic of your request. Parameters appear in curly braces. A table gives type, format and description details for each parameter.
When the request succeeds, a response message is returned with data in the content and additional information in the header. The supported data formats include CSV, JSON, XML and BSON. You can set the desired content type in the header when issuing requests. Failed requests return error messages with specific details.
Examples are given throughout this documentation for illustrative purpose.

Topics

Different topics are covered. Some of them are purely informational and don't require any authentication or authorization. Others are subject to restrictions as they require authentication and access rights.
This documentation is organized topic-wise and will go through a list of topics that we deem relevant.

Authentication

You use our APIs by submitting requests to our exposed endpoints. Some API requests need to include a security token for authentication purpose. Registered users are assigned an API key they can use to generate these tokens.
Logged-in users can omit the authentication token or API key when they initiate a request from their browser.
Explore the Tokens topic to see how you can generate them and authenticate your requests.

Authorization

Access to our different data services is granted depending on your account profile. You have a set of basic data accesses attached to your account by default to let you explore our services. You can extend your data access rights depending on your needs. See the different user profiles for information about data access levels.

Availability

Data availability highly depends on the instrument and the type of data you are searching for. We update our database on a regular basis with new and past data. You can obtain extensive information from the instrument's details page. You can also refer to the Instruments section to see how to obtain the information through API requests.

Restrictions

In order to provide our users with quality services, we take action to prevent abuses of any kind. As such, restrictions about the number of requests allowed within a period of time may apply.

Introduction

You use security tokens to send requests to endpoints that require authentication. Tokens are generated with your API key. By default they are usable only once and expire 2 minutes after they've been generated. So generate them when you are all set and ready to hit the endpoint that requires the token. Logged-in users don't need authentication tokens when they initiate requests from their browser. Your API key is accessible from the Settings section of your Account.
For obvious security reasons, keep it secret and only use it with requests that are submitted server-side. Change it if you feel that it's secrecy has been compromised.

Endpoint

Send a GET request to the following endpoint:

https://www.tallacoptions.com/api/tokens/generate/{apiKey}

Parameters

Parameter Type Format Description
apiKey* String GUID User's API key. Can be found in your account settings.
*Logged-in users can leave out the apiKey parameter when they send the request from their browser.

Response

Returns a JSON object with the following properties:

Property Type Format Description
Key String GUID The generated token.
Issued DateTime ISO The token's creation time.
Expiry DateTime ISO The token's expiry time.

Errors

The following errors might arise:

                                    
                                        Unauthenticated request
                                        {
                                        "Status":"Forbidden",
                                        "Message":"Could not authenticate request!"
                                        }

                                        Missing or Invalid API Key
                                        {
                                        "Status":"Forbidden",
                                        "Message":"Invalid API Key!"
                                        }

                                        Internal server error
                                        {
                                            "Status":"InternalServerError",
                                            "Message":"An internal server error occurred."
                                        }
                                    
                                

Example

Request

You generate a temporary token using your API key. The one we use in this example is only for illustration and is not functional. Replace it with your own API key.

https://www.tallacoptions.com/api/tokens/generate/7e7e6703-d9f1-4f14-936b-1184781d8003

Response

A JSON object with the aforementioned properties is returned. The token key can be used before it's expiry time in order to authenticate a subsequent request.

                                        
                                            {
                                            "Key":"848199a4-6ff9-4387-906e-3a2ba34a7a3a",
                                            "Issued":"2019-06-29T01:34:19.0294764Z",
                                            "Expiry":"2019-06-29T01:36:19.0294764Z"
                                            }
                                        
                                    

Introduction

We expose the following endpoints to provide extensive information about available instruments and instrument categories.
No authentication or authorization is needed for these endpoints.
Please note that it is crucial to know some details about an instrument in order to make successful data requests.

Introduction

End-Of-Day data can be obtained for available instruments over a period ranging from a start-date to an end-date. The authorized period-range is restricted with regard to the user's access level. Requests for data beyond the authorized period range will be declined with an error message response. See the different user profiles for information about data access levels.

Endpoint

Send a GET request to the following endpoint:

https://www.tallacoptions.com/api/eod/quotes/{ticker}/{start}/{end}/{token}

Parameters

Parameter Type Format Description
ticker String None Instrument's ticker symbol.
start DateTime yyyy-MM-dd Period's start date.
end DateTime yyyy-MM-dd Period's end date.
token* String GUID Valid user-generated token.
*Logged-in users can leave out the token parameter when they send the request from their browser.

Response

Headers

The following additionnal HTTP Headers are included in the reponse:

Name Value
Description Instrument's description.
Caption Description of the response.
Access-Level User's access level.
Access-Right Rights associated to user's access level.
Content

A collection of objects with the following properties:

Property Type Format Description
Date DateTime ISO Quotation date.
Open Decimal Decimal Opening price.
High Decimal Decimal Highest price.
Low Decimal Decimal Lowest price.
Close Decimal Decimal Closing price.
Volume Integer Integer Cumulated Traded volume.
NetChange Decimal Decimal Net price change.
PercentChange Decimal Decimal Percent price change.
Remarks String String Any remarks about the trading session.

The objects can be serialized into CSV, XML, JSON and BSON formats.

Errors

The following errors might arise:

                                    

                                        Instrument Not Covered
                                        {
                                        "Status":"NotFound",
                                        "Message":"Instrument is not covered. See list of available instruments."
                                        }

                                        Not Found
                                        {
                                        "Status":"NotFound",
                                        "Message":"No Data Found! Check instrument's details for data availability."
                                        }

                                        Invalid Period Range
                                        {
                                        "Status":"BadRequest",
                                        "Message":"Start date must be equal to or precede End date."
                                        }

                                        Invalid Token
                                        {
                                        "Status":"Forbidden",
                                        "Message":"Invalid token!"
                                        }

                                        Expired Token
                                        {
                                        "Status":"Forbidden",
                                        "Message":"Token has expired!"
                                        }

                                        Token Already Used
                                        {
                                        "Status":"Forbidden",
                                        "Message":"Token already used!"
                                        }

                                        Unauthenticated Request
                                        {
                                        "Status":"Forbidden",
                                        "Message":"Anonymous request accepted only from browsers!"
                                        }

                                        Unsufficient Access
                                        {
                                        "Status":"Forbidden",
                                        "Message":"Your access doesn't cover the requested period range. Please see EOD data access scheme."
                                        }

                                        Access Denied
                                        {
                                        "Status":"Forbidden",
                                        "Message":"Restricted resource! Please See EOD data access scheme."
                                        }

                                        Internal server error
                                        {
                                            "Status":"InternalServerError",
                                            "Message":"An internal server error occurred."
                                        }
                                    
                                

Example

Request

You send a GET request for AAPL EOD data from September 28th 2018 to July 12th 2019 using a temporary token.
We assume that JSON content type is specified in the request header.

https://www.tallacoptions.com/api/eod/quotes/aapl/2018-09-28/2019-07-12/848199a4-6ff9-4387-906e-3a2ba34a7a3a

Response

Headers
Name Value
Description Apple Inc.
Caption AAPL Daily Quotes From 2018-09-28 To 2019-07-12 - www.TallacOptions.com
Acces-Level Default
Acces-Right Default access-level users can access Stock EOD data for the past 2 year(s).
Content

A collection of JSON objects with the above mentioned properties.

                                            
                                                [
                                                {
                                                "Date":"2019-07-12T00:00:00",
                                                "Open":202.45000,
                                                "High":204.00000,
                                                "Low":202.20000,
                                                "Close":203.30000,
                                                "Volume":17397728,
                                                "NetChange":1.55000,
                                                "PercentChange":0.0076827757125154894671623296,
                                                "Remarks":""                                    
                                                },
                                                ...
                                                ,{
                                                "Date":"2018-09-28T00:00:00",
                                                "Open":224.79000,
                                                "High":225.84000,
                                                "Low":224.02000,
                                                "Close":225.74000,
                                                "Volume":22888201,
                                                "NetChange":0.79000,
                                                "PercentChange":0.0035118915314514336519226495,
                                                "Remarks":""
                                                }
                                                ]
                                            
                                        

Introduction

We provide intraday data on all our available instruments. The frequencies range from 30 minutes to 1 second. You can access an instrument's intraday data on a trading date with a specific aggregation frequency. The instrument must be among the ones we cover and you need access rights covering the trading date and the frequency you choose.

Endpoint

Send a GET request to the following endpoint:

https://www.tallacoptions.com/api/intraday/quotes/{ticker}/{date}/{frequency}/{token}

Parameters

Parameter Type Format Description
ticker String None Instrument's ticker symbol.
date DateTime yyyy-MM-dd Trading date.
frequency Integer Integer Aggregation frequency (in seconds).
token* String GUID Valid user-generated token.
*Logged-in users can leave out the token parameter when they send the request from their browser.

Response

Headers

The following additionnal HTTP Headers are included in the reponse:

Name Value
Description Instrument's description.
Caption Description of the response.
Content

A collection of objects with the following properties:

Property Type Format Description
Time Time HH:mm:ss Quotation time.
Last Decimal Decimal Last quoted price.
Bid* Decimal Decimal Bid price.
Ask* Decimal Decimal Ask price.
Volume* Integer Integer Cumulated Traded volume.
* Bid, Ask and Volume fields apply for tradable instruments.

The objects can be serialized into CSV, XML, JSON and BSON formats.

Errors

The following errors might arise:

                                    

                                        Instrument Not Covered
                                        {
                                        "Status":"NotFound",
                                        "Message":"Instrument is not covered. See list of available instruments."
                                        }

                                        Not Found
                                        {
                                        "Status":"NotFound",
                                        "Message":"No Data Found! Check instrument's details for data availability."
                                        }

                                        Invalid Frequency
                                        {
                                        "Status":"BadRequest",
                                        "Message":"This frequency is not supported as a frequency value. See list of available frequencies."
                                        }

                                        Invalid Token
                                        {
                                        "Status":"Forbidden",
                                        "Message":"Invalid token!"
                                        }

                                        Expired Token
                                        {
                                        "Status":"Forbidden",
                                        "Message":"Token has expired!"
                                        }

                                        Token Already Used
                                        {
                                        "Status":"Forbidden",
                                        "Message":"Token already used!"
                                        }

                                        Unauthenticated Request
                                        {
                                        "Status":"Forbidden",
                                        "Message":"Anonymous request accepted only from browsers!"
                                        }

                                        Unsufficient Access Rights
                                        {
                                        "Status":"Forbidden",
                                        "Message":"Restricted resource! Your access rights do not cover this frequency!"
                                        }

                                        Access Denied
                                        {
                                        "Status":"Forbidden",
                                        "Message":"Restricted resource! Please See EOD data access scheme."
                                        }

                                        Internal server error
                                        {
                                            "Status":"InternalServerError",
                                            "Message":"An internal server error occurred."
                                        }
                                    
                                

Example

Request

You send a GET request for AAPL intraday data on January 2nd 2020 with a 1-min frequency.
We assume that JSON content type is specified in the request header.

https://www.tallacoptions.com/api/intraday/quotes/aapl/2020-01-02/60/ba5cdb19-dc36-4939-90ce-ad787657b07a

Response

Headers
Name Value
Description Apple Inc.
Caption AAPL Intraday Data On 2020-01-02 - www.TallacOptions.com
Content

A collection of JSON objects with the above mentioned properties.

                                            
                                                [
                                                {
                                                "Time":"16:00:00",
                                                "Last":300.35000,
                                                "Bid":300.47,
                                                "Ask":300.48,
                                                "Volume":32942947
                                                },
                                                ...
                                                ,{
                                                "Time":"09:30:00",
                                                "Last":296.24000,
                                                "Bid":296.24,
                                                "Ask":296.30,
                                                "Volume":560053
                                                }
                                                ]
                                            
                                        
Under Construction...