Dashboard API¶
The Dashboard API provides aggregated statistics and activity feeds for the current tenant. All data is automatically scoped to the authenticated user's tenant and can optionally be filtered by company.
All endpoints require authentication.
Endpoints¶
GET /dashboard/stats¶
Get dashboard statistics including match counts, application status breakdowns, funding potential, and upcoming deadlines.
Authentication: Required
{
"total_matches": 42,
"high_score_matches": 15,
"saved_matches": 8,
"active_applications": 3,
"submitted_applications": 2,
"approved_applications": 1,
"total_funding_potential": 1250000.0,
"upcoming_deadlines": [
{
"grant_id": "b1c2d3e4-f5a6-7890-bcde-f12345678901",
"grant_title": "Green Innovation Fund - Round 3",
"deadline": "2025-02-15T23:59:59Z",
"application_id": "f1a2b3c4-d5e6-7890-abcd-123456789012",
"application_status": "draft",
"days_remaining": 7
},
{
"grant_id": "c2d3e4f5-a6b7-8901-cdef-234567890123",
"grant_title": "Horizon Europe Clean Energy",
"deadline": "2025-03-01T23:59:59Z",
"application_id": null,
"application_status": null,
"days_remaining": 21
}
]
}
Query Parameters:
| Parameter | Type | Default | Description |
|---|---|---|---|
company_id | UUID | -- | Filter statistics by company ID |
Response Body (DashboardStatsResponse):
| Field | Type | Description |
|---|---|---|
total_matches | integer | Total non-dismissed matches |
high_score_matches | integer | Matches with score >= 0.7 |
saved_matches | integer | User-saved matches |
active_applications | integer | Applications in draft status |
submitted_applications | integer | Applications in submitted status |
approved_applications | integer | Applications in approved status |
total_funding_potential | float | Sum of funding_amount_max from saved match grants (EUR) |
upcoming_deadlines | array | Up to 10 upcoming deadlines within 30 days |
Upcoming Deadline Object:
| Field | Type | Description |
|---|---|---|
grant_id | string | Grant ID |
grant_title | string | Grant title |
deadline | string | Application deadline (ISO 8601) |
application_id | string | Associated application ID (null if none) |
application_status | string | Application status (null if no application) |
days_remaining | integer | Days until deadline |
Deadline Scope
Upcoming deadlines are sourced from saved matches that have grants with deadlines within the next 30 days. If an application exists for the grant, its status is included.
Status Codes:
| Code | Description |
|---|---|
| 200 | Statistics returned |
| 401 | Not authenticated |
GET /dashboard/activity¶
Get a feed of recent activity for the current tenant, including match views and application status changes.
Authentication: Required
[
{
"type": "application",
"message": "Submitted application: Horizon Europe Clean Energy",
"timestamp": "2025-01-15T14:30:00Z",
"entity_id": "f1a2b3c4-d5e6-7890-abcd-123456789012"
},
{
"type": "match",
"message": "Viewed match: Green Innovation Fund for GreenTech Solutions GmbH",
"timestamp": "2025-01-15T10:15:00Z",
"entity_id": "d4e5f6a7-b8c9-0123-def0-456789012345"
},
{
"type": "application",
"message": "Started application: BAFA Energy Efficiency Program",
"timestamp": "2025-01-14T16:45:00Z",
"entity_id": "e2f3a4b5-c6d7-8901-efab-345678901234"
}
]
Query Parameters:
| Parameter | Type | Default | Description |
|---|---|---|---|
limit | integer | 10 | Number of activity items (1-50) |
Response Body (array of ActivityItem):
| Field | Type | Description |
|---|---|---|
type | string | Activity type: match or application |
message | string | Human-readable activity description |
timestamp | string | When the activity occurred (ISO 8601) |
entity_id | string | ID of the related match or application |
Activity Types:
| Type | Source | Example Message |
|---|---|---|
match | Viewed matches | "Viewed match: Green Innovation Fund for Company X" |
application | Application status changes | "Submitted application: Horizon Europe Clean Energy" |
Activity Ordering
Activities are returned in reverse chronological order (newest first). The feed combines match views and application updates, then sorts by timestamp.
Status Codes:
| Code | Description |
|---|---|
| 200 | Activity feed returned |
| 401 | Not authenticated |