---
name: euronext-mifid-delayed-trades-ingestion
description: "How to get Euronext MiFID II delayed trades files data into a pandas DataFrame and Parquet: access, the request, the format, limits, quirks and terms."
---

# Download Euronext Paris delayed trades CSV into pandas and Parquet

Source entry: https://signal-lab-jet.vercel.app/datasets/euronext-mifid-delayed-trades
Provider: https://marketdata.euronext.com/data-reporting-service/trades-file
Checked against the provider's documentation: 2026-11-05

## Access
- No account or key.
- Download URL pattern used by the trades-file page: https://marketdata.euronext.com/data-reporting-service/trades-file/download/<FILE_TYPE>/<TIME_SELECTION>/<LOCATION>, for example EQUITIES / PREVIOUS_TRADING_DAY / PAR.

## Request
```bash
curl -L -o trades.zip 'https://marketdata.euronext.com/data-reporting-service/trades-file/download/EQUITIES/PREVIOUS_TRADING_DAY/PAR'
```

## Format
A zip holding one CSV (for example Trades_Equities.csv). Line 1 is a Euronext copyright and terms notice; line 2 is the header (TradingDateTime, PublicationDateTime, MifidInstrumentID, MifidPrice, MifidQuantity, MifidCurrency, Venue, TradeUniqueIdentifier and MMT flags). Timestamps in UTC.

## Load into pandas and Parquet
Needs Python 3 with requests, pandas and pyarrow.
```python
"""Euronext MiFID II delayed post-trade file (Paris equities, previous trading day) -> pandas -> Parquet. No key."""
import io, zipfile
import requests
import pandas as pd

URL = "https://marketdata.euronext.com/data-reporting-service/trades-file/download/EQUITIES/PREVIOUS_TRADING_DAY/PAR"
r = requests.get(URL, headers={"User-Agent": "Mozilla/5.0"}, timeout=120)
r.raise_for_status()
z = zipfile.ZipFile(io.BytesIO(r.content))  # a zip holding one CSV
with z.open(z.namelist()[0]) as f:
    df = pd.read_csv(f, skiprows=1, dtype=str)  # line 1 is the Euronext copyright / terms notice
df.to_parquet("euronext_par_equities_trades.parquet", index=False)
print(z.namelist()[0], len(df), "trades;", df["Venue"].iloc[0], df["MifidInstrumentID"].nunique(), "ISINs")
```
Run by us on 2026-11-05 (python 3.13 | pandas | pyarrow | requests (box probe)). Result: Trades_Equities.csv 692588 trades; XPAR 547 ISINs

## Limits
- Published with at most a 15-minute delay; files remain available for at least 24 hours, so there is no long history.
- No request or download limit stated.

## Quirks
- Skip the first line (copyright notice) before the CSV header.
- File types: EQUITIES, ETFS_FUNDS, WARRANT_CERTIFICATES, FIXED_INCOME, EQUITY_INDEX_DERIVATIVES, COMMODITY_DERIVATIVES; locations AMS, BRU, DUB, LIS, MIL, OSL, PAR.
- The page returns 404 when the selected window has no trades.

## Terms and attribution
- Use is free of charge under Euronext's Terms and Conditions for Delayed Trade Data.
- When distributing, attribute Euronext where reasonably practicable and include its disclaimer; distribution for a fee or commercial benefit needs an agreement with Euronext (EMDA).
- Terms page: https://www.euronext.com/sites/default/files/stld/terms_and_conditions_for_delayed_data.pdf

## Sources
- https://marketdata.euronext.com/data-reporting-service/trades-file: "The delayed data is provided with a maximum of 15 minutes time delay after initial publication by Euronext and remains available for at least 24 hours."
- https://www.euronext.com/sites/default/files/stld/terms_and_conditions_for_delayed_data.pdf: "The right to Use the Data is free of charge and these Terms do not impose any restrictions on the Use, except in the event of distribution."

## Help improve this skill
Missing a source, or see something to improve? Call the MCP tool suggest_source or feedback (or POST /api/suggest or /api/feedback). Reviewed ideas: https://signal-lab-jet.vercel.app/agent-suggestions

Information for educational purposes only. Free tiers, limits and licenses belong to the providers and may change; check the provider's own terms before using the data.
