One API key.
206 Canadian government data modules. Every response cited.
Get an API key, make your first call, and see the citation contract — in under 5 minutes.
$ curl -s https://api.maplespike.ca/v1/gov/search \
-H "X-API-Key: ms_live_..." \
-G -d "query=housing" \
-d "jurisdiction=federal" \
-d "_limit=2" | jq .
{
"success": true,
"data": { "releases": [...] },
"citation": {
"source_name": "open.canada.ca",
"data_hash": "sha256:a1f3...",
"license": "OGL-C"
}
}
_mock=true for sample data with no upstream hit. Multiple ways to authenticate
Four authentication methods, one JWT token format. All methods issue the same JWT — pick the one that fits your use case.
API Key (recommended for servers)
Create a key from the signup, then send it as the X-API-Key header:
OAuth (recommended for web apps)
Sign in with GitHub, Google, or any OIDC provider:
$ curl https://api.maplespike.ca/v1/auth/oauth/providers
Web3 Wallet
Sign a SIWE (EIP-4361) message with your wallet:
Passkey / FIDO2
Register a passkey (Touch ID, Windows Hello, YubiKey):
All methods issue JWTs with the same format. Use the token as a Bearer header or session cookie. Keys are hashed with SHA-256 at rest.
One envelope. Every endpoint.
Every response carries the same structure — data, quality score, citation metadata, and usage info. Your agent always knows where the answer came from.
"success": true,
"data": { /* structured payload */ },
"quality": {
"freshness_seconds": 47,
"confidence": "high",
"certainty_score": 0.923
},
"citation": {
"source_name": "open.canada.ca",
"source_url": "https://...",
"data_hash": "sha256:a1f3...",
"license": "OGL-C"
}
}
REST endpoints
| Method | Path | Description |
|---|---|---|
| GET | /v1/health | System status and usage stats |
| GET | /v1/openapi.json | Full OpenAPI 3.1 specification |
| GET | /v1/me | Current tenant info and API keys |
| GET | /v1/usage | Current billing period usage |
| GET | /v1/gov/releases | Latest government data releases |
| GET | /v1/gov/search?query= | Full-text search across all sources |
| GET | /v1/citation/:hash | Retrieve citation by SHA-256 hash |
| GET | /v1/signals | Cross-reference signals (requires engine) |
| POST | /v1/ai/ask | Ask a question, get a sourced answer (edge AI) |
| POST | /v1/ai/search | Semantic search with edge embeddings |
| GET | /v1/ai/models | List available AI models |
| POST | /v1/ai/analyze | Analyze a document/transcript for topics, entities, summary (Pro+) |
| POST | /v1/register | Create account and API key |
| GET | /v1/verify/:token | Verify email address |
| POST | /v1/auth/refresh | Refresh JWT token |
| POST | /v1/auth/logout | Clear session |
| GET | /v1/keys | List API keys |
| POST | /v1/keys | Create a new API key |
| DELETE | /v1/keys/:id | Delete an API key |
| POST | /v1/keys/:id/rotate | Rotate an API key |
| POST | /v1/billing/checkout | Create checkout session |
| GET | /v1/billing/plans | Available pricing plans |
| GET | /v1/extraction/tasks | List browser extraction tasks for no-API portals |
| POST | /v1/extraction/results | Submit extracted data from browser client |
| GET | /v1/extraction/cached/:source_id | Get cached browser extraction results |
Edge AI — ask, search, analyze
AI endpoints run on the Cloudflare edge (Llama 3.3 70B) with automatic fallback to the homelab cluster (Qwen 3.5 27B). Tier-aware routing: free tier uses edge first, pro/business uses homelab first, enterprise uses BYOK if configured.
POST /v1/ai/ask
Ask a natural language question about Canadian government data. The response includes the answer, model used, inference source (edge/homelab/byok), and token usage.
-H "Content-Type: application/json" \
-H "X-API-Key: ms_live_..." \
-d '{
"question": "What did the ethics commissioner investigate in 2024?",
"model": "fast"
'} | jq .
{
"success": true,
"data": {
"answer": "The Ethics Commissioner investigated...",
"model": "@cf/meta/llama-3.1-8b-instruct",
"source": "edge",
"tokens": { "prompt": 142, "completion": 89 },
"cached": false
},
"meta": { "tier": "free", "rate_limit_remaining": 9 }
}
Optional context field injects up to 2000 chars of MapleSpike data into the system prompt. Use model: "fast" for Llama 3.1 8B (lower latency), omit for Llama 3.3 70B (higher quality).
POST /v1/ai/search
Semantic search using edge-generated embeddings (BGE base) routed to the homelab Qdrant vector database. Falls back to keyword search if embedding generation fails.
-H "Content-Type: application/json" \
-H "X-API-Key: ms_live_..." \
-d '{
"query": "regulatory impacts on small business",
"limit": 10
'} | jq .
{
"success": true,
"data": { "results": [...] },
"meta": { "source": "vector-edge-embedding" }
}
Max limit is 50. If the embedding service is unavailable, the API falls back to keyword search via /v1/gov/search and returns meta.source: "keyword-fallback".
POST /v1/ai/analyze (Pro tier+)
Submit a document or transcript for LLM-powered analysis. The model extracts key topics, notable entities, and an overall summary. Optionally specify a mode (e.g. "general", "legal", "financial") to hint the analysis focus. Defaults to "general" if omitted.
-H "Content-Type: application/json" \
-H "X-API-Key: ms_live_..." \
-d '{
"text": "Mr. Speaker, today I am pleased to table Bill C-59...",
"mode": "general"
'} | jq .
{
"success": true,
"data": {
"analysis": "Key Topics: 1) Budget implementation 2) Competition Act amendments...\n\nEntities: Bill C-59, Competition Bureau, Innovation Ministry...\n\nSummary: The speech introduces amendments to...",
"model": "qwen3.5-4b-local",
"mode": "general"
}
}
Unlike /v1/ai/ask and /v1/ai/search which run directly on the Cloudflare edge, this endpoint is proxied to the homelab API server (Qwen 3.5). Requires Pro tier or higher (returns 402 UPGRADE_REQUIRED on Free). Max text length: 50,000 chars (first 8,000 chars are sent to the LLM). If the AI Gateway is unreachable, returns 503 AI_UNAVAILABLE.
GET /v1/ai/models
List available models and tier-aware routing rules. Public endpoint — no API key required.
{
"success": true,
"data": {
"edge": {
"chat": "@cf/meta/llama-3.3-70b-instruct-fp8-fast",
"chatFast": "@cf/meta/llama-3.1-8b-instruct",
"embedding": "@cf/baai/bge-base-en-v1.5"
},
"homelab": "qwen3.5-27b",
"routing": {
"free": "edge (within budget) → homelab fallback",
"pro": "homelab primary → edge fallback",
"enterprise": "byok (if configured) → homelab fallback"
}
}
}
Extract data from no-API government portals
Some government portals (NWT, Nunavut) have no machine-readable API. The extraction system lets the portal client render pages in the user's browser, extract download links, and cache results server-side for MCP tools to use as fallback.
GET /v1/extraction/tasks
List extraction tasks for sources that need browser rendering. Optionally filter by jurisdiction via path param or query param.
$ curl -s -H "X-API-Key: ms_live_..." \
https://api.maplespike.ca/v1/extraction/tasks | jq .
# Filter by jurisdiction (path param)
$ curl -s -H "X-API-Key: ms_live_..." \
https://api.maplespike.ca/v1/extraction/tasks/nunavut | jq .
{
"success": true,
"data": {
"tasks": [{
"source_id": "nunavut-bureau-statistics",
"jurisdiction": "nunavut",
"name": "Nunavut Bureau of Statistics",
"url": "https://www.gov.nu.ca/en/...",
"extract_type": "link_list",
"selector": "a[href*='/sites/default/files/']",
"cached": false,
"cache_ttl_hours": 168
}]
}
}
POST /v1/extraction/results
Submit extracted data from the browser client. The server validates the source_id, blocks SSRF attempts (private IPs, localhost), and caches results with a timestamp.
-H "Content-Type: application/json" \
-H "X-API-Key: ms_live_..." \
-d '{
"source_id": "nunavut-bureau-statistics",
"results": [{
"title": "Population Estimates 2024",
"url": "https://www.gov.nu.ca/sites/default/files/pop-2024.xlsx",
"format": "xlsx"
}]
'} | jq .
{
"success": true,
"data": {
"stored": true,
"source_id": "nunavut-bureau-statistics",
"count": 1,
"rejected": 0,
"cached_at": "2026-07-01T12:00:00.000Z"
}
}
SSRF protection: URLs pointing to localhost, 127.x, 10.x, 192.168.x, or 172.16.x are silently filtered. The rejected field shows how many were blocked.
GET /v1/extraction/cached/:source_id
Retrieve cached extraction results if fresh (within cache_ttl_hours). MCP tools use this as fallback when live sources are unavailable.
https://api.maplespike.ca/v1/extraction/cached/nunavut-bureau-statistics | jq .
{
"success": true,
"data": {
"source_id": "nunavut-bureau-statistics",
"results": [...],
"cached_at": "2026-07-01T12:00:00.000Z",
"age_hours": 3.2,
"fresh": true,
"source_name": "Nunavut Bureau of Statistics",
"jurisdiction": "nunavut"
}
}
{
"success": false,
"error": {
"code": "STALE",
"message": "Cache expired (age: 172h, ttl: 168h)"
}
}
Trim responses for AI agents
Every token saved is money earned. These params go in the same request body — they're extracted before validation.
| Param | Type | Effect |
|---|---|---|
| _fields | string[] | Return only named fields |
| _format | "full" | "compact" | Compact strips null/empty |
| _limit | number | Cap array results |
| _page | number | Pagination offset |
| _summary | boolean | Return aggregates, not rows |
| _mock | true | Sample data, free, no upstream hit |
Every response. Every endpoint. Verifiable.
Every MapleSpike endpoint returns the same citation block — whether you're using the REST API, MCP tools, or cross-reference engine.
"citation": {
"source_name": "open.canada.ca",
"source_url": "https://open.canada.ca/...",
"retrieved_at": "2026-05-13T12:00Z",
"data_hash": "sha256:a1f3...",
"license": "OGL-C",
"citation_text": "open.canada.ca, retrieved 2026-05-13. OGL-C."
}
}
data_hash is the SHA-256 of the response payload at fetch time. Re-fetch the source yourself and compare — if hashes match, you saw what we saw, byte-for-byte.
Data tools for AI agents
All tools return the same { data, quality, citation } envelope.
"mcpServers": {
"maplespike": {
"command": "npx",
"args": ["@maplespike/mcp"],
"env": { "MAPLESPIKE_API_KEY": "ms_live_..." }
}
}
}
| Category | Tool | Description |
|---|---|---|
| General | query_gov_data | Search across StatCan, CKAN, provincial portals |
| General | fact_check | Verify claims against official government data |
| General | get_citation | Retrieve citation by SHA-256 hash |
| General | latest_releases | Recent government data releases by category |
| General | smart_search | Intent-aware search across all sources |
| General | explore_catalog | Browse available data modules and categories |
| Parliament | search_committees | HoC + Senate committee evidence and transcripts |
| Parliament | search_committees_op | Committees via Open Parliament API |
| Parliament | search_debates | House of Commons debates (Hansard) by date or topic |
| Parliament | search_bills | Federal bills via Open Parliament with LEGISinfo IDs |
| Parliament | track_bill | Track a bill through Parliament end-to-end |
| Parliament | search_votes | House of Commons voting records via Open Parliament |
| Parliament | get_member_info | MP details: name, party, riding, photo URL |
| Parliament | get_politician_influence | Influence profile: lobbying, voting, GIC appointments |
| Parliament | search_legislation | Federal acts by name, keyword, or jurisdiction |
| Regulatory | search_gazette | Canada Gazette Parts I, II, III |
| Regulatory | search_gazette_part1 | Gazette Part I — notices and proposed regulations |
| Regulatory | search_gazette_part2 | Gazette Part II — statutory instruments and orders |
| Regulatory | search_gazette_part3 | Gazette Part III — acts of Parliament as enacted |
| Regulatory | search_gic | Governor-in-Council appointments by department |
| Elections | search_elections | Third-party advertising, election spending data |
| Corporate | search_corporate | Lobbying, procurement, exec statements by company |
| Corporate | search_corporate_filings | SEDAR+ filings, insider reports by company or ticker |
| Corporate | search_sedi | SEDI insider trading reports by issuer or insider |
| Corporate | search_cipo | CIPO patents and trademarks by applicant or tech area |
| Corporate | search_corporate_registry | Federal corporations registry data from CKAN |
| Corporate | search_patents | Canadian patent data from CIPO via CKAN |
| Corporate | search_trademarks | Canadian trademark data from CIPO via CKAN |
| Corporate | search_financial_regulation | Financial regulation and oversight data |
| Corporate | search_provincial_lobbying | Provincial lobbying registries (ON, BC, QC) |
| Procurement | search_proactive_disclosure | Proactive disclosure contracts by vendor or department |
| Procurement | search_federal_contracts | Federal contract awards from CKAN |
| Procurement | search_federal_grants | Federal grants and contributions data |
| Procurement | search_goc_spending | Government spending by vendor, department, program |
| Procurement | search_federal_budget | Federal budget by program, department, fiscal year |
| Procurement | search_ati | Access to Information requests by keyword or department |
| Oversight | search_oversight | OAG, PBO, Ethics Commissioner, CRTC, Competition Bureau |
| Oversight | search_canlii | Court decisions and citations via CanLII |
| Oversight | search_a2aj | Access to justice and legal aid resources |
| Oversight | search_tribunals | Federal tribunal appointments and decisions |
| Influence | search_influence | Tracked IOs, NGOs, think tanks, funding connections |
| Influence | search_ngo_rss | NGO and think tank publications via RSS |
| Influence | ngo_narrative_tracker | Track narratives by NGO or think tank organization |
| Immigration | search_immigration | IRCC data by country, province, category, or year |
| Immigration | search_lmia | LMIA quarterly data, TFW program by employer or NOC |
| Immigration | search_ircc-citizenship | Citizenship statistics and grants by province |
| Immigration | search_ircc_entry_exit | Port of entry data by nationality and quarter |
| Immigration | search_ircc_express_entry | CRS scores, program draws, category-based selection |
| Immigration | search_ircc_family_sponsorship | Parent and spousal sponsorship by visa office |
| Immigration | search_ircc_pr_admissions | PR admissions by province, category, or year |
| Immigration | search_ircc_processing_times | Processing times by application type and country |
| Immigration | search_ircc_study_permits | Study permits by institution, province, or country |
| Immigration | search_ircc_work_permits | Work permits by NOC code, province, or country |
| Immigration | search_citizenship_data | Canadian citizenship statistics from CKAN |
| Immigration | search_immigration_refugees | Immigration and refugee data from CKAN |
| Defence | search_defence | DND personnel, procurement, defence spending |
| Defence | search_veterans | Veterans Affairs: disability, benefits, wait times |
| Health | search_health | Health conditions, drugs, procedures, wait times |
| Health | search_health_canada | Drug recalls, medical device licences, regulations |
| Health | search_pharmaceuticals | Drug pricing, shortages, PMPRB data |
| Transport | search_transport_safety | TSB occurrences, air and rail safety investigations |
| Transport | search_transportation_data | Transportation and infrastructure data from CKAN |
| Transport | search_geospatial | Topographic maps, satellite imagery, GIS datasets |
| Transport | search_arcgis_layers | ArcGIS feature services for MB, SK, PE |
| Transport | search_real_time_feeds | Real-time alerts: weather, health advisories, amber alerts |
| Transport | search_regional_authorities | Regional transit and service authorities |
| Transport | search_utilities | Hydro, gas, and water utilities by province |
| Indigenous | search_indigenous_relations | Specific claims, TRC calls to action, Indigenous services |
| Indigenous | search_indigenous_services_directory | Indigenous services directory and listings |
| Indigenous | search_indigenous_stats | Indigenous peoples statistics from CKAN |
| Provincial | search_ab_data | Alberta: AHS health, AAIP immigration, courts, education |
| Provincial | search_bc_data | BC: PharmaCare, BCPNP immigration, courts, education |
| Provincial | search_on_data | Ontario: OHIP claims, OINP immigration, EQAO, courts |
| Provincial | search_qc_data | Quebec: RAMQ, MIFI immigration, courts, education |
| Provincial | search_yukon_data | Yukon open data from open.yukon.ca CKAN portal |
| Provincial | search_nunavut_data | Nunavut data from federal CKAN and StatsCan |
| Provincial | search_provincial_data | All 13 provinces and territories via CKAN and Socrata |
| Provincial | search_provincial_legislatures | Provincial Hansard and legislature debates |
| Provincial | search_provincial_regulators | Provincial regulators by profession or province |
| Provincial | search_provincial_orgs | Provincial organizations and agencies |
| Municipal | search_municipal | Municipal open data from major Canadian cities |
| Municipal | search_municipal_data | Municipal datasets across 10 Canadian cities |
| Municipal | search_municipal_long_tail | Long-tail municipal data queries and niche datasets |
| Economic | query_cpi | Consumer Price Index (inflation) from StatCan |
| Economic | query_gdp | GDP from StatCan with time-series and reference dates |
| Economic | query_labour | Labour force: employment, unemployment from StatCan |
| Economic | query_population | Population estimates by province and territory |
| Economic | query_trade | International merchandise trade from StatCan |
| Economic | query_bridges | Bridge infrastructure conditions by province |
| Economic | search_statcan | Search StatCan datasets by keyword or topic |
| Economic | search_bank_of_canada | Bank of Canada rates, speeches, and policy outlook |
| Economic | compare_regions | Compare economic indicators across provinces and territories |
| Environment | search_npri | National Pollutant Release Inventory by facility or substance |
| Environment | search_nrcan | Natural Resources Canada: commodities, regions, resources |
| Environment | search_nrcan_renewable | Renewable energy data from NRCAN |
| Environment | search_nrcan_fires | Wildfire data and fire monitoring from NRCAN |
| Environment | search_nrcan_forests | Forestry data and forest inventory from NRCAN |
| Environment | search_nrcan_minerals | Mineral and mining data from NRCAN |
| Environment | search_impact_assessment | Environmental impact assessments by project or sector |
| Environment | search_species_at_risk | Species at risk registry by species name or status |
| Environment | search_fisheries | Fisheries: species, regions, aquaculture, licenses |
| Environment | search_agriculture | Agriculture: commodities, provinces, farm income |
| Environment | search_agriculture_data | Agriculture and agri-food data from CKAN |
| Environment | search_energy_data | Energy production and consumption from CKAN |
| Environment | search_climate_data | Climate change and weather data from CKAN |
| Housing | search_housing_cmhc | CMHC housing starts, vacancy rates, affordable housing |
| Housing | search_housing_data | Housing and rental market data from CKAN |
| Housing | search_cmhc | CMHC metrics by city, province, or year |
| Housing | search_real_estate | Real estate market data and trends |
| International | get_wdi_indicator | World Bank Development Indicators by country |
| International | compare_wdi_countries | Compare a WDI indicator across multiple countries |
| International | get_country_wdi_profile | Country profile with key development indicators |
| International | analyze_indicator_trend | Analyze WDI indicator trend over time |
| International | fetch_topic_indicators | All indicators for a WDI topic (economy, health, social) |
| International | get_indicator_metadata | Metadata for a World Bank indicator |
| International | get_comtrade_by_partner | UN Comtrade trade data by partner country |
| International | get_comtrade_by_commodity | UN Comtrade trade data by commodity |
| International | get_comtrade_trends | UN Comtrade trade trends over time |
| International | search_oecd_stat | OECD statistics and indicators |
| International | search_undp_hdi | UNDP Human Development Index data |
| International | search_unhcr_refugees | UNHCR refugee statistics and displacement data |
| International | search_us_cia | CIA World Factbook country data |
| International | search_au_abs | Australian Bureau of Statistics |
| International | search_nz_stats | Statistics New Zealand |
| International | search_uk_ons | UK Office for National Statistics |
| International | search_who_gho | WHO Global Health Observatory |
| International | search_eurostat | Eurostat European statistics |
| International | search_un | UN SDMX data by dimension key |
| International | search_ilo | ILO labour statistics by indicator or country |
| Social | search_social_programs | EI claims, CCB payments, poverty rates by province |
| Social | search_education_research | NSERC, SSHRC, Canada Research Chairs by institution |
| Social | search_education_stats | Education enrolment statistics from CKAN |
| Social | search_gender_stats | Gender-based statistics and equality data from CKAN |
| Social | search_official_languages | Official languages data from CKAN |
| Social | search_culture | Canada Council grants, heritage funding, arts programs |
| Social | search_culture_data | Culture, arts, and heritage data from CKAN |
| Public Safety | search_public_safety | Public safety and emergency management from CKAN |
| Public Safety | search_emergency_management | Emergency management and disaster response data |
| Public Safety | search_policing_security | Policing and security data |
| Public Safety | search_criminal_justice | Prison populations, hate crimes, parole data |
| Media | search_media_broadcasting | Media and broadcasting data |
| Media | search_telecommunications | Broadband, spectrum auctions, telecom by provider |
| Media | search_crtc | CRTC decisions, licences, net neutrality rulings |
| Media | search_crtc_decisions | CRTC decision numbers and broadcasting rulings |
| Science | search_science | CSA missions, Mitacs grants, Ocean Networks, Polar Data |
| Science | search_technology_data | Technology, innovation, and telecom data from CKAN |
| Science | search_knowledge_fabric | Knowledge Fabric data portal queries |
| Science | search_mining_data | Mining and mineral production data from CKAN |
| Community | search_parks | Parks and recreation facilities in 12 Canadian cities |
| Community | search_libraries | Public library systems in 15 Canadian cities |
| Community | search_universities | Universities by institution, program, or metric |
| Community | search_unions | Labour unions by name, sector, or province |
| Community | search_crown_corporations | CBC, Canada Post, EDC and other crown corp financials |
| Charity | search_charity_t3010 | T3010 charity filings by name or category |
| Charity | search_cra_charity | CRA registered charities by name or BN |
| Global Affairs | search_global_canada | Global Affairs: trade agreements, climate, emissions |
| Global Affairs | search_lode | Open Database of Addresses: 10M+ civic addresses |
| AI | ai_ask | Ask a natural language question, get a sourced answer |
| AI | ai_analyze | Analyze a document or transcript for topics, entities, and summary |
| AI | ai_search_semantic | Semantic search with edge embeddings |
| Entity | resolve_entity | Resolve a person or organization name to canonical entity |
| Entity | find_connections | Find network connections between entities |
| Entity | get_entity_profile | Cross-reference a person across MP, lobbying, and GIC |
| Entity | get_annotations | Entity annotations and metadata by type |
| Entity | search_cross_reference | Cross-reference all modules at once — unified entity timeline |
| System | cache_clear | Clear tool response cache |
| System | cache_status | Check cache status and hit rates |
| System | system_health | System health check and diagnostics |
| System | get_module_health | Health check for a specific data module |
| System | get_pipeline_health | Pipeline ingestion health and status |
| System | signal_check | Check watched source signals for changes |
| System | searxng_health | SearXNG engine health: failures, suspensions, errors |
| System | qa_schema | Query module schemas by name |
| System | qa_validate_module | Validate module data quality and integrity |
Showing all 174 MCP tools. Use the search box or category dropdown to filter. The full tool list is also available in llms.txt for machine consumption.
Per-plan caps
Rate limits are per-second and per-month. Hitting the per-second limit returns 429 with a Retry-After header.
| Plan | Per sec | Per month | Overage |
|---|---|---|---|
| Free | 2/s | 1,000 | Hard cap (402) |
| Pro | 25/s | 50,000 | $1/1K (planned) |
| Business | 100/s | 250,000 | $0.80/1K (planned) |
| Enterprise | Custom | Custom | Negotiated |
One shape. Specific categories.
All error responses carry success: false, a stable error code, and a human-readable message.
| Code | Status | Retry | Meaning |
|---|---|---|---|
| auth_invalid | 401 | No | Fix API key or JWT |
| rate_limited | 429 | Yes | Respect Retry-After header |
| quota_exhausted | 402 | No | Upgrade plan or wait for reset |
| input_invalid | 400 | No | Check input schema |
| source_unavailable | 502 | Yes | Upstream source down, retry later |
| not_found | 404 | No | Resource doesn't exist |
| server_error | 500 | Yes | Backoff, report if persistent |
Common questions
Do I need a credit card to start?
No. Free plan: 1,000 calls/month, every source, every SDK, citation hashes included. No card, no time limit.
What makes the citations verifiable?
Every response includes source name, exact upstream URL, retrieval timestamp, and a SHA-256 content hash. You can re-fetch and confirm exactly what the agent saw.
Which AI frameworks are supported?
MCP (Claude, Cursor, Windsurf, ChatGPT), Anthropic tool_use, OpenAI function calling. TypeScript and Python SDKs.
How fresh is the data?
Depends on the source. Committee evidence: ~24h. Canada Gazette: within hours of publication. CanLII: daily. Every response ships with a freshness_seconds field.
What is the cross-reference engine?
Search for any person or company and get their complete government footprint — lobbying meetings, committee testimony, GIC board appointments, procurement contracts, court cases, and campaign donations — in a unified timeline.
Is my API key secure?
Keys are hashed with SHA-256 at rest — we only see them at verify time. HTTPS-only transit. Rotate from the workspace instantly.