Migration from Reporting API v1
v1 reference: The original Reporting API v1 OpenAPI spec is available on SwaggerHub and from your environment's Swagger URL (e.g. swagger.later.com/reporting-api).
Endpoint paths
| # | v1 path | v2 path | Notes |
|---|---|---|---|
| 1 | GET /v1/reporting/instances |
GET /v2/instances |
• V2 adds pagination (pageSize, pageNumber); V1 returned all IDs unpaginated• API Reference |
| 2 | GET /v1/reporting/instance/details |
— | Dropped in V2. Instance metadata (name, ID) is now returned by GET /v2/instances. For performance data use GET /v2/instances/performance. |
| 3 | GET /v1/reporting/instances/details |
— | Dropped in V2. Same as above — use GET /v2/instances for metadata and GET /v2/instances/performance for metrics. |
| 4 | GET /v1/reporting/instance/performance |
GET /v2/instances/performance |
• Path changed from */instance/performance* to */instances/performance*• New paid metrics: paidEngagements, paidImpressions, paidEngagementRate, paidPostsCount, paidViews, paidAdSpend, paidReturnOnAdSpend, paidCpe, paidCpm• API Reference |
| 5 | GET /v1/reporting/instance/performance-over-time |
GET /v2/instances/performance-over-time |
• Path changed from */instance/performance-over-time* to */instances/performance-over-time*• Timeseries returns startDate/endDate per bucket instead of V1's { year, month, day, fullDate }• New paid metrics: paidLikes, paidComments, paidShares, paidEngagements, paidImpressions, paidEngagementRate• API Reference |
| 6 | — | GET /v2/campaigns |
New in V2. Lightweight list of campaigns with basic metadata (name, status, dates, instanceId). No metrics. Only accepts instanceIds + pagination.• API Reference |
| 7 | GET /v1/reporting/campaign/performance |
GET /v2/campaigns/performance |
• Path changed from */campaign/performance* to */campaigns/performance*• New paid metrics: paidImpressions, paidEngagements, paidEngagementRate, paidClicks, paidPostsCount, paidInfluencersCount, paidCpe, paidCpm, paidAdSpend, paidReturnOnAdSpend• API Reference |
| 8 | GET /v1/reporting/network/performance |
GET /v2/networks/performance |
• Path changed from */network/performance* to */networks/performance*• New paid metrics: paidPostsCount, paidImpressions, paidEngagements, paidEngagementRate• API Reference |
| 9 | GET /v1/reporting/network/return-on-investment |
GET /v2/networks/return-on-investment |
• Path changed from */network/return-on-investment* to */networks/return-on-investment*• Same response shape • API Reference |
| 10 | GET /v1/reporting/influencer/performance |
GET /v2/creators/performance |
• Path changed from */influencer/performance* to */creators/performance* (renamed "influencer" → "creators")• metrics parameter removed — V2 always returns all metrics• New paid metrics: paidCost, paidEngagements, paidImpressions, paidEngagementRate, paidCpe, paidCpm, paidPostsCount• API Reference |
| 11 | GET /v1/reporting/post/performance |
GET /v2/posts/performance |
• Path changed from */post/performance* to */posts/performance*• metrics parameter removed — V2 always returns all metrics• New paid metrics: paidEngagements, paidImpressions, paidEngagementRate, paidCpe, paidCpm• API Reference |
Parameters
Base filters (applied to all metric endpoints)
| Parameter | V1 | V2 | Notes |
|---|---|---|---|
startDate |
— | — | No changes |
endDate |
— | — | No changes |
instanceIds |
— | — | No changes |
campaignIds |
— | — | No changes |
reportingGroupIds |
Optional (max 50) | Removed | No longer needed in V2. |
platformTypes |
— | New | Optional filter by platform type (e.g. instagram_reel). See API Reference for the full list of accepted values. |
dateBasis |
— | New (default performance_date) |
Controls whether metrics are attributed by performance date or post date. post_date is recommended for new integrations. |
Pagination
No changes. See Pagination for details.
Sorting
No changes. See Sorting for details.
Authentication
No changes. See Authentication for details.
Query parameters to audit
dateBasis—performance_datevspost_date(v2 documents both explicitly in DTO descriptions).platformTypes— v2 validates against the curated list inVALID_PLATFORM_TYPES.campaignIds— hard cap of 50 IDs in v2.
Suggested migration steps
- Regenerate or hand-roll a client from
specs/openapi-v2.json(see the API Reference). - Parallel-run one read path (e.g. campaign performance) for a single instance and compare totals against v1 / UI.
- Switch pagination logic to read
pagination.totalPages/totalItems. - Update error handling to parse
type+detailfrom problem JSON. - Remove reliance on any v1-only detail endpoints once your UI has equivalent data from v2 lists.