Developers
TenderMetro API, webhooks and MCP
Everything in TenderMetro is available to your own systems and to AI assistants: a REST API over the same global tender, buyer, supplier and award data, signed webhooks for new activity, CSV exports from any search, and an MCP server so assistants can work your pipeline directly.
1. Authentication
Create a key under Developer & integrations. Keys are shown once and stored hashed. Send it as a bearer token or in x-api-key. Quota: 1,000 requests per hour per key.
curl https://www.tendermetro.com/api/public/v1/opportunities?region=Europe&limit=5 \
-H "Authorization: Bearer tm_live_xxxxxxxxxxxx"2. Endpoints
GET/api/public/v1/opportunities
Search tenders. Filters: query, sector, region, country, status, type, min_value, limit, offset.
GET/api/public/v1/opportunities/{ref}
One tender with full description, buyer and documents.
GET/api/public/v1/buyers
Buying organisations ranked by annual spend.
GET/api/public/v1/buyers/{slug}
One buyer with its recent tenders.
GET/api/public/v1/companies
Suppliers tracked in TenderMetro.
GET/api/public/v1/companies/{slug}
One supplier with award history.
GET/api/public/v1/awards
Awards, filterable by sector and region.
GET/api/public/v1/activity
Live market signal feed (published, closing soon, awarded).
GET/api/public/v1/market/stats
Headline totals across tenders, buyers, suppliers and awarded value.
GET/api/public/v1/me/pipeline
The key owner's capture pipeline.
Every list response returns { data, meta: { total, limit, offset } }. Values are normalised to USD in value_usd alongside the original currency.
3. Webhooks
Register an https endpoint and pick your events: opportunity.published, opportunity.closing_soon, award.published. Generic endpoints receive JSON with an HMAC-SHA256 signature over the raw body; Slack endpoints receive a formatted message instead.
POST /your-endpoint
X-TenderMetro-Event: activity.batch
X-TenderMetro-Signature: sha256=<hex hmac of the raw body>
{
"event": "activity.batch",
"delivered_at": "2026-09-11T08:00:00.000Z",
"data": { "title": "12 new market events", "events": [ ... ] }
}Verify with your endpoint's signing secret, shown when you create it, using a timing-safe comparison.
4. MCP server for AI assistants
Add https://app.tendermetro.com/mcp as a remote MCP server in Claude, ChatGPT, Cursor or any MCP client. You sign in to TenderMetro and approve the connection; the assistant then acts as you, so your pipeline and saved searches stay private to your account. Building an agent? Read TenderMetro for Agents for tool contracts, response shapes and agent guidance.
search_opportunities
Keyword and filter search across every tracked market.
get_opportunity
Full tender record including documents.
get_buyer
Buyer profile with tenders and awards.
get_company
Supplier profile with award history and total awarded value.
market_activity
Latest market signals.
market_stats
Totals and award value by sector, region or country.
my_pipeline
The signed-in user's pursuits.
my_saved_searches
The signed-in user's saved searches.
track_opportunity
Add or update a tender in the user's pipeline.
5. Exports
Any opportunity search can be exported to CSV straight from the results header — up to 100 records per export on Standard Plus, 5,000 on Growth Plus and 30,000 on Enterprise, with the same columns the API returns. For bulk or scheduled delivery, use the API or a webhook.
Field-by-field definitions live in the data model. Need higher limits or a private feed? Talk to us.