BourseAPI
Menu
Radar
Pricing
Developers / API

Bourse API reference

REST API at https://api.bourse.pl/v1, version 1.3.0. JSON by default, CSV with format=csv. The machine-readable OpenAPI 3.1 document is at api.bourse.pl/v1/openapi.json (import into Postman, Insomnia or a code generator). Service status: status.bourse.pl.

Authentication

Send your key in a header. Get a free key in the Bourse app: Settings, API key.

Authorization: Bearer bk_...
# or
X-API-Key: bk_...

Plans and rate limits

PlanPer minutePer dayDataPrice
Free key601,000event data delayed 48 h$0
RapidAPI BASIC-50 per 30 daysdelayed 48 h$0
Premium6020,000live$14.99 / month
Pay-as-you-go600250,000live, commercial license$1 / 1,000 requests
API Pro600250,000live, nightly CSV/NDJSON files$499 / month
Enterprise1,2001,000,000live, Parquet history on S3, 99.9% SLA$1,000 / month

Every response has X-Bourse-Plan, X-RateLimit-Limit-Day and X-RateLimit-Remaining-Day; delayed responses add X-Bourse-Data-Delay: 48h. Over a limit you get HTTP 429. Data responses are sent with Cache-Control: no-store: there is no edge cache between you and the database.

Timestamps and identifiers in every record

filed_at_source_timestampWhen the source published the filing: SEC acceptance time for Form 4, disclosure date for Congress, report date for OGE 278-T. null when the source gives no time.
processed_by_bourse_timestampWhen Bourse stored the record (UTC). The difference between the two is the processing delay.
cik, cusip, isin, figiOn every record with a ticker. CIK from the SEC, CUSIP from Form 13F filings, ISIN computed from the CUSIP, FIGI from OpenFIGI. Look up one security with /v1/symbology.
{
  "ticker": "NVDA", "transaction_code": "P", "total_value": 1250000,
  "conviction_score": 94,
  "filed_at_source_timestamp": "2026-11-10T21:04:05Z",
  "processed_by_bourse_timestamp": "2026-11-10T21:31:40Z",
  "cik": "0001045810", "cusip": "67066G104", "isin": "US67066G1040", "figi": "BBG000BBJQV0"
}

Errors

{"error": {"code": "daily_limit", "message": "Daily limit of 1000 requests reached", "docs": "https://www.bourse.pl/api/"}}

Codes: missing_api_key, invalid_api_key, rate_limited, daily_limit, monthly_limit, premium_only, plan_required, bad_fields, bad_date, unknown_endpoint, upstream_error.

Python: bourse-quant

pip install bourse-quant

import bourse
df = bourse.get_insider_trades("NVDA")
top = bourse.get_conviction(min_score=90)
risk = bourse.stress_test({"AAPL": 40, "MSFT": 30, "TLT": 30})

Pagination, retries on 429 and 5xx, pandas DataFrames with parsed timestamps, and an asyncio client.

Bulk history

Every night each dataset is written to whole-history files. GET /v1/exports returns pre-signed URLs valid for one hour: gzipped CSV and NDJSON for API Pro; Parquet (Snappy, 250,000 rows per part) from Amazon S3 for Enterprise.

curl -H "Authorization: Bearer $BOURSE_KEY" https://api.bourse.pl/v1/exports

Webhooks

Premium, API Pro, Pay-as-you-go and Enterprise accounts can register up to 5 HTTPS endpoints in the app (Settings, API, Webhooks). Every 5 minutes Bourse POSTs new filings of the chosen types, optionally only for your tickers. Each request carries Bourse-Signature: t=<unix>,v1=<hex>, an HMAC-SHA256 of "<t>." + raw body with your webhook secret.

EventDescription
congressNew Congress trade disclosures (STOCK Act).
insidersNew SEC Form 4 open-market purchases and sales.
trumpNew transactions from President Trump OGE 278-T reports.
cabinetNew transactions of Cabinet members, Fed governors and White House staff.
form144New Form 144 notices of proposed insider sales.
POST https://your-server.example/bourse
Bourse-Signature: t=1762870000,v1=5f2b...

{"id": "6f1c2c1e-...", "created": "2026-11-11T14:05:00Z", "count": 1,
 "events": [{"type": "insiders", "at": "2026-11-11T14:03:12Z",
   "data": {"ticker": "NVDA", "insider": "...", "side": "buy", "value": 120500}}],
 "source": "Bourse (bourse.pl)"}

# Python
import bourse
ok = bourse.verify_webhook(secret, headers["Bourse-Signature"], raw_body)

Washington

GET/v1/congress

Stock trades disclosed by members of the U.S. Congress (STOCK Act periodic transaction reports), with price at trade and performance since.

Fields: member, chamber, party, ticker, asset, transaction_type, amount_range, transaction_date, disclosure_date, est_price, recent_price, perf_pct, source_url.

