Stats

Campaign stats

Returns daily and aggregate campaign stats. When start_date and end_date are omitted, Furnace defaults the range to campaign creation date through today.

GET/v1/campaigns/{id}/stats

Authorization

bearerAuth
AuthorizationBearer <token>

Use an account API key in the Authorization header: Authorization: Bearer f_....

In: header

Path Parameters

idstring

Campaign id.

Formatuuid

Query Parameters

start_date?string

Inclusive start date in YYYY-MM-DD format.

Formatdate
end_date?string

Inclusive end date in YYYY-MM-DD format.

Formatdate
curl -X GET "https://example.com/v1/campaigns/497f6eca-6276-4993-bfeb-53cbbbba6f08/stats"
{  "data": {    "daily": [      {        "date": "2026-05-20",        "sent": 15,        "replied": 3,        "positiveReply": 1,        "bounce": 0      }    ],    "totals": {      "sentCount": 15,      "repliedCount": 3,      "positiveReplyCount": 1,      "bounceCount": 0,      "lastBounceAt": null,      "enrollmentCount": 42,      "terminalEnrollmentCount": 9,      "contactedEnrollmentCount": 12    }  }}
{  "error": {    "type": "authentication_error",    "code": "invalid_api_key",    "message": "A valid Furnace API key is required"  }}
{  "error": {    "type": "invalid_request_error",    "code": "campaign_not_found",    "message": "Campaign not found"  }}
{  "error": {    "type": "rate_limit_error",    "code": "rate_limit_exceeded",    "message": "Rate limit exceeded for this account"  }}
{  "error": {    "type": "api_error",    "code": "internal_error",    "message": "Internal server error"  }}