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

  1. 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.
  2. 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.
  3. 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.
  4. 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

  1. Call /matches with since set to the last first_sent you stored (or leave it out the first time for the last 30 days).
  2. Upsert each record on its id, the notice's OCDS id: a deal in your pipeline, with the closing date and the score.
  3. While has_more is true, call again with cursor set to next_cursor.
  4. Do the same with /renewals for future pipeline: close date from ends, 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

EndpointWhat it returnsParameters
GET /matchesOpen 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 /renewalsContracts 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 /contractsAwarded 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 /buyersA buyer's history since 2021: contracts, published value, main suppliers, and contracts ending in the next 18 months.name (required)
GET /suppliersSuppliers 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.csv

Errors 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.