Get Contribution Margin by Supplier
GET/api/reporting/contribution-margin/by-supplier
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 supplier. Products are attributed to their default supplier; sales of products without a default supplier are grouped under a No Supplier row with entity_id: 0. Allocated costs include both costs allocated directly to a supplier and product-level allocations rolled up via the product's default supplier. Suppliers with cost allocations but no sales in the period also appear with zero revenue. include_ad_metrics=true adds Amazon Ads spend and attributed sales rolled up to supplier level.
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.