NewConnect Claude, Gemini, ChatGPT, and other AI agents to API Ninjas via our MCP server

Canada Routing Number API

The Canada Routing Number API allows you to look up Canadian bank information using a routing number, transit number, or institution number. Our database covers every Canadian bank, credit union, and caisse populaire branch, with up-to-date transit and institution data.

A Canadian routing number is a 9-digit code in the EFT format 0AAATTTTT, where AAA is the 3-digit institution number and TTTTT is the 5-digit transit number. You can look up by the combined routing number or by the transit and institution numbers separately.

Looking up bank codes in other countries? See our Routing Number API (US), Sort Code API (UK), and BSB API (Australia).

Available endpoints:

(4.7)

From 8,777 users

1,400+

Applications using this API

API Status

Online - All Systems Operational

API Response Times

Average
P50
P75
P90
P95
256ms270ms318ms576ms1151ms

Didn't find what you were looking for? Suggest an improvement


/v1/canadaroutingnumber GET

https://api.api-ninjas.com/v1/canadaroutingnumber

Returns detailed information about a Canadian bank branch. Provide either a 9-digit routing number, or a transit number together with an institution number.

Parameters

At least one of routing_number, or both transit_number and institution_number together, must be set.

  • routing_number  optional

    The 9-digit Canadian routing number in EFT format (0AAATTTTT).

  • transit_number  optional

    The 5-digit branch transit number. Must be used together with institution_number.

  • institution_number  optional

    The 3-digit financial institution number. Must be used together with transit_number.

Headers

  • X-Api-Key  required

    API Key associated with your account.

Response

A JSON array of objects, each containing the following fields, or an error if the request is unsuccessful.

  • bank_name premium only

    The name of the bank.

  • routing_number

    The 9-digit Canadian routing number in EFT format.

  • transit_number

    The 5-digit branch transit number.

  • institution_number

    The 3-digit financial institution number.

  • branch_name premium only

    The name of the branch.

  • street_address premium only

    The street address of the branch.

  • city

    The city of the branch.

  • province

    The two-letter province or territory code (e.g. ON, QC, BC).

  • postal_code

    The postal code of the branch.

  • country

    Always CA.

  • phone_number premium only

    The customer service phone number of the bank.

  • swift_code premium only

    The SWIFT/BIC code of the bank, useful for international wire transfers. May be null if the bank does not participate in SWIFT. See our SWIFT Code API for full SWIFT lookups.

  • checksum_valid

    Whether the routing number passes structural validation. Canada does not use a checksum algorithm, so this confirms the format is valid (9 digits, leading zero, recognized institution number).

Sample Request Live Demo!

routing_number

Try our APIs in the API playground

Sign up for a free API key to get started — no credit card required.

https://api.api-ninjas.com/v1/canadaroutingnumber?routing_number=000300010

Headers

X-Api-KeyLog in or sign up to get your API Key

Sample Response

JSON
[
    {
      bank_name:"ROYAL BANK OF CANADA",
      routing_number:"000300010",
      transit_number:"00010",
      institution_number:"003",
      branch_name:"Main Br-Vancouver Royal Centre",
      street_address:"1025 W Georgia St",
      city:"Vancouver",
      province:"BC",
      postal_code:"V6E 3N9",
      country:"CA",
      phone_number:null,
      swift_code:"ROYCCAT2CIC",
      checksum_valid:true
    }
]

Code Examples

1 2 curl -X GET "https://api.api-ninjas.com/v1/canadaroutingnumber?routing_number=000300010" \ -H "X-Api-Key: YOUR_API_KEY"

If your programming language is not listed in the Code Example above, you can still make API calls by using a HTTP request library written in your programming language and following the above documentation.


/v1/canadaroutingnumbersearch GETPremium Only

https://api.api-ninjas.com/v1/canadaroutingnumbersearch

Search for Canadian banks and their routing numbers based on location. Returns a list of branches matching the search criteria.

At least one of the parameters listed below is required. Each request can only return up to 10 results - use the offset parameter to paginate through results.

Parameters

  • bank_name  optional

    Bank name to search for.

  • city  optional

    City name to search for branches.

  • province  optional

    Two-letter province or territory code (e.g. ON, QC, BC).

  • postal_code  optional

    Postal code to search for branches.

  • offset  optional annual subscriptions only

    Number of results to offset for pagination.

Headers

  • X-Api-Key  required

    API Key associated with your account.

Response

A JSON array of objects, each containing the same fields as the previous response , or an error if the request is unsuccessful.

Sample Search Request Live Demo!

bank_name
city
province
postal_code
offset

Try our APIs in the API playground

Sign up for a free API key to get started — no credit card required.

https://api.api-ninjas.com/v1/canadaroutingnumbersearch?bank_name=Royal+Bank+of+Canada

Headers

X-Api-KeyLog in or sign up to get your API Key

Sample Search Response

JSON
[
    {
      bank_name:"ROYAL BANK OF CANADA",
      routing_number:"000300001",
      transit_number:"00001",
      institution_number:"003",
      branch_name:"MTL QC-MAIN BR-MONTREAL",
      street_address:"1 Place Ville Marie-Ground Flr",
      city:"Montreal",
      province:"QC",
      postal_code:"H3C 3B5",
      country:"CA",
      phone_number:null,
      swift_code:"ROYCCAT2CIC",
      checksum_valid:true
    },
    {
      bank_name:"ROYAL BANK OF CANADA",
      routing_number:"000300002",
      transit_number:"00002",
      institution_number:"003",
      branch_name:"Main Br-Toronto",
      street_address:"200 Bay St-Main Flr",
      city:"Toronto",
      province:"ON",
      postal_code:"M5J 2J5",
      country:"CA",
      phone_number:null,
      swift_code:"ROYCCAT2CIC",
      checksum_valid:true
    },
    "..."
]

Frequently Asked Questions

  • Yes, but you must have a premium subscription. Commercial use of the Canada Routing Number API is not permitted on the free tier. See our pricing page to choose a plan that fits your needs.
  • Sign up for a free account to instantly get your API key, then pass it in the X-Api-Key header on every request. The documentation above includes ready-to-run examples in cURL, Python, JavaScript, Node.js, and more.
  • Your API requests will simply be denied once you hit your monthly quota — you will never be charged more than the plan you signed up for. To increase your quota, you can upgrade your plan any time on our pricing page.
  • The API responds with a standard HTTP status code and a JSON error message describing the problem. See our error codes reference for the full list of codes and how to resolve each one, or contact support if you need help.
  • Yes. The /v1/canadaroutingnumber endpoint accepts either a 9-digit routing_number in EFT format (0AAATTTTT), or a 5-digit transit_number together with a 3-digit institution_number. For US, UK, or Australian bank codes instead, see the Routing Number API, Sort Code API, and BSB API.
  • Use the /v1/canadaroutingnumbersearch endpoint with parameters like bank_name, city, province, or postal_code; each request returns up to 10 branches, and you paginate with the offset parameter. This search endpoint and the offset parameter require a premium plan, so check the pricing page for details.
  • Yes, each result includes a swift_code field with the bank's SWIFT/BIC code, though it may be null if the bank does not participate in SWIFT. For dedicated SWIFT lookups across institutions, use our SWIFT Code API.
  • Canada does not use a checksum algorithm, so the checksum_valid field instead confirms structural validity: 9 digits, a leading zero, and a recognized institution number. If a lookup returns an error rather than a result, see our error codes reference.