{"id":8111,"date":"2026-08-19T10:22:34","date_gmt":"2026-08-19T08:22:34","guid":{"rendered":"https:\/\/eodhd.com\/financial-apis\/?p=8111"},"modified":"2026-08-19T10:22:35","modified_gmt":"2026-08-19T08:22:35","slug":"tick-data-api-us-stock-market","status":"publish","type":"post","link":"https:\/\/eodhd.com\/financial-apis\/tick-data-api-us-stock-market","title":{"rendered":"Tick Data API: US Stock Market"},"content":{"rendered":"\n<p class=\"docs-content__text wp-block-paragraph\">The Tick Data API returns individual trades on the US equity market \u2014 one record per execution, with a millisecond timestamp, the price, the size, the venue that printed it and the sale conditions that qualify it. History reaches back to the first trading day of 2008, and the data covers every US venue rather than a single exchange feed.<\/p>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">Coverage spans approximately <strong>80,000 tickers<\/strong> \u2014 current and delisted companies alike \u2014 with <strong>16,000+ securities<\/strong> updated every trading day, and the archive now holds roughly <strong>10 terabytes<\/strong> of history in total. It keeps growing with every session added.<\/p>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">This is the raw material for market-microstructure work: measuring spreads and price impact, reconstructing the tape, backtesting at the execution level, and separating on-exchange prints from off-exchange ones. Note the response shape before you write a parser \u2014 ticks come back as <strong>parallel arrays<\/strong>, one array per field, not as a list of objects.<\/p>\n\n\n<!--TOC-->\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"docs-content__heading docs-content__heading--h2 wp-block-heading\" id=\"h-requesting-ticks\">Requesting ticks<\/h2>\n\n\n\n<p class=\"docs-content__text has-text-align-center wp-block-paragraph\">\n    <div class=\"test-drive\">\n        <div class=\"test-drive__heading\">\n            <svg width=\"24\" height=\"24\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                <use xlink:href=\"\/img\/icons\/blueIcon_sprite.svg#lightning\"><\/use>\n            <\/svg>\n            Test Drive with \"DEMO\" Key\n        <\/div>\n        <ol class=\"test-drive__list\">\n            <li class=\"test-drive__item\">\n                You can start with \"<strong>DEMO<\/strong>\" API key to test the data for a few tickers only:\n                <a href=\"\/financial-summary\/AAPL.US\" target=\"_blank\">AAPL.US<\/a>,\n                <a href=\"\/financial-summary\/TSLA.US\" target=\"_blank\">TSLA.US<\/a>,\n                <a href=\"\/financial-summary\/VTI.US\" target=\"_blank\">VTI.US<\/a>,\n                <a href=\"\/financial-summary\/AMZN.US\" target=\"_blank\">AMZN.US<\/a>,\n                <a href=\"\/financial-summary\/BTC-USD.CC\" target=\"_blank\">BTC-USD.CC<\/a>\n                and\n                <a href=\"\/financial-summary\/EURUSD.FOREX\" target=\"_blank\">EURUSD.FOREX<\/a>.\n                For these tickers,\n                <a href=\"\/financial-apis\/\">all of our types of data (APIs)<\/a>,\n                including\n                <a href=\"\/financial-apis\/new-real-time-data-api-websockets\/\" target=\"_blank\">Real-Time Data<\/a>,\n                are available without limitations.\n            <\/li>\n            <li class=\"test-drive__item\">\n                Register <strong>for the free plan<\/strong> to receive your API key (limited to 20 API calls per day) with access to\n                <a href=\"\/financial-apis\/api-for-historical-data-and-volumes\/\" target=\"_blank\">End-Of-Day Historical Stock Market Data API<\/a>\n                for any ticker, but within the past year only. Plus a\n                <a href=\"\/financial-apis\/exchanges-api-list-of-tickers-and-trading-hours\/#Get_List_of_Tickers_Exchange_Symbols\" target=\"_blank\">List of tickers per Exchange<\/a>\n                is available.\n            <\/li>\n            <li class=\"test-drive__item\">\n                We recommend to explore\n                <a href=\"\/pricing\">our plans<\/a>,\n                <strong>starting from $19.99<\/strong>, to access the necessary type of data without limitations.\n            <\/li>\n        <\/ol>\n    <\/div>\n<\/p>\n\n\n<div class=\"code-block\">\n<pre class=\"docs-content__code-block wp-block-code\"><code>https:\/\/eodhd.com\/api\/ticks\/?s=AAPL&amp;from=1694455200&amp;to=1694541600&amp;limit=1000&amp;api_token=YOUR_API_TOKEN&amp;fmt=json<\/code><\/pre>\n<\/div>\n\n\n<h4 class=\"docs-content__heading docs-content__heading--h4 wp-block-heading\" id=\"h-parameters\">Parameters<\/h4>\n\n\n<div class=\"docs-parameters\">\n    \n<div class=\"docs-parameters__item\">\n    <div class=\"docs-parameters__name\">\n                    <code class=\"docs-parameters__ident\">api_token<\/code>\n        \n                    <span class=\"docs-parameters__type\">string<\/span>\n        \n        <span class=\"docs-parameters__badge docs-parameters__badge--required\">\n            required        <\/span>\n    <\/div>\n\n    <div class=\"docs-parameters__desc\">\n        <span class=\"docs-parameters__desc-text\">Your EODHD API token<\/span>\n            <\/div>\n<\/div>\n\n\n<div class=\"docs-parameters__item\">\n    <div class=\"docs-parameters__name\">\n                    <code class=\"docs-parameters__ident\">s<\/code>\n        \n                    <span class=\"docs-parameters__type\">string<\/span>\n        \n        <span class=\"docs-parameters__badge docs-parameters__badge--optional\">\n            optional        <\/span>\n    <\/div>\n\n    <div class=\"docs-parameters__desc\">\n        <span class=\"docs-parameters__desc-text\">Ticker symbol, with or without the exchange suffix \u2014 AAPL and AAPL.US are equivalent. US equities only; a non-US symbol returns HTTP 404. Omitting the parameter silently falls back to AAPL, so always pass it<\/span>\n            <\/div>\n<\/div>\n\n\n<div class=\"docs-parameters__item\">\n    <div class=\"docs-parameters__name\">\n                    <code class=\"docs-parameters__ident\">from<\/code>\n        \n                    <span class=\"docs-parameters__type\">integer<\/span>\n        \n        <span class=\"docs-parameters__badge docs-parameters__badge--optional\">\n            optional        <\/span>\n    <\/div>\n\n    <div class=\"docs-parameters__desc\">\n        <span class=\"docs-parameters__desc-text\">Start of the window as a UNIX timestamp in seconds, UTC. For example 1694455200 is 2023-09-11 18:00:00 UTC<\/span>\n            <\/div>\n<\/div>\n\n\n<div class=\"docs-parameters__item\">\n    <div class=\"docs-parameters__name\">\n                    <code class=\"docs-parameters__ident\">to<\/code>\n        \n                    <span class=\"docs-parameters__type\">integer<\/span>\n        \n        <span class=\"docs-parameters__badge docs-parameters__badge--optional\">\n            optional        <\/span>\n    <\/div>\n\n    <div class=\"docs-parameters__desc\">\n        <span class=\"docs-parameters__desc-text\">End of the window as a UNIX timestamp in seconds, UTC. For example 1694541600 is 2023-09-12 18:00:00 UTC<\/span>\n            <\/div>\n<\/div>\n\n\n<div class=\"docs-parameters__item\">\n    <div class=\"docs-parameters__name\">\n                    <code class=\"docs-parameters__ident\">limit<\/code>\n        \n                    <span class=\"docs-parameters__type\">integer<\/span>\n        \n        <span class=\"docs-parameters__badge docs-parameters__badge--optional\">\n            optional        <\/span>\n    <\/div>\n\n    <div class=\"docs-parameters__desc\">\n        <span class=\"docs-parameters__desc-text\">Maximum number of ticks to return. When passed it must be between 1 and 10000 \u2014 anything outside that range, including 0, returns HTTP 422. When omitted there is no cap at all and the entire window is returned<\/span>\n                    <span class=\"docs-parameters__default\"><em>(Default: no limit, Range: 1-10000)<\/em><\/span>\n            <\/div>\n<\/div>\n\n\n<div class=\"docs-parameters__item\">\n    <div class=\"docs-parameters__name\">\n                    <code class=\"docs-parameters__ident\">fmt<\/code>\n        \n                    <span class=\"docs-parameters__type\">enum<\/span>\n        \n        <span class=\"docs-parameters__badge docs-parameters__badge--optional\">\n            optional        <\/span>\n    <\/div>\n\n    <div class=\"docs-parameters__desc\">\n        <span class=\"docs-parameters__desc-text\">Response format. Only json is supported \u2014 fmt=csv is accepted and ignored<\/span>\n                    <span class=\"docs-parameters__default\"><em>(Default: json)<\/em><\/span>\n            <\/div>\n<\/div>\n\n<\/div>\n\n\n    <div class=\"admonition admonition--warning\">\n        <span class=\"admonition__icon\" aria-hidden=\"true\"><svg viewBox=\"0 0 20 20\" fill=\"currentColor\" width=\"20\" height=\"20\"><path fill-rule=\"evenodd\" d=\"M8.485 2.495c.673-1.167 2.357-1.167 3.03 0l6.28 10.875c.673 1.167-.17 2.625-1.516 2.625H3.72c-1.347 0-2.189-1.458-1.515-2.625l6.28-10.875zM10 6a1 1 0 011 1v3a1 1 0 11-2 0V7a1 1 0 011-1zm0 8a1 1 0 100-2 1 1 0 000 2z\"\/><\/svg><\/span>\n        <div class=\"admonition__body\">\n\n<p class=\"docs-content__text wp-block-paragraph\">Two units in one endpoint: from and to are UNIX timestamps in <strong>seconds<\/strong>, UTC, while the ts field in the response is in <strong>milliseconds<\/strong>. Divide by 1000 before feeding a returned timestamp back into a query. Always pass both bounds explicitly \u2014 when they are omitted the endpoint falls back to yesterday, and on a non-trading day that fallback returns HTTP 404.<\/p>\n\n<\/div>\n    <\/div>\n    \n\n    <div class=\"admonition admonition--tip\">\n        <span class=\"admonition__icon\" aria-hidden=\"true\"><svg viewBox=\"0 0 20 20\" fill=\"currentColor\" width=\"20\" height=\"20\"><path fill-rule=\"evenodd\" d=\"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z\"\/><\/svg><\/span>\n        <div class=\"admonition__body\">\n\n<p class=\"docs-content__text wp-block-paragraph\">The 10,000 ceiling applies only when you pass limit \u2014 omitting it removes the cap entirely. The full AAPL session of 11 September 2023 comes back as <strong>722,444 ticks in a 33 MB response<\/strong>, and it still costs one API call however large it is. Decide deliberately which you want.<\/p>\n\n<\/div>\n    <\/div>\n    \n\n\n<p class=\"docs-content__text wp-block-paragraph\">To walk a long window in slices, page on <strong>seq<\/strong> rather than on time \u2014 but scope the paging to one trading day. seq is unique and strictly increasing <em>within<\/em> a session and resets at the start of the next one: in a single response spanning two sessions it drops from 511,729,487 back to 65,050, and 32 ticks end up sharing a seq with a trade from the other day. Time is no better as a cursor, because ts repeats \u2014 56% of the ticks in that AAPL session share a millisecond with another trade.<\/p>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">Both bounds are inclusive, and they are compared in milliseconds: a tick is returned when from \u00d7 1000 \u2264 ts \u2264 to \u00d7 1000. Two consequences worth knowing. A request where from equals to matches only trades landing on that exact millisecond, so in practice it comes back empty. And two adjacent slices that share a boundary second both contain the trades printed in that second \u2014 advance from by one second, or de-duplicate on seq within the day.<\/p>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">Results arrive in time order: ts never decreases through a response, though it does repeat, while seq strictly increases within a session. An empty window is not an error \u2014 it returns HTTP 200, and the body is either the usual object with seven empty arrays or a bare empty JSON array, so accept both shapes. HTTP 404 means something else: an unknown symbol, a non-US symbol, a delisted symbol that falls outside tick coverage, or the yesterday fallback described above. And whatever you pass in fmt, the response is JSON.<\/p>\n\n\n\n<h4 class=\"docs-content__heading docs-content__heading--h4 wp-block-heading\" id=\"h-request-example\">Request Example<\/h4>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">    <div class=\"api-key\" data-feed=\"Tick Data\">\n                <div class=\"api-key__topbar\">\n            <div class=\"api-key__tablist\" role=\"tablist\">\n                                                                        <button\n                        class=\"api-key__tab api-key__tab--active\"\n                        type=\"button\"\n                        role=\"tab\"\n                        data-tab=\"url\"                    >URL<\/button>\n                                                                            <button\n                        class=\"api-key__tab\"\n                        type=\"button\"\n                        role=\"tab\"\n                        data-tab=\"curl\"                    >cURL<\/button>\n                                                                            <button\n                        class=\"api-key__tab\"\n                        type=\"button\"\n                        role=\"tab\"\n                        data-tab=\"php\"                    >PHP<\/button>\n                                                                            <button\n                        class=\"api-key__tab\"\n                        type=\"button\"\n                        role=\"tab\"\n                        data-tab=\"python\"                    >Python<\/button>\n                                                                            <button\n                        class=\"api-key__tab\"\n                        type=\"button\"\n                        role=\"tab\"\n                        data-tab=\"r\"                    >R<\/button>\n                                                                            <button\n                        class=\"api-key__tab\"\n                        type=\"button\"\n                        role=\"tab\"\n                        data-tab=\"chatgpt\" data-actions=\"false\"                    >Chat GPT<\/button>\n                                                <\/div>\n            <div class=\"api-key__actions\">\n                <button class=\"api-key__btn api-key__btn--copy\" type=\"button\" aria-label=\"Copy\">\n                    <svg viewBox=\"0 0 20 20\" width=\"18\" height=\"18\" class=\"api-key__btn-icon api-key__btn-icon--default\"><use xlink:href=\"\/img\/icons\/copy.svg#copy\"\/><\/svg>\n                    <img decoding=\"async\" class=\"api-key__btn-icon api-key__btn-icon--success\" src=\"\/img\/approve_ico.svg\" alt=\"\" width=\"14\" height=\"14\" loading=\"eager\">\n                <\/button>\n                <button class=\"api-key__btn api-key__btn--view\" type=\"button\" aria-label=\"Open in new tab\" data-url=\"https:\/\/eodhd.com\/api\/ticks\/?s=AAPL&amp;from=1694455200&amp;to=1694541600&amp;limit=5&amp;api_token=demo&amp;fmt=json\">\n                    <svg viewBox=\"0 0 20 21\" width=\"18\" height=\"18\"><use xlink:href=\"\/img\/icons\/openLink.svg#openLink\"\/><\/svg>\n                <\/button>\n            <\/div>\n        <\/div>\n        \n        <div class=\"api-key__panels\">\n                                                                        <div class=\"api-key__panel api-key__panel--active\" data-panel=\"url\">\n                                            <pre class=\"api-key__code\"><code>https:\/\/eodhd.com\/api\/ticks\/?<span class='white bold'>s<\/span>=<span class='orange bold s'>AAPL<\/span>&<span class='white bold'>from<\/span>=<span class='orange bold from'>1694455200<\/span>&<span class='white bold'>to<\/span>=<span class='orange bold to'>1694541600<\/span>&<span class='white bold'>limit<\/span>=<span class='orange bold limit'>5<\/span>&<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>demo<\/span>&<span class='white bold'>fmt<\/span>=<span class='orange bold fmt'>json<\/span><\/code><\/pre>\n                        <div class=\"api-key__register\">(<a href=\"\/register\">Sign up<\/a> for free to get an API token)<\/div>\n                                    <\/div>\n                                                                            <div class=\"api-key__panel\" data-panel=\"curl\">\n                                                                    <pre class=\"api-key__code\"><code>curl --location &quot;https:\/\/eodhd.com\/api\/ticks\/?<span class='white bold'>s<\/span>=<span class='orange bold s'>AAPL<\/span>&<span class='white bold'>from<\/span>=<span class='orange bold from'>1694455200<\/span>&<span class='white bold'>to<\/span>=<span class='orange bold to'>1694541600<\/span>&<span class='white bold'>limit<\/span>=<span class='orange bold limit'>5<\/span>&<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>demo<\/span>&<span class='white bold'>fmt<\/span>=<span class='orange bold fmt'>json<\/span>&quot;<\/code><\/pre>\n                        <div class=\"api-key__register\">(<a href=\"\/register\">Sign up<\/a> for free to get an API token)<\/div>\n                                    <\/div>\n                                                                            <div class=\"api-key__panel\" data-panel=\"php\">\n                                                                    <pre class=\"api-key__code\"><code>$curl = curl_init();\n\ncurl_setopt_array($curl, array(\n    CURLOPT_URL =&gt; &#039;https:\/\/eodhd.com\/api\/ticks\/?<span class='white bold'>s<\/span>=<span class='orange bold s'>AAPL<\/span>&<span class='white bold'>from<\/span>=<span class='orange bold from'>1694455200<\/span>&<span class='white bold'>to<\/span>=<span class='orange bold to'>1694541600<\/span>&<span class='white bold'>limit<\/span>=<span class='orange bold limit'>5<\/span>&<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>demo<\/span>&<span class='white bold'>fmt<\/span>=<span class='orange bold fmt'>json<\/span>&#039;,\n    CURLOPT_RETURNTRANSFER =&gt; true,\n    CURLOPT_ENCODING =&gt; &#039;&#039;,\n    CURLOPT_MAXREDIRS =&gt; 10,\n    CURLOPT_TIMEOUT =&gt; 0,\n    CURLOPT_FOLLOWLOCATION =&gt; true,\n    CURLOPT_HTTP_VERSION =&gt; CURL_HTTP_VERSION_1_1,\n    CURLOPT_CUSTOMREQUEST =&gt; &#039;GET&#039;,\n));\n\n$data = curl_exec($curl);\ncurl_close($curl);\n\ntry {\n    $data = json_decode($data, true, 512, JSON_THROW_ON_ERROR);\n    var_dump($data);\n} catch (Exception $e) {\n    echo &#039;Error. &#039;.$e-&gt;getMessage();\n}<\/code><\/pre>\n                        <div class=\"api-key__register\">(<a href=\"\/register\">Sign up<\/a> for free to get an API token)<\/div>\n                                    <\/div>\n                                                                            <div class=\"api-key__panel\" data-panel=\"python\">\n                                                                    <pre class=\"api-key__code\"><code>import requests\n\nurl = f&#039;https:\/\/eodhd.com\/api\/ticks\/?<span class='white bold'>s<\/span>=<span class='orange bold s'>AAPL<\/span>&<span class='white bold'>from<\/span>=<span class='orange bold from'>1694455200<\/span>&<span class='white bold'>to<\/span>=<span class='orange bold to'>1694541600<\/span>&<span class='white bold'>limit<\/span>=<span class='orange bold limit'>5<\/span>&<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>demo<\/span>&<span class='white bold'>fmt<\/span>=<span class='orange bold fmt'>json<\/span>&#039;\ndata = requests.get(url).json()\n\nprint(data)<\/code><\/pre>\n                        <div class=\"api-key__register\">(<a href=\"\/register\">Sign up<\/a> for free to get an API token)<\/div>\n                                    <\/div>\n                                                                            <div class=\"api-key__panel\" data-panel=\"r\">\n                                                                    <pre class=\"api-key__code\"><code>library(httr)\nlibrary(jsonlite)\n\nurl &lt;- &#039;https:\/\/eodhd.com\/api\/ticks\/?<span class='white bold'>s<\/span>=<span class='orange bold s'>AAPL<\/span>&<span class='white bold'>from<\/span>=<span class='orange bold from'>1694455200<\/span>&<span class='white bold'>to<\/span>=<span class='orange bold to'>1694541600<\/span>&<span class='white bold'>limit<\/span>=<span class='orange bold limit'>5<\/span>&<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>demo<\/span>&<span class='white bold'>fmt<\/span>=<span class='orange bold fmt'>json<\/span>&#039;\nresponse &lt;- GET(url)\n\nif (http_type(response) == &quot;application\/json&quot;) {\n    content &lt;- content(response, &quot;text&quot;, encoding = &quot;UTF-8&quot;)\n    cat(content)\n} else {\n    cat(&quot;Error while receiving data\\n&quot;)\n}<\/code><\/pre>\n                        <div class=\"api-key__register\">(<a href=\"\/register\">Sign up<\/a> for free to get an API token)<\/div>\n                                    <\/div>\n                                                                            <div class=\"api-key__panel\" data-panel=\"chatgpt\">\n                                            <div class=\"api-key__chatgpt\">\n                            New to coding? Our ChatGPT assistant can generate code in any language tailored to our API.\n                            Simply describe how you want to use our data, and get a working piece of code.\n                            Don&rsquo;t forget to replace the API token with your own.<br><br>\n                            <a href=\"\/lp\/eodhd-chatgpt\" target=\"_blank\">Try it now (it's free)!<\/a><br><br>\n                            <a href=\"https:\/\/www.youtube.com\/watch?v=QVWiLukag7o\" rel=\"nofollow\" target=\"_blank\">\n                                How to use it (YouTube)\n                            <\/a>\n                        <\/div>\n                                    <\/div>\n                                    <\/div>\n    <\/div>\n    <\/p>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">The <strong>demo<\/strong> token covers a limited set of tickers \u2014 AAPL, MSFT, TSLA and AMZN all respond \u2014 and returns HTTP 403 for anything outside it, GOOGL and SPY included. Use your own token for anything beyond a first look.<\/p>\n\n\n\n<h4 class=\"docs-content__heading docs-content__heading--h4 wp-block-heading\" id=\"h-response-example\">Response Example<\/h4>\n\n\n<div class=\"code-block\">\n<pre class=\"docs-content__code-block wp-block-code\"><code>{\n    \"mkt\": [\"V\", \"V\", \"Q\", \"Q\", \"H\"],\n    \"price\": [179.25, 179.25, 179.25, 179.25, 179.25],\n    \"seq\": [376150475, 376150494, 376151129, 376151173, 376153538],\n    \"shares\": [100, 100, 100, 32, 9],\n    \"sl\": [\"@   \", \"@   \", \"@F  \", \"@F I\", \"@F I\"],\n    \"sub_mkt\": [\"\", \"\", \"\", \"\", \"\"],\n    \"ts\": [1694455200017, 1694455200017, 1694455200017, 1694455200017, 1694455200023]\n}<\/code><\/pre>\n<\/div>\n\n\n<p class=\"docs-content__text wp-block-paragraph\">Every array has the same length and the same ordering, so tick <em>n<\/em> is the combination of index <em>n<\/em> across all seven arrays. The first tick above is 100 shares at 179.25 on venue V, a regular sale with no qualifiers. Two details are visible straight away: the first four trades all carry the same millisecond, and the fourth and fifth are odd lots \u2014 32 and 9 shares \u2014 which is what the trailing I in sl marks.<\/p>\n\n\n\n<h4 class=\"docs-content__heading docs-content__heading--h4 wp-block-heading\" id=\"h-response-fields\">Response Fields<\/h4>\n\n\n\n<figure class=\"docs-content__table-wrap wp-block-table\"><table><thead><tr><th>Field<\/th><th>Type<\/th><th>Description<\/th><\/tr><\/thead><tbody>\n<tr><td>ts<\/td><td>integer<\/td><td>Trade timestamp, milliseconds since the UNIX epoch, UTC<\/td><\/tr>\n<tr><td>price<\/td><td>number<\/td><td>Execution price<\/td><\/tr>\n<tr><td>shares<\/td><td>integer<\/td><td>Size of the trade in shares. Sizes below 100 are odd lots and are flagged with I in sl<\/td><\/tr>\n<tr><td>mkt<\/td><td>string<\/td><td>Venue that reported the trade, as a single-character participant code \u2014 see the table below<\/td><\/tr>\n<tr><td>sub_mkt<\/td><td>string<\/td><td>Reporting facility, filled in exactly when mkt is D and empty for every on-exchange print<\/td><\/tr>\n<tr><td>sl<\/td><td>string<\/td><td>Sale conditions \u2014 a fixed-width four-position field holding several codes at once, not a single code. Spaces are meaningful padding. See the section below<\/td><\/tr>\n<tr><td>seq<\/td><td>integer<\/td><td>Trade sequence number \u2014 unique and strictly increasing within a trading session, and reset at the start of the next one. The right cursor for paging inside a single day, but not unique across days<\/td><\/tr>\n<\/tbody><\/table><\/figure>\n\n\n\n<p class=\"docs-content__text has-text-align-center wp-block-paragraph\"><a class=\"btn btn--orange\" href=\"https:\/\/eodhd.com\/register\"><span class='mb-text'>Sign up &amp; Get Data<\/span><\/a><\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"docs-content__heading docs-content__heading--h2 wp-block-heading\" id=\"h-sale-conditions-sl\">Sale conditions \u2014 the sl field<\/h2>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">This is the field most likely to break a parser. <strong>sl is not one code<\/strong> \u2014 it is a fixed-width string of four positions, and a single trade commonly carries several conditions at once. Each position holds a different family of codes:<\/p>\n\n\n\n<figure class=\"docs-content__table-wrap wp-block-table\"><table><thead><tr><th>Position<\/th><th>What it carries<\/th><th>Values seen in one full AAPL session<\/th><\/tr><\/thead><tbody>\n<tr><td>1<\/td><td>Trade type<\/td><td>@ regular sale on almost every print, plus C cash sale and N next day. It can also be blank \u2014 in 2008 history several hundred prints a day leave it empty<\/td><\/tr>\n<tr><td>2<\/td><td>Execution qualifier<\/td><td>Blank, F intermarket sweep, and the digits 4, 6 and 7<\/td><\/tr>\n<tr><td>3<\/td><td>Timing<\/td><td>Blank, T form T (outside regular hours), Z sold out of sequence<\/td><\/tr>\n<tr><td>4<\/td><td>Size and price qualifier<\/td><td>I odd lot, W average price, V contingent trade, P prior reference price, and occasionally Q, M and X<\/td><\/tr>\n<\/tbody><\/table><\/figure>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">The five most frequent values in that session, in order, were <strong>@&nbsp;&nbsp;I<\/strong> (regular sale, odd lot \u2014 412,430 prints), <strong>@<\/strong> alone (regular sale, no qualifiers \u2014 120,061), <strong>@F&nbsp;I<\/strong> (sweep and odd lot \u2014 84,916), <strong>@F<\/strong> (sweep \u2014 65,162) and <strong>@&nbsp;TI<\/strong> (outside regular hours, odd lot \u2014 18,671). Thirty-two distinct values appeared in the day in total.<\/p>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">Read each position independently and trim the padding rather than comparing the whole string, and keep values you cannot decode: the digits that turn up in position 2 are not in the code list below, which covers letters only. The individual letter codes are:<\/p>\n\n\n\n<figure class=\"docs-content__table-wrap wp-block-table\"><table><thead><tr><th>Code<\/th><th>Condition<\/th><th>Code<\/th><th>Condition<\/th><\/tr><\/thead><tbody>\n<tr><td>@<\/td><td>Regular Sale<\/td><td>N<\/td><td>Next Day<\/td><\/tr>\n<tr><td>A<\/td><td>Acquisition<\/td><td>O<\/td><td>Opening Prints<\/td><\/tr>\n<tr><td>B<\/td><td>Bunched Trade<\/td><td>P<\/td><td>Prior Reference Price<\/td><\/tr>\n<tr><td>C<\/td><td>Cash Sale<\/td><td>Q<\/td><td>Market Center Official Open<\/td><\/tr>\n<tr><td>D<\/td><td>Distribution<\/td><td>R<\/td><td>Seller<\/td><\/tr>\n<tr><td>E<\/td><td>Placeholder<\/td><td>S<\/td><td>Split Trade<\/td><\/tr>\n<tr><td>F<\/td><td>Intermarket Sweep<\/td><td>T<\/td><td>Form T<\/td><\/tr>\n<tr><td>G<\/td><td>Bunched Sold Trade<\/td><td>U<\/td><td>Extended trading hours, sold out of sequence<\/td><\/tr>\n<tr><td>H<\/td><td>Price Variation Trade<\/td><td>V<\/td><td>Contingent Trade<\/td><\/tr>\n<tr><td>I<\/td><td>Odd Lot Trade<\/td><td>W<\/td><td>Average Price Trade<\/td><\/tr>\n<tr><td>K<\/td><td>Rule 155 Trade (AMEX)<\/td><td>X<\/td><td>Cross or Periodic Auction Trade<\/td><\/tr>\n<tr><td>L<\/td><td>Sold Last<\/td><td>Y<\/td><td>Yellow Flag Regular Trade<\/td><\/tr>\n<tr><td>M<\/td><td>Market Center Official Close<\/td><td>Z<\/td><td>Sold, out of sequence<\/td><\/tr>\n<\/tbody><\/table><\/figure>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"docs-content__heading docs-content__heading--h2 wp-block-heading\" id=\"h-market-codes-mkt\">Venue codes \u2014 the mkt field<\/h2>\n\n\n\n<figure class=\"docs-content__table-wrap wp-block-table\"><table><thead><tr><th>Code<\/th><th>Venue<\/th><th>Code<\/th><th>Venue<\/th><\/tr><\/thead><tbody>\n<tr><td>A<\/td><td>NYSE American, LLC<\/td><td>M<\/td><td>Chicago Stock Exchange<\/td><\/tr>\n<tr><td>B<\/td><td>NASDAQ BX, Inc.<\/td><td>N<\/td><td>New York Stock Exchange, LLC<\/td><\/tr>\n<tr><td>C<\/td><td>NYSE National, Inc.<\/td><td>P<\/td><td>NYSE Arca, Inc.<\/td><\/tr>\n<tr><td>D<\/td><td>FINRA Alternative Display Facility<\/td><td>Q<\/td><td>The NASDAQ Stock Market, LLC<\/td><\/tr>\n<tr><td>E<\/td><td>Market Independent<\/td><td>S<\/td><td>Consolidated Quotation System<\/td><\/tr>\n<tr><td>H<\/td><td>MIAX Exchange<\/td><td>T<\/td><td>The NASDAQ Stock Market, LLC<\/td><\/tr>\n<tr><td>I<\/td><td>International Securities Exchange<\/td><td>U<\/td><td>Members Exchange<\/td><\/tr>\n<tr><td>J<\/td><td>Cboe EDGA Exchange, Inc.<\/td><td>W<\/td><td>Cboe Stock Exchange<\/td><\/tr>\n<tr><td>K<\/td><td>Cboe EDGX Exchange, Inc.<\/td><td>X<\/td><td>NASDAQ PSX, Inc.<\/td><\/tr>\n<tr><td>L<\/td><td>Long-term Stock Exchange<\/td><td>Y<\/td><td>Cboe BYX Exchange, Inc.<\/td><\/tr>\n<tr><td>u<\/td><td>Other OTC Markets<\/td><td>Z<\/td><td>Cboe BZX Exchange, Inc.<\/td><\/tr>\n<\/tbody><\/table><\/figure>\n\n\n    <div class=\"admonition admonition--note\">\n        <span class=\"admonition__icon\" aria-hidden=\"true\"><svg viewBox=\"0 0 20 20\" fill=\"currentColor\" width=\"20\" height=\"20\"><path fill-rule=\"evenodd\" d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z\"\/><\/svg><\/span>\n        <div class=\"admonition__body\">\n\n<p class=\"docs-content__text wp-block-paragraph\">The list above is the published mapping and it is not exhaustive \u2014 V, for one, is absent from it and accounted for about 1% of prints in the AAPL session used throughout this page. Treat mkt as an opaque single character and keep codes you do not recognise rather than discarding those trades. Expect most volume to be reported off-exchange, too: code D was 57% of ticks in that session, more than every exchange combined, and every D row carries a reporting facility in sub_mkt.<\/p>\n\n<\/div>\n    <\/div>\n    \n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"docs-content__heading docs-content__heading--h2 wp-block-heading\" id=\"h-reporting-facility-codes\">Reporting facility \u2014 the sub_mkt field<\/h2>\n\n\n\n<figure class=\"docs-content__table-wrap wp-block-table\"><table><thead><tr><th>Code<\/th><th>Facility<\/th><\/tr><\/thead><tbody>\n<tr><td>(empty)<\/td><td>On-exchange print \u2014 mkt is not D, so no reporting facility is involved<\/td><\/tr>\n<tr><td>Q<\/td><td>FINRA\/Nasdaq Trade Reporting Facility, Carteret<\/td><\/tr>\n<tr><td>N<\/td><td>FINRA\/NYSE Trade Reporting Facility<\/td><\/tr>\n<tr><td>B<\/td><td>FINRA\/Nasdaq Trade Reporting Facility, Chicago<\/td><\/tr>\n<\/tbody><\/table><\/figure>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"docs-content__heading docs-content__heading--h2 wp-block-heading\" id=\"h-where-to-go-next\">Where to go next<\/h2>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">Tick data is the finest granularity we publish. One step coarser is the <a href=\"https:\/\/eodhd.com\/financial-apis\/intraday-historical-data-api\">Intraday Historical Data API<\/a>, with one-minute, five-minute and one-hour bars; coarser still is the <a href=\"https:\/\/eodhd.com\/financial-apis\/api-for-historical-data-and-volumes\">End-of-Day API<\/a>. For a live stream rather than history, see the <a href=\"https:\/\/eodhd.com\/financial-apis\/new-real-time-data-api-websockets\">Real-Time Data API via WebSockets<\/a>.<\/p>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">To find the symbols this API accepts, list the US universe with the <a href=\"https:\/\/eodhd.com\/financial-apis\/exchanges-api-list-of-tickers-and-trading-hours\">Exchanges API<\/a>, and check how requests are counted against your plan in <a href=\"https:\/\/eodhd.com\/financial-apis\/api-limits\">API Limits<\/a>.<\/p>\n\n\n    <div class=\"admonition admonition--tip\">\n        <span class=\"admonition__icon\" aria-hidden=\"true\"><svg viewBox=\"0 0 20 20\" fill=\"currentColor\" width=\"20\" height=\"20\"><path fill-rule=\"evenodd\" d=\"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z\"\/><\/svg><\/span>\n        <div class=\"admonition__body\">\n\n<p class=\"docs-content__text wp-block-paragraph\">Tick Data is also sold on its own, without a full EODHD subscription, as a standalone product on our Marketplace \u2014 useful if trade-level US history is the only dataset you need. The sidebar links to the product page.<\/p>\n\n<\/div>\n    <\/div>\n    \n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n    <div class=\"spotlight spotlight--accent spotlight--wide\">\n        <div class=\"spotlight__content\">\n            \n                            <div class=\"spotlight__title\">Compare plans and find your fit<\/div>\n            \n                            <div class=\"spotlight__desc\">Free and paid plans for individual and commercial use<\/div>\n                    <\/div>\n\n                    <a class=\"spotlight__action btn btn--white\"\n               href=\"https:\/\/eodhd.com\/pricing\"\n               target=\"_blank\"\n               rel=\"noopener\">\n                Go to Pricing            <\/a>\n            <\/div>\n    \n","protected":false},"excerpt":{"rendered":"<p>The Tick Data API returns individual trades on the US equity market \u2014 one record per execution, with a millisecond timestamp, the price, the size, the venue that printed it and the sale conditions that qualify it. History reaches back to the first trading day of 2008, and the data covers every US venue rather [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[2],"tags":[],"class_list":["post-8111","post","type-post","status-publish","format-standard","hentry","category-historical-prices-live-data-apis"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.6 (Yoast SEO v26.7) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>US Stock Tick Data API: Trade-by-Trade Since 2008<\/title>\n<meta name=\"description\" content=\"Historical US stock tick data with trade-by-trade prints, millisecond timestamps, venue and sale-condition fields, and history back to 2008.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/eodhd.com\/financial-apis\/tick-data-api-us-stock-market\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Tick Data API: US Stock Market\" \/>\n<meta property=\"og:description\" content=\"Historical US stock tick data with trade-by-trade prints, millisecond timestamps, venue and sale-condition fields, and history back to 2008.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/eodhd.com\/financial-apis\/tick-data-api-us-stock-market\" \/>\n<meta property=\"og:site_name\" content=\"Stock Price Data, Financial and Stock Market API\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/eodhistoricaldata\" \/>\n<meta property=\"article:published_time\" content=\"2026-08-19T08:22:34+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-08-19T08:22:35+00:00\" \/>\n<meta name=\"author\" content=\"EOD Historical Data Support\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@EOD_data\" \/>\n<meta name=\"twitter:site\" content=\"@EOD_data\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"EOD Historical Data Support\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/eodhd.com\/financial-apis\/tick-data-api-us-stock-market#article\",\"isPartOf\":{\"@id\":\"https:\/\/eodhd.com\/financial-apis\/tick-data-api-us-stock-market\"},\"author\":{\"name\":\"EOD Historical Data Support\",\"@id\":\"https:\/\/eodhd.com\/financial-apis\/#\/schema\/person\/fa5be3606e0cd967a175978cebe97415\"},\"headline\":\"Tick Data API: US Stock Market\",\"datePublished\":\"2026-08-19T08:22:34+00:00\",\"dateModified\":\"2026-08-19T08:22:35+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/eodhd.com\/financial-apis\/tick-data-api-us-stock-market\"},\"wordCount\":1451,\"publisher\":{\"@id\":\"https:\/\/eodhd.com\/financial-apis\/#organization\"},\"articleSection\":[\"1. Market Data APIs\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/eodhd.com\/financial-apis\/tick-data-api-us-stock-market\",\"url\":\"https:\/\/eodhd.com\/financial-apis\/tick-data-api-us-stock-market\",\"name\":\"US Stock Tick Data API: Trade-by-Trade Since 2008\",\"isPartOf\":{\"@id\":\"https:\/\/eodhd.com\/financial-apis\/#website\"},\"datePublished\":\"2026-08-19T08:22:34+00:00\",\"dateModified\":\"2026-08-19T08:22:35+00:00\",\"description\":\"Historical US stock tick data with trade-by-trade prints, millisecond timestamps, venue and sale-condition fields, and history back to 2008.\",\"breadcrumb\":{\"@id\":\"https:\/\/eodhd.com\/financial-apis\/tick-data-api-us-stock-market#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/eodhd.com\/financial-apis\/tick-data-api-us-stock-market\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/eodhd.com\/financial-apis\/tick-data-api-us-stock-market#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/eodhd.com\/financial-apis\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Tick Data API: US Stock Market\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/eodhd.com\/financial-apis\/#website\",\"url\":\"https:\/\/eodhd.com\/financial-apis\/\",\"name\":\"Historical Stock Prices and Fundamental Financial Data APIs | EODHD\",\"description\":\"End Of Day (EOD), Fundamental and Real-time\/Live Data Market API\",\"publisher\":{\"@id\":\"https:\/\/eodhd.com\/financial-apis\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/eodhd.com\/financial-apis\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/eodhd.com\/financial-apis\/#organization\",\"name\":\"EODHD (EOD Historical Data)\",\"url\":\"https:\/\/eodhd.com\/financial-apis\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/eodhd.com\/financial-apis\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/eodhd.com\/financial-apis\/wp-content\/uploads\/2023\/12\/EODHD-Logo.png\",\"contentUrl\":\"https:\/\/eodhd.com\/financial-apis\/wp-content\/uploads\/2023\/12\/EODHD-Logo.png\",\"width\":159,\"height\":82,\"caption\":\"EODHD (EOD Historical Data)\"},\"image\":{\"@id\":\"https:\/\/eodhd.com\/financial-apis\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/eodhistoricaldata\",\"https:\/\/x.com\/EOD_data\",\"https:\/\/www.reddit.com\/r\/EODHistoricalData\/\",\"https:\/\/eod-historical-data.medium.com\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/eodhd.com\/financial-apis\/#\/schema\/person\/fa5be3606e0cd967a175978cebe97415\",\"name\":\"EOD Historical Data Support\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/eodhd.com\/financial-apis\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/3599a531133e7fc83654b72e3103c05b1bbeb91168cf4786cbad64afa9b82413?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/3599a531133e7fc83654b72e3103c05b1bbeb91168cf4786cbad64afa9b82413?s=96&d=mm&r=g\",\"caption\":\"EOD Historical Data Support\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"US Stock Tick Data API: Trade-by-Trade Since 2008","description":"Historical US stock tick data with trade-by-trade prints, millisecond timestamps, venue and sale-condition fields, and history back to 2008.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/eodhd.com\/financial-apis\/tick-data-api-us-stock-market","og_locale":"en_US","og_type":"article","og_title":"Tick Data API: US Stock Market","og_description":"Historical US stock tick data with trade-by-trade prints, millisecond timestamps, venue and sale-condition fields, and history back to 2008.","og_url":"https:\/\/eodhd.com\/financial-apis\/tick-data-api-us-stock-market","og_site_name":"Stock Price Data, Financial and Stock Market API","article_publisher":"https:\/\/www.facebook.com\/eodhistoricaldata","article_published_time":"2026-08-19T08:22:34+00:00","article_modified_time":"2026-08-19T08:22:35+00:00","author":"EOD Historical Data Support","twitter_card":"summary_large_image","twitter_creator":"@EOD_data","twitter_site":"@EOD_data","twitter_misc":{"Written by":"EOD Historical Data Support","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/eodhd.com\/financial-apis\/tick-data-api-us-stock-market#article","isPartOf":{"@id":"https:\/\/eodhd.com\/financial-apis\/tick-data-api-us-stock-market"},"author":{"name":"EOD Historical Data Support","@id":"https:\/\/eodhd.com\/financial-apis\/#\/schema\/person\/fa5be3606e0cd967a175978cebe97415"},"headline":"Tick Data API: US Stock Market","datePublished":"2026-08-19T08:22:34+00:00","dateModified":"2026-08-19T08:22:35+00:00","mainEntityOfPage":{"@id":"https:\/\/eodhd.com\/financial-apis\/tick-data-api-us-stock-market"},"wordCount":1451,"publisher":{"@id":"https:\/\/eodhd.com\/financial-apis\/#organization"},"articleSection":["1. Market Data APIs"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/eodhd.com\/financial-apis\/tick-data-api-us-stock-market","url":"https:\/\/eodhd.com\/financial-apis\/tick-data-api-us-stock-market","name":"US Stock Tick Data API: Trade-by-Trade Since 2008","isPartOf":{"@id":"https:\/\/eodhd.com\/financial-apis\/#website"},"datePublished":"2026-08-19T08:22:34+00:00","dateModified":"2026-08-19T08:22:35+00:00","description":"Historical US stock tick data with trade-by-trade prints, millisecond timestamps, venue and sale-condition fields, and history back to 2008.","breadcrumb":{"@id":"https:\/\/eodhd.com\/financial-apis\/tick-data-api-us-stock-market#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/eodhd.com\/financial-apis\/tick-data-api-us-stock-market"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/eodhd.com\/financial-apis\/tick-data-api-us-stock-market#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/eodhd.com\/financial-apis"},{"@type":"ListItem","position":2,"name":"Tick Data API: US Stock Market"}]},{"@type":"WebSite","@id":"https:\/\/eodhd.com\/financial-apis\/#website","url":"https:\/\/eodhd.com\/financial-apis\/","name":"Historical Stock Prices and Fundamental Financial Data APIs | EODHD","description":"End Of Day (EOD), Fundamental and Real-time\/Live Data Market API","publisher":{"@id":"https:\/\/eodhd.com\/financial-apis\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/eodhd.com\/financial-apis\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/eodhd.com\/financial-apis\/#organization","name":"EODHD (EOD Historical Data)","url":"https:\/\/eodhd.com\/financial-apis\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/eodhd.com\/financial-apis\/#\/schema\/logo\/image\/","url":"https:\/\/eodhd.com\/financial-apis\/wp-content\/uploads\/2023\/12\/EODHD-Logo.png","contentUrl":"https:\/\/eodhd.com\/financial-apis\/wp-content\/uploads\/2023\/12\/EODHD-Logo.png","width":159,"height":82,"caption":"EODHD (EOD Historical Data)"},"image":{"@id":"https:\/\/eodhd.com\/financial-apis\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/eodhistoricaldata","https:\/\/x.com\/EOD_data","https:\/\/www.reddit.com\/r\/EODHistoricalData\/","https:\/\/eod-historical-data.medium.com\/"]},{"@type":"Person","@id":"https:\/\/eodhd.com\/financial-apis\/#\/schema\/person\/fa5be3606e0cd967a175978cebe97415","name":"EOD Historical Data Support","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/eodhd.com\/financial-apis\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/3599a531133e7fc83654b72e3103c05b1bbeb91168cf4786cbad64afa9b82413?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3599a531133e7fc83654b72e3103c05b1bbeb91168cf4786cbad64afa9b82413?s=96&d=mm&r=g","caption":"EOD Historical Data Support"}}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p8NjB1-26P","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/eodhd.com\/financial-apis\/wp-json\/wp\/v2\/posts\/8111","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/eodhd.com\/financial-apis\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/eodhd.com\/financial-apis\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/eodhd.com\/financial-apis\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/eodhd.com\/financial-apis\/wp-json\/wp\/v2\/comments?post=8111"}],"version-history":[{"count":1,"href":"https:\/\/eodhd.com\/financial-apis\/wp-json\/wp\/v2\/posts\/8111\/revisions"}],"predecessor-version":[{"id":8115,"href":"https:\/\/eodhd.com\/financial-apis\/wp-json\/wp\/v2\/posts\/8111\/revisions\/8115"}],"wp:attachment":[{"href":"https:\/\/eodhd.com\/financial-apis\/wp-json\/wp\/v2\/media?parent=8111"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/eodhd.com\/financial-apis\/wp-json\/wp\/v2\/categories?post=8111"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/eodhd.com\/financial-apis\/wp-json\/wp\/v2\/tags?post=8111"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}