Campaign performance metrics

Returns a list of campaigns with their performance metrics.

What is included per campaign:

  • Campaign metadata (title, description, date range, platforms used)
  • Metrics requested via the metrics query parameter
Query Parameters
  • startDate
    Type: stringFormat: date-time
    required

    Start of the reporting period (inclusive). Format: YYYY-MM-DD.

  • endDate
    Type: stringFormat: date-time
    required

    End of the reporting period (inclusive). Format: YYYY-MM-DD.

  • metrics
    Type: array string[]
    required

    Specify one or more metric names to include in the response. Only the selected metrics will be returned within the metrics object for each result item.

    Supported values: likes, comments, shares, clicks, saves, impressions, reach, engagements, views, totalInteractions, replies, reposts, potentialReach, videoViewTotalTime, crosspostedViews, crosspostedFacebookOnlyViews, engagementRate, postsCount, influencersCount, impressionsPerPost, estimatedValueGenerated, estimatedContentCost, estimatedRoi, cpe, cpm, paidLikes, paidComments, paidShares, paidClicks, paidImpressions, paidEngagements, paidEngagementRate, paidViews, paidReach, paidSaves, paidCpe, paidCpm, paidPostsCount, paidInfluencersCount, paidAdSpend, paidReturnOnAdSpend, paidInitialPlays, paidCost, trackingLinksClicks, trackingLinksConversions, trackingLinksConversionValue, affiliateLinksClicks, affiliateLinksConversions, affiliateLinksConversionRate, affiliateLinksSales, affiliateLinksCommissionEarned, affiliateLinksRoi

    Metric availability depends on the applied platform or contentType filters. Some metrics are restricted to specific content types (for example, crosspostedFacebookOnlyViews is only available for Instagram Reels). Requesting unsupported metrics will result in a 400 error, along with a list of valid metrics for the current filters.

    Supported array formats: param=a,b,c (comma-separated), param=a&param=b (repeated key), or param[]=a&param[]=b (bracket syntax).

  • instanceIds
    Type: array string[]

    Filter results to specific instances. When omitted, the request is evaluated against every instance associated with your OAuth client; supply one or more values to narrow the response to a subset. Values must be drawn from the set bound to your client credentials — requesting an instance outside that set returns 403 with type: ANL_00403.

    Supported array formats: param=a,b,c (comma-separated), param=a&param=b (repeated key), or param[]=a&param[]=b (bracket syntax).

  • campaignIds
    Type: array number[] …50

    Filter results to specific campaigns. When omitted, all campaigns are included.

    Supported array formats: param=a,b,c (comma-separated), param=a&param=b (repeated key), or param[]=a&param[]=b (bracket syntax).

  • platform
    Type: array string[]enum

    Filter by top-level platform. Selecting a platform includes all its content types (e.g. instagram includes instagram_post, instagram_reel, instagram_story).

    Cannot be combined with contentType — provide only one of the two.

    When omitted (and contentType is also omitted), all platforms are included.

    Supported array formats: param=a,b,c (comma-separated), param=a&param=b (repeated key), or param[]=a&param[]=b (bracket syntax).

    values
    • instagram
    • tiktok
    • facebook
    • youtube
    • twitter
  • contentType
    Type: array string[]enum

    Filter by specific content type for granular filtering beyond top-level platforms.

    • instagram_post, instagram_reel, instagram_story — specific Instagram content formats
    • facebook_post, facebook_live, facebook_group, facebook_reel — specific Facebook content formats
    • tiktok, youtube_video, youtube_shorts — platform-specific types

    Cannot be combined with platform — provide only one of the two.

    When omitted (and platform is also omitted), all content types are included.

    Supported array formats: param=a,b,c (comma-separated), param=a&param=b (repeated key), or param[]=a&param[]=b (bracket syntax).

    values
    • instagram_post
    • instagram_reel
    • instagram_story
    • facebook_post
    • facebook_live
  • dateBasis
    Type: stringenum

    Controls which date dimension is used for filtering.

    • post_date (default): filters by the date the content was originally published. Best for analyzing content output and creator activity over time.
    • performance_date: returns metrics recorded within the requested date range, regardless of when the content was originally published. Best for understanding how campaigns performed during a specific reporting window.

    Example: a post published on Jan 5 that receives engagement on Feb 10 will appear in a Feb 1–28 query with performance_date, but in a Jan 1–31 query with post_date.

    values
    • post_date
    • performance_date
  • limit
    Type: number
    min:  
    1
    max:  
    100

    Maximum number of items to return per page. Choose any value on the first request, then keep it unchanged on every subsequent request that passes a nextCursor from this endpoint. To change the page size, start a new walk by omitting nextCursor.

  • nextCursor
    Type: string | null

    Opaque cursor returned by the previous page. Omit on the first request. Cursors are tied to the query parameters of the request that produced them; to paginate, keep every parameter identical across requests and only vary nextCursor. To change filters, sort, or limit, start a new walk by omitting nextCursor.

  • sortProperty
    Type: string

    Metric or field name to sort results by. Use sortDirection (ASC or DESC, default: DESC) to control the order.

    Supported values: likes, comments, shares, clicks, saves, impressions, reach, engagements, views, totalInteractions, replies, reposts, potentialReach, videoViewTotalTime, crosspostedViews, crosspostedFacebookOnlyViews, engagementRate, postsCount, influencersCount, impressionsPerPost, estimatedValueGenerated, estimatedContentCost, estimatedRoi, cpe, cpm, paidLikes, paidComments, paidShares, paidClicks, paidImpressions, paidEngagements, paidEngagementRate, paidViews, paidReach, paidSaves, paidCpe, paidCpm, paidPostsCount, paidInfluencersCount, paidAdSpend, paidReturnOnAdSpend, paidInitialPlays, paidCost, trackingLinksClicks, trackingLinksConversions, trackingLinksConversionValue, affiliateLinksClicks, affiliateLinksConversions, affiliateLinksConversionRate, affiliateLinksSales, affiliateLinksCommissionEarned, affiliateLinksRoi, firstPostDate, lastPostDate

    Note: When platform or contentType filters are applied, only metrics supported by the selected content types are accepted as sort properties. The API returns an error with the valid list when an unsupported sort property is used with a filter.

  • sortDirection
    Type: stringenum

    Sort direction.

    values
    • ASC
    • DESC
