Migration from old versions
Old version 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
| # | Old path | New path | Notes |
|---|---|---|---|
| 1 | GET /v1/reporting/instances |
GET /v2/instances |
• New version adds cursor pagination (limit, nextCursor); there is no total count. Old version returned all IDs unpaginated.• API Reference |
| 2 | GET /v1/reporting/instance/details |
- | Dropped in new version. 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 new version. 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*• metrics is required — returned fields are nested under data.metrics (see API Reference for the allowlist).• v2 adds paid ( paid*), cost/ROI, tracking link, and affiliate link metrics alongside core organic totals; availability still depends on platform / contentType where you use those filters.• 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 buckets use startDate / endDate instead of { year, month, day, fullDate }.• metrics is required per bucket; organic counters include per-platform fields (e.g. likes, comments, shares, clicks) plus paid counters where supported — see API Reference for the exact set (narrower than full campaign-level metrics).• API Reference |
| 6 | - | GET /v2/campaigns |
New in current version. Lightweight list of campaigns with basic metadata (name, status, dates, instanceId). No metrics. Uses instanceIds plus cursor pagination (limit, nextCursor).• API Reference |
| 7 | GET /v1/reporting/campaign/performance |
GET /v2/campaigns/performance |
• Path changed from */campaign/performance* to */campaigns/performance*• metrics is required (see API Reference).• v2 expands organic metrics with platform- and format-specific fields (e.g. Reels crosspost views, Story navigation taps, avgWatchTime, videoViewTotalTime) when filters allow them, plus paid, tracking link, and affiliate link namespaces.• API Reference |
| 8 | GET /v1/reporting/network/performance |
GET /v2/platforms/performance |
• Path changed from */network/performance* to */platforms/performance*• metrics is required (see API Reference).• Same idea as campaigns for organic + paid, but the allowlist is smaller (e.g. no trackingLinks* / affiliateLinks* on this route).• API Reference |
| 9 | GET /v1/reporting/network/return-on-investment |
GET /v2/platforms/return-on-investment |
• Path changed from */network/return-on-investment* to */platforms/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 is required (see API Reference).• Organic metrics include creator-level platform-specific fields (same families as campaigns: Reels, Stories, video watch time, etc.); plus paid, tracking, and affiliate metrics where supported. • API Reference |
| 11 | GET /v1/reporting/post/performance |
GET /v2/posts/performance |
• Path changed from */post/performance* to */posts/performance*• metrics is required (see API Reference).• Organic post-level fields include format-specific metrics (navigation taps on Stories, crosspost views on Reels, etc.) and paid counters — see API Reference for the allowlist. • API Reference |
Metrics in v2 (beyond v1)
When you migrate reads, plan for more than paid deltas alone:
-
metricsquery parameter — Required on instance summary, instance performance-over-time, and all list performance routes. Each operation documents its exact allowlist in the API Reference. -
Organic, platform-specific fields — v2 exposes additional organic names that only make sense for certain surfaces (examples:
crosspostedViews,crosspostedFacebookOnlyViews,avgWatchTime, StorynavigationTap*metrics,videoViewTotalTime,totalInteractions). Whether a name is accepted depends onplatform/contentType; invalid combinations return 400 with the valid set for your filters. -
Paid namespace — Amplification and spend still use the
paid*prefix (paidEngagements,paidImpressions,paidAdSpend, …). -
Tracking & affiliate —
trackingLinks*andaffiliateLinks*metrics are available on campaign and creator performance (and on instance summary where populated). They are not returned onGET /v2/platforms/performance(narrower metric set for that aggregation).
For naming rules and filter tables, see Querying the API — Metrics and Metrics and platform/contentType filters.
Parameters
Base filters (applied to all metric endpoints)
| Parameter | Notes |
|---|---|
startDate |
No changes |
endDate |
No changes |
instanceIds |
No changes |
campaignIds |
No changes |
reportingGroupIds |
Removed |
platform |
New — Optional filter by top-level platform (e.g. instagram, tiktok). See platform and contentType filters for details. |
contentType |
New — Optional filter by specific content format (e.g. instagram_reel, youtube_shorts). Mutually exclusive with platform. |
dateBasis |
New (default post_date) — Controls whether metrics are attributed by performance date or post date. See performance_date vs post_date filter for details. |
Pagination
This API version uses cursor pagination (limit, nextCursor) instead of page numbers. Responses do not include a total item or page count. See Pagination in Querying the API.
Sorting
No changes. See Sorting for details.
Authentication
No changes. See Authentication for details.