Table of Contents

API : Product campaign Sign-ups

Introduction

This request counts the accounts created inside a campaign's enrolment window, and what became of each. It counts from the day an account is created, where the usageCount of the Overview only counts accounts once they have been invoiced.

Each account is put through the same enrolment rule billing uses, so an account whose reseller runs its own campaign at the same time is counted as going elsewhere rather than twice.

Request

URL https://api.telecomx.dk/product/PRODUCT_ID/campaign/CAMPAIGN_ID/signups
Method GET
Param PRODUCT_ID Id of the rateplan product holding the campaign
Param CAMPAIGN_ID Id of the campaign
Access level RESELLER with read access to the reseller, for a reseller product.
RESELLER named on the campaign, for a master campaign.
RESELLER_ADMIN or ADMIN for any campaign.

Query example

GET https://api.telecomx.dk/product/60bf169291eb7e58090617a3/campaign/6aba6a8be5b8b45688b9faed/signups

Response

JSON object
campaign Id Id of the campaign.
product Id Id of the product holding it.
total Number enrolled + pending + missed.
enrolled Number Accounts billing has enrolled on the campaign.
pending Number Accounts not invoiced yet and still within 3 months of being created - they will be enrolled at their first invoicing.
missed Number Accounts that would have had the campaign but never will: invoiced without being enrolled, or not activated within 3 months.
elsewhere Number Accounts created inside the window that went to another campaign, for example the reseller's own campaign. Not part of total.
byDay Array total per Copenhagen day the accounts were created on, oldest first. Days without sign-ups are left out.
byDay[].day String The day, as YYYY-MM-DD.
byDay[].count Number Sign-ups created that day.
byReseller Array [optional] Per reseller, sorted by total, highest first. Master campaigns, RESELLER_ADMIN and ADMIN only.
byReseller[].reseller Id Id of the reseller.
byReseller[].resellerName String Name of the reseller.
byReseller[].enrolled Number As above, for this reseller.
byReseller[].pending Number As above, for this reseller.
byReseller[].missed Number As above, for this reseller.
byReseller[].total Number enrolled + pending + missed for this reseller, including sign-ups on its copy.
byReseller[].viaCopy Number How many of this reseller's total signed up on its own copy of the campaign.

Example

{
  "campaign": "6aba6a8be5b8b45688b9faed",
  "product": "60bf169291eb7e58090617a3",
  "total": 1,
  "enrolled": 0,
  "pending": 1,
  "missed": 0,
  "elsewhere": 0,
  "byDay": [
    { "day": "2026-10-05", "count": 1 }
  ],
  "byReseller": [
    { "reseller": "58fdbb7d1e3389290630f1b2", "resellerName": "Sundbynet", "enrolled": 0, "pending": 1, "missed": 0, "total": 1, "viaCopy": 1 },
    { "reseller": "5b361e2d7a01314a6b1c3a47", "resellerName": "Panther Applications", "enrolled": 0, "pending": 1, "missed": 0, "total": 1, "viaCopy": 0 }
  ]
}

Errors

Error code Message Description
422 <property> Invalid input for the named property - the request body, query or URL parameter failed validation
403 access_denied Insufficient access level
404 not_found Product not found
404 campaignId Campaign not found on this product
409 inheritFromReseller A customer product holds no campaigns
500 internal_error <Unspecified>