Boerse Stuttgart APIboerse-stuttgart.de ↗
Access real-time quotes, index data, Optionsscheine, and security details from Börse Stuttgart via 5 structured API endpoints. Search by name, WKN, or ISIN.
What is the Boerse Stuttgart API?
The Börse Stuttgart API provides structured access to Germany's leading retail stock exchange through 5 endpoints covering real-time quotes, warrant listings, index constituents, and security master data. The get_stock_quote endpoint returns over a dozen response fields including bid/ask spread, 52-week range, P/E ratio, dividend yield, EPS, and multi-period performance history for any security identified by WKN or ISIN.
curl -X POST 'https://api.parse.bot/scraper/8ce43cdc-d1ab-4c32-b8c7-647c58f8b897/search_products' \
-H 'X-API-Key: $PARSE_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"limit": "3",
"query": "SAP"
}'Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace boerse-stuttgart-de-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
from parse_apis.börse_stuttgart_market_data_api import BoerseStuttgart, OptionType, SecurityNotFound
client = BoerseStuttgart()
# Search for securities by name
for summary in client.securitysummaries.search(query="SAP"):
print(summary.name, summary.wkn, summary.latest_price, summary.category)
# Navigate from summary to full detail
security = summary.details()
print(security.meta.name, security.quote.price, security.quote.bid_price)
print(security.price_data.previous_close_price, security.price_data.relative_change)
break
# Get a security directly by WKN
sap = client.securities.get(wkn="716460")
print(sap.isin, sap.product_url)
for period in sap.performance:
print(period.period, period.performance, period.trend_direction)
# Look up by product path
detail = client.securities.lookup(product_path="/de-de/produkte/aktien/stuttgart/716460-sap")
print(detail.wkn, detail.quote.ask_price)
# Search warrants filtered by option type
for warrant in client.warrants.search(underlying="SAP SE", option_type=OptionType.CALL):
print(warrant.name, warrant.wkn, warrant.strike_price, warrant.latest_price)
# Get DAX index and iterate its constituents
dax = client.indexes.get(index_slug="846900-dax")
print(dax.meta.name, dax.quote.price, dax.quote.todays_high)
for constituent in dax.constituents.list():
print(constituent.name, constituent.latest_price, constituent.performance_intraday_relative)
Full-text search across all product categories on Börse Stuttgart (stocks, bonds, ETFs, warrants, knock-outs, index certificates, funds). Returns up to `limit` results per category with real-time prices. Name-based and WKN-based searches return results reliably; ISIN-based searches may return empty results.
| Param | Type | Description |
|---|---|---|
| limit | integer | Maximum results per category |
| queryrequired | string | Search term — company name or WKN (e.g., 'SAP', 'Siemens', '716460') |
{
"type": "object",
"fields": {
"query": "string - the search term used",
"results": "array of product objects with category, name, wkn, latest_price, relative_change, trading_volume, notation_id, url, bid, ask",
"total_results": "integer - total number of results across all categories"
},
"sample": {
"data": {
"query": "SAP",
"results": [
{
"ask": 155.08,
"bid": 154.94,
"url": "/de-de/produkte/aktien/stuttgart/716460-sap",
"wkn": "716460",
"name": "SAP",
"category": "Aktien",
"notation_id": "22031",
"latest_price": 154.8,
"trading_volume": 774.6,
"relative_change": -0.0027
}
],
"total_results": 34
},
"status": "success"
}
}About the Boerse Stuttgart API
Search and Identify Securities
The search_products endpoint accepts a company name or WKN (e.g., 'SAP', '716460') and returns matched securities across all product categories — stocks, bonds, ETFs, warrants, knock-outs, index certificates, and funds. Each result includes name, wkn, latest_price, relative_change, trading_volume, bid, ask, and a direct url to the product page. Note that ISIN-based queries may return empty results; name and WKN searches are the reliable lookup methods.
Real-Time Quotes and Key Figures
get_stock_quote and get_security_details both return a consistent response shape built around several nested objects: quote (current price, bid/ask, daily and 52-week high/low), price_data (trading platform, previous close, volume), key_figures (P/E ratio, dividend yield, EPS), master_data (WKN, ISIN, symbol, sector, market cap), and performance (an array of periods each carrying a percentage return alongside the period high and low). A company_profile field delivers an HTML description of the issuer. get_security_details additionally supports lookup by a direct product_path URL segment, useful when you already have the canonical path from a prior search result.
Warrants (Optionsscheine)
get_optionsscheine lists warrants for a named underlying asset such as 'SAP SE' or 'DAX'. Each warrant object carries name, wkn, latest_price, relative_change, trading_volume, option_type, and strike_price. Setting include_details to 'true' adds emittent, maturity date, and full master data fields per warrant at the cost of additional latency. The option_type parameter filters results to 'call', 'put', or all.
Index Data with Constituents
get_index_data returns a full snapshot of a named index using an index_slug formatted as 'wkn-name' (e.g., '846900-dax', '846741-mdax'). The response includes index-level quote, price_data, master_data, and performance arrays, plus a constituents array listing each member stock with its name, notation_id, latest_price, bid/ask values, and intraday performance. Defaults to the DAX if no slug is provided.
The Boerse Stuttgart API is a managed, monitored endpoint for boerse-stuttgart.de — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when boerse-stuttgart.de changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official boerse-stuttgart.de API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Monitor real-time bid/ask spreads and daily high/low for German equities using
get_stock_quote. - Screen warrants on a specific underlying (e.g., DAX calls) by strike price and maturity via
get_optionsscheine. - Build an index tracker displaying all DAX or MDAX constituents with live intraday performance using
get_index_data. - Resolve a company name to its WKN and notation_id using
search_productsbefore fetching detailed data. - Compare multi-year P/E and dividend yield history across securities using the
key_figures_overviewfield. - Automate alerts when a security's 52-week range boundary is approached, pulling range data from
quoteresponse fields. - Aggregate sector and market cap metadata across a portfolio using
master_datafields returned byget_security_details.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Börse Stuttgart provide an official developer API?+
What is the difference between `get_stock_quote` and `get_security_details`?+
get_stock_quote is optimized for equities and indices, accepting a WKN or ISIN and returning the full quote plus key figures and a company profile. get_security_details covers the same response shape but also accepts a product_path parameter — useful for instruments like warrants or ETFs where you already have a canonical URL path from a prior search_products call.Are ISIN-based lookups reliable across all endpoints?+
search_products may return empty results. WKN-based and name-based lookups are the more reliable identifiers for this exchange. For get_stock_quote and get_security_details, ISIN works alongside WKN, but WKN is the recommended primary identifier when both are available.Does the API cover historical OHLCV time-series data for charting?+
Does the API cover certificates or knock-out products beyond plain warrants?+
search_products will match knock-outs and index certificates in its results, returning basic fields like latest_price, wkn, and url. However, there is no dedicated endpoint for listing or filtering knock-outs by barrier or product type the way get_optionsscheine does for warrants. You can fork this API on Parse and revise it to add a structured knock-out listing endpoint.