CanadaBuys Tender Monitor avatar

CanadaBuys Tender Monitor

Pricing

from $3.00 / 1,000 new or amended records

Go to Apify Store
CanadaBuys Tender Monitor

CanadaBuys Tender Monitor

Unofficial tool, not affiliated with the Government of Canada/PSPC. Get only new and amended CanadaBuys tender notices since your last run. Open Government Licence – Canada.

Pricing

from $3.00 / 1,000 new or amended records

Rating

0.0

(0)

Developer

Two Five Labs

Two Five Labs

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

10 days ago

Last modified

Share

Not affiliated with or endorsed by the Government of Canada or Public Services and Procurement Canada (PSPC), including CanadaBuys. This is an independent tool from Two Five Labs that reads publicly available data. No government seals or logos are used.

What it does

Downloads the CanadaBuys new-tender-notices CSV (one file per run) and returns only notices that are new or changed since your last run. You can filter by look-back window, title keyword and UNSPSC code.

Who it's for

Suppliers that bid on Government of Canada tenders.

Input

FieldDescription
lookbackDaysinteger, default 4. Drops notices published earlier.
ignoreLookbackboolean, default false. Keep all notices in the file.
keywordslist. Matches the title (case-insensitive).
includeDescriptionsboolean, default false. Off: no free-text description is output. On: the description is added in extra.description, trimmed to remove contact names (marked [contact details removed]).
unspsclist. Matches the notice's UNSPSC codes.
maxSpendUsd, emitUnchanged, stateStoreNamesee "How runs work".

No API key is needed for this source.

Run it via API

curl -X POST "https://api.apify.com/v2/acts/flamelit_constellation~canadabuys-tenders/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"maxSpendUsd": 1.0}'

Use your own Apify token.

How runs work

  • First run: returns every matching record in the look-back window, all marked changeType: "new".
  • Later runs: return only records that are new, or whose content changed since they were last seen (amended). The actor keeps a content hash per record in a key-value store. A second run over the same data outputs nothing.
  • stateStoreName: give each saved search its own name so each one tracks its own history.
  • emitUnchanged: true also outputs unchanged records (changeType: "same"), which are never charged.
  • Spend cap: maxSpendUsd (default 1.0) is a hard cap. When it is reached, the actor stops charging and stops output. Records not yet output are kept for the next run.
  • Errors and rate limits: network errors, HTTP 429 and 5xx responses are retried up to 3 times with backoff. Retry-After is honoured in both its seconds and date forms; if the source asks for a wait longer than 2 minutes, the run stops instead of waiting.

Output

Tender record: id, source ("canadabuys"), title, buyer, region, value (null), currency ("CAD"), posted, deadline, url, changeType, extra{solicitationNumber, unspsc[], procurementCategory[], attribution, description (only when includeDescriptions is on; trimmed, max 1,000 chars)}.

Excerpt from a live run:

{
"id": "cb-114-38058425",
"source": "canadabuys",
"title": "Spare Parts for Material Handling Equipment 5",
"buyer": "Department of National Defence (DND)",
"region": "Montréal",
"currency": "CAD",
"posted": "2026-10-14T00:00:00.000Z",
"deadline": "2026-10-29T14:00:00.000Z",
"url": "https://canadabuys.canada.ca/en/tender-opportunities/tender-notice/cb-114-38058425",
"changeType": "new",
"extra": {
"solicitationNumber": "W8486-270976/B",
"unspsc": [
"24100000"
],
"procurementCategory": [
"GD"
],
"attribution": "Contains information licensed under the Open Government Licence – Canada. https://open.canada.ca/en/open-government-licence-canada"
}
}

Personal data: contact name, email and phone columns are not output. Descriptions are off by default. If you turn them on: emails and phone numbers are masked, and descriptions are trimmed to remove contact names. Contact names after role labels are removed; other names in free text may remain. Long descriptions may be shortened, sometimes before any contact details, to remove contact names. The licence excludes Personal Information. File and reference numbers are kept.

Pricing

Pay per event: one run-start charge per run and one new-item charge per new or amended record output. Current prices are shown on this actor's Apify Store page.

Limits

  • One CSV download per run. The file is refreshed daily, so schedule runs no more than once a day.

Data source and terms

  • Contains information licensed under the Open Government Licence – Canada (https://open.canada.ca/en/open-government-licence-canada). Each record carries this in extra.attribution.
  • Dataset publisher: Public Services and Procurement Canada. No Government of Canada names, crests or logos are used to suggest official status.
  • Not affiliated with or endorsed by the Government of Canada or Public Services and Procurement Canada (PSPC), including CanadaBuys.

FAQ

Does it return every record? The first run returns everything matching. After that it returns only new or changed records. How often should I run it? Daily is enough. Can I cap spend? Yes. maxSpendUsd is a hard cap, and records it stops are output on the next run. Does it need a key? No.

Support

Questions or problems: please use the Issues tab on this actor's Apify page first. Publisher: Two Five Labs, contact twofivelabs@gmail.com.

Requests to the source identify themselves with a contact address: flamelit-constellation-actors/0.1 (+mailto:twofivelabs@gmail.com).