Period Country Sales
const options = {
method: 'GET',
headers: {'x-api-key': '<x-api-key>', 'x-organization-id': '<x-organization-id>'}
};
fetch('https://api.dcycle.io/v1/sold-products/{sold_product_id}/periods/{period_id}/country-sales', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.dcycle.io/v1/sold-products/{sold_product_id}/periods/{period_id}/country-sales"
headers = {
"x-api-key": "<x-api-key>",
"x-organization-id": "<x-organization-id>"
}
response = requests.get(url, headers=headers)
print(response.text)curl --request GET \
--url https://api.dcycle.io/v1/sold-products/{sold_product_id}/periods/{period_id}/country-sales \
--header 'x-api-key: <x-api-key>' \
--header 'x-organization-id: <x-organization-id>'{
"items": {
"id": "<string>",
"quantity": 123,
"unit": {
"id": "<string>",
"name": "<string>",
"type": "<string>"
},
"location": {
"id": "<string>",
"name": "<string>",
"type": "<string>",
"iso_3": "<string>",
"country_name": "<string>",
"area": {}
}
},
"total_quantity": 123,
"file": {}
}Period Country Sales
Get country-level sales breakdown for a sold product period
GET
/
v1
/
sold-products
/
{sold_product_id}
/
periods
/
{period_id}
/
country-sales
Period Country Sales
const options = {
method: 'GET',
headers: {'x-api-key': '<x-api-key>', 'x-organization-id': '<x-organization-id>'}
};
fetch('https://api.dcycle.io/v1/sold-products/{sold_product_id}/periods/{period_id}/country-sales', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.dcycle.io/v1/sold-products/{sold_product_id}/periods/{period_id}/country-sales"
headers = {
"x-api-key": "<x-api-key>",
"x-organization-id": "<x-organization-id>"
}
response = requests.get(url, headers=headers)
print(response.text)curl --request GET \
--url https://api.dcycle.io/v1/sold-products/{sold_product_id}/periods/{period_id}/country-sales \
--header 'x-api-key: <x-api-key>' \
--header 'x-organization-id: <x-organization-id>'{
"items": {
"id": "<string>",
"quantity": 123,
"unit": {
"id": "<string>",
"name": "<string>",
"type": "<string>"
},
"location": {
"id": "<string>",
"name": "<string>",
"type": "<string>",
"iso_3": "<string>",
"country_name": "<string>",
"area": {}
}
},
"total_quantity": 123,
"file": {}
}← Sold Products API
Retrieve the country-level sales breakdown for a specific period of a sold product. Each entry represents the quantity sold in a specific country, along with the unit of measurement and location details.
Request
Headers
string
required
Your API key for authenticationExample:
sk_live_1234567890abcdefstring
required
Your organization UUIDExample:
a8315ef3-dd50-43f8-b7ce-d839e68d51faPath Parameters
string
required
UUID of the sold productExample:
"550e8400-e29b-41d4-a716-446655440000"string
required
UUID of the periodExample:
"11111111-1111-1111-1111-111111111111"Response
Returns country sales data with total quantity and optional file reference (HTTP 200).array[object]
List of country-level sales entries.
Show Country Sale Object
Show Country Sale Object
string
Country sale record UUID.
number
Number of units sold in this country.
object
number
Sum of quantities across all countries.
object | null
Reference to the uploaded CSV file, if data was imported via file.
null if entered manually.Example
curl -X GET "https://api.dcycle.io/v1/sold-products/550e8400-e29b-41d4-a716-446655440000/periods/11111111-1111-1111-1111-111111111111/country-sales" \
-H "x-api-key: ${DCYCLE_API_KEY}" \
-H "x-organization-id: ${DCYCLE_ORG_ID}"
import requests
import os
headers = {
"x-api-key": os.getenv("DCYCLE_API_KEY"),
"x-organization-id": os.getenv("DCYCLE_ORG_ID"),
}
product_id = "550e8400-e29b-41d4-a716-446655440000"
period_id = "11111111-1111-1111-1111-111111111111"
response = requests.get(
f"https://api.dcycle.io/v1/sold-products/{product_id}/periods/{period_id}/country-sales",
headers=headers,
)
data = response.json()
print(f"Total quantity: {data['total_quantity']}")
for sale in data["items"]:
print(f" {sale['location']['country_name']}: {sale['quantity']} {sale['unit']['symbol']}")
const axios = require('axios');
const headers = {
'x-api-key': process.env.DCYCLE_API_KEY,
'x-organization-id': process.env.DCYCLE_ORG_ID,
};
const productId = '550e8400-e29b-41d4-a716-446655440000';
const periodId = '11111111-1111-1111-1111-111111111111';
axios.get(
`https://api.dcycle.io/v1/sold-products/${productId}/periods/${periodId}/country-sales`,
{ headers }
)
.then(response => {
const { items, total_quantity } = response.data;
console.log(`Total: ${total_quantity}`);
items.forEach(s => console.log(`${s.location.country_name}: ${s.quantity}`));
});
Successful Response
{
"items": [
{
"id": "aaa11111-1111-1111-1111-111111111111",
"quantity": 250.0,
"unit": {
"id": "unit-uuid-001",
"name": "unit",
"symbol": "u"
},
"location": {
"country_code": "ES",
"country_name": "Spain"
}
},
{
"id": "bbb22222-2222-2222-2222-222222222222",
"quantity": 180.0,
"unit": {
"id": "unit-uuid-001",
"name": "unit",
"symbol": "u"
},
"location": {
"country_code": "DE",
"country_name": "Germany"
}
}
],
"total_quantity": 430.0,
"file": null
}
Common Errors
401 Unauthorized
Cause: Missing or invalid API key{"detail": "Invalid API key for organization", "code": "INVALID_API_KEY"}
403 Forbidden
Cause: The authenticated user is not a member of the organization{"detail": "Logged User is not Member of Organization", "code": "LOGGED_USER_NOT_MEMBER"}
404 Not Found
Cause: The sold product or period does not exist or belongs to another organization{"detail": "Not Found"}
Related Endpoints
Period Emissions
View emissions calculated for this period
List Periods
View all periods for a product
Was this page helpful?