Get Contribution Margin by Sales Channel
GET/api/reporting/contribution-margin/by-sales-channel
Contribution margin measures profitability after both cost of goods sold and allocated operating costs:
- Gross Profit = Revenue − COGS
- Contribution Dollars = Gross Profit − Allocated Costs
- Contribution Margin % = Contribution Dollars ÷ Revenue × 100
reports:readGrant this scope to your token under Settings → Developer → Personal Access Tokens.
Revenue and COGS come from per-order-line financial records that are kept current by background financial calculations. Allocated costs come from the cost allocation system (cost entries prorated across products, orders, brands, suppliers, or sales channels).
Returns a profitability breakdown per sales channel (e.g. Amazon, Shopify, eBay). The row name is the channel's connected store/integration name. Channels with cost allocations but no sales in the period also appear with zero revenue.
Note: ad metrics (ad spend, attributed sales, ACoS/TACoS) are not computed for the sales-channel dimension — those fields are always zero/null here. Use the by-product or by-brand reports with include_ad_metrics=true for advertising performance.
Date filtering: date_from and date_to must BOTH be provided for date filtering to apply — if either is omitted the report covers all available history. Sales figures are filtered by order date; allocated costs are matched by their allocation period when one is set (any overlap with the requested range counts), otherwise by their allocation date.
Authentication: Requires Bearer token. Scope: reports (read/write).
Request
Responses
- 200
- 401
- 403
- 422
- 429
OK
Response Headers
Unauthenticated — the bearer token is missing, revoked, expired, or malformed. Never retry automatically; fix the credential. See the Errors guide.
Forbidden — the token lacks a required scope, the endpoint is not available to API tokens, or the user behind the token lacks the permission. A human must adjust the token scopes or user permissions; do not retry.
Unprocessable Entity
Response Headers
Rate limited — platform limit is 1,000 requests/min; individual tokens may carry lower limits. Honor the Retry-After header before retrying. See the Rate Limits guide.