Next free-source hunt
We check for new free data every weekday.
Datasets / Market Data
mds.deutsche-boerse.com/

Deutsche Börse MiFID II delayed data (Xetra, Börse Frankfurt, Eurex)

Freeauth: noneCustom#market-data#delayed-data#stocks#derivatives✓ verified Nov 5, 2026

Deutsche Börse MiFID II delayed data (Xetra, Börse Frankfurt, Eurex)

Deutsche Börse Group's free MiFIR Art. 13(1) delayed-data file service: gzipped JSON files, one per minute, of pre- and post-trade market data 15 minutes after creation for Xetra, Börse Frankfurt (including certificates and warrants), Tradegate, Eurex and EEX. Files stay up until midnight of the following business day. No registration or key.

Coverage

Pre- and post-trade minute files (gzipped newline-delimited JSON, UTC) for Xetra (for example DETR-pretrade / DETR-posttrade), Börse Frankfurt, Börse Frankfurt Certificates and Warrants (post-trade), Tradegate BSX, Eurex (options and non-options) and EEX power and gas derivatives, plus a daily consolidated post-trade file. 15-minute delay; information once per minute; files kept until midnight of the following business day (Xetra post-trade listed 2,644 files on Nov 5, 2026). This is the current MDS/MFS service, not the deprecated Deutsche Börse Public Dataset on AWS. Regulatory delayed data, not a real-time feed.

Verdict

This is the official free delayed trade and quote record for Xetra, Börse Frankfurt and Eurex, useful for agents that need venue-level German equity and derivatives transparency data. Files disappear after the next business day, so collect them yourself for history, and do not use the deprecated AWS Public Dataset. Deutsche Börse's terms grant a free licence only if you do not commercialise the data: onward dissemination for a fee or charged value-added services need a licence under its Market Data Dissemination Agreement.

Get the free weekly email

Free weekly email of newly verified free data. Unsubscribe by emailing us.

Use in your agent

Read a Xetra delayed post-trade minute file into pandas and Parquet. Checked against the provider's documentation on Nov 5, 2026.

Raw skill file (/skills/deutsche-boerse-mifid-delayed.md)Also in our MCP server: call get_ingestion_skill with {"slug": "deutsche-boerse-mifid-delayed"}.

Access

  • No account or key; the file service page shows Terms of Use.
  • The Xetra post-trade page (https://mfs.deutsche-boerse.com/DETR-posttrade) loads its file list from https://mfs.deutsche-boerse.com/api/DETR-posttrade; each file downloads from /api/download/<name>, which redirects to a short-lived signed link.

Request

bash
curl 'https://mfs.deutsche-boerse.com/api/DETR-posttrade'

Format

File list: JSON with SourcePrefix, FileCount, GenerationDatetime and CurrentFiles (names like DETR-posttrade-2026-11-05T12_00.json.gz, plus a daily file). Each file is gzipped newline-delimited JSON, one trade per line (instrumentIdentificationCode, price, quantity, priceCurrency, tradingDateAndTime, venueOfExecution and MMT flags).

Load into pandas and Parquet

Needs Python 3 with requests, pandas and pyarrow.

python
"""Deutsche Boerse MiFID II delayed Xetra post-trade (one minute file) -> pandas -> Parquet. No key."""
import gzip, json
import requests
import pandas as pd

BASE = "https://mfs.deutsche-boerse.com/api/"
listing = requests.get(BASE + "DETR-posttrade", timeout=60).json()
# Minute files are named DETR-posttrade-YYYY-MM-DDTHH_MM.json.gz (UTC); pick one inside trading hours.
name = next(f for f in listing["CurrentFiles"] if "daily" not in f and "T12_00" in f)
raw = requests.get(BASE + "download/" + name, timeout=120).content  # follows a short-lived signed redirect
records = [json.loads(line) for line in gzip.decompress(raw).decode("utf-8").splitlines() if line.strip()]
df = pd.DataFrame(records)
df.to_parquet("dbg_xetra_posttrade.parquet", index=False)
print(name, len(df), "trades;", df["venueOfExecution"].iloc[0], df["instrumentIdentificationCode"].nunique(), "ISINs")

Run by us on 2026-11-05 (python 3.13 | pandas | pyarrow | requests (box probe)). Result: DETR-posttrade-2026-11-05T12_00.json.gz 1223 trades; XETA 410 ISINs

Limits

  • 15-minute delay; files remain available until midnight of the following business day, so collect them yourself for history.
  • No request or download limit stated.

Quirks

  • Minute files outside trading hours can be empty; the snippet picks 12:00 UTC.
  • Other venues use other prefixes on the same service (for example DETR-pretrade, Börse Frankfurt, Tradegate, Eurex, EEX); see the Delayed data page for links.
  • Do not use the deprecated Deutsche Börse Public Dataset on AWS.

Terms and attribution

  • Free, non-exclusive, non-transferable licence only if you do not commercialise the data.
  • Onward dissemination for a fee or value-added services sold for a fee need a licence under the Market Data Dissemination Agreement.

Sources

Information and education only. Not financial, investment, legal or tax advice. Listings can be inaccurate, incomplete or out of date and are provided "as is". Free tiers, limits and licenses belong to each provider and can change, so check the provider's own terms before you rely on them. Terms & Disclaimer