Tender Radar API
Put your tender matches and renewals straight into your CRM
A read-only REST API, included in every subscription and free trial. Pull the tenders Tender Radar matched for you each morning, and the contracts coming up for renewal with the incumbent named, into HubSpot, Salesforce, Pipedrive, Dynamics or a spreadsheet. Every record has an ID that never changes, so a sync updates what it already has instead of adding it twice.
Base address https://tender-radar.co.uk/api/v1 · OpenAPI description
In plain English
What it does, if you are not the one setting it up
- You create a key in your Tender Radar account. It is a long code that works like a password, but only for reading your Tender Radar results. You can name it, see when it was last used, and switch it off at any time.
- Your CRM, or a tool like Zapier, uses the key to ask Tender Radar for anything new. Once a day is enough, after the morning digest. Whoever looks after your CRM sets this up once; this page tells them how.
- New matches arrive in your pipeline on their own. Each tender becomes a record with the buyer, closing date, value, score and the reason it was matched, plus a link to the notice. Contracts coming up for renewal arrive as future opportunities, dated by when the contract ends and naming who holds it now.
- Nothing is copied twice. Every tender has a fixed reference, so if it is sent again, the existing record is updated rather than duplicated.
It only reads. It cannot change your profile, your settings or anything else in Tender Radar, and it can only ever see your own organisation's matches. No CRM? Add format=csv and the same results open in Excel or Google Sheets.
Getting a key
One key per integration
Sign in, open Connect AI, and create a key under API keys, for your CRM. Name it after what will use it. The key is shown once; only a fingerprint of it is stored, so a lost key is revoked and replaced rather than recovered. A key stops working the moment it is revoked, if its owner leaves your organisation, or if the subscription lapses.
Send it on every request:
curl -H "Authorization: Bearer tr_your_key" \
"https://tender-radar.co.uk/api/v1/matches?since=2026-10-01"Keeping a CRM in step
Ask for what is new, page by page
- Call
/matcheswithsinceset to the lastfirst_sentyou stored (or leave it out the first time for the last 30 days). - Upsert each record on its
id, the notice's OCDS id: a deal in your pipeline, with the closing date and the score. - While
has_moreis true, call again withcursorset tonext_cursor. - Do the same with
/renewalsfor future pipeline: close date fromends, the incumbent as a competitor.
Digests run each weekday morning, so once a day after 09:00 UK time is enough.
Endpoints
Six read-only endpoints
| Endpoint | What it returns | Parameters |
|---|---|---|
| GET /matches | Open tenders matched and scored for your organisation in its daily digests, with the score, band and the reason. | since, band (strong | possible), limit (up to 200), cursor, format=csv |
| GET /renewals | Contracts coming up for renewal. scope=mine (the default): the ones picked for your digests from your profile, with the incumbent. scope=all: every published contract ending in the window. | scope, since (mine); months, q, buyer, cpv, min_value (all); limit, cursor, format=csv |
| GET /contracts | Awarded contracts by words in the title or description, newest first. | q (required), buyer, supplier, awarded_after, min_value, limit (up to 100), cursor, format=csv |
| GET /tenders/{ocid} | One notice: the tender as published, your organisation's match if it was sent to you, and any awards. | ocid in the path |
| GET /buyers | A buyer's history since 2021: contracts, published value, main suppliers, and contracts ending in the next 18 months. | name (required) |
| GET /suppliers | Suppliers that have won a kind of work, for partners or to size up competitors, by region, size and type. | what (required), region, types (sme, vcse, charity, cic), years, limit |
A match, as returned (an example)
{
"data": [{
"id": "ocds-h6vhtk-07803d",
"title": "Grounds maintenance, North Area",
"buyer": "Leeds City Council",
"value_gbp": 450000,
"closes": "2026-11-14",
"score": 82,
"band": "strong",
"why": "Grounds maintenance in your region, within your contract size",
"cpv_codes": ["77314000"],
"notice_url": "https://www.find-tender.service.gov.uk/Notice/...",
"first_sent": "2026-10-06T07:00:04Z",
"last_sent": "2026-10-08T07:00:03Z"
}],
"has_more": true,
"next_cursor": "WyIyMDI2LTEwLTA2...",
"counting_rule": "One record per tender ...",
"as_of": "2026-10-08T09:17:02Z"
}Into a spreadsheet
Add format=csv to any list and the page comes back as CSV, with the next cursor in the X-Next-Cursor header. Excel and Google Sheets can load it from the web address on a schedule.
curl -H "Authorization: Bearer tr_your_key" \
"https://tender-radar.co.uk/api/v1/renewals?scope=all&months=12&cpv=7731&format=csv" \
-o renewals.csvErrors and limits
Errors come back as {"error": {"code", "message"}}: 400 for a wrong parameter (the message says which), 401 for a missing or revoked key, 402 when the trial has ended unpaid, 429 over the fair-use limits of 60 requests a minute and 5,000 a day per key. Every call is logged against its key.
Questions
Before you build
Does it cost extra?
No. The API is part of the £30 a month subscription and the free trial, within the fair-use limits. If you need more, for a large historical backfill or many client organisations, ask us.
Which CRMs does it work with?
Any that can call a web address or import a CSV. HubSpot and Salesforce can upsert on an external ID, which is what the stable id is for: store it in a custom property and match on it. Zapier and Make can call the API on a schedule for Pipedrive, Dynamics, Zoho, Monday and others.
Can it change anything in Tender Radar?
No. Every endpoint reads; nothing writes. Your profile, matches and settings can only be changed by signing in.
Where does the data come from?
Public procurement notices from Find a Tender, Contracts Finder, Public Contracts Scotland and Sell2Wales, under the Open Government Licence v3.0, plus Tender Radar's own scoring for your organisation. Published values are as the buyer gave them: framework values are ceilings, not money spent, so do not add them together.
Is it the same data as the AI connector?
Yes. The connector answers questions in Claude or ChatGPT; the API hands the same records to your systems in a form they can store and update.
Start a free trial, then create a key
Thirty days free, then £30 a month. The API, the AI connector and the daily digest are all included.
30 days free. No card required to start.