ParameterInDescription
tickerqueryFilter by ticker.
memberqueryFilter by member.
chamberqueryFilter by chamber.
partyqueryFilter by party.
typequeryFilter by type.
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (member, chamber, party, ticker, asset, transaction_type...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/congress"

GET/v1/congress/{ticker}

Stock trades disclosed by members of the U.S. Congress (STOCK Act periodic transaction reports), with price at trade and performance since. One ticker.

ParameterInDescription
ticker requiredpath
memberqueryFilter by member.
chamberqueryFilter by chamber.
partyqueryFilter by party.
typequeryFilter by type.
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (member, chamber, party, ticker, asset, transaction_type...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/congress/NVDA"

GET/v1/lobbying

Federal lobbying disclosures (Lobbying Disclosure Act reports) matched to public companies.

Fields: id, ticker, client, registrant, amount, year, quarter, date, issues, description, url.

ParameterInDescription
tickerqueryFilter by ticker.
clientqueryFilter by client.
registrantqueryFilter by registrant.
quarterqueryFilter by quarter.
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (id, ticker, client, registrant, amount, year...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/lobbying"

GET/v1/lobbying/{ticker}

Federal lobbying disclosures (Lobbying Disclosure Act reports) matched to public companies. One ticker.

ParameterInDescription
ticker requiredpath
clientqueryFilter by client.
registrantqueryFilter by registrant.
quarterqueryFilter by quarter.
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (id, ticker, client, registrant, amount, year...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/lobbying/NVDA"

GET/v1/contracts

U.S. federal government contract awards (USAspending) matched to public companies.

Fields: id, ticker, recipient, amount, agency, sub_agency, date, description, url.

ParameterInDescription
tickerqueryFilter by ticker.
agencyqueryFilter by agency.
recipientqueryFilter by recipient.
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (id, ticker, recipient, amount, agency, sub_agency...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/contracts"

GET/v1/contracts/{ticker}

U.S. federal government contract awards (USAspending) matched to public companies. One ticker.

ParameterInDescription
ticker requiredpath
agencyqueryFilter by agency.
recipientqueryFilter by recipient.
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (id, ticker, recipient, amount, agency, sub_agency...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/contracts/NVDA"

GET/v1/senate

Stock trades disclosed by U.S. Senators.

Fields: member, chamber, party, ticker, asset, transaction_type, amount_range, transaction_date, disclosure_date, est_price, recent_price, perf_pct, source_url.

ParameterInDescription
tickerqueryFilter by ticker.
memberqueryFilter by member.
partyqueryFilter by party.
typequeryFilter by type.
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (member, chamber, party, ticker, asset, transaction_type...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/senate"

GET/v1/senate/{ticker}

Stock trades disclosed by U.S. Senators. One ticker.

ParameterInDescription
ticker requiredpath
memberqueryFilter by member.
partyqueryFilter by party.
typequeryFilter by type.
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (member, chamber, party, ticker, asset, transaction_type...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/senate/NVDA"

GET/v1/house

Stock trades disclosed by members of the U.S. House of Representatives.

Fields: member, chamber, party, ticker, asset, transaction_type, amount_range, transaction_date, disclosure_date, est_price, recent_price, perf_pct, source_url.

ParameterInDescription
tickerqueryFilter by ticker.
memberqueryFilter by member.
partyqueryFilter by party.
typequeryFilter by type.
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (member, chamber, party, ticker, asset, transaction_type...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/house"

GET/v1/house/{ticker}

Stock trades disclosed by members of the U.S. House of Representatives. One ticker.

ParameterInDescription
ticker requiredpath
memberqueryFilter by member.
partyqueryFilter by party.
typequeryFilter by type.
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (member, chamber, party, ticker, asset, transaction_type...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/house/NVDA"

GET/v1/trump-trades

President Donald Trump's securities transactions from OGE Form 278-T periodic transaction reports (stocks, ETFs, bonds), with amount ranges.

Fields: id, person, asset, ticker, type, asset_class, date, amount_min, amount_max, filed, filed_late, report_url.

ParameterInDescription
tickerqueryFilter by ticker.
typequeryFilter by type.
asset_classqueryFilter by asset_class.
qqueryFilter by q.
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (id, person, asset, ticker, type, asset_class...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/trump-trades"

GET/v1/trump-trades/{ticker}

President Donald Trump's securities transactions from OGE Form 278-T periodic transaction reports (stocks, ETFs, bonds), with amount ranges. One ticker.

ParameterInDescription
ticker requiredpath
typequeryFilter by type.
asset_classqueryFilter by asset_class.
qqueryFilter by q.
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (id, person, asset, ticker, type, asset_class...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/trump-trades/NVDA"

GET/v1/cabinet-trades

Securities transactions of U.S. Cabinet secretaries, agency heads, Federal Reserve governors and White House advisers from OGE Form 278-T reports published by the Office of Government Ethics (the President is in trump-trades). Filter group=cabinet|federal_reserve|white_house|other.

Fields: id, person, position, agency, group, asset, ticker, type, asset_class, date, amount_min, amount_max, filed, published, filed_late, report_url.

ParameterInDescription
tickerqueryFilter by ticker.
personqueryFilter by person.
agencyqueryFilter by agency.
groupqueryFilter by group.
typequeryFilter by type.
asset_classqueryFilter by asset_class.
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (id, person, position, agency, group, asset...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/cabinet-trades"

GET/v1/cabinet-trades/{ticker}

Securities transactions of U.S. Cabinet secretaries, agency heads, Federal Reserve governors and White House advisers from OGE Form 278-T reports published by the Office of Government Ethics (the President is in trump-trades). Filter group=cabinet|federal_reserve|white_house|other. One ticker.

ParameterInDescription
ticker requiredpath
personqueryFilter by person.
agencyqueryFilter by agency.
groupqueryFilter by group.
typequeryFilter by type.
asset_classqueryFilter by asset_class.
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (id, person, position, agency, group, asset...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/cabinet-trades/NVDA"

GET/v1/revolving-door

Former government officials and congressional staff lobbying for public companies ("covered positions" in LD-2 reports).

Fields: id, ticker, client, registrant, lobbyist, former_position, new_lobbyist, year, quarter, date, issues, agencies, url.

ParameterInDescription
tickerqueryFilter by ticker.
lobbyistqueryFilter by lobbyist.
positionqueryFilter by position.
clientqueryFilter by client.
quarterqueryFilter by quarter.
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (id, ticker, client, registrant, lobbyist, former_position...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/revolving-door"

GET/v1/revolving-door/{ticker}

Former government officials and congressional staff lobbying for public companies ("covered positions" in LD-2 reports). One ticker.

ParameterInDescription
ticker requiredpath
lobbyistqueryFilter by lobbyist.
positionqueryFilter by position.
clientqueryFilter by client.
quarterqueryFilter by quarter.
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (id, ticker, client, registrant, lobbyist, former_position...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/revolving-door/NVDA"

GET/v1/warn-layoffs

WARN Act mass layoff and plant closure notices from U.S. states, matched to public companies where possible.

Fields: id, state, company, company_canonical, ticker, city, employees, notice_date, effective_date, type, source.

ParameterInDescription
tickerqueryFilter by ticker.
statequeryFilter by state.
companyqueryFilter by company.
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (id, state, company, company_canonical, ticker, city...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/warn-layoffs"

GET/v1/warn-layoffs/{ticker}

WARN Act mass layoff and plant closure notices from U.S. states, matched to public companies where possible. One ticker.

ParameterInDescription
ticker requiredpath
statequeryFilter by state.
companyqueryFilter by company.
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (id, state, company, company_canonical, ticker, city...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/warn-layoffs/NVDA"

GET/v1/government-spending

U.S. federal agency budgets, obligations and outlays (USAspending).

Fields: code, agency, abbreviation, fiscal_year, budget_authority, obligated, outlays, share_of_budget.

ParameterInDescription
agencyqueryFilter by agency.
yearqueryFilter by year.
min_<field>queryLower bound for a numeric/date field (code, agency, abbreviation, fiscal_year, budget_authority, obligated...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/government-spending"

GET/v1/legislation

Bills in the U.S. Congress with the latest action (Congress.gov).

Fields: id, congress, type, number, title, chamber, latest_action, latest_action_date, updated, url.

ParameterInDescription
qqueryFilter by q.
typequeryFilter by type.
chamberqueryFilter by chamber.
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (id, congress, type, number, title, chamber...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/legislation"

GET/v1/elections

2026 midterm candidates for the Senate and House: money raised, spent and cash on hand (FEC).

Fields: id, cycle, name, party, office, state, district, status, receipts, disbursements, cash_on_hand, coverage_end.

ParameterInDescription
statequeryFilter by state.
officequeryFilter by office.
partyqueryFilter by party.
namequeryFilter by name.
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (id, cycle, name, party, office, state...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/elections"

GET/v1/corporate-pacs

Corporate PACs matched to public companies and how much they gave to federal candidates (FEC).

Fields: id, cycle, committee, ticker, receipts, disbursements, to_candidates, cash_on_hand.

ParameterInDescription
tickerqueryFilter by ticker.
committeequeryFilter by committee.
min_<field>queryLower bound for a numeric/date field (id, cycle, committee, ticker, receipts, disbursements...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/corporate-pacs"

GET/v1/corporate-pacs/{ticker}

Corporate PACs matched to public companies and how much they gave to federal candidates (FEC). One ticker.

ParameterInDescription
ticker requiredpath
committeequeryFilter by committee.
min_<field>queryLower bound for a numeric/date field (id, cycle, committee, ticker, receipts, disbursements...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/corporate-pacs/NVDA"

GET/v1/committees

Current congressional committee membership.

Fields: bioguide, member, chamber, committee_id, committee, title, rank.

ParameterInDescription
memberqueryFilter by member.
committeequeryFilter by committee.
min_<field>queryLower bound for a numeric/date field (bioguide, member, chamber, committee_id, committee, title...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/committees"

GET/v1/dc-insider-score

Bourse DC Insider Score 0-100: Congress net buying, lobbying growth and new government contracts.

Premium keys only. Fields: ticker, score, congress_net, lobbying_growth, contracts_90d, updated_at.

ParameterInDescription
tickerqueryFilter by ticker.
min_<field>queryLower bound for a numeric/date field (ticker, score, congress_net, lobbying_growth, contracts_90d, updated_at...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/dc-insider-score"

GET/v1/dc-insider-score/{ticker}

Bourse DC Insider Score 0-100: Congress net buying, lobbying growth and new government contracts. One ticker.

ParameterInDescription
ticker requiredpath
min_<field>queryLower bound for a numeric/date field (ticker, score, congress_net, lobbying_growth, contracts_90d, updated_at...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/dc-insider-score/NVDA"

Insiders & institutions

GET/v1/insiders

Insider transactions from SEC Form 4 (code P = open-market purchase, S = sale), with 1-day and 1-month returns after the trade.

Fields: ticker, company_name, insider_name, insider_title, is_officer, transaction_code, shares_amount, price_per_share, total_value, shares_owned_after, transaction_date, return_1d, return_1m.

ParameterInDescription
tickerqueryFilter by ticker.
insiderqueryFilter by insider.
titlequeryFilter by title.
codequeryFilter by code.
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (ticker, company_name, insider_name, insider_title, is_officer, transaction_code...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/insiders"

GET/v1/insiders/{ticker}

Insider transactions from SEC Form 4 (code P = open-market purchase, S = sale), with 1-day and 1-month returns after the trade. One ticker.

ParameterInDescription
ticker requiredpath
insiderqueryFilter by insider.
titlequeryFilter by title.
codequeryFilter by code.
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (ticker, company_name, insider_name, insider_title, is_officer, transaction_code...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/insiders/NVDA"

GET/v1/funds13f

Holdings of large investment managers from SEC Form 13F filings.

Fields: fund, company, value_usd, shares, filing_date.

ParameterInDescription
fundqueryFilter by fund.
companyqueryFilter by company.
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (fund, company, value_usd, shares, filing_date...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/funds13f"

GET/v1/whales

Large-stake filings (SEC Schedule 13D and 13G): who crossed 5% ownership in a company.

Fields: id, date, form, company, company_cik, ticker, investor, investor_cik, url.

ParameterInDescription
tickerqueryFilter by ticker.
investorqueryFilter by investor.
formqueryFilter by form.
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (id, date, form, company, company_cik, ticker...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/whales"

GET/v1/whales/{ticker}

Large-stake filings (SEC Schedule 13D and 13G): who crossed 5% ownership in a company. One ticker.

ParameterInDescription
ticker requiredpath
investorqueryFilter by investor.
formqueryFilter by form.
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (id, date, form, company, company_cik, ticker...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/whales/NVDA"

GET/v1/etf-holdings

Daily holdings of ARK and iShares ETFs.

Fields: etf, date, ticker, name, weight_pct, market_value, shares.

ParameterInDescription
etfqueryFilter by etf.
tickerqueryFilter by ticker.
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (etf, date, ticker, name, weight_pct, market_value...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/etf-holdings"

GET/v1/etf-holdings/{ticker}

Daily holdings of ARK and iShares ETFs. One ticker.

ParameterInDescription
ticker requiredpath
etfqueryFilter by etf.
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (etf, date, ticker, name, weight_pct, market_value...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/etf-holdings/NVDA"

GET/v1/investor-13f

Holdings history of famous investors (Buffett, Burry, Ackman, Marks, Gates...) from 13F filings.

Fields: investor, cik, filed, issuer, ticker, value_usd, shares.

ParameterInDescription
investorqueryFilter by investor.
tickerqueryFilter by ticker.
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (investor, cik, filed, issuer, ticker, value_usd...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/investor-13f"

GET/v1/investor-13f/{ticker}

Holdings history of famous investors (Buffett, Burry, Ackman, Marks, Gates...) from 13F filings. One ticker.

ParameterInDescription
ticker requiredpath
investorqueryFilter by investor.
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (investor, cik, filed, issuer, ticker, value_usd...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/investor-13f/NVDA"

GET/v1/form-144

SEC Form 144 notices of proposed sales by insiders: shares, market value, approximate sale date and 10b5-1 plan adoption date.

Fields: id, filed, ticker, company, company_cik, insider, insider_cik, relationship, security, shares, market_value, approx_sale_date, plan_10b5_1_adopted, exchange, url.

ParameterInDescription
tickerqueryFilter by ticker.
insiderqueryFilter by insider.
relationshipqueryFilter by relationship.
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (id, filed, ticker, company, company_cik, insider...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/form-144"

GET/v1/form-144/{ticker}

SEC Form 144 notices of proposed sales by insiders: shares, market value, approximate sale date and 10b5-1 plan adoption date. One ticker.

ParameterInDescription
ticker requiredpath
insiderqueryFilter by insider.
relationshipqueryFilter by relationship.
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (id, filed, ticker, company, company_cik, insider...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/form-144/NVDA"

GET/v1/corporate-events

SEC 8-K current reports by item: leadership changes (5.02), auditor changes (4.01), restatements (4.02), bankruptcy (1.03), delisting notices (3.01), completed M&A (2.01), cyber incidents (1.05) and more. Filter with category=leadership|auditor|restatement|bankruptcy|delisting|acquisition|control|cyber|restructuring|impairment|equity|earnings|agreement.

Fields: id, filed, ticker, company, cik, form, items, categories, url.

ParameterInDescription
tickerqueryFilter by ticker.
categoryqueryFilter by category.
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (id, filed, ticker, company, cik, form...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/corporate-events"

GET/v1/corporate-events/{ticker}

SEC 8-K current reports by item: leadership changes (5.02), auditor changes (4.01), restatements (4.02), bankruptcy (1.03), delisting notices (3.01), completed M&A (2.01), cyber incidents (1.05) and more. Filter with category=leadership|auditor|restatement|bankruptcy|delisting|acquisition|control|cyber|restructuring|impairment|equity|earnings|agreement. One ticker.

ParameterInDescription
ticker requiredpath
categoryqueryFilter by category.
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (id, filed, ticker, company, cik, form...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/corporate-events/NVDA"

GET/v1/late-filings

Late filing notices (SEC Forms NT 10-K, NT 10-Q, NT 20-F): companies that missed their periodic report deadline.

Fields: id, filed, ticker, company, cik, form, url.

ParameterInDescription
tickerqueryFilter by ticker.
formqueryFilter by form.
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (id, filed, ticker, company, cik, form...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/late-filings"

GET/v1/late-filings/{ticker}

Late filing notices (SEC Forms NT 10-K, NT 10-Q, NT 20-F): companies that missed their periodic report deadline. One ticker.

ParameterInDescription
ticker requiredpath
formqueryFilter by form.
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (id, filed, ticker, company, cik, form...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/late-filings/NVDA"

Alternative data

GET/v1/prediction-markets

Large trades (over $10,000) on Polymarket prediction markets.

Fields: id, time, market, slug, outcome, side, amount_usd, price, size, wallet, trader, url.

ParameterInDescription
marketqueryFilter by market.
sidequeryFilter by side.
walletqueryFilter by wallet.
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (id, time, market, slug, outcome, side...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/prediction-markets"

GET/v1/short-interest

Short interest (shares sold short, % of float, days to cover) and change vs the prior report.

Fields: ticker, date, shares_short, pct_float, days_to_cover, shares_short_prior, change, float_shares.

ParameterInDescription
tickerqueryFilter by ticker.
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (ticker, date, shares_short, pct_float, days_to_cover, shares_short_prior...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/short-interest"

GET/v1/short-interest/{ticker}

Short interest (shares sold short, % of float, days to cover) and change vs the prior report. One ticker.

ParameterInDescription
ticker requiredpath
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (ticker, date, shares_short, pct_float, days_to_cover, shares_short_prior...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/short-interest/NVDA"

GET/v1/app-ratings

Daily App Store rating and rating count of consumer apps of public companies.

Fields: ticker, app_id, date, app, rating, ratings_count, version, version_date.

ParameterInDescription
tickerqueryFilter by ticker.
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (ticker, app_id, date, app, rating, ratings_count...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/app-ratings"

GET/v1/app-ratings/{ticker}

Daily App Store rating and rating count of consumer apps of public companies. One ticker.

ParameterInDescription
ticker requiredpath
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (ticker, app_id, date, app, rating, ratings_count...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/app-ratings/NVDA"

GET/v1/patents

U.S. patents granted to public companies (PatentsView).

Fields: id, ticker, assignee, title, date.

ParameterInDescription
tickerqueryFilter by ticker.
qqueryFilter by q.
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (id, ticker, assignee, title, date...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/patents"

GET/v1/patents/{ticker}

U.S. patents granted to public companies (PatentsView). One ticker.

ParameterInDescription
ticker requiredpath
qqueryFilter by q.
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (id, ticker, assignee, title, date...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/patents/NVDA"

SEC filings

GET/v1/executive-compensation

CEO (PEO) total compensation from Pay-versus-Performance XBRL disclosures in proxy statements.

Fields: cik, company, ticker, year, ceo_total_comp_usd, period_end, accession.

ParameterInDescription
tickerqueryFilter by ticker.
yearqueryFilter by year.
companyqueryFilter by company.
min_<field>queryLower bound for a numeric/date field (cik, company, ticker, year, ceo_total_comp_usd, period_end...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/executive-compensation"

GET/v1/executive-compensation/{ticker}

CEO (PEO) total compensation from Pay-versus-Performance XBRL disclosures in proxy statements. One ticker.

ParameterInDescription
ticker requiredpath
yearqueryFilter by year.
companyqueryFilter by company.
min_<field>queryLower bound for a numeric/date field (cik, company, ticker, year, ceo_total_comp_usd, period_end...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/executive-compensation/NVDA"

GET/v1/stock-splits

Upcoming and recent stock splits and reverse splits.

Fields: ticker, name, ratio, factor, date, announced.

ParameterInDescription
tickerqueryFilter by ticker.
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (ticker, name, ratio, factor, date, announced...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/stock-splits"

GET/v1/stock-splits/{ticker}

Upcoming and recent stock splits and reverse splits. One ticker.

ParameterInDescription
ticker requiredpath
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (ticker, name, ratio, factor, date, announced...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/stock-splits/NVDA"

Wall Street

GET/v1/analysts

Wall Street analyst consensus: price targets, rating distribution and number of analysts.

Fields: symbol, name, price, target_mean, target_median, target_high, target_low, analysts, rating_mean, rating, strong_buy, buy, hold, sell, strong_sell, updated_at.

ParameterInDescription
tickerqueryFilter by ticker.
ratingqueryFilter by rating.
min_<field>queryLower bound for a numeric/date field (symbol, name, price, target_mean, target_median, target_high...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/analysts"

GET/v1/analysts/{ticker}

Wall Street analyst consensus: price targets, rating distribution and number of analysts. One ticker.

ParameterInDescription
ticker requiredpath
ratingqueryFilter by rating.
min_<field>queryLower bound for a numeric/date field (symbol, name, price, target_mean, target_median, target_high...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/analysts/NVDA"

GET/v1/ratings

Analyst upgrades, downgrades and initiations by brokerage firm.

Fields: symbol, name, firm, from_grade, to_grade, action, date.

ParameterInDescription
tickerqueryFilter by ticker.
firmqueryFilter by firm.
actionqueryFilter by action.
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (symbol, name, firm, from_grade, to_grade, action...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/ratings"

GET/v1/ratings/{ticker}

Analyst upgrades, downgrades and initiations by brokerage firm. One ticker.

ParameterInDescription
ticker requiredpath
firmqueryFilter by firm.
actionqueryFilter by action.
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (symbol, name, firm, from_grade, to_grade, action...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/ratings/NVDA"

GET/v1/earnings

Upcoming earnings report dates with EPS estimates.

Fields: symbol, name, report_date, eps_estimate, currency.

ParameterInDescription
tickerqueryFilter by ticker.
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (symbol, name, report_date, eps_estimate, currency...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/earnings"

GET/v1/earnings/{ticker}

Upcoming earnings report dates with EPS estimates. One ticker.

ParameterInDescription
ticker requiredpath
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (symbol, name, report_date, eps_estimate, currency...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/earnings/NVDA"

GET/v1/dividends

Dividends: annual amount, yield, payout ratio, ex-dividend and payment dates.

Fields: symbol, name, price, annual_amount, yield_pct, ex_date, pay_date, payout_pct, currency, updated_at.

ParameterInDescription
tickerqueryFilter by ticker.
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (symbol, name, price, annual_amount, yield_pct, ex_date...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/dividends"

GET/v1/dividends/{ticker}

Dividends: annual amount, yield, payout ratio, ex-dividend and payment dates. One ticker.

ParameterInDescription
ticker requiredpath
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (symbol, name, price, annual_amount, yield_pct, ex_date...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/dividends/NVDA"

Retail & market

GET/v1/tv-picks

Stock calls made on CNBC: Jim Cramer's "Mad Money" (including the lightning round) and guests' "Final Trades" (stance classified by AI).

Fields: id, date, show, person, ticker, company, call, reason, url, title.

ParameterInDescription
tickerqueryFilter by ticker.
personqueryFilter by person.
showqueryFilter by show.
callqueryFilter by call.
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (id, date, show, person, ticker, company...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/tv-picks"

GET/v1/tv-picks/{ticker}

Stock calls made on CNBC: Jim Cramer's "Mad Money" (including the lightning round) and guests' "Final Trades" (stance classified by AI). One ticker.

ParameterInDescription
ticker requiredpath
personqueryFilter by person.
showqueryFilter by show.
callqueryFilter by call.
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (id, date, show, person, ticker, company...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/tv-picks/NVDA"

GET/v1/wikipedia-views

Daily English Wikipedia page views of each company's article.

Fields: ticker, date, views.

ParameterInDescription
tickerqueryFilter by ticker.
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (ticker, date, views...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/wikipedia-views"

GET/v1/wikipedia-views/{ticker}

Daily English Wikipedia page views of each company's article. One ticker.

ParameterInDescription
ticker requiredpath
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (ticker, date, views...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/wikipedia-views/NVDA"

GET/v1/attention

Retail attention snapshot per stock: latest Google Trends level and 7-day spike, Wikipedia views and spike.

Fields: ticker, query, google_latest, google_spike_pct, google_date, wikipedia_article, wikipedia_views_7d, wikipedia_spike_pct, wikipedia_date, updated_at.

ParameterInDescription
tickerqueryFilter by ticker.
min_<field>queryLower bound for a numeric/date field (ticker, query, google_latest, google_spike_pct, google_date, wikipedia_article...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/attention"

GET/v1/attention/{ticker}

Retail attention snapshot per stock: latest Google Trends level and 7-day spike, Wikipedia views and spike. One ticker.

ParameterInDescription
ticker requiredpath
min_<field>queryLower bound for a numeric/date field (ticker, query, google_latest, google_spike_pct, google_date, wikipedia_article...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/attention/NVDA"

GET/v1/wsb

Most-discussed tickers on Reddit r/wallstreetbets: rank, mentions and change over 24 hours.

Fields: date, ticker, name, rank, mentions, upvotes, rank_24h_ago, mentions_24h_ago.

ParameterInDescription
tickerqueryFilter by ticker.
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (date, ticker, name, rank, mentions, upvotes...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/wsb"

GET/v1/wsb/{ticker}

Most-discussed tickers on Reddit r/wallstreetbets: rank, mentions and change over 24 hours. One ticker.

ParameterInDescription
ticker requiredpath
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (date, ticker, name, rank, mentions, upvotes...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/wsb/NVDA"

GET/v1/shortvolume

Daily off-exchange short sale volume (FINRA Reg SHO).

Fields: date, symbol, short_volume, short_exempt_volume, total_volume.

ParameterInDescription
tickerqueryFilter by ticker.
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (date, symbol, short_volume, short_exempt_volume, total_volume...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/shortvolume"

GET/v1/shortvolume/{ticker}

Daily off-exchange short sale volume (FINRA Reg SHO). One ticker.

ParameterInDescription
ticker requiredpath
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (date, symbol, short_volume, short_exempt_volume, total_volume...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/shortvolume/NVDA"

GET/v1/signals

Technical snapshot for 700+ instruments: RSI, MACD, moving averages, 52-week range, momentum, volatility and active signals (golden cross, breakouts...).

Fields: symbol, name, type, country, sector, price, rsi14, macd_hist, sma20, sma50, sma200, bb_pctb, high_52w, low_52w, from_high_52w_pct, from_low_52w_pct, mom_1m, mom_3m, mom_6m, mom_12m, mom_12_1, chg_1d, chg_5d, volatility_30d, relative_volume, sentiment, signals, updated_at.

ParameterInDescription
tickerqueryFilter by ticker.
sectorqueryFilter by sector.
countryqueryFilter by country.
sentimentqueryFilter by sentiment.
typequeryFilter by type.
min_<field>queryLower bound for a numeric/date field (symbol, name, type, country, sector, price...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/signals"

GET/v1/signals/{ticker}

Technical snapshot for 700+ instruments: RSI, MACD, moving averages, 52-week range, momentum, volatility and active signals (golden cross, breakouts...). One ticker.

ParameterInDescription
ticker requiredpath
sectorqueryFilter by sector.
countryqueryFilter by country.
sentimentqueryFilter by sentiment.
typequeryFilter by type.
min_<field>queryLower bound for a numeric/date field (symbol, name, type, country, sector, price...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/signals/NVDA"

GET/v1/quotes

Latest quotes for indices, sector ETFs, stocks, currencies, commodities and crypto tracked by Bourse.

Fields: symbol, name, price, change_pct, category, updated_at.

ParameterInDescription
tickerqueryFilter by ticker.
categoryqueryFilter by category.
min_<field>queryLower bound for a numeric/date field (symbol, name, price, change_pct, category, updated_at...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/quotes"

GET/v1/quotes/{ticker}

Latest quotes for indices, sector ETFs, stocks, currencies, commodities and crypto tracked by Bourse. One ticker.

ParameterInDescription
ticker requiredpath
categoryqueryFilter by category.
min_<field>queryLower bound for a numeric/date field (symbol, name, price, change_pct, category, updated_at...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/quotes/NVDA"

Strategies, macro & news

GET/v1/strategies

Backtested Bourse strategies (Congress, insiders, lobbying, contracts, WSB, analysts, funds): return, Sharpe, drawdown. Add id=... to get the equity curve.

Fields: id, category, group, definition, stats, since, positions, updated_at.

ParameterInDescription
idqueryFilter by id.
categoryqueryFilter by category.
min_<field>queryLower bound for a numeric/date field (id, category, group, definition, stats, since...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/strategies"

GET/v1/ipo-calendar

IPO calendar: upcoming IPOs with price range and expected date, priced deals, new S-1/F-1 registrations and withdrawn offerings.

Fields: id, ticker, company, exchange, price_low, price_high, shares, deal_size_usd, date, status, source, url.

ParameterInDescription
tickerqueryFilter by ticker.
statusqueryFilter by status.
companyqueryFilter by company.
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (id, ticker, company, exchange, price_low, price_high...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/ipo-calendar"

GET/v1/ipo-calendar/{ticker}

IPO calendar: upcoming IPOs with price range and expected date, priced deals, new S-1/F-1 registrations and withdrawn offerings. One ticker.

ParameterInDescription
ticker requiredpath
statusqueryFilter by status.
companyqueryFilter by company.
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (id, ticker, company, exchange, price_low, price_high...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/ipo-calendar/NVDA"

GET/v1/treasury-yields

Daily U.S. Treasury par yield curve (1 month to 30 years) with 10Y-2Y and 10Y-3M spreads.

Fields: date, yields, spread_10y_2y, spread_10y_3m, source.

ParameterInDescription
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (date, yields, spread_10y_2y, spread_10y_3m, source...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/treasury-yields"

GET/v1/treasury-auctions

U.S. Treasury auctions: upcoming bills, notes and bonds and results (high yield, bid-to-cover, size).

Fields: id, auction_date, type, term, cusip, offering_amount, high_yield, bid_to_cover, issue_date, maturity_date, announced, has_result.

ParameterInDescription
typequeryFilter by type.
termqueryFilter by term.
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (id, auction_date, type, term, cusip, offering_amount...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/treasury-auctions"

GET/v1/national-debt

U.S. total public debt outstanding by day (Debt to the Penny): held by the public and intragovernmental holdings.

Fields: date, total_usd, held_by_public_usd, intragovernmental_usd.

ParameterInDescription
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (date, total_usd, held_by_public_usd, intragovernmental_usd...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/national-debt"

GET/v1/cot-positioning

CFTC Commitments of Traders (legacy, futures only): speculators' and commercials' positions in S&P 500, Nasdaq, Treasuries, currencies, gold, oil, bitcoin and more. Weekly.

Fields: id, date, code, market, open_interest, spec_long, spec_short, spec_net, commercial_long, commercial_short, commercial_net, spec_long_change, spec_short_change.

ParameterInDescription
codequeryFilter by code.
marketqueryFilter by market.
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (id, date, code, market, open_interest, spec_long...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/cot-positioning"

GET/v1/economic

Economic calendar: central bank decisions, inflation, jobs and GDP releases for the U.S., euro area and Poland.

Fields: date, time, name, region, category, importance, description.

ParameterInDescription
regionqueryFilter by region.
importancequeryFilter by importance.
categoryqueryFilter by category.
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (date, time, name, region, category, importance...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/economic"

GET/v1/macro

Macro indicators (inflation, rates, unemployment, GDP, PMI...) for the U.S., euro area and Poland, with history.

Fields: code, region, group, name, unit, value, previous, date, previous_date, history, source.

ParameterInDescription
regionqueryFilter by region.
codequeryFilter by code.
groupqueryFilter by group.
min_<field>queryLower bound for a numeric/date field (code, region, group, name, unit, value...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/macro"

GET/v1/news

Market news headlines from financial publishers, categorised (macro, markets, companies, crypto, commodities, central banks).

Fields: title, summary, source, url, image, category, published_at.

ParameterInDescription
qqueryFilter by q.
sourcequeryFilter by source.
categoryqueryFilter by category.
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (title, summary, source, url, image, category...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/news"

GET/v1/brief

The Bourse AI daily market brief (Premium keys only).

Premium keys only. Fields: date, headline, content, key_events.

ParameterInDescription
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (date, headline, content, key_events...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/brief"

GET/v1/stock-moves

"Why is it moving today?" explanations: the news and filings behind a stock's daily move, with sources.

Fields: symbol, day, language, explanation.

ParameterInDescription
tickerqueryFilter by ticker.
languagequeryFilter by language.
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (symbol, day, language, explanation...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/stock-moves"

GET/v1/stock-moves/{ticker}

"Why is it moving today?" explanations: the news and filings behind a stock's daily move, with sources. One ticker.

ParameterInDescription
ticker requiredpath
languagequeryFilter by language.
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (symbol, day, language, explanation...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/stock-moves/NVDA"

GET/v1/strategy-holdings

Current holdings and trade history of each backtested Bourse strategy (use id from /v1/strategies).

Fields: id, holdings, trades, updated_at.

ParameterInDescription
idqueryFilter by id.
min_<field>queryLower bound for a numeric/date field (id, holdings, trades, updated_at...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/strategy-holdings"

GET/v1/strategies/{id}

One strategy: description, stats, equity curve, holdings, trades; upcoming trades with Premium keys.

ParameterInDescription
id requiredpath
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/strategies/cramer-odwrotny"

Europe

GET/v1/eu-insiders

Share dealings by directors and other persons discharging managerial responsibilities (PDMR) at European listed companies, notified under Article 19 of the Market Abuse Regulation: Poland (ESPI, KNF), Germany (BaFin), France (AMF) and the United Kingdom (FCA National Storage Mechanism). Filter country=PL|DE|FR|UK, type=buy|sell|other.

Fields: id, country, regulator, company, isin, lei, ticker, person, role, role_group, type, nature, instrument, price, quantity, value, currency, value_eur, date, published, venue, url.

ParameterInDescription
countryqueryFilter by country.
isinqueryFilter by isin.
tickerqueryFilter by ticker.
companyqueryFilter by company.
personqueryFilter by person.
typequeryFilter by type.
rolequeryFilter by role.
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (id, country, regulator, company, isin, lei...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/eu-insiders"

GET/v1/eu-insiders/{ticker}

Share dealings by directors and other persons discharging managerial responsibilities (PDMR) at European listed companies, notified under Article 19 of the Market Abuse Regulation: Poland (ESPI, KNF), Germany (BaFin), France (AMF) and the United Kingdom (FCA National Storage Mechanism). Filter country=PL|DE|FR|UK, type=buy|sell|other. One ticker.

ParameterInDescription
ticker requiredpath
countryqueryFilter by country.
isinqueryFilter by isin.
companyqueryFilter by company.
personqueryFilter by person.
typequeryFilter by type.
rolequeryFilter by role.
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (id, country, regulator, company, isin, lei...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/eu-insiders/NVDA"

Poland

GET/v1/espi

Current reports (ESPI) of companies listed on the Warsaw Stock Exchange, with an AI summary.

Fields: company, title, summary_ai, published_at.

ParameterInDescription
companyqueryFilter by company.
qqueryFilter by q.
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (company, title, summary_ai, published_at...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/espi"

GET/v1/cpi-pl

Polish CPI inflation year over year by month (GUS), including flash estimates.

Fields: month, yoy_pct, flash, source.

ParameterInDescription
fromqueryStart date YYYY-MM-DD.
toqueryEnd date YYYY-MM-DD.
min_<field>queryLower bound for a numeric/date field (month, yoy_pct, flash, source...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/cpi-pl"

GET/v1/deposits-pl

Best savings and deposit offers from Polish banks, verified by Bourse.

Fields: bank, product, rate_pct, months, min_amount, max_amount, apr_pct, fee_pct, conditions, url, verified_on.

ParameterInDescription
bankqueryFilter by bank.
min_<field>queryLower bound for a numeric/date field (bank, product, rate_pct, months, min_amount, max_amount...).
max_<field>queryUpper bound for a numeric/date field.
limitqueryRows per page (1-1000, default 100).
offsetqueryRows to skip (pagination).
sortquerySort by a field, e.g. sort=date or sort=-amount (descending).
fieldsqueryComma-separated fields to return.
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/deposits-pl"

Analytics

GET/v1/sectors

Daily performance of the 11 S&P 500 sectors (Select Sector SPDR ETFs), best to worst.

ParameterInDescription
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/sectors"

GET/v1/movers

Biggest gainers and losers today among 700+ tracked instruments.

ParameterInDescription
typequerytype
countryquerycountry
limitquerylimit
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/movers"

GET/v1/tickers

Search the instruments Bourse covers by symbol or name.

ParameterInDescription
qqueryq
typequerytype
countryquerycountry
limitquerylimit
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/tickers"

GET/v1/insider-clusters

Companies where several different insiders bought shares on the open market (Form 4 code P) in a window.

ParameterInDescription
daysquerydays (default 30)
min_insidersquerymin_insiders (default 3)
limitquerylimit
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/insider-clusters"

GET/v1/eu-insider-clusters

European listed companies where several different directors (PDMR) bought shares in a window - Poland, Germany, France, UK (MAR art. 19).

ParameterInDescription
daysquerydays (default 30)
min_insidersquerymin_insiders (default 2)
countryquerycountry: PL, DE, FR, UK
limitquerylimit
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/eu-insider-clusters"

GET/v1/insider-top

Stocks with the largest total insider open-market buying (or selling with side=sell) in a window.

ParameterInDescription
daysquerydays
sidequeryside
limitquerylimit
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/insider-top"

GET/v1/congress-top

Stocks most bought (or sold with side=sell) by members of Congress in a window, by number of trades and members.

ParameterInDescription
daysquerydays
sidequeryside
limitquerylimit
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/congress-top"

GET/v1/congress-members

Members of Congress ranked by trading activity: trades, buys, sells, last trade, most traded tickers.

ParameterInDescription
daysquerydays (default 365)
partyqueryparty
chamberquerychamber
limitquerylimit
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/congress-members"

GET/v1/fund-changes

Quarter-over-quarter changes in one 13F filer: new, added, trimmed and exited positions.

ParameterInDescription
fundqueryfund (required)
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/fund-changes"

GET/v1/fund-holders

Which 13F funds hold a company, from each fund's latest filing, by position value.

ParameterInDescription
companyquerycompany (required)
limitquerylimit
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/fund-holders"

GET/v1/prices

Daily closing prices for up to 10 symbols (cached series, live fallback).

ParameterInDescription
symbolsquerysymbols (required, comma-separated)
rangequeryrange: 6m,1y,2y,5y,10y,max
fromqueryfrom
toqueryto
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/prices"

GET/v1/candles

OHLCV candles for one symbol.

ParameterInDescription
symbolquerysymbol (required)
intervalqueryinterval: 5m,15m,1h,4h,1d,1wk
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/candles"

GET/v1/fundamentals

Fundamentals from SEC filings for a U.S. company: revenue, earnings, margins, debt, valuation ratios, history.

ParameterInDescription
symbolquerysymbol (required)
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/fundamentals"

GET/v1/fx-nbp

Official National Bank of Poland exchange rates (table A) for up to 4 currencies over a date range.

ParameterInDescription
currenciesquerycurrencies (required, e.g. USD,EUR)
fromqueryfrom (required)
toqueryto (required)
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/fx-nbp"

GET/v1/trump-portfolio

Estimated portfolio of President Trump built from his 278-T reports: buys minus sales per asset (range midpoints).

ParameterInDescription
asset_classqueryasset_class: stock, fund, bond
limitquerylimit
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/trump-portfolio"

GET/v1/cramer-scorecard

How Jim Cramer's calls performed: return since each call, hit rate of buy and sell calls, vs SPY.

ParameterInDescription
daysquerydays (default 180)
personqueryperson (default Jim Cramer)
limitquerylimit
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/cramer-scorecard"

GET/v1/lobbying-top

Biggest corporate lobbying spenders in a quarter, with change vs the previous quarter.

ParameterInDescription
quarterqueryquarter (e.g. 2026-Q3, default latest)
limitquerylimit
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/lobbying-top"

GET/v1/contracts-top

Public companies with the most new federal contract dollars in a window.

ParameterInDescription
daysquerydays (default 90)
limitquerylimit
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/contracts-top"

GET/v1/layoffs-top

Public companies with the most employees in WARN layoff notices in a window.

ParameterInDescription
daysquerydays (default 90)
limitquerylimit
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/layoffs-top"

GET/v1/revolving-door-top

Companies employing the most former officials and congressional staff as lobbyists.

ParameterInDescription
daysquerydays (default 365)
limitquerylimit
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/revolving-door-top"

GET/v1/conviction

Bourse Conviction Score: every open-market insider purchase (Form 4, code P) ranked 0-100 by a gradient-boosted model, with reasons and "strongest since".

ParameterInDescription
min_scorequerymin_score (0-100)
tickerqueryticker
daysquerydays (default 30)
limitquerylimit
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/conviction"

GET/v1/coincidences

Coincidence Tracker: Congress trades next to federal contracts for the same company, with committee seats, lobbying and the price move after the award.

ParameterInDescription
tickerqueryticker
memberquerymember
committee_matchquerycommittee_match (true)
daysquerydays (default 365)
limitquerylimit
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/coincidences"

GET/v1/stress-test

Portfolio stress test (API Pro, Enterprise, Pay-as-you-go): VaR/CVaR, Monte Carlo, 2008/2018/2020/2022/2025 scenarios, market and rate shocks, concentration, hedge simulation.

ParameterInDescription
portfolioqueryportfolio (required, e.g. AAPL:40,MSFT:30,TLT:30)
valuequeryvalue (USD, default 100000)
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/stress-test?portfolio=AAPL:40,MSFT:30,TLT:30"

GET/v1/symbology

Identifier mapping: ticker, CIK, CUSIP, ISIN and FIGI for one security.

ParameterInDescription
tickerqueryticker
cusipquerycusip
isinqueryisin
figiqueryfigi
cikquerycik
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/symbology"

GET/v1/insights

1-Click Insights: every Bourse strategy with historical return, CAGR, maximum drawdown and a drawdown risk label (Low, Medium, High).

ParameterInDescription
categoryquerycategory
limitquerylimit
formatqueryjson (default) or csv.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/insights"

Profiles

GET/v1/ticker/{symbol}

Everything Bourse knows about one ticker in a single request.

ParameterInDescription
symbol requiredpath
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/ticker/NVDA"

Bulk

GET/v1/bulk/{dataset}

Premium: download up to 50,000 rows of a dataset at once (API Pro: 100,000), same filters.

ParameterInDescription
dataset requiredpath
formatquerycsv (default) or ndjson.
curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/bulk/congress"

GET/v1/exports

API Pro: pre-signed links (valid 1 hour) to nightly full-dataset files (gzipped NDJSON and CSV). Enterprise: also Parquet, served from Amazon S3.

curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/exports"

Account

GET/v1/usage

Your plan, limits, keys and requests used today, in the last 30 days and per endpoint.

curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/v1/usage"

GET/status

Public uptime and latency of the API, MCP server, website, database and data pipelines (no key). Human-readable: https://status.bourse.pl

curl -H "Authorization: Bearer $BOURSE_KEY" "https://api.bourse.pl/status"

Bourse provides financial data and editorial information, parts of which are generated by AI. This page is for general education only. It is not personalised investment advice or a recommendation to buy or sell any financial instrument. Make your own decisions.