Documentation menu
Getting started
QuickstartEndpoints
GET/sourcesGET/tender/alerts/unsubscribeGET/tender/{record_id}/documents/{doc_index}GET/vendorsGET/departmentsGET/department/{name}GET/vendor/{name}GET/contractGET/tenderGET/awardGET/disclosureGET/standing_offerGET/pre_solicitationGET/contract/statsGET/tender/statsGET/award/statsGET/disclosure/statsGET/standing_offer/statsGET/pre_solicitation/statsGET/contract/coverageGET/tender/coverageGET/award/coverageGET/disclosure/coverageGET/standing_offer/coverageGET/pre_solicitation/coverageGET/procurement/{solicitation_number}GET/tender/feedGET/contract/{record_id}GET/tender/{record_id}GET/award/{record_id}GET/disclosure/{record_id}GET/standing_offer/{record_id}GET/pre_solicitation/{record_id}Docs / Guides / Monitor new records
Monitor new records
Poll for records added since your last check and act on them automatically.
To act on new records as they appear, poll ProcureData on a schedule and keep the IDs you have already seen. Sort by newest and stop once you hit a known record.
import requests
URL = "https://procuredata-canadian-government-procurement-api.p.rapidapi.com/sources"
HEADERS = {"x-rapidapi-host": "procuredata-canadian-government-procurement-api.p.rapidapi.com", "x-rapidapi-key": "YOUR_RAPIDAPI_KEY"}
seen = set() # persist this between runs
r = requests.get(URL, headers=HEADERS, params={"limit": 100}).json()
for record in r.get("results", []):
rid = record.get("record_id")
if rid in seen:
continue
seen.add(rid)
notify(record) # email, Slack, CRM, ...Run it on a cron (hourly or daily) and route new records to email, Slack, or your CRM.
Ready to build?Subscribe on RapidAPI to get your key and start calling ProcureData in minutes.
Get your API key →