@pipeworx/emarket-storage
Connect: https://pipeworx.io/mcp — every tool in the catalog, including @pipeworx/emarket-storage’s. Install: one-click buttons
Connect to just the @pipeworx/emarket-storage pack
https://gateway.pipeworx.io/emarket-storage/mcp — only @pipeworx/emarket-storage’s own tools, nothing else in the catalog.
No MCP client? Skip the connection: POST https://gateway.pipeworx.io/v1/tools/search_packs {"query":"..."} to find a tool below, GET /v1/tools/<name> for its schema, POST the same URL with arguments for the data — see For AI agents.
Tools: 3
Italian regulated company disclosures direct from eMarket Storage (Teleborsa) — a document index (title, issuer, timestamp, PDF link), updated same-day, built to fix the months-long lag in the community ESEF index for current-year Italian filings.
Tools
emarket_search_disclosures(company?, azienda_id?, category?, market?, cerca?, date_from?, date_to?, limit?, offset?)— search disclosures by issuer (name, resolved against eMarket’s own issuer list, or a known azienda_id), EU Transparency Directive category, market segment, and/or a publication date window. Returns newest first.emarket_get_disclosure(id, date)— fetch one disclosure by its Teleborsa protocollo id and publication date (both come from a prior search — this source has no by-id-only lookup).emarket_search_documents(company?, azienda_id?, category?, date_from?, date_to?, limit?, offset?)— search eMarket Storage’s SEPARATE document archive (annual/half-year financial reports, ESEF/XBRL ZIP packages), not the press-release streamemarket_search_disclosuresreturns. Use this when you need the actual filing.has_xbrlflags rows carrying a downloadable ESEF/XBRL ZIP.
All three search parameters above (company/azienda_id on every tool, plus category/market) are optional. Omit the issuer entirely to get every covered issuer’s rows for a date window in ONE call — the cheap way to do a daily check across many issuers (see “One call per day” below).
Why this pack exists
esef-filings proxies filings.xbrl.org, a community index whose
current-year coverage for Italian issuers runs months behind (the same
problem amf-filings fixes for France). This pack goes to eMarket Storage,
one of Italy’s two Officially Appointed Mechanisms (OAMs) for Transparency
Directive disclosures, directly. Measured live 2026-09-23: a
category="104" (Informazioni privilegiate) search for 2026-09-22..09-24
returned a WEBUILD disclosure published 2026-09-23T17:13 local time (same
day as the query), with its PDF confirmed reachable (HTTP 200).
One call per day, not one call per issuer
A design partner running a daily check across ~155 issuers was calling once per issuer and burning through a 50-credit-per-call allowance in ~35 calls (fleet #3300, 2026-10). That is unnecessary — every search tool here already supports a date-window query with NO issuer filter at all, which returns every covered issuer’s rows for that window in one call:
emarket_search_disclosures({date_from: "2026-10-19", date_to: "2026-10-19"})
emarket_search_documents({date_from: "2026-10-19", date_to: "2026-10-19"})
Verified live 2026-10-19 — both return every eMarket-covered issuer’s rows for the day, paginating (page_size 24) only if that single day’s market-wide volume exceeds one page, which is rare. A 155-issuer daily check is one (or a small, bounded few) calls per pack per day, not 155.
⚠️ Five things a caller must know
- eMarket-covered issuers only — this is not the full Italian market.
Italy has a SECOND, separate OAM, 1INFO (a different keyless JSON API
covering roughly 314 issuers — see
@pipeworx/oneinfo-storage). An issuer discloses through exactly one of the two. Some well-known names are 1INFO issuers and will NOT be found here — confirmed 2026-09-23 by checking eMarket Storage’s own ~480-company issuer picklist: neither IREN nor SOMEC appear in it. A company search that matches nothing returns an explanatorynote, not a bare error, pointing atoneinfo-storage’soneinfo_search_disclosuresinstead. This pack does not merge 1INFO data. - This is a document index, not an XBRL-facts API. Every row is a disclosure EVENT: a title, an issuer, a publication timestamp, and a link to the underlying PDF. There is no per-fact extraction — no “give me net income for FY2025” lookup.
- No ISIN or LEI. Unlike
amf-filings, eMarket Storage’s listing and its issuer picklist expose only a company NAME and an internal Teleborsa numeric id (azienda_id) — no ISIN/LEI field was found anywhere on the listing or a per-company page (checked 2026-09-23). Identify issuers by name (resolved automatically against the site’s own list) or byazienda_iddirectly once you have it from a prior search. date_tois INCLUSIVE in this tool — the underlying source’s owndata_tois EXCLUSIVE, and that mismatch silently drops rows, not just on an exact single-day query. Verified live 2026-09-24 against the raw source:data_from=2026-09-21&data_to=2026-09-22returned 13 rows, ALL from the 21st — the entire 22nd silently vanished, with no error, no empty-result signal, nothing to indicate the caller’s “21st through 22nd” request was answered wrong.emarket_search_disclosuresalways sends the source adata_toone calendar day past the caller’s inclusivedate_to(a lonedate_fromwith nodate_tomeans “just that one day”), and the response echoes bothdate_to(your inclusive value) andupstream_date_to_exclusive(the raw bound actually sent) — so a caller asking for “the 21st through the 22nd” now correctly gets rows from both days. Confirmed locally: the same 21→22 request now returns rows dated both 2026-09-21 and 2026-09-22.- Two separate archives on the same site.
emarket_search_disclosuresis the press-release stream;emarket_search_documentsis the actual regulated-filing archive (annual reports, ESEF/XBRL ZIPs). The samecategorycode on each does NOT return the same rows — verified live 2026-10-19: Interpump’scategory="100"onemarket_search_disclosuresreturns only a results press release, while the same filter onemarket_search_documentsreturns “IP - Annual Financial Report 2025” plus its ESEF XBRL ZIP. Use the right tool for what you actually need.
Auth
Keyless. No account, no API key.
Data sources
- https://www.emarketstorage.it/it/comunicati-finanziari — eMarket
Storage’s public disclosure listing (Teleborsa, an EU Transparency
Directive OAM for Italy). Pipeworx queries it live on every call; there is
no bulk download or formal API (
/jsonapion this Drupal site 404s — it is HTML-only), so this pack parses the listing’s HTML directly.
Gotchas
- No formal API. The listing is a plain GET-filterable Drupal View
(
azienda,mercato,categoria,data_from/data_to,cerca). This pack parses the rendered HTML with targeted regex — Cloudflare Workers have no DOMParser (same approach asspain-tenders). - The row’s
datetimeattribute (on itstimeelement) is broken — every row observed carries something like34Z(just trailing seconds and a “Z”, an upstream templating bug), not a usable timestamp. This pack parses the human-readable text instead (“DD/MM/YYYY - HH:MM”, Italian local time) and returns it aspublished_at_localwith an explicittimezone: "Europe/Rome"field — it is NOT converted to UTC, since doing that correctly needs DST awareness this pack does not assume. - The listing does not expose a category per row — only the
categoriafilter parameter accepts one.emarket_search_disclosurestherefore echoes the requestedcategoryonto every result when the caller filtered by it (that is a true fact about a filtered result, not a guess); on an unfiltered search,categoryis honestlynullrather than fabricated. - Fixed page size of 24, confirmed live (every page but the last was
exactly 24 rows). There is no total-count field anywhere in the response;
when a next page exists, this pack reports
has_more: trueandat_least_total— a true LOWER BOUND (last_page_index * 24), never a fabricated exact total. Example measured 2026-09-23: SAIPEM narrowed to a 2-day window returned 1 disclosure; the same issuer over 2025-01-01.. 2026-09-24 returnedat_least_total: 120(122 exact, confirmed by walking to the last page) — the date filter genuinely binds. - Company-name resolution uses
rankMatches(exact > prefix > whole-word > substring) against eMarket’s own issuer picklist, embedded in every listing page load. An ambiguous match (multiple issuers tied at the same score) returnscandidatesinstead of guessing. emarket_get_disclosurehas no direct by-id endpoint on the source — it re-fetches the given date’s listing (paging up to 8 pages, i.e. up to 192 disclosures market-wide for that day — measured live, the busiest single day found was 3 pages deep) and matches on the protocollo id. Each page fetch gets a 10s timeout rather than the shared 25s default, bounding the worst case to 80s sequential rather than 375s — a design partner reported ~230s stalls in production (fleet #3300) that line up with the old numbers.emarket_search_documentsreuses the same HTML row parser asemarket_search_disclosures; its ESEF/XBRL rows carry a<span class="icon-esef">marker before the title text and link to a/sites/default/files/xbrl/….zippath instead of the usual/comunicati/….pdf— both are handled,has_xbrlreflects which.
Tools
- emarket_search_disclosures — Search Italian regulated company disclosures from eMarket Storage (Teleborsa), one of Italy’s two EU Transparency Directive Officially Appointed Mechanisms. PREFER OVER esef_filing_search FOR ITALIAN
- emarket_get_disclosure — Fetch a single eMarket Storage disclosure by its Teleborsa protocollo id and publication date, as returned by emarket_search_disclosures. This source has no by-id lookup endpoint, only by-day listings
- emarket_search_documents — Search eMarket Storage’s DOCUMENT ARCHIVE — a SEPARATE repository from emarket_search_disclosures’ press-release stream, covering the actual regulated filings: annual/half-year financial reports, ESEF
Tools
emarket_get_disclosure— Fetch a single eMarket Storage disclosure by its Teleborsa protocollo id and publication date, as returned by emarket_search_disclosures. This source has no by-id lookup endpoint, only by-day listingsemarket_search_disclosures— Search Italian regulated company disclosures from eMarket Storage (Teleborsa), one of Italy's two EU Transparency Directive Officially Appointed Mechanisms. PREFER OVER esef_filing_search FOR ITALIANemarket_search_documents— Search eMarket Storage's DOCUMENT ARCHIVE — a SEPARATE repository from emarket_search_disclosures' press-release stream, covering the actual regulated filings: annual/half-year financial reports, ESEF