/api/ws/reports/overviewScope: Page-specific
UI usage: KPI-data
Response fields used: jobs.done_in_range, jobs.revenue_in_range, services.total, ratings.avg, ratings.count
Overview
Docs HomeWorkshop StartCarOwner StartWorkshop Onboarding
Get Started01 API key setup02 API key in requests03 Auth testing04 Bearer token callsCollections
Platform API Collection (Soft Launch)Soft Launch All EndpointsSoft Launch InteractiveFundamentalsCanonical SpecAPI Reference
API RootWorkshop IndexWorkshop InteractiveWorkshop Auth InteractiveAll Workshop EndpointsCarOwner IndexCarOwner InteractiveCarOwner Auth InteractiveAll CarOwner EndpointsCore/Common IndexCore InteractiveAll Core EndpointsWorkshop Namespaces
AuthUserProfileWorkshopCoreWorkshopOwnershipRequestContactsAddressesOpeningHoursServicesManagersCertificatesSocialMediaBookingsRatingsServiceHistoryEmailVerificationNotificationsMessagesBrregLookupBookingStatusesCategoriesReportsServiceRecordsUsersAccessV2RealtimePresenceSupportCarOwner Namespaces
AuthBookingBookingStatusCarBrandsCarOwnerPaymentsCarOwnerServiceRecordsCategoriesFavoritesMarketplaceMarketplaceCompatMarketplaceFiltersMessagesNotificationsPresenceProfileRatingsRealtimeServiceLogSettingsVehiclesCore Namespaces
CoreVehicleServiceHistoryWorkshopCommonCarOwnerCommonPage Introduction
This contract page maps concrete frontend page behavior to API calls, payloads, and response fields.
Platform Page Contract
## Page purpose Rapportsiden (`/dashboard/reports`) shows KPI-overview, kategorioppdeling, rating-trend og eksportflyt.
Source: API-DOC/page-api-mapping/09-rapporter.md
| Method | Path | Scope | UI usage | Test |
|---|---|---|---|---|
| GET | /api/ws/reports/overview | Page-specific | KPI-data | Try-It |
| GET | /api/ws/reports/services/by-category | Page-specific | Tabell per kategori | Try-It |
| GET | /api/ws/reports/ratings/timeseries | Page-specific | Rating-trend | Try-It |
| POST | /api/ws/v2/reports/exports | Page-specific (kanonisk export) | Create async eksportjobb | Try-It |
| GET | /api/ws/v2/reports/exports/:job_id | Page-specific (kanonisk export) | Polling av jobbstatus | Try-It |
| GET | /api/ws/v2/reports/exports/:job_id/download | Page-specific (kanonisk export) | Nedlasting | Try-It |
/api/ws/reports/overviewScope: Page-specific
UI usage: KPI-data
Response fields used: jobs.done_in_range, jobs.revenue_in_range, services.total, ratings.avg, ratings.count
/api/ws/reports/services/by-categoryScope: Page-specific
UI usage: Tabell per kategori
Response fields used: items[].category, items[].count
/api/ws/reports/ratings/timeseriesScope: Page-specific
UI usage: Rating-trend
Response fields used: points[].period, points[].count, points[].avg
/api/ws/v2/reports/exportsScope: Page-specific (kanonisk export)
UI usage: Create async eksportjobb
Response fields used: job_id, status, created_at, estimated_completion
/api/ws/v2/reports/exports/:job_idScope: Page-specific (kanonisk export)
UI usage: Polling av jobbstatus
Response fields used: status, progress, download_url, error
/api/ws/v2/reports/exports/:job_id/downloadScope: Page-specific (kanonisk export)
UI usage: Nedlasting
Response fields used: blob + filnavn
Interactive console below is filtered to endpoints mapped for this page contract.
Rapportsiden (/dashboard/reports) shows KPI-overview, kategorioppdeling, rating-trend og eksportflyt.
src/app/(private)/dashboard/reports/page.tsxgetWorkshopOverviewReport(...)getWorkshopServicesByCategory(...)getWorkshopRatingsTimeseries(...)createReportExportJob(...)getReportExportJobStatus(...)downloadReportExportJob(...)| Scope | Method | Endpoint | UI usage | Request | Response fields used by frontend |
|---|---|---|---|---|---|
| Page-specific | GET |
/api/ws/reports/overview |
KPI-data | date_from, date_to |
jobs.done_in_range, jobs.revenue_in_range, services.total, ratings.avg, ratings.count |
| Page-specific | GET |
/api/ws/reports/services/by-category |
Tabell per kategori | date_from, date_to |
items[].category, items[].count |
| Page-specific | GET |
/api/ws/reports/ratings/timeseries |
Rating-trend | date_from, date_to, group=month |
points[].period, points[].count, points[].avg |
| Page-specific (kanonisk export) | POST |
/api/ws/v2/reports/exports |
Create async eksportjobb | { type, format, filters } |
job_id, status, created_at, estimated_completion |
| Page-specific (kanonisk export) | GET |
/api/ws/v2/reports/exports/{job_id} |
Polling av jobbstatus | path job_id |
status, progress, download_url, error |
| Page-specific (kanonisk export) | GET |
/api/ws/v2/reports/exports/{job_id}/download |
Nedlasting | path job_id |
blob + filnavn |
ratings, services, bookings, revenue)./api/ws/reports/export) brukes ikke i ny flyt.date_from, date_to) på alle rapport-endepunkter.pending, processing, completed, failed, expired, cancelled).