FansquareAPI reference
Open the app

Analytics

List the performance of each employee

GET/v1/analytics/employees/performance

Send activity and results of each active employee over the window, with the definitions of the Fansquare employee ranking, sorted by net revenue. Only employees with messages or revenue in the window are listed; resolve names with GET /v1/employees. Message counts are updated about every 15 minutes, except for the last hour which is read live (its private media are counted at the next update). private_media_sent and private_media_purchased count paid media only (free media excluded). Revenue excludes refunded orders. The window cannot exceed 31 days.

Required scoperead:analytics
Rate limit10 requests per minute
curl 'https://api.fansquare.so/v1/analytics/employees/performance?start=2026-09-01&end=2026-09-30' \
  -H "Authorization: Bearer $API_KEY" \
  -H "Fansquare-Version: Amethyste"
{
  "data": [
    {
      "user_id": "ki9DZXxpgGz7KiDqHj88eCxHg56W",
      "messages_sent": 1,
      "mass_dm_messages_sent": 1,
      "private_media_sent": 1,
      "private_media_purchased": 1,
      "fans_contacted": 1,
      "conversion_rate": 1,
      "net_amount_cents": 4900,
      "revenue_per_message_cents": 4900
    }
  ],
  "currency": "EUR"
}

Parameters

Headers

  • Fansquare-Versionstringrequired

    API version to pin. Accepts the mineral name or the release date of a version.

Query

  • startstringrequired

    First day of the window (inclusive), e.g. 2026-07-01. Interpreted in timezone. A date-time is accepted too and floored to its local day.

  • endstringrequired

    Last day of the window (inclusive: the whole day is covered), e.g. 2026-07-31. Interpreted in timezone. The window cannot exceed 365 days (and less for the finer bucket sizes of the timeseries endpoint); fetch older history with additional requests.

  • timezonestring

    IANA timezone the window and buckets are computed in, canonical Area/Location form (e.g. Europe/Paris). Abbreviations like CET are rejected. Defaults to UTC.

  • creator_idsstring

    Restrict to these creators (Fansquare ids from GET /v1/creators). Omit for every creator the key can see. Comma-separated, 50 max.

  • exclude_disconnected_creatorsstring

    true: leave out the creators whose MYM account is not connected (disconnected, or an expired key). Omit or false: they count, like every creator the key can see.

    Valuestruefalse
  • user_idsstring

    Restrict to these employees (Fansquare user ids from GET /v1/employees). Comma-separated, 50 max.

Response

OK, application/json

  • dataarray of objectsrequired
    • user_idstringrequired

      Fansquare employee id.

    • messages_sentintegerrequired

      Messages sent by the employee, every surface included (chat, scripts, Mass DM).

    • mass_dm_messages_sentintegerrequired

      Part of messages_sent sent through Mass DM campaigns.

    • private_media_sentintegerrequired

      Paid private media sent, Mass DM excluded. Free media are not counted.

    • private_media_purchasedintegerrequired

      Paid private media of private_media_sent the fan bought. Free media are not counted.

    • fans_contactedintegerrequired

      Distinct fans the employee sent at least one message to, Mass DM excluded.

    • conversion_ratenumber | nullrequired

      private_media_purchased / private_media_sent, from 0 to 1 (4 decimals). Null when no private media was sent.

    • net_amount_centsintegerrequired

      Net revenue attributed to the employee, EUR cents, refunded orders excluded.

    • revenue_per_message_centsnumber | nullrequired

      Net revenue per message sent outside Mass DM, in EUR cents (2 decimals, may be below one cent). Null when the employee sent no such message.

  • currency"EUR"required
curl 'https://api.fansquare.so/v1/analytics/employees/performance?start=2026-09-01&end=2026-09-30' \
  -H "Authorization: Bearer $API_KEY" \
  -H "Fansquare-Version: Amethyste"
{
  "data": [
    {
      "user_id": "ki9DZXxpgGz7KiDqHj88eCxHg56W",
      "messages_sent": 1,
      "mass_dm_messages_sent": 1,
      "private_media_sent": 1,
      "private_media_purchased": 1,
      "fans_contacted": 1,
      "conversion_rate": 1,
      "net_amount_cents": 4900,
      "revenue_per_message_cents": 4900
    }
  ],
  "currency": "EUR"
}