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

  • dateBasisperformance_date vs post_date (v2 documents both explicitly in DTO descriptions).
  • platformTypes — v2 validates against the curated list in VALID_PLATFORM_TYPES.
  • campaignIds — hard cap of 50 IDs in v2.

Suggested migration steps

  1. Regenerate or hand-roll a client from specs/openapi-v2.json (see the API Reference).
  2. Parallel-run one read path (e.g. campaign performance) for a single instance and compare totals against v1 / UI.
  3. Switch pagination logic to read pagination.totalPages / totalItems.
  4. Update error handling to parse type + detail from problem JSON.
  5. Remove reliance on any v1-only detail endpoints once your UI has equivalent data from v2 lists.