{"id":1843,"date":"2020-10-11T15:27:09","date_gmt":"2020-10-11T15:27:09","guid":{"rendered":"https:\/\/eodhd.com\/financial-apis\/?p=1843"},"modified":"2026-08-13T15:14:31","modified_gmt":"2026-08-13T13:14:31","slug":"stock-market-screener-api","status":"publish","type":"post","link":"https:\/\/eodhd.com\/financial-apis\/stock-market-screener-api","title":{"rendered":"Stock Market Screener API"},"content":{"rendered":"\n<p class=\"docs-content__text wp-block-paragraph\">The Screener API filters the whole covered stock universe in a single request \u2014 by market capitalisation, exchange, sector, industry, EPS, dividend yield, recent performance and traded volume \u2014 and returns the matching tickers with the values you filtered on. It is the endpoint behind &#8220;top gainers today&#8221;, &#8220;large-cap technology companies&#8221;, &#8220;high-yield dividend payers&#8221; and similar screens.<\/p>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">Filters are passed as a JSON array of conditions that all have to hold at once, sorting is a single field with a direction, and results are paginated with limit and offset. Values come from the latest completed trading day \u2014 every row carries the date it was taken from in <strong>last_day_data_date<\/strong>.<\/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-how-to-call-the-screener-api\">How to call the Screener API<\/h2>\n\n\n<div class=\"code-block\">\n<pre class=\"docs-content__code-block wp-block-code\"><code>https:\/\/eodhd.com\/api\/screener?api_token=YOUR_API_TOKEN&amp;filters=[[\"exchange\",\"=\",\"us\"],[\"market_capitalization\",\">\",10000000000]]&amp;sort=market_capitalization.desc&amp;limit=10&amp;offset=0<\/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\">filters<\/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\">Filter conditions as a JSON array of triples: [[field, operation, value], \u2026]. Conditions are combined with AND. Must be valid JSON with straight double quotes<\/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\">signals<\/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\">Comma-separated list of pre-calculated signals, for example bookvalue_neg,200d_new_lo. Several signals narrow the result further<\/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\">sort<\/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\">Sort as field_name.direction, for example market_capitalization.desc. Direction is asc or desc; every filterable field is also sortable<\/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\">Number of tickers to return<\/span>\n                    <span class=\"docs-parameters__default\"><em>(Default: 50, Range: 1-500)<\/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\">offset<\/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\">Number of tickers to skip, for paging. limit=100 with offset=200 returns rows 201-300. Because the offset stops at 999, no screen can be paged beyond its first 1,000 matches<\/span>\n                    <span class=\"docs-parameters__default\"><em>(Default: 0, Range: 0-999)<\/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\">The filters value must be valid JSON with straight double quotes. Curly typographic quotes \u2014 the kind a word processor produces \u2014 return HTTP 422 with &#8220;The filters must be a valid JSON string&#8221;. Requesting more than 500 rows, or an offset above 999, also returns 422. Since paging stops at offset 999, a single screen exposes at most its first 1,000 matches \u2014 narrow the filters, or split the screen by exchange or by market-capitalisation band, when a query matches more than that.<\/p>\n\n<\/div>\n    <\/div>\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\">The five largest companies by market capitalisation, no filters:<\/p>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">    <div class=\"api-key\" data-feed=\"Technical API 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\/screener?api_token=YOUR_TOKEN&amp;sort=market_capitalization.desc&amp;limit=5\">\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\/screener?<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>YOUR_TOKEN<\/span>&<span class='white bold'>sort<\/span>=<span class='orange bold sort'>market_capitalization.desc<\/span>&<span class='white bold'>limit<\/span>=<span class='orange bold limit'>5<\/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\/screener?<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>YOUR_TOKEN<\/span>&<span class='white bold'>sort<\/span>=<span class='orange bold sort'>market_capitalization.desc<\/span>&<span class='white bold'>limit<\/span>=<span class='orange bold limit'>5<\/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\/screener?<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>YOUR_TOKEN<\/span>&<span class='white bold'>sort<\/span>=<span class='orange bold sort'>market_capitalization.desc<\/span>&<span class='white bold'>limit<\/span>=<span class='orange bold limit'>5<\/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\/screener?<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>YOUR_TOKEN<\/span>&<span class='white bold'>sort<\/span>=<span class='orange bold sort'>market_capitalization.desc<\/span>&<span class='white bold'>limit<\/span>=<span class='orange bold limit'>5<\/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\/screener?<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>YOUR_TOKEN<\/span>&<span class='white bold'>sort<\/span>=<span class='orange bold sort'>market_capitalization.desc<\/span>&<span class='white bold'>limit<\/span>=<span class='orange bold limit'>5<\/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<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    \"data\": [\n        {\n            \"code\": \"AAPL\",\n            \"name\": \"Apple Inc.\",\n            \"last_day_data_date\": \"2026-08-12\",\n            \"adjusted_close\": 302.25,\n            \"refund_1d\": -2.66,\n            \"refund_1d_p\": -0.87,\n            \"refund_5d\": -8.482,\n            \"refund_5d_p\": -2.73,\n            \"exchange\": \"US\",\n            \"currency_symbol\": \"$\",\n            \"market_capitalization\": 4411090796544,\n            \"earnings_share\": 8.72,\n            \"dividend_yield\": 0.0034,\n            \"sector\": \"Technology\",\n            \"industry\": \"Consumer Electronics\",\n            \"avgvol_1d\": 40588500,\n            \"avgvol_200d\": 49738504\n        }\n    ]\n}<\/code><\/pre>\n<\/div>\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>code<\/td><td>string<\/td><td>Ticker code without the exchange suffix<\/td><\/tr>\n<tr><td>name<\/td><td>string<\/td><td>Company name<\/td><\/tr>\n<tr><td>last_day_data_date<\/td><td>date<\/td><td>Trading day the price and performance values come from<\/td><\/tr>\n<tr><td>adjusted_close<\/td><td>number<\/td><td>Latest known end-of-day adjusted close<\/td><\/tr>\n<tr><td>refund_1d<\/td><td>number<\/td><td>Absolute price change over the last trading day, in the listing currency<\/td><\/tr>\n<tr><td>refund_1d_p<\/td><td>number<\/td><td>Price change over the last trading day, in percent<\/td><\/tr>\n<tr><td>refund_5d<\/td><td>number<\/td><td>Absolute price change over the last 5 trading days<\/td><\/tr>\n<tr><td>refund_5d_p<\/td><td>number<\/td><td>Price change over the last 5 trading days, in percent<\/td><\/tr>\n<tr><td>exchange<\/td><td>string<\/td><td>Exchange code the ticker belongs to<\/td><\/tr>\n<tr><td>currency_symbol<\/td><td>string<\/td><td>Currency the price and market capitalisation are expressed in \u2014 read this before comparing values across exchanges<\/td><\/tr>\n<tr><td>market_capitalization<\/td><td>number<\/td><td>Latest market capitalisation, in the listing currency (see the note below)<\/td><\/tr>\n<tr><td>earnings_share<\/td><td>number<\/td><td>Latest earnings per share<\/td><\/tr>\n<tr><td>dividend_yield<\/td><td>number<\/td><td>Latest dividend yield as a fraction \u2014 0.0034 means 0.34% (see the note below)<\/td><\/tr>\n<tr><td>sector<\/td><td>string<\/td><td>Sector name<\/td><\/tr>\n<tr><td>industry<\/td><td>string<\/td><td>Industry name<\/td><\/tr>\n<tr><td>avgvol_1d<\/td><td>number<\/td><td>Last trading day volume<\/td><\/tr>\n<tr><td>avgvol_200d<\/td><td>number<\/td><td>Average volume over the last 200 trading days<\/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-filter-fields\">Filter fields<\/h2>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">Fourteen fields can be filtered on, and each of them can also be used for sorting. String fields take the string operations, number fields take the numeric ones.<\/p>\n\n\n\n<figure class=\"docs-content__table-wrap wp-block-table\"><table><thead><tr><th>Field<\/th><th>Type<\/th><th>Notes<\/th><\/tr><\/thead><tbody>\n<tr><td>code<\/td><td>string<\/td><td>Ticker code, for example AAPL<\/td><\/tr>\n<tr><td>name<\/td><td>string<\/td><td>Company name. Use the match operation for partial names<\/td><\/tr>\n<tr><td>exchange<\/td><td>string<\/td><td>Exchange code, for example us or lse. NYSE and NASDAQ are also accepted here and narrow the US exchange down to that venue<\/td><\/tr>\n<tr><td>sub_exchange<\/td><td>string<\/td><td>Venue inside a composite exchange \u2014 NYSE or NASDAQ. Equivalent to passing those values in exchange<\/td><\/tr>\n<tr><td>sector<\/td><td>string<\/td><td>Sector name. Multi-word values need the match operation rather than an exact match<\/td><\/tr>\n<tr><td>industry<\/td><td>string<\/td><td>Industry name, same rule as sector<\/td><\/tr>\n<tr><td>market_capitalization<\/td><td>number<\/td><td>Latest market capitalisation, in the listing currency<\/td><\/tr>\n<tr><td>earnings_share<\/td><td>number<\/td><td>Latest earnings per share<\/td><\/tr>\n<tr><td>dividend_yield<\/td><td>number<\/td><td>Latest dividend yield as a fraction: use 0.05 for 5%<\/td><\/tr>\n<tr><td>refund_1d_p<\/td><td>number<\/td><td>Last trading day gain or loss in percent \u2014 the field for top gainers and losers<\/td><\/tr>\n<tr><td>refund_5d_p<\/td><td>number<\/td><td>Last 5 trading days gain or loss in percent<\/td><\/tr>\n<tr><td>adjusted_close<\/td><td>number<\/td><td>Latest known end-of-day adjusted close<\/td><\/tr>\n<tr><td>avgvol_1d<\/td><td>number<\/td><td>Last trading day volume \u2014 useful as a liquidity floor<\/td><\/tr>\n<tr><td>avgvol_200d<\/td><td>number<\/td><td>Average volume over the last 200 trading days<\/td><\/tr>\n<\/tbody><\/table><\/figure>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">Exchange codes come from the <a href=\"https:\/\/eodhd.com\/financial-apis\/exchanges-api-list-of-tickers-and-trading-hours\">Exchanges API<\/a>. The full sector and industry taxonomy is available as a <a href=\"https:\/\/eodhd.com\/download\/SectorIndustries.csv\">CSV download<\/a>.<\/p>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">Not every ticker carries a value for the fundamentals-derived fields \u2014 market capitalisation, EPS, dividend yield, sector, industry and average volume are all missing for a sizeable share of the global universe, mostly on secondary listings and smaller venues. Filtering on one of those fields therefore also excludes every ticker where the value is absent, which is a different result from &#8220;every company that fails the condition&#8221;. Where that distinction matters, screen per exchange and compare the row counts.<\/p>\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\">Market capitalisation and prices are expressed in the currency each ticker is listed in, not converted to US dollars. A filter such as market_capitalization greater than 10 billion therefore matches companies whose capitalisation is 10 billion in dong, baht or euro as readily as in dollars, and the same company can appear several times through its foreign listings. Add an exchange condition \u2014 or read the currency_symbol field of every row \u2014 when you need one currency. The same caution applies to dividend_yield: most rows are clean fractions, but a minority of secondary foreign listings carry values in the thousands, so cap the upper bound of the filter or restrict it to the exchanges you trust.<\/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-operations\">Operations<\/h2>\n\n\n\n<figure class=\"docs-content__table-wrap wp-block-table\"><table><thead><tr><th>Field type<\/th><th>Operations<\/th><\/tr><\/thead><tbody>\n<tr><td>String<\/td><td>= \u00b7 match \u00b7 in \u00b7 not in<\/td><\/tr>\n<tr><td>Number<\/td><td>= \u00b7 != \u00b7 &gt; \u00b7 &lt; \u00b7 &gt;= \u00b7 &lt;= \u00b7 in \u00b7 not in<\/td><\/tr>\n<\/tbody><\/table><\/figure>\n\n\n\n<ul class=\"docs-content__list wp-block-list\">\n<li><strong>match<\/strong> matches from the start of a word, and an asterisk extends the prefix: &#8220;Apple&#8221; and &#8220;App*&#8221; both find Apple Inc., while a mid-word fragment such as &#8220;pple&#8221; matches nothing.<\/li>\n\n\n\n<li><strong>in<\/strong> and <strong>not in<\/strong> take a JSON array as the value, for example [&#8220;exchange&#8221;,&#8221;in&#8221;,[&#8220;us&#8221;,&#8221;to&#8221;]] or [&#8220;sector&#8221;,&#8221;not in&#8221;,[&#8220;Technology&#8221;,&#8221;Energy&#8221;]]. A single-element array is fine.<\/li>\n\n\n\n<li>String comparisons are case-insensitive: &#8220;aapl&#8221; and &#8220;AAPL&#8221; behave the same, as do &#8220;technology&#8221; and &#8220;Technology&#8221;.<\/li>\n\n\n\n<li>Applying a numeric operation to a string field, or the other way round, returns HTTP 422 with an invalid-operation error. A screen that matches nothing returns HTTP 200 with an empty data array, and a missing or invalid token returns HTTP 401.<\/li>\n<\/ul>\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-signals\">Signals<\/h2>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">Signals are pre-calculated conditions that would be awkward to express as a filter. Pass them comma-separated in the signals parameter. Several signals narrow the result rather than widen it \u2014 a ticker has to satisfy every signal listed \u2014 and signals combine with filters the same way.<\/p>\n\n\n\n<figure class=\"docs-content__table-wrap wp-block-table\"><table><thead><tr><th>Signal<\/th><th>Selects<\/th><\/tr><\/thead><tbody>\n<tr><td>200d_new_lo<\/td><td>Tickers making a new 200-day low<\/td><\/tr>\n<tr><td>200d_new_hi<\/td><td>Tickers making a new 200-day high<\/td><\/tr>\n<tr><td>bookvalue_neg<\/td><td>Tickers with a negative book value<\/td><\/tr>\n<tr><td>bookvalue_pos<\/td><td>Tickers with a positive book value<\/td><\/tr>\n<tr><td>wallstreet_lo<\/td><td>Tickers trading below the Wall Street analyst target<\/td><\/tr>\n<tr><td>wallstreet_hi<\/td><td>Tickers trading above the Wall Street analyst target<\/td><\/tr>\n<\/tbody><\/table><\/figure>\n\n\n<div class=\"code-block\">\n<pre class=\"docs-content__code-block wp-block-code\"><code>https:\/\/eodhd.com\/api\/screener?api_token=YOUR_API_TOKEN&amp;signals=bookvalue_neg,200d_new_lo&amp;limit=10<\/code><\/pre>\n<\/div>\n\n\n<p class=\"docs-content__text wp-block-paragraph\">New signals are added over time, and we can build one on request \u2014 write to support@eodhistoricaldata.com or raise it in the <a href=\"https:\/\/www.reddit.com\/r\/EODHistoricalData\/\">community subreddit<\/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-screener-api-examples\">Screener API examples<\/h2>\n\n\n\n<h3 class=\"docs-content__heading docs-content__heading--h3 wp-block-heading\" id=\"h-top-gainers-of-the-last-trading-day\">Top gainers of the last trading day<\/h3>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">Sort by the one-day percentage change and put a volume floor under it, so the list is not dominated by illiquid micro-caps:<\/p>\n\n\n<div class=\"code-block\">\n<pre class=\"docs-content__code-block wp-block-code\"><code>https:\/\/eodhd.com\/api\/screener?api_token=YOUR_API_TOKEN&amp;filters=[[\"exchange\",\"=\",\"us\"],[\"avgvol_1d\",\">\",1000000]]&amp;sort=refund_1d_p.desc&amp;limit=10<\/code><\/pre>\n<\/div>\n\n\n<h3 class=\"docs-content__heading docs-content__heading--h3 wp-block-heading\" id=\"h-large-cap-technology-companies-on-nasdaq\">Large-cap technology companies on NASDAQ<\/h3>\n\n\n<div class=\"code-block\">\n<pre class=\"docs-content__code-block wp-block-code\"><code>https:\/\/eodhd.com\/api\/screener?api_token=YOUR_API_TOKEN&amp;filters=[[\"exchange\",\"=\",\"NASDAQ\"],[\"sector\",\"=\",\"Technology\"],[\"market_capitalization\",\">\",10000000000],[\"earnings_share\",\">\",0]]&amp;sort=market_capitalization.desc&amp;limit=10<\/code><\/pre>\n<\/div>\n\n\n<h3 class=\"docs-content__heading docs-content__heading--h3 wp-block-heading\" id=\"h-dividend-payers-above-five-percent\">Dividend payers above five percent<\/h3>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">Yield is a fraction, so five percent is 0.05. The upper bound and the exchange condition keep the mis-scaled foreign listings out:<\/p>\n\n\n<div class=\"code-block\">\n<pre class=\"docs-content__code-block wp-block-code\"><code>https:\/\/eodhd.com\/api\/screener?api_token=YOUR_API_TOKEN&amp;filters=[[\"exchange\",\"=\",\"us\"],[\"dividend_yield\",\">\",0.05],[\"dividend_yield\",\"<\",0.25],[\"market_capitalization\",\">\",1000000000]]&amp;sort=dividend_yield.desc&amp;limit=10<\/code><\/pre>\n<\/div>\n\n\n<h3 class=\"docs-content__heading docs-content__heading--h3 wp-block-heading\" id=\"h-partial-name-search-across-two-exchanges\">Partial name search across two exchanges<\/h3>\n\n\n<div class=\"code-block\">\n<pre class=\"docs-content__code-block wp-block-code\"><code>https:\/\/eodhd.com\/api\/screener?api_token=YOUR_API_TOKEN&amp;filters=[[\"exchange\",\"in\",[\"us\",\"to\"]],[\"name\",\"match\",\"Apple*\"]]&amp;limit=10<\/code><\/pre>\n<\/div>\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-more-examples\">More examples<\/h2>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">Four screens that combine several conditions at once. Each one was run against the live endpoint and returns real matches.<\/p>\n\n\n\n<h3 class=\"docs-content__heading docs-content__heading--h3 wp-block-heading\" id=\"h-income-screen-with-excluded-sectors\">Income screen with excluded sectors<\/h3>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">Profitable US dividend payers above 2 billion, liquid enough to trade, with financials, utilities and real estate left out and the yield capped at a plausible 15% so the mis-scaled rows cannot creep in:<\/p>\n\n\n<div class=\"code-block\">\n<pre class=\"docs-content__code-block wp-block-code\"><code>https:\/\/eodhd.com\/api\/screener?api_token=YOUR_API_TOKEN&amp;filters=[[\"exchange\",\"=\",\"us\"],[\"sector\",\"not in\",[\"Financial Services\",\"Utilities\",\"Real Estate\"]],[\"earnings_share\",\">\",0],[\"dividend_yield\",\">\",0.04],[\"dividend_yield\",\"<\",0.15],[\"market_capitalization\",\">\",2000000000],[\"avgvol_1d\",\">\",300000]]&amp;sort=dividend_yield.desc&amp;limit=25<\/code><\/pre>\n<\/div>\n\n\n<p class=\"docs-content__text wp-block-paragraph\">Seven conditions in one request. The <strong>not in<\/strong> operation takes a JSON array, and the two dividend_yield conditions form a band, since the API has no between operation.<\/p>\n\n\n\n<h3 class=\"docs-content__heading docs-content__heading--h3 wp-block-heading\" id=\"h-large-caps-trading-below-the-analyst-target\">Large caps trading below the analyst target<\/h3>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">A signal and a filter set working together: liquid US companies above 10 billion whose price sits under the Wall Street target:<\/p>\n\n\n<div class=\"code-block\">\n<pre class=\"docs-content__code-block wp-block-code\"><code>https:\/\/eodhd.com\/api\/screener?api_token=YOUR_API_TOKEN&amp;signals=wallstreet_lo&amp;filters=[[\"exchange\",\"=\",\"us\"],[\"adjusted_close\",\">\",5],[\"market_capitalization\",\">\",10000000000],[\"avgvol_200d\",\">\",1000000]]&amp;sort=market_capitalization.desc&amp;limit=25<\/code><\/pre>\n<\/div>\n\n\n<p class=\"docs-content__text wp-block-paragraph\">The price and volume floors matter more than they look: without them a signal screen fills up with sub-cent tickers that technically satisfy the condition.<\/p>\n\n\n\n<h3 class=\"docs-content__heading docs-content__heading--h3 wp-block-heading\" id=\"h-one-industry-across-four-markets\">One industry across four markets<\/h3>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">Semiconductor companies above 1 billion, listed in the US, Toronto, London or XETRA:<\/p>\n\n\n<div class=\"code-block\">\n<pre class=\"docs-content__code-block wp-block-code\"><code>https:\/\/eodhd.com\/api\/screener?api_token=YOUR_API_TOKEN&amp;filters=[[\"exchange\",\"in\",[\"us\",\"to\",\"lse\",\"xetra\"]],[\"industry\",\"match\",\"Semiconductors\"],[\"market_capitalization\",\">\",1000000000]]&amp;sort=market_capitalization.desc&amp;limit=25<\/code><\/pre>\n<\/div>\n\n\n<p class=\"docs-content__text wp-block-paragraph\">This is the screen that shows the currency caveat in action. The same company comes back several times \u2014 once per listing \u2014 and the capitalisations are not comparable, because each is expressed in its own listing currency. Read <strong>currency_symbol<\/strong> on every row before ranking them.<\/p>\n\n\n\n<h3 class=\"docs-content__heading docs-content__heading--h3 wp-block-heading\" id=\"h-nasdaq-mid-caps-by-name-prefix\">NASDAQ mid-caps by name prefix<\/h3>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">Companies whose name starts with &#8220;Bio&#8221;, listed on NASDAQ, with a reported EPS and a capitalisation between 300 million and 20 billion:<\/p>\n\n\n<div class=\"code-block\">\n<pre class=\"docs-content__code-block wp-block-code\"><code>https:\/\/eodhd.com\/api\/screener?api_token=YOUR_API_TOKEN&amp;filters=[[\"sub_exchange\",\"=\",\"NASDAQ\"],[\"name\",\"match\",\"Bio*\"],[\"earnings_share\",\"!=\",0],[\"market_capitalization\",\">=\",300000000],[\"market_capitalization\",\"<=\",20000000000]]&amp;sort=market_capitalization.desc&amp;limit=25<\/code><\/pre>\n<\/div>\n\n\n<p class=\"docs-content__text wp-block-paragraph\">Four techniques in one request: venue selection through <strong>sub_exchange<\/strong>, a wildcard name prefix through <strong>match<\/strong>, exclusion of unreported EPS through <strong>!=<\/strong>, and a capitalisation band built from two inclusive bounds.<\/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-where-to-go-next\">Where to go next<\/h2>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">The screener returns tickers; the detail comes from the other endpoints. Pull statements and ratios for a match from the <a href=\"https:\/\/eodhd.com\/financial-apis\/stock-etfs-fundamental-data-feeds\">Fundamental Data API<\/a>, price history from the <a href=\"https:\/\/eodhd.com\/financial-apis\/api-for-historical-data-and-volumes\">End-of-Day API<\/a>, and indicators such as RSI or SMA from the <a href=\"https:\/\/eodhd.com\/financial-apis\/technical-indicators-api\">Technical Indicators API<\/a>. To resolve a code you got back into every venue it trades on, use the <a href=\"https:\/\/eodhd.com\/financial-apis\/search-api-for-stocks-etfs-mutual-funds\">Search API<\/a>.<\/p>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">Screening without writing code is possible too: the screener ships inside our <a href=\"https:\/\/eodhd.com\/financial-apis\/spreadsheets-for-stocks-etfs-forex-markets\">Google Sheets and Excel add-ons<\/a> and in the <a href=\"https:\/\/eodhd.com\/financial-apis\/python-financial-libraries-and-code-samples\">Python library<\/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\">Building a screener into a product? Our Stock Market Logos API on the EODHD Marketplace returns a company logo for any ticker across 60+ equity exchanges, which is usually the missing piece when screener results are rendered as a list.<\/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 Screener API filters the whole covered stock universe in a single request \u2014 by market capitalisation, exchange, sector, industry, EPS, dividend yield, recent performance and traded volume \u2014 and returns the matching tickers with the values you filtered on. It is the endpoint behind &#8220;top gainers today&#8221;, &#8220;large-cap technology companies&#8221;, &#8220;high-yield dividend payers&#8221; and [&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-1843","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>Stock Screener API for Global Markets | EODHD<\/title>\n<meta name=\"description\" content=\"Stock screener API for global markets: filter by exchange, sector, market cap, EPS, dividend yield and volume, with ready-to-run examples.\" \/>\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\/stock-market-screener-api\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Stock Market Screener API\" \/>\n<meta property=\"og:description\" content=\"Stock screener API for global markets: filter by exchange, sector, market cap, EPS, dividend yield and volume, with ready-to-run examples.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/eodhd.com\/financial-apis\/stock-market-screener-api\" \/>\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=\"2020-10-11T15:27:09+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-08-13T13:14:31+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=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/eodhd.com\/financial-apis\/stock-market-screener-api#article\",\"isPartOf\":{\"@id\":\"https:\/\/eodhd.com\/financial-apis\/stock-market-screener-api\"},\"author\":{\"name\":\"EOD Historical Data Support\",\"@id\":\"https:\/\/eodhd.com\/financial-apis\/#\/schema\/person\/fa5be3606e0cd967a175978cebe97415\"},\"headline\":\"Stock Market Screener API\",\"datePublished\":\"2020-10-11T15:27:09+00:00\",\"dateModified\":\"2026-08-13T13:14:31+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/eodhd.com\/financial-apis\/stock-market-screener-api\"},\"wordCount\":1536,\"publisher\":{\"@id\":\"https:\/\/eodhd.com\/financial-apis\/#organization\"},\"articleSection\":[\"1. Market Data APIs\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/eodhd.com\/financial-apis\/stock-market-screener-api\",\"url\":\"https:\/\/eodhd.com\/financial-apis\/stock-market-screener-api\",\"name\":\"Stock Screener API for Global Markets | EODHD\",\"isPartOf\":{\"@id\":\"https:\/\/eodhd.com\/financial-apis\/#website\"},\"datePublished\":\"2020-10-11T15:27:09+00:00\",\"dateModified\":\"2026-08-13T13:14:31+00:00\",\"description\":\"Stock screener API for global markets: filter by exchange, sector, market cap, EPS, dividend yield and volume, with ready-to-run examples.\",\"breadcrumb\":{\"@id\":\"https:\/\/eodhd.com\/financial-apis\/stock-market-screener-api#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/eodhd.com\/financial-apis\/stock-market-screener-api\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/eodhd.com\/financial-apis\/stock-market-screener-api#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/eodhd.com\/financial-apis\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Stock Market Screener API\"}]},{\"@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":"Stock Screener API for Global Markets | EODHD","description":"Stock screener API for global markets: filter by exchange, sector, market cap, EPS, dividend yield and volume, with ready-to-run examples.","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\/stock-market-screener-api","og_locale":"en_US","og_type":"article","og_title":"Stock Market Screener API","og_description":"Stock screener API for global markets: filter by exchange, sector, market cap, EPS, dividend yield and volume, with ready-to-run examples.","og_url":"https:\/\/eodhd.com\/financial-apis\/stock-market-screener-api","og_site_name":"Stock Price Data, Financial and Stock Market API","article_publisher":"https:\/\/www.facebook.com\/eodhistoricaldata","article_published_time":"2020-10-11T15:27:09+00:00","article_modified_time":"2026-08-13T13:14:31+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":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/eodhd.com\/financial-apis\/stock-market-screener-api#article","isPartOf":{"@id":"https:\/\/eodhd.com\/financial-apis\/stock-market-screener-api"},"author":{"name":"EOD Historical Data Support","@id":"https:\/\/eodhd.com\/financial-apis\/#\/schema\/person\/fa5be3606e0cd967a175978cebe97415"},"headline":"Stock Market Screener API","datePublished":"2020-10-11T15:27:09+00:00","dateModified":"2026-08-13T13:14:31+00:00","mainEntityOfPage":{"@id":"https:\/\/eodhd.com\/financial-apis\/stock-market-screener-api"},"wordCount":1536,"publisher":{"@id":"https:\/\/eodhd.com\/financial-apis\/#organization"},"articleSection":["1. Market Data APIs"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/eodhd.com\/financial-apis\/stock-market-screener-api","url":"https:\/\/eodhd.com\/financial-apis\/stock-market-screener-api","name":"Stock Screener API for Global Markets | EODHD","isPartOf":{"@id":"https:\/\/eodhd.com\/financial-apis\/#website"},"datePublished":"2020-10-11T15:27:09+00:00","dateModified":"2026-08-13T13:14:31+00:00","description":"Stock screener API for global markets: filter by exchange, sector, market cap, EPS, dividend yield and volume, with ready-to-run examples.","breadcrumb":{"@id":"https:\/\/eodhd.com\/financial-apis\/stock-market-screener-api#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/eodhd.com\/financial-apis\/stock-market-screener-api"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/eodhd.com\/financial-apis\/stock-market-screener-api#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/eodhd.com\/financial-apis"},{"@type":"ListItem","position":2,"name":"Stock Market Screener API"}]},{"@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-tJ","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/eodhd.com\/financial-apis\/wp-json\/wp\/v2\/posts\/1843","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=1843"}],"version-history":[{"count":50,"href":"https:\/\/eodhd.com\/financial-apis\/wp-json\/wp\/v2\/posts\/1843\/revisions"}],"predecessor-version":[{"id":8104,"href":"https:\/\/eodhd.com\/financial-apis\/wp-json\/wp\/v2\/posts\/1843\/revisions\/8104"}],"wp:attachment":[{"href":"https:\/\/eodhd.com\/financial-apis\/wp-json\/wp\/v2\/media?parent=1843"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/eodhd.com\/financial-apis\/wp-json\/wp\/v2\/categories?post=1843"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/eodhd.com\/financial-apis\/wp-json\/wp\/v2\/tags?post=1843"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}