Canadian Digital Service GC Organization Name Resolution API GC Organization Name Resolution API View this project on GitHub Resolves free-text Government of Canada organization names to a canonical gc_orgID. Takes messy strings like "CRA", "Bibliothèque et Archives Canada", or email addresses like "user@inspection.gc.ca" and returns the numeric ID from the GC Organization Names and Codes dataset on open.canada.ca. Usage For now, the API can be found at https://gcorgs.cdssandbox.xyz. It is rate limited to 50 requests per second and no more than 1000 names in one POST. POST /resolve Resolve a batch of names. Returns one result per input.
curl -X POST https://gcorgs.cdssandbox.xyz/resolve \
  -H 'Content-Type: application/json' \
  -d '{"names": ["Bibliothèque et Archives Canada", "CRA", "Department of Unicorns"]}'
{
   "results":[
      {
         "abbreviation":"LAC",
         "abreviation":"BAC",
         "appellation_legale":"Bibliothèque et Archives Canada",
         "gc_orgID":2262,
         "harmonized_name":"Library and Archives Canada",
         "input":"Bibliothèque et Archives Canada",
         "legal_title":"Library and Archives Canada",
         "matched":true,
         "nom_harmonise":"Bibliothèque et Archives Canada"
      },
      {
         "abbreviation":"CRA",
         "abreviation":"ARC",
         "appellation_legale":"Agence du revenu du Canada",
         "gc_orgID":2303,
         "harmonized_name":"Canada Revenue Agency",
         "input":"CRA",
         "legal_title":"Canada Revenue Agency",
         "matched":true,
         "nom_harmonise":"Agence du revenu du Canada"
      },
      {
         "abbreviation":null,
         "abreviation":null,
         "appellation_legale":null,
         "gc_orgID":null,
         "harmonized_name":null,
         "input":"Department of Unicorns",
         "legal_title":null,
         "matched":false,
         "nom_harmonise":null
      }
   ]
}
GET /resolve and GET /name Two simplified endpoints intended for use with Excel's WEBSERVICE() and Google Sheet's IMPORTDATA() functions. GET /resolve returns the gc_orgID as plain text, or an empty string on no match. The result can be passed to GET /name to resolve to a canonical name. The two-step process encourages users to store the unique gc_orgID alongside the name of the department. The optional field parameter controls what is returned by GET /name: | field value | Returns | | --- | --- | | name (default) | Harmonized name | | abbreviation | Abbreviation (empty string if none on record) | | legal_title | Legal title from the reference standard | French synonyms are accepted: nom, abreviation, appellation_legale. An unrecognised field value returns 400. An absent field defaults to name.
GET /resolve?name=Agriculture
-> 2222

GET /name?gc_orgID=2222&lang=en
-> Agriculture and Agri-Food Canada

GET /name?gc_orgID=2222&lang=fr
-> Agriculture et Agroalimentaire Canada

GET /name?gc_orgID=2222&lang=en&field=abbreviation
-> AAFC

GET /name?gc_orgID=2222&lang=fr&field=abbreviation
-> AAC

GET /name?gc_orgID=2222&lang=en&field=legal_title
-> Department of Agriculture and Agri-Food

GET /name?gc_orgID=2222&lang=fr&field=legal_title
-> Ministère de l'Agriculture et de l'Agroalimentaire

GET /name?gc_orgID=2270&lang=en&field=abbreviation
->                                  (200, no abbreviation on record)
Examples Excel You can use this API from Excel to automatically resolve organizations in a workbook without having to use PowerQuery or any external tools. Simply cut and paste the formulas below into your workbook.
# Returns the gc_orgID of the name in cell A1
=WEBSERVICE("https://gcorgs.cdssandbox.xyz/resolve?name=" & ENCODEURL(A1))

# Returns the English name corresponding to the gc_orgID in cell A2
=WEBSERVICE("https://gcorgs.cdssandbox.xyz/name?lang=en&gc_orgID=" & A2)

# Returns the French name
=WEBSERVICE("https://gcorgs.cdssandbox.xyz/name?lang=fr&gc_orgID=" & A2)

# Returns the English abbreviation (e.g. "PHAC") instead of the full name
=WEBSERVICE("https://gcorgs.cdssandbox.xyz/name?lang=en&field=abbreviation&gc_orgID=" & A2)
Note that the =WEBSERVICE() function only works in Excel on Windows. It does not work in Excel for Mac. This is a limitation of Excel for Mac, not a limitation of this project. Google Sheets The same API calls work in Google Sheets, using the =IMPORTDATA() function and providing a delimiter that doesn't exist in any canonical organization names.
# Returns the gc_orgID of the name in cell A1
=IMPORTDATA("https://gcorgs.cdssandbox.xyz/resolve?name=" & ENCODEURL(A1))

# Returns the English name corresponding to the gc_orgID in cell A2
=IMPORTDATA("https://gcorgs.cdssandbox.xyz/name?lang=en&gc_orgID=" & A2, "\")

# Returns the French name
=IMPORTDATA("https://gcorgs.cdssandbox.xyz/name?lang=fr&gc_orgID=" & A2, "\")

# Returns the English abbreviation (e.g. "PHAC") instead of the full name
=IMPORTDATA("https://gcorgs.cdssandbox.xyz/name?lang=en&field=abbreviation&gc_orgID=" & A2, "\")
Online You can see some rudimentary examples of how to use the API to improve data quality when collecting information from users here: 2026-08-05