Printago API
GET /v1/reports/profit

Profit report

Monthly revenue, production cost, cost of failure and per-SKU margin.

Requires: analytics.view

Query Parameters

month required
string
YYYY-MM, interpreted in the store's timezone.

Response Schema

ProfitReport
caveatsrequired
"revenue-evenly-allocated" | "no-electricity-model" | "rates-current-value" | "orders-missing-price" | "no-cost-components"[]
costOfFailurerequired
object
attemptsrequired
number
costrequirednullable
number
gramsrequired
number
hoursrequired
number
costsrequired
object
filamentCostrequirednullable
number
filamentGramsrequired
number
laborCostrequirednullable
number
machineCostrequirednullable
number
machineHoursrequired
number
machineRaterequirednullable
number
totalrequirednullable
number
currencyrequirednullable
string
marginBySkurequired
object[]
costrequirednullable
number
marginPctrequirednullable
number
revenuerequired
number
skuIdrequired
string
skuNamerequirednullable
string
unitsrequired
number
monthrequired
string
revenuerequired
object
bySourcerequired
object[]
amountrequired
number
ordersrequired
number
sourcerequired
string
totalrequired
number
timezonerequired
string

Example Response

200 OK — application/json
{
  "month": "string",
  "timezone": "string",
  "currency": "string",
  "revenue": {
    "total": 1,
    "bySource": [
      {
        "source": "string",
        "amount": 1,
        "orders": 1
      }
    ]
  },
  "costs": {
    "filamentGrams": 1,
    "filamentCost": 1,
    "machineHours": 1,
    "machineRate": 1,
    "machineCost": 1,
    "laborCost": 1,
    "total": 1
  },
  "costOfFailure": {
    "grams": 1,
    "hours": 1,
    "attempts": 1,
    "cost": 1
  },
  "marginBySku": [
    {
      "skuId": "string",
      "skuName": "string",
      "units": 1,
      "revenue": 1,
      "cost": 1,
      "marginPct": 1
    }
  ],
  "caveats": [
    "revenue-evenly-allocated"
  ]
}