Canadian federal procurement · for agents and B2G sales teams

Know which government contracts are about to come up for grabs.

TenderTrail tracks every Government of Canada tender and award on CanadaBuys and tells you which contracts end soon, who the incumbent is, what they're worth, and whether a re-tender is already open. Pay per call in USDC over x402, with no account needed.

866tenders open now
29,278awards since Aug 2022
$103.2BCAD in awarded contracts
2026-11-08 02:24 UTClast refresh

Try it: contracts ending soon

ContractIncumbentBuyerValueEnds
Run a search to see the top 3 by value.

Endpoints and pricing

EndpointWhat you getPrice
GET /v1/contracts/expiringFederal contracts ending soon (recompete leads)$0.05
GET /v1/tenders/searchSearch open Canadian federal tenders$0.01
GET /v1/tenders/historyChange history of a tender$0.01
GET /v1/awards/searchSearch federal contract awards$0.02
GET /v1/suppliers/profileGovernment contract profile of a supplier$0.05
GET /v1/buyers/profileSpending profile of a federal buyer$0.05
GET /v1/export/expiringBulk export of expiring contracts (up to 1,000 rows)$1.00

You're charged only when the call succeeds. Bad input, not-found and ambiguous names are free. Machine-readable: OpenAPI · /.well-known/x402 · llms.txt

Call it from an agent

import { wrapFetchWithPaymentFromConfig } from "@x402/fetch";
const pay = wrapFetchWithPaymentFromConfig(fetch, { schemes: [/* your x402 wallet */] });
const r = await pay("https://tendertrail.fly.dev/v1/contracts/expiring?q=cybersecurity&withinDays=180&minValue=100000");
console.log((await r.json()).results);