{"id":7096,"date":"2026-10-31T12:38:21","date_gmt":"2026-10-31T12:38:21","guid":{"rendered":"https:\/\/eodhd.com\/financial-academy\/?p=7096"},"modified":"2026-10-31T12:38:21","modified_gmt":"2026-10-31T12:38:21","slug":"options-data-api-guide","status":"publish","type":"post","link":"https:\/\/eodhd.com\/financial-academy\/stocks-data-analysis-examples\/options-data-api-guide","title":{"rendered":"Options Data API: The Complete Developer Guide"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Most developers assume options data means a Bloomberg terminal, a six-figure institutional feed, or scraping broker websites that break every earnings season. With a proper options data API, none of that is necessary.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you&#8217;re building:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>an options screener,<\/li>\n\n\n\n<li>a volatility backtest,<\/li>\n\n\n\n<li>or options analytics inside a fintech product,<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">a REST API call gets you there in under ten minutes.<\/p>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\"><a class=\"maxbutton-1 maxbutton maxbutton-subscribe-to-api external-css btn\" href=\"https:\/\/eodhd.com\/register\"><span class='mb-text'>Register &amp; Get Data<\/span><\/a><\/p>\n\n\n\n\n\n\n<h2 id=\"h-the-free-sources-fall-apart-the-moment-you-build-something-real\" class=\"wp-block-heading\">The free sources fall apart the moment you build something real<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Free options data looks fine in a demo. Yahoo Finance&#8217;s options endpoint isn&#8217;t official and stops returning data without warning. Scraping a broker&#8217;s site means parsing HTML that changes with every UI redesign, and the IP block usually shows up right after you&#8217;ve wired the pipeline into something that matters.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Unfortunately, developers tend to discover this the hard way, after a pipeline built on one of these sources has already been running for weeks.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In the end, the failure mode is always the same: no Greeks, no historical depth, and a source that goes quiet mid-project.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Options data doesn&#8217;t need more free sources. It needs one that ships chains, Greeks, implied volatility, and open interest history together, instead of three unofficial feeds stitched into something fragile.<\/p>\n\n\n\n<h2 id=\"h-eodhd-s-options-data-api-in-three-endpoints\" class=\"wp-block-heading\">EODHD&#8217;s Options Data API in three endpoints<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">EODHD&#8217;s Options Data API covers 6,600+ US stocks and ETFs on NYSE, NASDAQ, and AMEX, with historical data back to Q4 2023. Every contract record ships with 42+ fields:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>the full option chain, calls and puts, every strike and expiration<\/li>\n\n\n\n<li>all five Greeks: delta, gamma, theta, vega, rho<\/li>\n\n\n\n<li>implied volatility, with day-over-day change<\/li>\n\n\n\n<li>open interest, with day-over-day change and vol\/OI ratio<\/li>\n\n\n\n<li>bid\/ask with sizes, OHLC, midpoint, and theoretical price<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">No separate Greeks add-on. No <a href=\"https:\/\/en.wikipedia.org\/wiki\/Black%E2%80%93Scholes_model\" target=\"_blank\" rel=\"noreferrer noopener\">Black-Scholes<\/a> implementation to maintain. The Greeks arrive pre-calculated in the response.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/eodhd.com\/financial-apis\/options-data-api-us-stocks\/\" target=\"_blank\" rel=\"noreferrer noopener\">Three endpoints<\/a> cover the whole surface:<\/p>\n\n\n\n            <div class=\"code__wrapper\">\n                <div class=\"code__content\">\n                    \n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background\"><code class=\"\">GET \/api\/mp\/unicornbay\/options\/contracts         # option chain, filterable<br>GET \/api\/mp\/unicornbay\/options\/eod                # historical EOD data, compact mode for bulk pulls<br>GET \/api\/mp\/unicornbay\/options\/underlying-symbols # ticker coverage check<\/code><\/pre>\n\n                <\/div>\n                <div class=\"code__btns\">\n                    <button class=\"code__copy\" class=\"copy\" title=\"Copy url\">\n                        <svg class=\"code__copy__icon\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <use xlink:href=\"\/img\/icons\/copy.svg#copy\"><\/use>\n                        <\/svg>\n                        <img decoding=\"async\" class=\"code__copy__approve\" alt=\"\" src=\"\/img\/approve_ico.svg\" loading=\"eager\">\n                    <\/button>\n                <\/div>\n            <\/div>\n        \n\n\n<p class=\"wp-block-paragraph\">After testing a handful of options data providers for client projects, this is the one I keep going back to. It&#8217;s the only one where Greeks, IV, and historical data starting in Q4 2023 come in the same subscription instead of three separate ones.<\/p>\n\n\n\n<h2 id=\"h-what-these-fields-actually-tell-you-about-a-trade\" class=\"wp-block-heading\">What these fields actually tell you about a trade<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Each Greek answers a different question a trader asks before pulling the trigger, not just an academic label:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Delta approximates the probability a contract expires in the money, and doubles as a hedge ratio: a 0.30 delta call moves roughly like holding 30 shares.<\/li>\n\n\n\n<li>Gamma shows how fast that delta will change as the stock moves, which is why near-the-money contracts get jumpy close to expiration.<\/li>\n\n\n\n<li>Theta is the daily cost of holding the option, what gets eaten by time decay if the stock does nothing.<\/li>\n\n\n\n<li>Vega measures exposure to a change in implied volatility itself, separate from the stock&#8217;s price.<\/li>\n\n\n\n<li>Rho, the sensitivity to interest rates, mostly matters for contracts with a year or more left.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Implied volatility is the market&#8217;s forecast of how much the stock will move, priced into the option rather than the stock. For example, high IV means expensive options and richer premium for anyone selling them. By contrast, low IV means cheap options, better value for buying protection or making a directional bet. Comparing a contract&#8217;s IV against its own history, not against a round number, is what tells you if 32% is actually high for that specific stock.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Similarly, open interest is how many contracts are still outstanding, a rough proxy for how liquid that strike and expiration are. However, volume alone can be one large trade closing a position. Comparing volume against open interest, the vol\/OI ratio used in the screener further down, is what separates routine turnover from something that looks like fresh positioning worth a closer look.<\/p>\n\n\n\n<h2 id=\"h-how-to-get-your-eodhd-api-key\" class=\"wp-block-heading\">How to get your EODHD API key<\/h2>\n\n\n\n<p class=\"bordered_paragraph wp-block-paragraph\">1. Use the \u201cdemo\u201d API key to test our data from a limited set of tickers without registering:<br>AAPL.US | TSLA.US | VTI.US | AMZN.US | BTC-USD | EUR-USD<br>Real-Time Data and all of the APIs (except Bulk) are included without API calls limitations with these tickers and the demo key.<br>2. Register to get your free API key (limited to 20 API calls per day) with access to:<br>End-Of-Day Historical Data with only the past year for any ticker, and the List of tickers per Exchange.<br>3. To unlock your API key, we recommend to choose the <a href=\"https:\/\/eodhd.com\/pricing\" target=\"_blank\" rel=\"noreferrer noopener\">subscription plan<\/a> which covers your needs.<\/p>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\"><a class=\"maxbutton-1 maxbutton maxbutton-subscribe-to-api external-css btn\" href=\"https:\/\/eodhd.com\/register\"><span class='mb-text'>Register &amp; Get Data<\/span><\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For the Options Data API, the demo key works with AAPL and AMZN, and the free plan doesn&#8217;t include options data, so a paid plan is needed beyond those two tickers.<\/p>\n\n\n\n<h2 id=\"h-pulling-a-live-option-chain-with-the-options-data-api\" class=\"wp-block-heading\">Pulling a live option chain with the Options Data API<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">There&#8217;s a public demo token, so you can test the response shape before signing up for anything:<\/p>\n\n\n\n            <div class=\"code__wrapper\">\n                <div class=\"code__content\">\n                    \n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background\"><code class=\"\">curl -g \"https:\/\/eodhd.com\/api\/mp\/unicornbay\/options\/contracts?filter[underlying_symbol]=AAPL&amp;filter[type]=call&amp;page[limit]=5&amp;api_token=demo\"<\/code><\/pre>\n\n                <\/div>\n                <div class=\"code__btns\">\n                    <button class=\"code__copy\" class=\"copy\" title=\"Copy url\">\n                        <svg class=\"code__copy__icon\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <use xlink:href=\"\/img\/icons\/copy.svg#copy\"><\/use>\n                        <\/svg>\n                        <img decoding=\"async\" class=\"code__copy__approve\" alt=\"\" src=\"\/img\/approve_ico.svg\" loading=\"eager\">\n                    <\/button>\n                <\/div>\n            <\/div>\n        \n\n\n<p class=\"wp-block-paragraph\">Also, the -g flag matters here: curl treats [ ] in a URL as its own range\/glob syntax, even inside quotes, so filter[type]=call fails with &#8220;bad range in URL&#8221; without it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Every example in this guide uses Python&#8217;s requests library directly against the endpoint:<\/p>\n\n\n\n            <div class=\"code__wrapper\">\n                <div class=\"code__content\">\n                    \n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background\"><code class=\"\">import requests<br>from datetime import date, timedelta<br><br>API_TOKEN = \"YOUR_API_TOKEN\"<br>BASE_URL = \"https:\/\/eodhd.com\/api\/mp\/unicornbay\/options\/contracts\"<br><br>today = date.today()<br>window_end = today + timedelta(days=60)<br><br>params = {<br>    \"filter[underlying_symbol]\": \"AAPL\",<br>    \"filter[type]\": \"call\",<br>    \"filter[exp_date_from]\": today.isoformat(),<br>    \"filter[exp_date_to]\": window_end.isoformat(),<br>    \"page[limit]\": 100,<br>    \"api_token\": API_TOKEN,<br>    \"fmt\": \"json\",<br>}<br><br>resp = requests.get(BASE_URL, params=params)<br>resp.raise_for_status()<br>chain = resp.json()<br><br>for contract in chain[\"data\"][:5]:<br>    attrs = contract[\"attributes\"]<br>    print(<br>        f\"{attrs['contract']} | strike {attrs['strike']} | \"<br>        f\"exp {attrs['exp_date']} | delta {attrs['delta']} | IV {attrs['volatility']}\"<br>    )<\/code><\/pre>\n\n                <\/div>\n                <div class=\"code__btns\">\n                    <button class=\"code__copy\" class=\"copy\" title=\"Copy url\">\n                        <svg class=\"code__copy__icon\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <use xlink:href=\"\/img\/icons\/copy.svg#copy\"><\/use>\n                        <\/svg>\n                        <img decoding=\"async\" class=\"code__copy__approve\" alt=\"\" src=\"\/img\/approve_ico.svg\" loading=\"eager\">\n                    <\/button>\n                <\/div>\n            <\/div>\n        \n\n\n<p class=\"wp-block-paragraph\">The response is JSON:API formatted. Greeks and IV arrive already attached to each contract, no post-processing required.<\/p>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\"><a class=\"maxbutton-1 maxbutton maxbutton-subscribe-to-api external-css btn\" href=\"https:\/\/eodhd.com\/register\"><span class='mb-text'>Register &amp; Get Data<\/span><\/a><\/p>\n\n\n\n<h2 id=\"h-backtesting-with-historical-eod-data\" class=\"wp-block-heading\">Backtesting with historical EOD data<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The \/options\/eod endpoint pulls the same contract-level fields across a date range instead of a single snapshot, which is what you want for backtesting or building a volatility surface. In addition, compact mode returns arrays instead of objects, which keeps bulk downloads lighter:<\/p>\n\n\n\n            <div class=\"code__wrapper\">\n                <div class=\"code__content\">\n                    \n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background\"><code class=\"\">resp = requests.get(<br>    \"https:\/\/eodhd.com\/api\/mp\/unicornbay\/options\/eod\",<br>    params={<br>        \"filter[underlying_symbol]\": \"AAPL\",<br>        \"filter[tradetime_from]\": \"2024-01-01\",<br>        \"filter[tradetime_to]\": \"2024-01-31\",<br>        \"compact\": 1,<br>        \"api_token\": \"YOUR_API_TOKEN\",<br>        \"fmt\": \"json\",<br>    },<br>)<br>history = resp.json()<\/code><\/pre>\n\n                <\/div>\n                <div class=\"code__btns\">\n                    <button class=\"code__copy\" class=\"copy\" title=\"Copy url\">\n                        <svg class=\"code__copy__icon\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <use xlink:href=\"\/img\/icons\/copy.svg#copy\"><\/use>\n                        <\/svg>\n                        <img decoding=\"async\" class=\"code__copy__approve\" alt=\"\" src=\"\/img\/approve_ico.svg\" loading=\"eager\">\n                    <\/button>\n                <\/div>\n            <\/div>\n        \n\n\n<p class=\"wp-block-paragraph\">Furthermore, pagination supports offsets up to 10,000 and up to 1,000 records per page. The number of requests needed depends on the symbol, date range, and number of contracts. For larger datasets, narrow the query with filters and retrieve smaller subsets.<\/p>\n\n\n\n<h2 id=\"h-building-something-with-the-options-data-api\" class=\"wp-block-heading\">Building something with the Options Data API<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">For instance, a common first build is an IV-rank screener: pull chains for a watchlist, flag contracts where implied volatility sits in the top decile for that symbol, and rank by vol\/OI ratio to surface unusual activity.<\/p>\n\n\n\n            <div class=\"code__wrapper\">\n                <div class=\"code__content\">\n                    \n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background\"><code class=\"\">BASE_URL = \"https:\/\/eodhd.com\/api\/mp\/unicornbay\/options\/contracts\"<br>watchlist = [\"AAPL\", \"TSLA\", \"NVDA\"]<br>flagged = []<br><br>for symbol in watchlist:<br>    params = {<br>        \"filter[underlying_symbol]\": symbol,<br>        \"filter[type]\": \"call\",<br>        \"page[limit]\": 1000,<br>        \"api_token\": API_TOKEN,<br>        \"fmt\": \"json\",<br>    }<br>    resp = requests.get(BASE_URL, params=params)<br>    resp.raise_for_status()<br>    for contract in resp.json()[\"data\"]:<br>        attrs = contract[\"attributes\"]<br>        if attrs[\"vol_oi_ratio\"] and attrs[\"vol_oi_ratio\"] &gt; 3:<br>            flagged.append((symbol, attrs[\"contract\"], attrs[\"vol_oi_ratio\"], attrs[\"volatility\"]))<br><br>flagged.sort(key=lambda row: row[2], reverse=True)<\/code><\/pre>\n\n                <\/div>\n                <div class=\"code__btns\">\n                    <button class=\"code__copy\" class=\"copy\" title=\"Copy url\">\n                        <svg class=\"code__copy__icon\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <use xlink:href=\"\/img\/icons\/copy.svg#copy\"><\/use>\n                        <\/svg>\n                        <img decoding=\"async\" class=\"code__copy__approve\" alt=\"\" src=\"\/img\/approve_ico.svg\" loading=\"eager\">\n                    <\/button>\n                <\/div>\n            <\/div>\n        \n\n\n<p class=\"wp-block-paragraph\">From here:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>an unusual options activity screener<\/li>\n\n\n\n<li>a volatility surface built across strikes and expirations<\/li>\n\n\n\n<li>an earnings-play backtest using the historical EOD endpoint<\/li>\n<\/ul>\n\n\n\n<h2 id=\"h-one-more-example-covered-call-candidates\" class=\"wp-block-heading\">One more example: covered-call candidates<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A covered call means selling a call option against stock you already own, collecting the premium as income in exchange for capping the upside at the strike. If the stock stays below that strike, the option expires worthless and the premium is pure income. If it runs past the strike, the shares get called away at that price, which is the trade-off.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In practice, the 0.20-0.35 delta band is the common sweet spot for this. Low enough that assignment stays a minority outcome, high enough that the premium is worth collecting instead of picking a strike so far out that the payout barely covers the transaction cost. Filtering the chain for that band is where the code below comes in:<\/p>\n\n\n\n            <div class=\"code__wrapper\">\n                <div class=\"code__content\">\n                    \n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background\"><code class=\"\">MIN_DELTA, MAX_DELTA = 0.20, 0.35<br>target_exp = today + timedelta(days=45)<br><br>params = {<br>    \"filter[underlying_symbol]\": \"AAPL\",<br>    \"filter[type]\": \"call\",<br>    \"filter[exp_date_from]\": today.isoformat(),<br>    \"filter[exp_date_to]\": target_exp.isoformat(),<br>    \"page[limit]\": 500,<br>    \"api_token\": API_TOKEN,<br>    \"fmt\": \"json\",<br>}<br>resp = requests.get(BASE_URL, params=params)<br>resp.raise_for_status()<br>chain = resp.json()<br><br>candidates = [<br>    c[\"attributes\"] for c in chain[\"data\"]<br>    if c[\"attributes\"].get(\"delta\") and MIN_DELTA &lt;= c[\"attributes\"][\"delta\"] &lt;= MAX_DELTA<br>]<br>candidates.sort(key=lambda c: c[\"exp_date\"])<\/code><\/pre>\n\n                <\/div>\n                <div class=\"code__btns\">\n                    <button class=\"code__copy\" class=\"copy\" title=\"Copy url\">\n                        <svg class=\"code__copy__icon\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <use xlink:href=\"\/img\/icons\/copy.svg#copy\"><\/use>\n                        <\/svg>\n                        <img decoding=\"async\" class=\"code__copy__approve\" alt=\"\" src=\"\/img\/approve_ico.svg\" loading=\"eager\">\n                    <\/button>\n                <\/div>\n            <\/div>\n        \n\n\n<h2 id=\"h-things-to-keep-in-mind-with-the-options-data-api\" class=\"wp-block-heading\">Things to keep in mind with the Options Data API<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Implementation considerations for request quotas, ticker formats, pagination, and error handling:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Options endpoints cost 10 API calls per request, not 1, so budget a paid plan&#8217;s daily quota accordingly. The Marketplace&#8217;s 24-hour quota window starts with your first request, rather than resetting at 00:00 GMT. Plan bulk downloads around that window; it is separate from the per-minute rate limit.<\/li>\n\n\n\n<li>This is end-of-day data. There&#8217;s no real-time or intraday options feed, so day-trading use cases need a different data source.<\/li>\n\n\n\n<li>The <a href=\"https:\/\/eodhd.com\/financial-apis\/api-limits\/\" target=\"_blank\" rel=\"noreferrer noopener\">rate limit<\/a> is 1,000 requests\/minute across EODHD endpoints. When a 429 response includes a Retry-After header, use its value to schedule the next attempt.<\/li>\n\n\n\n<li>The options endpoints use a plain ticker (AAPL), while other EODHD endpoints use the SYMBOL.EXCHANGE format (AAPL.US). Apply the appropriate format when combining these APIs in a project.<\/li>\n\n\n\n<li>Pagination caps at 10,000 offset and 1,000 records per page. For tickers with hundreds of strikes and expirations, narrow with the date or strike filters instead of paging through everything.<\/li>\n\n\n\n<li>Error responses follow a {status, error, message} envelope. Check the status code before assuming resp.json()[&#8220;data&#8221;] exists.<\/li>\n\n\n\n<li>The demo token works for AAPL and AMZN. Anything else needs a real token from a paid plan.<\/li>\n\n\n\n<li>Finally, testing with curl needs the -g flag. curl parses [ ] in a URL as its own range\/glob syntax, even inside quotes, so filter[type]=call otherwise fails with &#8220;bad range in URL&#8221;.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">A minimal retry wrapper that handles the rate limit and surfaces the error envelope:<\/p>\n\n\n\n            <div class=\"code__wrapper\">\n                <div class=\"code__content\">\n                    \n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background\"><code class=\"\">import time<br><br>def fetch_chain(symbol, max_retries=3, **filters):<br>    params = {\"filter[underlying_symbol]\": symbol, \"api_token\": API_TOKEN, \"fmt\": \"json\"}<br>    for key, value in filters.items():<br>        params[f\"filter[{key}]\"] = value<br><br>    for attempt in range(max_retries):<br>        resp = requests.get(BASE_URL, params=params)<br>        if resp.status_code == 429:<br>            wait = int(resp.headers.get(\"Retry-After\", 5))<br>            time.sleep(wait)<br>            continue<br>        if resp.status_code &gt;= 400:<br>            body = resp.json()<br>            raise RuntimeError(f\"{resp.status_code} {body['error']}: {body['message']}\")<br>        return resp.json()<br>    raise RuntimeError(\"Gave up after retries\")<\/code><\/pre>\n\n                <\/div>\n                <div class=\"code__btns\">\n                    <button class=\"code__copy\" class=\"copy\" title=\"Copy url\">\n                        <svg class=\"code__copy__icon\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                            <use xlink:href=\"\/img\/icons\/copy.svg#copy\"><\/use>\n                        <\/svg>\n                        <img decoding=\"async\" class=\"code__copy__approve\" alt=\"\" src=\"\/img\/approve_ico.svg\" loading=\"eager\">\n                    <\/button>\n                <\/div>\n            <\/div>\n        \n\n\n<h2 id=\"h-three-things-worth-remembering\" class=\"wp-block-heading\">Three things worth remembering<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The bottleneck was never access. It&#8217;s getting chains, Greeks, IV, and OI history from one source instead of three.<\/li>\n\n\n\n<li>Filtering server-side, by strike, expiration, or type, keeps payloads small and pipelines fast.<\/li>\n\n\n\n<li>Pre-calculated Greeks save real engineering time. Nobody wants to maintain a Black-Scholes implementation for a side project.<\/li>\n<\/ul>\n\n\n\n<h2 id=\"h-faqs\" class=\"wp-block-heading\">FAQs<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u2753 Is there a free options data API?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2705 Not with Greeks and real historical depth. Free sources like Yahoo Finance&#8217;s unofficial endpoint return raw chains with no Greeks and no uptime guarantee. EODHD&#8217;s plan starts at $29.99\/mo and includes all three endpoints, with no separate Greeks charge.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2753 Does the API cover real-time options data?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2705 No, it&#8217;s end-of-day, updated daily after market close. Fields like volume_change and vol_oi_ratio approximate flow-style analysis on an EOD basis, which is enough for most research and backtesting work.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2753 How far back does the historical data go?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2705 Dataset coverage starts in Q4 2023. The available date range for an individual contract depends on its trading history and the records available for that contract.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2753 Can I filter by strike price and expiration date?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2705 Yes. The contracts endpoint takes filter[strike_from], filter[strike_to], filter[exp_date_from], and filter[exp_date_to], so you pull the slice of the chain you need instead of the whole thing.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2753 Is there a Python SDK?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2705 The examples in this guide use requests directly against the REST endpoint, so there&#8217;s nothing else to install.<\/p>\n\n\n\n<h2 id=\"h-final-thoughts\" class=\"wp-block-heading\">Final Thoughts<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Options data used to mean a six-figure feed or a scraper held together with duct tape.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Now it&#8217;s a REST call away.<\/p>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\"><a class=\"maxbutton-1 maxbutton maxbutton-subscribe-to-api external-css btn\" href=\"https:\/\/eodhd.com\/register\"><span class='mb-text'>Register &amp; Get Data<\/span><\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Most developers assume options data means a Bloomberg terminal, a six-figure institutional feed, or scraping broker websites that break every earnings season. With a proper options data API, none of that is necessary. If you&#8217;re building: a REST API call gets you there in under ten minutes. The free sources fall apart the moment you [&hellip;]<\/p>\n","protected":false},"author":36,"featured_media":7099,"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":""},"categories":[42],"tags":[],"coding-language":[],"ready-to-go-solution":[],"qualification":[],"financial-apis-category":[],"financial-apis-manuals":[],"class_list":["post-7096","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-stocks-data-analysis-examples","has_thumb"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.9 (Yoast SEO v26.7) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Options Data API: The Complete Developer Guide<\/title>\n<meta name=\"description\" content=\"Access options chains, Greeks, and historical options data starting in Q4 2023 through a REST API, with working Python 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-academy\/stocks-data-analysis-examples\/options-data-api-guide\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Options Data API: The Complete Developer Guide\" \/>\n<meta property=\"og:description\" content=\"Access options chains, Greeks, and historical options data starting in Q4 2023 through a REST API, with working Python examples.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/eodhd.com\/financial-academy\/stocks-data-analysis-examples\/options-data-api-guide\" \/>\n<meta property=\"og:site_name\" content=\"Financial Academy\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/eodhistoricaldata\" \/>\n<meta property=\"article:published_time\" content=\"2026-10-31T12:38:21+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/10\/Guia-de-desarrollador-para-Options-Data-API.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1672\" \/>\n\t<meta property=\"og:image:height\" content=\"941\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Kevin Meneses Gonz\u00e1lez\" \/>\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=\"Kevin Meneses Gonz\u00e1lez\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/eodhd.com\/financial-academy\/stocks-data-analysis-examples\/options-data-api-guide#article\",\"isPartOf\":{\"@id\":\"https:\/\/eodhd.com\/financial-academy\/stocks-data-analysis-examples\/options-data-api-guide\"},\"author\":{\"name\":\"Kevin Meneses Gonz\u00e1lez\",\"@id\":\"https:\/\/eodhd.com\/financial-academy\/#\/schema\/person\/f085666760ee7f148d1923a296cf3fe3\"},\"headline\":\"Options Data API: The Complete Developer Guide\",\"datePublished\":\"2026-10-31T12:38:21+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/eodhd.com\/financial-academy\/stocks-data-analysis-examples\/options-data-api-guide\"},\"wordCount\":1674,\"publisher\":{\"@id\":\"https:\/\/eodhd.com\/financial-academy\/#organization\"},\"image\":{\"@id\":\"https:\/\/eodhd.com\/financial-academy\/stocks-data-analysis-examples\/options-data-api-guide#primaryimage\"},\"thumbnailUrl\":\"https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/10\/Guia-de-desarrollador-para-Options-Data-API.png\",\"articleSection\":[\"Stocks Data Analysis Examples\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/eodhd.com\/financial-academy\/stocks-data-analysis-examples\/options-data-api-guide\",\"url\":\"https:\/\/eodhd.com\/financial-academy\/stocks-data-analysis-examples\/options-data-api-guide\",\"name\":\"Options Data API: The Complete Developer Guide\",\"isPartOf\":{\"@id\":\"https:\/\/eodhd.com\/financial-academy\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/eodhd.com\/financial-academy\/stocks-data-analysis-examples\/options-data-api-guide#primaryimage\"},\"image\":{\"@id\":\"https:\/\/eodhd.com\/financial-academy\/stocks-data-analysis-examples\/options-data-api-guide#primaryimage\"},\"thumbnailUrl\":\"https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/10\/Guia-de-desarrollador-para-Options-Data-API.png\",\"datePublished\":\"2026-10-31T12:38:21+00:00\",\"description\":\"Access options chains, Greeks, and historical options data starting in Q4 2023 through a REST API, with working Python examples.\",\"breadcrumb\":{\"@id\":\"https:\/\/eodhd.com\/financial-academy\/stocks-data-analysis-examples\/options-data-api-guide#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/eodhd.com\/financial-academy\/stocks-data-analysis-examples\/options-data-api-guide\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/eodhd.com\/financial-academy\/stocks-data-analysis-examples\/options-data-api-guide#primaryimage\",\"url\":\"https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/10\/Guia-de-desarrollador-para-Options-Data-API.png\",\"contentUrl\":\"https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/10\/Guia-de-desarrollador-para-Options-Data-API.png\",\"width\":1672,\"height\":941,\"caption\":\"Esto es lo que pondr\u00eda en cada campo, en ingl\u00e9s como el art\u00edculo: **Alt Text** ``` Options Data API: The Complete Developer Guide cover showing EODHD options chain data with Greeks and implied volatility ``` **Title** (cambia el que viene en espa\u00f1ol) ``` Options Data API: The Complete Developer Guide ``` **Caption**: d\u00e9jalo vac\u00edo. La gu\u00eda solo pide caption para indicar la fuente de la imagen, y esta es propia. **Description** ``` Featured image for the EODHD Academy guide on accessing options chains, Greeks, implied volatility and historical options data through the Options Data API with Python. ``` Despu\u00e9s pulsa **Set featured image** y luego **Save draft**. No le des a Publish. **Ojo con el nombre del archivo.** La gu\u00eda de EODHD pide que coincida con el t\u00edtulo, y el tuyo est\u00e1 en espa\u00f1ol (`Guia-de-desarrollador-para-Options-Data-API.png`). Desde aqu\u00ed no se puede renombrar. Si quieres cumplirlo al pie de la letra, renombra el archivo en tu PC y s\u00fabelo otra vez con este nombre: ``` Options_Data_API_The_Complete_Developer_Guide.png ``` Despu\u00e9s borra la versi\u00f3n en espa\u00f1ol de la biblioteca de medios. Si no te importa ese detalle, puedes usar la que ya est\u00e1 subida.\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/eodhd.com\/financial-academy\/stocks-data-analysis-examples\/options-data-api-guide#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/eodhd.com\/financial-academy\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Options Data API: The Complete Developer Guide\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/eodhd.com\/financial-academy\/#website\",\"url\":\"https:\/\/eodhd.com\/financial-academy\/\",\"name\":\"Financial APIs Academy | EODHD\",\"description\":\"Financial Stock Market Academy\",\"publisher\":{\"@id\":\"https:\/\/eodhd.com\/financial-academy\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/eodhd.com\/financial-academy\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/eodhd.com\/financial-academy\/#organization\",\"name\":\"EODHD (EOD Historical Data)\",\"url\":\"https:\/\/eodhd.com\/financial-academy\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/eodhd.com\/financial-academy\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2023\/12\/EODHD-Logo.png\",\"contentUrl\":\"https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2023\/12\/EODHD-Logo.png\",\"width\":159,\"height\":82,\"caption\":\"EODHD (EOD Historical Data)\"},\"image\":{\"@id\":\"https:\/\/eodhd.com\/financial-academy\/#\/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-academy\/#\/schema\/person\/f085666760ee7f148d1923a296cf3fe3\",\"name\":\"Kevin Meneses Gonz\u00e1lez\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/eodhd.com\/financial-academy\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/19dee2010941996b1cce342ad66f6964baa6eac898570992e3cddc1b00143a79?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/19dee2010941996b1cce342ad66f6964baa6eac898570992e3cddc1b00143a79?s=96&d=mm&r=g\",\"caption\":\"Kevin Meneses Gonz\u00e1lez\"},\"description\":\"Kevin Meneses Gonz\u00e1lez is a CRM consultant and technical content creator focused on Python, AI, and financial data. He writes practical tutorials on using APIs and automation to analyze markets and build investment research tools.\",\"sameAs\":[\"https:\/\/kevinmeneses.com\/en\",\"https:\/\/www.linkedin.com\/in\/kevin-meneses-gonzalez\/\",\"https:\/\/www.youtube.com\/@pythonia6131\"],\"url\":\"https:\/\/eodhd.com\/financial-academy\/author\/kevinmeneses\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Options Data API: The Complete Developer Guide","description":"Access options chains, Greeks, and historical options data starting in Q4 2023 through a REST API, with working Python 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-academy\/stocks-data-analysis-examples\/options-data-api-guide","og_locale":"en_US","og_type":"article","og_title":"Options Data API: The Complete Developer Guide","og_description":"Access options chains, Greeks, and historical options data starting in Q4 2023 through a REST API, with working Python examples.","og_url":"https:\/\/eodhd.com\/financial-academy\/stocks-data-analysis-examples\/options-data-api-guide","og_site_name":"Financial Academy","article_publisher":"https:\/\/www.facebook.com\/eodhistoricaldata","article_published_time":"2026-10-31T12:38:21+00:00","og_image":[{"width":1672,"height":941,"url":"https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/10\/Guia-de-desarrollador-para-Options-Data-API.png","type":"image\/png"}],"author":"Kevin Meneses Gonz\u00e1lez","twitter_card":"summary_large_image","twitter_creator":"@EOD_data","twitter_site":"@EOD_data","twitter_misc":{"Written by":"Kevin Meneses Gonz\u00e1lez","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/eodhd.com\/financial-academy\/stocks-data-analysis-examples\/options-data-api-guide#article","isPartOf":{"@id":"https:\/\/eodhd.com\/financial-academy\/stocks-data-analysis-examples\/options-data-api-guide"},"author":{"name":"Kevin Meneses Gonz\u00e1lez","@id":"https:\/\/eodhd.com\/financial-academy\/#\/schema\/person\/f085666760ee7f148d1923a296cf3fe3"},"headline":"Options Data API: The Complete Developer Guide","datePublished":"2026-10-31T12:38:21+00:00","mainEntityOfPage":{"@id":"https:\/\/eodhd.com\/financial-academy\/stocks-data-analysis-examples\/options-data-api-guide"},"wordCount":1674,"publisher":{"@id":"https:\/\/eodhd.com\/financial-academy\/#organization"},"image":{"@id":"https:\/\/eodhd.com\/financial-academy\/stocks-data-analysis-examples\/options-data-api-guide#primaryimage"},"thumbnailUrl":"https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/10\/Guia-de-desarrollador-para-Options-Data-API.png","articleSection":["Stocks Data Analysis Examples"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/eodhd.com\/financial-academy\/stocks-data-analysis-examples\/options-data-api-guide","url":"https:\/\/eodhd.com\/financial-academy\/stocks-data-analysis-examples\/options-data-api-guide","name":"Options Data API: The Complete Developer Guide","isPartOf":{"@id":"https:\/\/eodhd.com\/financial-academy\/#website"},"primaryImageOfPage":{"@id":"https:\/\/eodhd.com\/financial-academy\/stocks-data-analysis-examples\/options-data-api-guide#primaryimage"},"image":{"@id":"https:\/\/eodhd.com\/financial-academy\/stocks-data-analysis-examples\/options-data-api-guide#primaryimage"},"thumbnailUrl":"https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/10\/Guia-de-desarrollador-para-Options-Data-API.png","datePublished":"2026-10-31T12:38:21+00:00","description":"Access options chains, Greeks, and historical options data starting in Q4 2023 through a REST API, with working Python examples.","breadcrumb":{"@id":"https:\/\/eodhd.com\/financial-academy\/stocks-data-analysis-examples\/options-data-api-guide#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/eodhd.com\/financial-academy\/stocks-data-analysis-examples\/options-data-api-guide"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/eodhd.com\/financial-academy\/stocks-data-analysis-examples\/options-data-api-guide#primaryimage","url":"https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/10\/Guia-de-desarrollador-para-Options-Data-API.png","contentUrl":"https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/10\/Guia-de-desarrollador-para-Options-Data-API.png","width":1672,"height":941,"caption":"Esto es lo que pondr\u00eda en cada campo, en ingl\u00e9s como el art\u00edculo: **Alt Text** ``` Options Data API: The Complete Developer Guide cover showing EODHD options chain data with Greeks and implied volatility ``` **Title** (cambia el que viene en espa\u00f1ol) ``` Options Data API: The Complete Developer Guide ``` **Caption**: d\u00e9jalo vac\u00edo. La gu\u00eda solo pide caption para indicar la fuente de la imagen, y esta es propia. **Description** ``` Featured image for the EODHD Academy guide on accessing options chains, Greeks, implied volatility and historical options data through the Options Data API with Python. ``` Despu\u00e9s pulsa **Set featured image** y luego **Save draft**. No le des a Publish. **Ojo con el nombre del archivo.** La gu\u00eda de EODHD pide que coincida con el t\u00edtulo, y el tuyo est\u00e1 en espa\u00f1ol (`Guia-de-desarrollador-para-Options-Data-API.png`). Desde aqu\u00ed no se puede renombrar. Si quieres cumplirlo al pie de la letra, renombra el archivo en tu PC y s\u00fabelo otra vez con este nombre: ``` Options_Data_API_The_Complete_Developer_Guide.png ``` Despu\u00e9s borra la versi\u00f3n en espa\u00f1ol de la biblioteca de medios. Si no te importa ese detalle, puedes usar la que ya est\u00e1 subida."},{"@type":"BreadcrumbList","@id":"https:\/\/eodhd.com\/financial-academy\/stocks-data-analysis-examples\/options-data-api-guide#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/eodhd.com\/financial-academy\/"},{"@type":"ListItem","position":2,"name":"Options Data API: The Complete Developer Guide"}]},{"@type":"WebSite","@id":"https:\/\/eodhd.com\/financial-academy\/#website","url":"https:\/\/eodhd.com\/financial-academy\/","name":"Financial APIs Academy | EODHD","description":"Financial Stock Market Academy","publisher":{"@id":"https:\/\/eodhd.com\/financial-academy\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/eodhd.com\/financial-academy\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/eodhd.com\/financial-academy\/#organization","name":"EODHD (EOD Historical Data)","url":"https:\/\/eodhd.com\/financial-academy\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/eodhd.com\/financial-academy\/#\/schema\/logo\/image\/","url":"https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2023\/12\/EODHD-Logo.png","contentUrl":"https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2023\/12\/EODHD-Logo.png","width":159,"height":82,"caption":"EODHD (EOD Historical Data)"},"image":{"@id":"https:\/\/eodhd.com\/financial-academy\/#\/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-academy\/#\/schema\/person\/f085666760ee7f148d1923a296cf3fe3","name":"Kevin Meneses Gonz\u00e1lez","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/eodhd.com\/financial-academy\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/19dee2010941996b1cce342ad66f6964baa6eac898570992e3cddc1b00143a79?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/19dee2010941996b1cce342ad66f6964baa6eac898570992e3cddc1b00143a79?s=96&d=mm&r=g","caption":"Kevin Meneses Gonz\u00e1lez"},"description":"Kevin Meneses Gonz\u00e1lez is a CRM consultant and technical content creator focused on Python, AI, and financial data. He writes practical tutorials on using APIs and automation to analyze markets and build investment research tools.","sameAs":["https:\/\/kevinmeneses.com\/en","https:\/\/www.linkedin.com\/in\/kevin-meneses-gonzalez\/","https:\/\/www.youtube.com\/@pythonia6131"],"url":"https:\/\/eodhd.com\/financial-academy\/author\/kevinmeneses"}]}},"jetpack_featured_media_url":"https:\/\/eodhd.com\/financial-academy\/wp-content\/uploads\/2026\/10\/Guia-de-desarrollador-para-Options-Data-API.png","jetpack_shortlink":"https:\/\/wp.me\/pdOdVT-1Qs","jetpack_sharing_enabled":true,"acf":[],"_links":{"self":[{"href":"https:\/\/eodhd.com\/financial-academy\/wp-json\/wp\/v2\/posts\/7096","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/eodhd.com\/financial-academy\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/eodhd.com\/financial-academy\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/eodhd.com\/financial-academy\/wp-json\/wp\/v2\/users\/36"}],"replies":[{"embeddable":true,"href":"https:\/\/eodhd.com\/financial-academy\/wp-json\/wp\/v2\/comments?post=7096"}],"version-history":[{"count":6,"href":"https:\/\/eodhd.com\/financial-academy\/wp-json\/wp\/v2\/posts\/7096\/revisions"}],"predecessor-version":[{"id":7110,"href":"https:\/\/eodhd.com\/financial-academy\/wp-json\/wp\/v2\/posts\/7096\/revisions\/7110"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/eodhd.com\/financial-academy\/wp-json\/wp\/v2\/media\/7099"}],"wp:attachment":[{"href":"https:\/\/eodhd.com\/financial-academy\/wp-json\/wp\/v2\/media?parent=7096"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/eodhd.com\/financial-academy\/wp-json\/wp\/v2\/categories?post=7096"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/eodhd.com\/financial-academy\/wp-json\/wp\/v2\/tags?post=7096"},{"taxonomy":"coding-language","embeddable":true,"href":"https:\/\/eodhd.com\/financial-academy\/wp-json\/wp\/v2\/coding-language?post=7096"},{"taxonomy":"ready-to-go-solution","embeddable":true,"href":"https:\/\/eodhd.com\/financial-academy\/wp-json\/wp\/v2\/ready-to-go-solution?post=7096"},{"taxonomy":"qualification","embeddable":true,"href":"https:\/\/eodhd.com\/financial-academy\/wp-json\/wp\/v2\/qualification?post=7096"},{"taxonomy":"financial-apis-category","embeddable":true,"href":"https:\/\/eodhd.com\/financial-academy\/wp-json\/wp\/v2\/financial-apis-category?post=7096"},{"taxonomy":"financial-apis-manuals","embeddable":true,"href":"https:\/\/eodhd.com\/financial-academy\/wp-json\/wp\/v2\/financial-apis-manuals?post=7096"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}