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


    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:

    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.
    Logged-in users can take advantage of Try It Out sections for a quick test.


    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.


    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.


    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.


    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.


    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.

    Community Support

    You can use our GitHub Support Page to raise issues you may encounter and also share your experience with other developers.


    You use security tokens to send requests to endpoints that require authentication. Tokens are generated with your API key and are usable only once before they expire. By default you can generate a single 2-minute token per request.
    Users with Premium or FullAccess privilege can generate multiple 5-minute tokens per request.
    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.


    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.


    End-Of-Day data can be obtained for available instruments over a period ranging from a start-date to an end-date.


    We provide intraday data for all our available instruments. The frequencies range from 5-minute 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.


    Send a GET request to the following endpoint:{ticker}/{date}/{frequency}/{token}


    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.



    The following additionnal HTTP Headers are included in the reponse:

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

    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.


    The following errors might arise:

                                            Instrument Not Covered
                                            "Message":"Instrument is not covered. See list of available instruments."
                                            Not Found
                                            "Message":"No Data Found! Check instrument's details for data availability."
                                            Invalid Frequency
                                            "Message":"This frequency is not supported as a frequency value. See list of available frequencies."
                                            Invalid Token
                                            "Message":"Invalid token!"
                                            Expired Token
                                            "Message":"Token has expired!"
                                            Token Already Used
                                            "Message":"Token already used!"
                                            Unauthenticated Request
                                            "Message":"Anonymous request accepted only from browsers!"
                                            Unsufficient Access Rights
                                            "Message":"Restricted resource! Your access rights do not cover this frequency!"
                                            Access Denied
                                            "Message":"Restricted resource! Please See EOD data access scheme."
                                            Internal server error
                                                "Message":"An internal server error occurred."



    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.


    Name Value
    Description Apple Inc.
    Caption AAPL Intraday Data On 2020-01-02 -

    A collection of JSON objects with the above mentioned properties.



    We provide options EOD data for regular options written on 100 shares of the underlying. We can accommodate for options intraday data upon request. You need to have specific access in order to successfully use the endpoints below. You can consider our diffferent plans or issue requests on instruments in our Free-Tier.


    We provide real-time data for stocks, indices and ETFs/ETNs through our TCP server. Follow the protocol below to connect your TCP client to the server, request and receive a real-time stock data feed.


    Connect to the host:

    Listen to the port: 6670

    A successfull connection will be greeted with the message "TallacOptions 6670\r\n".


    After successfully connecting to the server, send the ticker of the instrument you want appended with the '\n' character. You'll then receive a stream of length-prefixed messages containing live data for the instrument.

    Message Structure

    Each message is prepended with its length. The length's format is "4-byte signed little-endian" (i.e., "int" in C#).
    A message itself consists of data fields delimited by the '\0' character. The fields are sent in this order: Last, LastSize, Bid, BidSize, Ask, AskSize, Volume, Open, High and Low.


    Each TCP client can only handle one ticker. Once a client is connected and set to fetch data for a ticker, it cannot be modified to fetch data for another ticker. You can create multiple clients, each handling a different ticker.

    The server will drop a connection when it fails to send data to the client. Check the client's connectivity by sending a keep-alive message to the server and take action when the sending fails.
    After the live stream has started the client should only send keep-alive messages. The keep-alive message processing frequency is 30 seconds. The message should be maximum 10 characters long.
    The keep-alive message will be echoed with an empty message (length=0) by the server. So zero-length messages should be discarded from the normal data stream.


    A barebones sample for connecting to the server and streaming live data.

    A more complex example featuring keep-alive and reconnecting.