Responses
  • application/json
  • application/problem+json
  • application/problem+json
  • application/problem+json
  • application/problem+json
Request Example for get/v2/campaigns/performance
curl 'https://reporting.api.later.com/v2/campaigns/performance?startDate=2025-01-01&endDate=2025-12-31&metrics=&instanceIds=&campaignIds=1&platform=instagram&contentType=instagram_post&dateBasis=post_date&limit=50&nextCursor=null&sortProperty=&sortDirection=DESC' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
{
  "data": [
    {
      "campaignId": 49761,
      "campaignName": "Summer Collection 2024",
      "instanceId": "instance_abc",
      "description": "Seasonal product launch",
      "firstPostDate": "2024-06-01T00:00:00.000Z",
      "lastPostDate": "2024-08-15T00:00:00.000Z",
      "uniqueContentTypes": [
        "instagram_post",
        "tiktok"
      ],
      "metrics": {
        "impressions": 45200,
        "engagements": 3200,
        "reach": 38000,
        "engagementRate": 7.08,
        "clicks": 1500,
        "postsCount": 42,
        "influencersCount": 12,
        "impressionsPerPost": 1076.19,
        "estimatedValueGenerated": 28000,
        "estimatedContentCost": 5000,
        "estimatedRoi": 5.6,
        "cpe": 1.56,
        "cpm": 110.62,
        "paidImpressions": 12800,
        "paidEngagements": 1100,
        "paidEngagementRate": 8.59,
        "paidClicks": 420,
        "paidPostsCount": 8,
        "paidInfluencersCount": 4,
        "paidCpe": 3.12,
        "paidCpm": 265.63,
        "paidAdSpend": 3400,
        "paidReturnOnAdSpend": 2.8,
        "trackingLinksClicks": 850,
        "trackingLinksConversions": 42,
        "trackingLinksConversionValue": 12600,
        "affiliateLinksClicks": 1200,
        "affiliateLinksConversions": 68,
        "affiliateLinksConversionRate": 5.67,
        "affiliateLinksSales": 5400,
        "affiliateLinksCommissionEarned": 540,
        "affiliateLinksRoi": 9
      }
    }
  ],
  "nextCursor": "eyJ2ZXJzaW9uIjoxfQ"
}