Campaigns

Campaign results

Deliveries, unique opens and clicks, unsubscribes, hard and soft bounces, complaints and derived rates. Opens count only events classified as human (Apple MPP and proxies excluded): compare campaigns on clicks, and on CONTENT clicks (contentClicks): a click rate made of logo clicks is not engagement. Optional blocks: ?timeseries=1|day|hour (event series), ?links=1 (clicks per link, with role), ?conversions=1|last|first (attributed conversions, with the list and the link that converted). revenue is always there: what the campaign sold, as orders attributed to its messages by the last click on the content within the workspace window (never a total across currencies). Requires authentication only (any valid API key).

get/campaigns/{id}/metrics

Request

  • Base URL: https://sending.dev/api/v1
  • URL: https://sending.dev/api/v1/campaigns/{id}/metrics
  • Auth: HTTP bearer

Path parameters

idstring required

Campaign ID.

Query parameters

timeseriesstring

1 or day for the daily series, hour for the hourly one.

linksstring

1 to include links.

conversionsstring

1 or last for last touch, first for first touch.

Response

Campaign metrics.

idstring uuid required
recipientsinteger required
queuedinteger required
deliveredinteger required
sentinteger required
failedinteger required
uniqueOpensinteger required

Distinct messages with at least one human open.

rawOpensinteger required

Open events of every class (human, proxy, scanner): never a KPI.

uniqueClicksinteger required
contentClicksinteger required

Messages with a human click on content: excludes logo, images, chrome and social links.

unsubscribesinteger required
hardBouncesinteger required
softBouncesinteger required
complaintsinteger required
openRatenumber nullable required

Percentage 0-100 of delivered; null without deliveries.

clickRatenumber nullable required
contentClickRatenumber nullable required
clickToOpenRatenumber nullable required

Unique clicks / human opens, capped at 100.

unsubscribeRatenumber nullable required
bounceRatenumber nullable required

Hard + soft, over recipients.

complaintRatenumber nullable required

Example response

{
  "links": [
    {
      "firstClickAt": "2026-06-30T12:00:00.000Z",
      "lastClickAt": "2026-06-30T12:00:00.000Z"
    }
  ],
  "conversions": {
    "recent": [
      {
        "occurredAt": "2026-06-30T12:00:00.000Z",
        "touchAt": "2026-06-30T12:00:00.000Z"
      }
    ]
  }
}

Changes

No recorded changes to this operation across all 1 revision of this API.