Skip to content

A campaign report's Revenue section: upgrades and conversions credited to it

GET
/api/v1/workspaces/{workspace}/campaigns/{id}/revenue
curl --request GET \
--url https://reputecast.example.com/api/v1/workspaces/acme-newsletter/campaigns/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/revenue \
--header 'Authorization: Bearer <token>'

Permission: campaigns:view

Without earn:view the answer is locked and names who can show it.

workspace
required

Workspace slug

string
/^[a-z0-9][a-z0-9-]{1,62}$/

Workspace slug

id
required

The campaign’s id

string format: uuid

The campaign’s id

OK

Media typeapplication/json
object
active
required
boolean
checkouts
required
integer format: int64
collected
required
Array<object>
object
amountCents
required
integer format: int64
count
required
integer format: int64
collectedCents
required
integer format: int64
conversions
required
object
byEmail
required
integer format: int64
byToken
required
integer format: int64
count
required
integer format: int64
currency
required
string
domains
required
Array<string>
name
string
sender
string
typicalCents
integer format: int64
valueCents
required
integer format: int64
currency
required
string
delivered
required
integer format: int64
hasUpgradeLinks
required
boolean
helpers
required
Array<string>
locked
required
boolean
name
required
string
newMrrCents
required
integer format: int64
paidAtOnce
required
integer format: int64
paidLines
required
Array<object>
object
count
required
integer format: int64
offer
string
period
required
string
tier
required
string
pending
required
boolean
potentialMrrCents
required
integer format: int64
sentAt
string format: date-time
trialLines
required
Array<object>
object
count
required
integer format: int64
offer
string
period
required
string
tier
required
string
trials
required
integer format: int64
trialsEnd
string format: date-time
upgradeClicks
required
integer format: int64
upgradedRate
number format: double
upgrades
required
integer format: int64
window
required
integer format: int64

Example generated

{
"active": true,
"checkouts": 1,
"collected": [
{
"amountCents": 1,
"count": 1
}
],
"collectedCents": 1,
"conversions": {
"byEmail": 1,
"byToken": 1,
"count": 1,
"currency": "example",
"domains": [
"example"
],
"name": "example",
"sender": "example",
"typicalCents": 1,
"valueCents": 1
},
"currency": "example",
"delivered": 1,
"hasUpgradeLinks": true,
"helpers": [
"example"
],
"locked": true,
"name": "example",
"newMrrCents": 1,
"paidAtOnce": 1,
"paidLines": [
{
"count": 1,
"offer": "example",
"period": "example",
"tier": "example"
}
],
"pending": true,
"potentialMrrCents": 1,
"sentAt": "2026-04-15T12:00:00Z",
"trialLines": [
{
"count": 1,
"offer": "example",
"period": "example",
"tier": "example"
}
],
"trials": 1,
"trialsEnd": "2026-04-15T12:00:00Z",
"upgradeClicks": 1,
"upgradedRate": 1,
"upgrades": 1,
"window": 1
}

Error

Media typeapplication/problem+json
object
code

Stable error code, e.g. permission_denied

string
detail

A human-readable explanation specific to this occurrence of the problem.

string
errors

Optional list of individual error details

Array<object>
object
location

Where the error occurred, e.g. ‘body.items[3].tags’ or ‘path.thing-id’

string
message

Error message text

string
value

The value at the given location

helpers

Members who hold the missing permission

Array<string>
instance

A URI reference that identifies the specific occurrence of the problem.

string format: uri
meta
object
key
additional properties
permission

The missing permission key

string
status

HTTP status code

integer format: int64
title

A short, human-readable summary of the problem type. This value should not change between occurrences of the error.

string
type

A URI reference to human-readable documentation for the error.

string format: uri
default: about:blank

Example

{
"detail": "Property foo is required but is missing.",
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "about:blank"
}