Campaigns

Get ranked leaderboard standings for a campaign

Changed on

Ranked creator standings for a Leaderboard (contest) campaign: each creator's rank, weighted composite_score with a per-metric score_breakdown, and the raw GMV / views / videos / units stats. When the campaign has a currently-live (or recently-ended) micro-challenge, its windowed blitz board is nested under micro_challenge. Standings are paginated; total_creators is the full participant count. Scores come from the same shared scorer the dashboard and public share page use, so ranks agree across every surface. Single-shop only (the shop sets the response currency).

get/campaigns/{campaign_id}/leaderboard

Request

  • Base URL
    https://api.reacherapp.com/public/v1
  • URL
    https://api.reacherapp.com/public/v1/campaigns/{campaign_id}/leaderboard
  • Auth
    API key in header x-api-key and API key in header x-shop-id

Path parameters

campaign_idinteger required

Query parameters

pageinteger

Page number (1-indexed).

page_sizeinteger

Standings per page (max 100).

Response

Successful Response

campaign_idinteger required
campaign_namestring
scoring_mode'single' | 'weighted'

single | weighted.

weighted_metricsobject[] nullable

Metric/weight pairs (summing to 100) for weighted campaigns; null for single-metric.

start_datestring nullable
end_datestring nullable
currencystring
currency_codestring

Deprecated alias of currency; use currency.

currency_symbolstring
total_creatorsinteger required

Full participant count (active + Paid/Settled), independent of pagination.

standings_frozenboolean

True once the board is locked. Standings then stop changing: every metric and rank comes from the locked snapshot.

standings_frozen_atstring nullable

ISO-8601 timestamp the board locked. Null while live.

standings_frozen_reasonstring nullable

What locked it: end_lag (2 days after the close, the affiliate-sync lag), first_payout, stop_close (a stop condition tripped), exclusion (re-locked after a video exclusion), manual_backfill, or legacy. Null while live.

standings_period_endstring nullable

Last day (YYYY-MM-DD, shop-local) the board counts sales for: the earlier of end_date and a stop-condition trip. Sales after it never reach the standings. Null for an open-ended campaign that is still running.

values_windowedboolean

True when gmv, views, units_sold and videos_posted are bounded to the campaign period (the normal case). False only while the daily ledger is unreachable: the board then shows lifetime values, which equal the windowed ones for a running campaign and overstate a campaign closed within the last two days. A locked board is never served unwindowed.

as_ofstring required

ISO-8601 UTC timestamp the standings were computed. On a locked board the values have not changed since standings_frozen_at.

Changes

    • breaking

      the response's property type changed from string to no type for status

    • breaking

      the // response's property type changed from string to no type for status

    • breaking

      the /////// response's property type changed from string to no type for status

    • breaking

      the ///// response's property type changed from string to no type for status

    • warning

      added the new ended enum value to the // response property for the response status

    • warning

      added the new live enum value to the // response property for the response status

    • warning

      added the new single enum value to the // response property for the response status

    • warning

      added the new single enum value to the response property for the response status

    • warning

      added the new weighted enum value to the // response property for the response status

    • warning

      added the new weighted enum value to the response property for the response status

    • info

      api operation id get_campaign_leaderboard_campaigns__campaign_id__leaderboard_get removed and replaced with campaign_leaderboard

    • info

      added the optional property to the response with the status

    • info

      added subschema #1 subschema #2 to the response property anyOf list for the response status

    • info

      added subschema #1 subschema #2 to the // response property anyOf list for the response status

    • info

      added subschema #1 subschema #2 to the /////// response property anyOf list for the response status

    • info

      added subschema #1 subschema #2 to the ///// response property anyOf list for the response status

    • info

      response property currency_code deprecated

    • info

      added the optional property //// to the response with the status

    • info

      added the optional property // to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status