Canada APIinnovation.ised-isde.canada.ca ↗
Access Canadian government grants, loans, and business support programs. Filter by province, industry, and goal. Retrieve funding amounts, eligibility, and status.
What is the Canada API?
This API exposes 5 endpoints covering Canada's Innovation Canada Business Benefits Finder database, giving developers programmatic access to government grants, loans, and business support programs. The get_program_details endpoint returns fields like scopeHtml, floorFormatted, organizationUrl, and applicationStatus for a specific program. Use search_programs to filter across province, industry, and goal dimensions, or get_all_grants to pull the full grants catalog up to 2000 entries.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/55f10065-8db5-43c9-b5fe-becee0ca67c1/get_total_count' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace innovation-ised-isde-canada-ca-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Innovation Canada Business Benefits Finder — discover government programs."""
from parse_apis.innovation_canada_business_benefits_finder_api import (
InnovationCanada,
Category,
ProgramNotFound,
)
client = InnovationCanada()
# Check catalog size — lightweight, no params.
total = client.programsummaries.count()
print(f"Total programs available: {total}")
# List grants and funding programs, capped at 5 items.
for program in client.programsummaries.list(category=Category.GRANTS_AND_FUNDING, limit=5):
print(program.title, program.program_status)
# Search for Alberta-specific programs using province filters.
first = client.programsummaries.search(
category=Category.GRANTS_AND_FUNDING,
filters='{"Province_Alberta__c": true, "Province_With_Regions__c": "Alberta"}',
limit=1,
).first()
if first:
print(first.title, first.short_description)
# Drill into full program details from a summary.
if first:
try:
detail = first.details()
print(detail.title, detail.organization, detail.floor_formatted)
except ProgramNotFound as exc:
print(f"Program not found: {exc}")
# Retrieve all grants in bulk (server paginates internally).
for grant in client.programsummaries.all_grants(limit=3):
print(grant.title, grant.program_status)
print("exercised: count / list / search / details / all_grants")
Returns the total number of programs available in the Business Benefits Finder database. A lightweight call with no parameters, useful for understanding the current catalog size before paginating through results.
No input parameters required.
{
"type": "object",
"fields": {
"total": "integer total number of programs in the database"
},
"sample": {
"data": {
"total": 1532
},
"status": "success"
}
}About the Canada API
Program Discovery and Filtering
The list_programs endpoint returns paginated program summaries including id, title, shortDescription, programStatus, and categories. It also returns a storyWrapper object containing available filter options — provinces, industries, and goals — which feeds directly into search_programs. Pagination is controlled via limit and offset parameters. The get_total_count endpoint is a zero-parameter call that returns a single total integer, useful for calculating page counts before iterating.
Detailed Program Data
Once you have a program's Salesforce record ID (typically a 15- or 18-character alphanumeric string starting with a00), get_program_details returns the full record. Key fields include scopeHtml (HTML-formatted eligibility and scope text), longDescription, floorFormatted (minimum funding amount as a formatted string), organization, organizationUrl, and applicationStatus. The programStatus field indicates whether the program is currently open.
Bulk and Filtered Retrieval
The search_programs endpoint accepts a filters parameter as a JSON-encoded object using Salesforce field naming conventions — for example, province filters use keys like Province_Alberta__c: true. Without filters, it behaves similarly to list_programs. The get_all_grants endpoint handles pagination internally and returns a flat grants array alongside a count integer, capped at 2000 results, making it suitable for bulk analysis without manual pagination logic.
The Canada API is a managed, monitored endpoint for innovation.ised-isde.canada.ca — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when innovation.ised-isde.canada.ca changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official innovation.ised-isde.canada.ca API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Building a grant eligibility screener that filters programs by province and industry using
search_programs - Aggregating all open government funding opportunities via
get_all_grantsfor a business intelligence dashboard - Displaying funding floor amounts and application status from
get_program_detailsin a startup resource portal - Tracking catalog size changes over time with repeated calls to
get_total_count - Populating province and industry filter dropdowns from the
storyWrapperoptions returned bylist_programs - Building alert systems that monitor
programStatusandapplicationStatusfields for newly opened programs - Compiling a searchable directory of Canadian government support organizations using the
organizationandorganizationUrlfields
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Innovation Canada provide an official developer API for the Business Benefits Finder?+
What does `get_program_details` return that `list_programs` does not?+
list_programs returns summary fields only: id, title, shortDescription, programStatus, and categories. get_program_details adds scopeHtml (full HTML eligibility text), longDescription, floorFormatted (minimum funding amount), organization, organizationUrl, and applicationStatus. You need a valid Salesforce record ID (starting with a00) to call it.How do province and industry filters work in `search_programs`?+
filters parameter accepts a JSON-encoded object using Salesforce field naming conventions. Province filters use keys like Province_Alberta__c: true, and Province_With can be used for programs available nationally. Industry and goal filter keys follow the same pattern. You can retrieve the full list of available filter keys from the storyWrapper object returned by list_programs.Does the API return historical or expired programs?+
programStatus field indicating whether a program is open or closed. There is no dedicated endpoint for historical program archives or past funding cycles. You can fork this API on Parse and revise it to add an endpoint that captures and stores historical snapshots over time.Is there a limit to how many programs `get_all_grants` returns?+
get_all_grants is capped at 2000 results and is limited to the 'grants and funding' category. If the database contains more than 2000 grants, results beyond that threshold are not returned. For other program categories such as loans or advisory services, use list_programs or search_programs with the appropriate category parameter and manual pagination via limit and offset.