API Reference
v2.0
Access Canadian company profiles, federal data (grants, contracts, patents, charities), and natural language queries. Authenticate with Bearer tokens or API keys.
https://deepdata.caBearer Token
For browser-based apps. Login via /auth/login to get a JWT.
Authorization: Bearer eyJhbG...API Key
For server-to-server. Create via /auth/api-keys.
X-API-Key: dd_live_abc123...Search
Search across Canadian companies using natural language or structured filters.
Companies
Retrieve detailed company profiles including federal data, AI intelligence, and organizational structure.
Natural Language Query
Ask questions about the database in plain English. Powered by Gemini AI — generates and executes SQL queries automatically.
Authentication
Register, login, manage API keys, and check token balance.
Billing
Manage subscriptions via Stripe. Upgrade, downgrade, cancel, or resume plans.
Platform
Platform statistics and health checks.
Rate Limits
API requests are rate-limited per IP address to prevent abuse.
| Endpoint | Limit |
|---|---|
| Search / Company | 20/min |
| Auth endpoints | 10/min |
Plan Limits
Different tiers unlock different levels of data access and API capabilities.
| Feature | Free | Pro |
|---|---|---|
| Results/page | 5 | 20 |
| Federal data | 2 | 50 |
| CSV Export | - | Yes |
| NL Query | - | Yes |
| API Keys | - | Yes |
Error Responses
All error responses follow a consistent JSON format.
json{
"detail": "Company not found" // 404
}
{
"error": "Rate limit exceeded. Please wait a minute." // 429
}
{
"detail": "Not authenticated" // 401
}| Code | Meaning |
|---|---|
400 | Bad Request — invalid parameters |
401 | Unauthorized — missing or invalid token/API key |
403 | Forbidden — insufficient tier |
404 | Not Found — resource does not exist |
409 | Conflict — duplicate email |
422 | Validation Error — body failed validation |
429 | Too Many Requests — rate limit exceeded |
500 | Internal Server Error |
503 | Service Unavailable — AI not configured |