CanadaBuys est le portail fédéral d'approvisionnement du Canada, géré par Services publics et Approvisionnement Canada (SPAC). Il publie chaque contrat fédéral, chaque appel d'offres ouvert et chaque attribution de contrat. Le problème : il n'existe pas d'API REST publique. Les données se trouvent derrière une interface web et des téléchargements CSV en vrac, difficiles à exploiter à grande échelle.
ProcureData encapsule toutes les données CanadaBuys dans une API REST propre : 834 073 enregistrements couvrant contrats, appels d'offres et attributions, normalisés selon un schéma cohérent, interrogeables par ministère, fournisseur, mot-clé, date et valeur. Mise à jour chaque semaine.
Le portail web CanadaBuys fonctionne pour des recherches ponctuelles. Il devient inutilisable dès qu'il faut extraire des données de façon systématique : pour un outil d'intelligence fournisseurs, un tableau de bord d'approvisionnement, un agent IA, ou simplement une liste de contrats du MDN des 12 derniers mois.
?q=/procurement/{solicitation_number} relie l'appel d'offres aux attributions et contrats834 073 enregistrements CanadaBuys. Un seul endpoint. Niveau gratuit : 25 requêtes par jour.
Chaque enregistrement comprend des champs de premier niveau pour le filtrage rapide (department, vendor, contract_value, category, event_date) ainsi qu'un objet data contenant les champs bruts de la source. Un enregistrement de contrat :
{
"record_id": "canada_contracts|W8486-226285|A",
"entity_type": "contract",
"source_id": "canada_contracts",
"event_date": "2025-11-03",
"department": "National Defence",
"vendor": "L3Harris Technologies Inc",
"contract_value": 8400000.00,
"category": "GD",
"government_level": "federal",
"data": {
"solicitation_number": "W8486-226285",
"procurement_method": "Competitive",
"contract_period_start": "2025-11-03",
"contract_period_end": "2028-03-31",
"description": "Communications equipment and support",
"vendor_province": "Ontario"
}
}
curl -G "https://procuredata-canadian-government-procurement-api.p.rapidapi.com/tender" \
--data-urlencode "q=développement logiciel" \
--data-urlencode "government_level=federal" \
--data-urlencode "issued_after=2025-01-01" \
--data-urlencode "limit=20" \
-H "X-RapidAPI-Key: VOTRE_CLE_API" \
-H "X-RapidAPI-Host: procuredata-canadian-government-procurement-api.p.rapidapi.com"
curl -G "https://procuredata-canadian-government-procurement-api.p.rapidapi.com/contract" \
--data-urlencode "vendor=Deloitte" \
--data-urlencode "government_level=federal" \
--data-urlencode "sort_by=value" \
--data-urlencode "limit=50" \
-H "X-RapidAPI-Key: VOTRE_CLE_API" \
-H "X-RapidAPI-Host: procuredata-canadian-government-procurement-api.p.rapidapi.com"
curl -G "https://procuredata-canadian-government-procurement-api.p.rapidapi.com/contract" \
--data-urlencode "department=National Defence" \
--data-urlencode "issued_after=2025-05-01" \
--data-urlencode "sort_by=value" \
--data-urlencode "limit=100" \
-H "X-RapidAPI-Key: VOTRE_CLE_API" \
-H "X-RapidAPI-Host: procuredata-canadian-government-procurement-api.p.rapidapi.com"
L'endpoint /procurement/{solicitation_number} retourne la vue complète du cycle de vie : l'avis d'appel d'offres original, tous les avis d'attribution et tous les contrats résultants liés par numéro de sollicitation. Un seul appel au lieu de trois.
curl "https://procuredata-canadian-government-procurement-api.p.rapidapi.com/procurement/W8486-226285" \
-H "X-RapidAPI-Key: VOTRE_CLE_API" \
-H "X-RapidAPI-Host: procuredata-canadian-government-procurement-api.p.rapidapi.com"
CanadaBuys contient environ 90 variantes de noms de ministères dans les données brutes : "National Defence", "Dept. of National Defence", "DND", "Department Of National Defence Canada" font tous référence au même acheteur. L'API normalise ces variantes vers une vingtaine de noms canoniques. Utilisez ?department=National Defence et vous obtiendrez tous les enregistrements correspondants, quelle que soit la variante utilisée dans la source.
Pour obtenir la liste complète des noms de ministères canoniques et leur nombre d'enregistrements :
curl "https://procuredata-canadian-government-procurement-api.p.rapidapi.com/departments" \
-H "X-RapidAPI-Key: VOTRE_CLE_API" \
-H "X-RapidAPI-Host: procuredata-canadian-government-procurement-api.p.rapidapi.com"
/tender avec ?q=votre+mot+cle&government_level=federal. Le paramètre q effectue une recherche sur le titre et la description de l'appel d'offres. Ajoutez les filtres issued_after et department pour affiner les résultats.
/sources pour obtenir l'horodatage exact de la dernière mise à jour par source.
?category=SRV pour les services, GD pour les biens, CNST pour la construction, ou SRVTGD pour services et biens combinés. Ces codes correspondent aux codes de produits utilisés par CanadaBuys.
government_level=federal retourne les données CanadaBuys, les divulgations proactives du SCT et les offres à commandes de SPAC. Noms de ministères normalisés à partir d'environ 90 variantes brutes vers une vingtaine de formes canoniques. Codes de catégorie : SRV (Services), GD (Biens), CNST (Construction), SRVTGD (Services et biens). Les enregistrements albertains antérieurs à 2000 sont peu nombreux; les requêtes pratiques devraient utiliser issued_after=2010-01-01.
Commencez à interroger les contrats, appels d'offres et attributions CanadaBuys avec une clé API gratuite.
Obtenir une clé API sur RapidAPI Voir la spec OpenAPI