{"id":8040,"date":"2026-07-16T10:38:00","date_gmt":"2026-07-16T08:38:00","guid":{"rendered":"https:\/\/eodhd.com\/financial-apis\/?p=8040"},"modified":"2026-07-16T10:38:01","modified_gmt":"2026-07-16T08:38:01","slug":"congressional-trades-api","status":"publish","type":"post","link":"https:\/\/eodhd.com\/financial-apis\/congressional-trades-api","title":{"rendered":"Congressional Trades API (beta)"},"content":{"rendered":"<p><!-- Congressional Trades API \u2014 public docs article for eodhd.com\/financial-apis\/congressional-trades-api --><br \/>\n<!-- Suggested meta description (Yoast\/Rank Math): --><br \/>\n<!-- Congressional Trades API: US Senate and House stock-trade disclosures under the STOCK Act, from the official Senate EFD and House Clerk sources, in one JSON endpoint. --><\/p>\n\n\n<p class=\"docs-content__text wp-block-paragraph\">The EODHD Congressional Trades API returns stock-trade disclosures filed by members of the US Congress. Under the STOCK Act, senators and representatives must publicly disclose their securities transactions within 45 days.<\/p>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">Each record pairs the trading member with the traded asset and the transaction, and adds fields the raw filings do not provide directly: numeric bounds parsed from the disclosed amount range, the number of days between the trade and its disclosure, a flag for filings that missed the 45-day window, and a link back to the original filing for verification.<\/p>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\"><!--TOC--><\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 id=\"h-overview\" class=\"docs-content__heading docs-content__heading--h2 wp-block-heading\">Overview<\/h2>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">The endpoint is reached over HTTPS with a GET request and authenticated by an api_token query parameter, the same token used across the EODHD API. It returns a JSON object with three top-level keys: data (the array of trade records), meta (the total row count for the current filter and the active page window), and links (the URL of the next page, when one exists). Results are paged with page[offset] and page[limit], where the default page size is 20 rows and the maximum is 100.<\/p>\n\n\n<div class=\"code-block\">\n<pre class=\"docs-content__code-block wp-block-code\"><code class=\"\">https:\/\/eodhd.com\/api\/congressional-trades?api_token=YOUR_TOKEN<\/code><\/pre>\n<\/div>\n\n    <div class=\"admonition admonition--note\">\n        <span class=\"admonition__icon\" aria-hidden=\"true\"><svg viewBox=\"0 0 20 20\" fill=\"currentColor\" width=\"20\" height=\"20\"><path fill-rule=\"evenodd\" d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z\"\/><\/svg><\/span>\n        <div class=\"admonition__body\">\n\n<p class=\"docs-content__text wp-block-paragraph\">Filter parameters are passed as flat query keys, for example chamber=senate and transaction_type=purchase,sale. Only the two pagination parameters use bracket notation: page[offset] and page[limit]. Every value is validated at the gateway, so an invalid value returns HTTP 422 before the request reaches the data service.<\/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 id=\"h-request\" class=\"docs-content__heading docs-content__heading--h2 wp-block-heading\">Request<\/h2>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">All parameters are optional except api_token. Filters combine with logical AND, and the member, date-range, symbol, and transaction-type filters can be used together to narrow the result set.<\/p>\n\n\n\n<h4 id=\"h-parameters\" class=\"docs-content__heading docs-content__heading--h4 wp-block-heading\">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\">symbol<\/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\">Restrict to a single ticker symbol, for example AAPL<\/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\">chamber<\/code>\n        \n                    <span class=\"docs-parameters__type\">enum<\/span>\n        \n        <span class=\"docs-parameters__badge docs-parameters__badge--optional\">\n            optional        <\/span>\n    <\/div>\n\n    <div class=\"docs-parameters__desc\">\n        <span class=\"docs-parameters__desc-text\">Chamber of Congress. Allowed values: senate, house<\/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\">bioguide_id<\/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\">Congressional Biographical Directory ID of a single member, for example S000250. Format is one letter followed by six digits<\/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\">transaction_type<\/code>\n        \n                    <span class=\"docs-parameters__type\">enum<\/span>\n        \n        <span class=\"docs-parameters__badge docs-parameters__badge--optional\">\n            optional        <\/span>\n    <\/div>\n\n    <div class=\"docs-parameters__desc\">\n        <span class=\"docs-parameters__desc-text\">One or more transaction types, comma-separated, for example purchase,sale. Allowed values: purchase, sale, exchange<\/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\">transaction_date_from<\/code>\n        \n                    <span class=\"docs-parameters__type\">date<\/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\">Earliest transaction date, YYYY-MM-DD, inclusive<\/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\">transaction_date_to<\/code>\n        \n                    <span class=\"docs-parameters__type\">date<\/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\">Latest transaction date, YYYY-MM-DD, inclusive, on or after transaction_date_from<\/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\">disclosure_date_from<\/code>\n        \n                    <span class=\"docs-parameters__type\">date<\/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\">Earliest disclosure date, YYYY-MM-DD, inclusive<\/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\">disclosure_date_to<\/code>\n        \n                    <span class=\"docs-parameters__type\">date<\/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\">Latest disclosure date, YYYY-MM-DD, inclusive, on or after disclosure_date_from<\/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\">page[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\">Rows per page<\/span>\n                    <span class=\"docs-parameters__default\"><em>(Default: 20, Range: 1-100)<\/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\">page[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\">Rows to skip<\/span>\n                    <span class=\"docs-parameters__default\"><em>(Default: 0)<\/em><\/span>\n            <\/div>\n<\/div>\n\n<\/div>\n\n\n\n<h4 id=\"h-request-example\" class=\"docs-content__heading docs-content__heading--h4 wp-block-heading\">Request Example<\/h4>\n\n\n    <div class=\"api-key\" data-feed=\"EOD Historical 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\/congressional-trades?api_token=YOUR_TOKEN&amp;chamber=senate&amp;transaction_type=purchase,sale&amp;transaction_date_from=2026-01-01&amp;page[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\/congressional-trades?<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>YOUR_TOKEN<\/span>&<span class='white bold'>chamber<\/span>=<span class='orange bold chamber'>senate<\/span>&<span class='white bold'>transaction_type<\/span>=<span class='orange bold transaction_type'>purchase,sale<\/span>&<span class='white bold'>transaction_date_from<\/span>=<span class='orange bold transaction_date_from'>2026-01-01<\/span>&<span class='white bold'>page[limit]<\/span>=<span class='orange bold page[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\/congressional-trades?<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>YOUR_TOKEN<\/span>&<span class='white bold'>chamber<\/span>=<span class='orange bold chamber'>senate<\/span>&<span class='white bold'>transaction_type<\/span>=<span class='orange bold transaction_type'>purchase,sale<\/span>&<span class='white bold'>transaction_date_from<\/span>=<span class='orange bold transaction_date_from'>2026-01-01<\/span>&<span class='white bold'>page[limit]<\/span>=<span class='orange bold page[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\/congressional-trades?<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>YOUR_TOKEN<\/span>&<span class='white bold'>chamber<\/span>=<span class='orange bold chamber'>senate<\/span>&<span class='white bold'>transaction_type<\/span>=<span class='orange bold transaction_type'>purchase,sale<\/span>&<span class='white bold'>transaction_date_from<\/span>=<span class='orange bold transaction_date_from'>2026-01-01<\/span>&<span class='white bold'>page[limit]<\/span>=<span class='orange bold page[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\/congressional-trades?<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>YOUR_TOKEN<\/span>&<span class='white bold'>chamber<\/span>=<span class='orange bold chamber'>senate<\/span>&<span class='white bold'>transaction_type<\/span>=<span class='orange bold transaction_type'>purchase,sale<\/span>&<span class='white bold'>transaction_date_from<\/span>=<span class='orange bold transaction_date_from'>2026-01-01<\/span>&<span class='white bold'>page[limit]<\/span>=<span class='orange bold page[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\/congressional-trades?<span class='white bold'>api_token<\/span>=<span class='orange bold api_token'>YOUR_TOKEN<\/span>&<span class='white bold'>chamber<\/span>=<span class='orange bold chamber'>senate<\/span>&<span class='white bold'>transaction_type<\/span>=<span class='orange bold transaction_type'>purchase,sale<\/span>&<span class='white bold'>transaction_date_from<\/span>=<span class='orange bold transaction_date_from'>2026-01-01<\/span>&<span class='white bold'>page[limit]<\/span>=<span class='orange bold page[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    \n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 id=\"h-response\" class=\"docs-content__heading docs-content__heading--h2 wp-block-heading\">Response<\/h2>\n\n\n\n<p class=\"docs-content__text wp-block-paragraph\">Each record carries a top-level chamber field and four nested objects: member, asset, transaction, and source. The example below is a single record; a real response returns an array under data.<\/p>\n\n\n\n<h4 id=\"h-response-example\" class=\"docs-content__heading docs-content__heading--h4 wp-block-heading\">Response Example<\/h4>\n\n\n<div class=\"code-block\">\n<pre class=\"docs-content__code-block wp-block-code\"><code lang=\"json\" class=\"language-json\">{\n  \"data\": [\n    {\n      \"chamber\": \"senate\",\n      \"member\": {\n        \"bioguide_id\": \"W000802\",\n        \"first_name\": \"Sheldon\",\n        \"last_name\": \"Whitehouse\",\n        \"full_name\": \"Sheldon Whitehouse\",\n        \"office\": \"Whitehouse, Sheldon (Senator)\",\n        \"state\": null,\n        \"party\": null,\n        \"district\": null\n      },\n      \"asset\": {\n        \"symbol\": \"NVDA\",\n        \"description\": \"NVIDIA Corporation - Common Stock\",\n        \"asset_type\": \"Stock\"\n      },\n      \"transaction\": {\n        \"type\": \"sale\",\n        \"transaction_date\": \"2026-06-30\",\n        \"disclosure_date\": \"2026-07-08\",\n        \"owner\": \"Self\",\n        \"amount_range\": \"$15,001 - $50,000\",\n        \"amount_low\": 15001,\n        \"amount_high\": 50000,\n        \"days_to_disclose\": 8,\n        \"is_late\": false,\n        \"comment\": null\n      },\n      \"source\": {\n        \"filing_url\": \"https:\/\/efdsearch.senate.gov\/search\/view\/ptr\/5d9b1b8e-2ae1-442b-860c-e79b8a701dc6\/\",\n        \"source_system\": \"senate\",\n        \"filing_identifier\": \"5d9b1b8e-2ae1-442b-860c-e79b8a701dc6\"\n      }\n    }\n  ],\n  \"meta\": { \"total\": 44604, \"page\": { \"offset\": 0, \"limit\": 20 } },\n  \"links\": { \"next\": \"https:\/\/eodhd.com\/api\/congressional-trades?page[offset]=20&amp;page[limit]=20\" }\n}<\/code><\/pre>\n<\/div>\n\n\n<h4 id=\"h-response-fields\" class=\"docs-content__heading docs-content__heading--h4 wp-block-heading\">Response Fields<\/h4>\n\n\n\n<figure class=\"docs-content__table-wrap wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Field<\/th><th>Type<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td>chamber<\/td><td>string<\/td><td>Chamber of Congress: senate or house<\/td><\/tr><tr><td>member.bioguide_id<\/td><td>string or null<\/td><td>Congressional Biographical Directory identifier, when matched<\/td><\/tr><tr><td>member.first_name<\/td><td>string<\/td><td>Member first name<\/td><\/tr><tr><td>member.last_name<\/td><td>string<\/td><td>Member last name<\/td><\/tr><tr><td>member.full_name<\/td><td>string<\/td><td>Member full name as filed<\/td><\/tr><tr><td>member.office<\/td><td>string or null<\/td><td>Office label as it appears in the source filing<\/td><\/tr><tr><td>member.state<\/td><td>string or null<\/td><td>Two-letter US state code, when available<\/td><\/tr><tr><td>member.party<\/td><td>string or null<\/td><td>Political party, when available<\/td><\/tr><tr><td>member.district<\/td><td>number or null<\/td><td>House district number. Null for senators<\/td><\/tr><tr><td>asset.symbol<\/td><td>string or null<\/td><td>Ticker symbol, when the asset maps to a listed instrument. Null for assets without a ticker, such as many bonds<\/td><\/tr><tr><td>asset.description<\/td><td>string<\/td><td>Asset description as filed<\/td><\/tr><tr><td>asset.asset_type<\/td><td>string<\/td><td>Normalised asset class, for example Stock, Bond, or Other<\/td><\/tr><tr><td>transaction.type<\/td><td>string<\/td><td>Transaction type: purchase, sale, or exchange<\/td><\/tr><tr><td>transaction.transaction_date<\/td><td>string (date)<\/td><td>Date the trade took place, YYYY-MM-DD<\/td><\/tr><tr><td>transaction.disclosure_date<\/td><td>string (date)<\/td><td>Date the trade was disclosed, YYYY-MM-DD<\/td><\/tr><tr><td>transaction.owner<\/td><td>string or null<\/td><td>Account owner: Self, Spouse, or Joint<\/td><\/tr><tr><td>transaction.amount_range<\/td><td>string<\/td><td>Disclosed transaction amount band, as filed, for example $1,001 &#8211; $15,000<\/td><\/tr><tr><td>transaction.amount_low<\/td><td>number or null<\/td><td>Lower bound of the amount range, in US dollars<\/td><\/tr><tr><td>transaction.amount_high<\/td><td>number or null<\/td><td>Upper bound of the amount range, in US dollars<\/td><\/tr><tr><td>transaction.days_to_disclose<\/td><td>number<\/td><td>Days between transaction_date and disclosure_date<\/td><\/tr><tr><td>transaction.is_late<\/td><td>boolean<\/td><td>True when the filing missed the 45-day STOCK Act disclosure window<\/td><\/tr><tr><td>transaction.comment<\/td><td>string or null<\/td><td>Free-text note from the filing, when present<\/td><\/tr><tr><td>source.filing_url<\/td><td>string<\/td><td>Link to the original filing on the official government portal<\/td><\/tr><tr><td>source.source_system<\/td><td>string<\/td><td>Origin of the filing: senate or house<\/td><\/tr><tr><td>source.filing_identifier<\/td><td>string<\/td><td>Identifier of the filing at the source system<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\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 id=\"h-response-codes\" class=\"docs-content__heading docs-content__heading--h2 wp-block-heading\">Response Codes<\/h2>\n\n\n\n<figure class=\"docs-content__table-wrap wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Code<\/th><th>Meaning<\/th><\/tr><\/thead><tbody><tr><td>200<\/td><td>Success. Response body carries data, meta, and links<\/td><\/tr><tr><td>401<\/td><td>Missing or invalid api_token<\/td><\/tr><tr><td>403<\/td><td>Token is valid but the plan does not include Congressional Trades<\/td><\/tr><tr><td>422<\/td><td>Invalid parameter \u2014 malformed date, page[limit] above 100 or below 1, end date before start date, an unknown chamber or transaction type, or a malformed symbol or bioguide_id<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 id=\"h-notes-and-limitations\" class=\"docs-content__heading docs-content__heading--h2 wp-block-heading\">Notes and Limitations<\/h2>\n\n\n\n<ul class=\"docs-content__list wp-block-list\">\n<li>Both chambers are returned together. Use chamber=senate or chamber=house to restrict to one; the chamber field on each record identifies its origin.<\/li>\n\n\n\n<li>Filters are passed as flat query keys such as chamber=senate and transaction_type=purchase,sale, not as filter[&#8230;] keys. Only pagination uses brackets: page[offset] and page[limit].<\/li>\n\n\n\n<li>The amount_low and amount_high fields are parsed from the disclosed amount band; days_to_disclose and is_late are computed against the 45-day STOCK Act window. These are provided by EODHD and are not part of the raw filing.<\/li>\n\n\n\n<li>Some holdings, including many bonds and other instruments, carry no ticker symbol. For those records asset.symbol is null while asset.description and asset.asset_type remain populated.<\/li>\n\n\n\n<li>Source data is reproduced as filed. Member details such as party and state are populated only where the source provides them, and occasional data-entry errors in the original disclosures, such as an implausible transaction date, are passed through rather than silently corrected. The filing_url on each record links to the official source for verification.<\/li>\n\n\n\n<li>Filings are polled from the official Senate EFD and House Clerk portals several times a day, with a nightly reconciliation pass. New disclosures appear after the source publishes them.<\/li>\n<\/ul>\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    ","protected":false},"excerpt":{"rendered":"<p>The EODHD Congressional Trades API returns stock-trade disclosures filed by members of the US Congress. Under the STOCK Act, senators and representatives must publicly disclose their securities transactions within 45 days. Each record pairs the trading member with the traded asset and the transaction, and adds fields the raw filings do not provide directly: numeric [&hellip;]<\/p>\n","protected":false},"author":10,"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":[119],"tags":[188,190,146],"class_list":["post-8040","post","type-post","status-publish","format-standard","hentry","category-alternative-data-financial-api","tag-congress","tag-senate","tag-us"],"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>Congressional Trades API (beta) | EODHD APIs Documentation<\/title>\n<meta name=\"description\" content=\"Congressional Trades API: US Senate and House stock-trade disclosures under the STOCK Act, from official Senate EFD and House Clerk sources, in one JSON endpoint.\" \/>\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\/congressional-trades-api\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Congressional Trades API (beta)\" \/>\n<meta property=\"og:description\" content=\"Congressional Trades API: US Senate and House stock-trade disclosures under the STOCK Act, from official Senate EFD and House Clerk sources, in one JSON endpoint.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/eodhd.com\/financial-apis\/congressional-trades-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=\"2026-07-16T08:38:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-07-16T08:38:01+00:00\" \/>\n<meta name=\"author\" content=\"a.pletnev\" \/>\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=\"a.pletnev\" \/>\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\/congressional-trades-api#article\",\"isPartOf\":{\"@id\":\"https:\/\/eodhd.com\/financial-apis\/congressional-trades-api\"},\"author\":{\"name\":\"a.pletnev\",\"@id\":\"https:\/\/eodhd.com\/financial-apis\/#\/schema\/person\/ed3193541c25b73e823a83bdcdb09b5d\"},\"headline\":\"Congressional Trades API (beta)\",\"datePublished\":\"2026-07-16T08:38:00+00:00\",\"dateModified\":\"2026-07-16T08:38:01+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/eodhd.com\/financial-apis\/congressional-trades-api\"},\"wordCount\":898,\"publisher\":{\"@id\":\"https:\/\/eodhd.com\/financial-apis\/#organization\"},\"keywords\":[\"congress\",\"senate\",\"US\"],\"articleSection\":[\"4. Alternative &amp; Derived Data\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/eodhd.com\/financial-apis\/congressional-trades-api\",\"url\":\"https:\/\/eodhd.com\/financial-apis\/congressional-trades-api\",\"name\":\"Congressional Trades API (beta) | EODHD APIs Documentation\",\"isPartOf\":{\"@id\":\"https:\/\/eodhd.com\/financial-apis\/#website\"},\"datePublished\":\"2026-07-16T08:38:00+00:00\",\"dateModified\":\"2026-07-16T08:38:01+00:00\",\"description\":\"Congressional Trades API: US Senate and House stock-trade disclosures under the STOCK Act, from official Senate EFD and House Clerk sources, in one JSON endpoint.\",\"breadcrumb\":{\"@id\":\"https:\/\/eodhd.com\/financial-apis\/congressional-trades-api#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/eodhd.com\/financial-apis\/congressional-trades-api\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/eodhd.com\/financial-apis\/congressional-trades-api#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/eodhd.com\/financial-apis\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Congressional Trades API (beta)\"}]},{\"@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\/ed3193541c25b73e823a83bdcdb09b5d\",\"name\":\"a.pletnev\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/eodhd.com\/financial-apis\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/020e454749b61223b72b1bf96e7978ccdd1e39b04585b29698da3767a193a57d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/020e454749b61223b72b1bf96e7978ccdd1e39b04585b29698da3767a193a57d?s=96&d=mm&r=g\",\"caption\":\"a.pletnev\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Congressional Trades API (beta) | EODHD APIs Documentation","description":"Congressional Trades API: US Senate and House stock-trade disclosures under the STOCK Act, from official Senate EFD and House Clerk sources, in one JSON endpoint.","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\/congressional-trades-api","og_locale":"en_US","og_type":"article","og_title":"Congressional Trades API (beta)","og_description":"Congressional Trades API: US Senate and House stock-trade disclosures under the STOCK Act, from official Senate EFD and House Clerk sources, in one JSON endpoint.","og_url":"https:\/\/eodhd.com\/financial-apis\/congressional-trades-api","og_site_name":"Stock Price Data, Financial and Stock Market API","article_publisher":"https:\/\/www.facebook.com\/eodhistoricaldata","article_published_time":"2026-07-16T08:38:00+00:00","article_modified_time":"2026-07-16T08:38:01+00:00","author":"a.pletnev","twitter_card":"summary_large_image","twitter_creator":"@EOD_data","twitter_site":"@EOD_data","twitter_misc":{"Written by":"a.pletnev","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/eodhd.com\/financial-apis\/congressional-trades-api#article","isPartOf":{"@id":"https:\/\/eodhd.com\/financial-apis\/congressional-trades-api"},"author":{"name":"a.pletnev","@id":"https:\/\/eodhd.com\/financial-apis\/#\/schema\/person\/ed3193541c25b73e823a83bdcdb09b5d"},"headline":"Congressional Trades API (beta)","datePublished":"2026-07-16T08:38:00+00:00","dateModified":"2026-07-16T08:38:01+00:00","mainEntityOfPage":{"@id":"https:\/\/eodhd.com\/financial-apis\/congressional-trades-api"},"wordCount":898,"publisher":{"@id":"https:\/\/eodhd.com\/financial-apis\/#organization"},"keywords":["congress","senate","US"],"articleSection":["4. Alternative &amp; Derived Data"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/eodhd.com\/financial-apis\/congressional-trades-api","url":"https:\/\/eodhd.com\/financial-apis\/congressional-trades-api","name":"Congressional Trades API (beta) | EODHD APIs Documentation","isPartOf":{"@id":"https:\/\/eodhd.com\/financial-apis\/#website"},"datePublished":"2026-07-16T08:38:00+00:00","dateModified":"2026-07-16T08:38:01+00:00","description":"Congressional Trades API: US Senate and House stock-trade disclosures under the STOCK Act, from official Senate EFD and House Clerk sources, in one JSON endpoint.","breadcrumb":{"@id":"https:\/\/eodhd.com\/financial-apis\/congressional-trades-api#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/eodhd.com\/financial-apis\/congressional-trades-api"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/eodhd.com\/financial-apis\/congressional-trades-api#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/eodhd.com\/financial-apis"},{"@type":"ListItem","position":2,"name":"Congressional Trades API (beta)"}]},{"@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\/ed3193541c25b73e823a83bdcdb09b5d","name":"a.pletnev","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/eodhd.com\/financial-apis\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/020e454749b61223b72b1bf96e7978ccdd1e39b04585b29698da3767a193a57d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/020e454749b61223b72b1bf96e7978ccdd1e39b04585b29698da3767a193a57d?s=96&d=mm&r=g","caption":"a.pletnev"}}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p8NjB1-25G","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/eodhd.com\/financial-apis\/wp-json\/wp\/v2\/posts\/8040","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\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/eodhd.com\/financial-apis\/wp-json\/wp\/v2\/comments?post=8040"}],"version-history":[{"count":3,"href":"https:\/\/eodhd.com\/financial-apis\/wp-json\/wp\/v2\/posts\/8040\/revisions"}],"predecessor-version":[{"id":8043,"href":"https:\/\/eodhd.com\/financial-apis\/wp-json\/wp\/v2\/posts\/8040\/revisions\/8043"}],"wp:attachment":[{"href":"https:\/\/eodhd.com\/financial-apis\/wp-json\/wp\/v2\/media?parent=8040"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/eodhd.com\/financial-apis\/wp-json\/wp\/v2\/categories?post=8040"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/eodhd.com\/financial-apis\/wp-json\/wp\/v2\/tags?post=8040"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}