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:

  1. metrics query parameter — Required on instance summary, instance performance-over-time, and all list performance routes. Each operation documents its exact allowlist in the API Reference.

  2. Organic, platform-specific fields — v2 exposes additional organic names that only make sense for certain surfaces (examples: crosspostedViews, crosspostedFacebookOnlyViews, avgWatchTime, Story navigationTap* metrics, videoViewTotalTime, totalInteractions). Whether a name is accepted depends on platform / contentType; invalid combinations return 400 with the valid set for your filters.

  3. Paid namespace — Amplification and spend still use the paid* prefix (paidEngagements, paidImpressions, paidAdSpend, …).

  4. Tracking & affiliatetrackingLinks* and affiliateLinks* metrics are available on campaign and creator performance (and on instance summary where populated). They are not returned on GET /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.