Skip to main content
GET
/
v1
/
sold-products
/
{sold_product_id}
/
periods
List Periods
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', 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"

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 \
  --header 'x-api-key: <x-api-key>' \
  --header 'x-organization-id: <x-organization-id>'
{
  "items": {
    "id": "<string>",
    "start_date": "<string>",
    "end_date": "<string>"
  }
}

List Periods

Retrieve all reporting periods for a specific sold product. Each period represents a time range for which sales data and emissions are tracked.

Request

Headers

x-api-key
string
required
Your API key for authenticationExample: sk_live_1234567890abcdef
x-organization-id
string
required
Your organization UUIDExample: a8315ef3-dd50-43f8-b7ce-d839e68d51fa

Path Parameters

sold_product_id
string
required
UUID of the sold productExample: "550e8400-e29b-41d4-a716-446655440000"

Response

Returns a list of periods (HTTP 200).
items
array[object]
List of reporting periods.

Example

curl -X GET "https://api.dcycle.io/v1/sold-products/550e8400-e29b-41d4-a716-446655440000/periods" \
  -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"),
}

response = requests.get(
    "https://api.dcycle.io/v1/sold-products/550e8400-e29b-41d4-a716-446655440000/periods",
    headers=headers,
)

periods = response.json()
for period in periods["items"]:
    print(f"Period {period['id']}: {period['start_date']} to {period['end_date']}")
const axios = require('axios');

const headers = {
  'x-api-key': process.env.DCYCLE_API_KEY,
  'x-organization-id': process.env.DCYCLE_ORG_ID,
};

axios.get(
  'https://api.dcycle.io/v1/sold-products/550e8400-e29b-41d4-a716-446655440000/periods',
  { headers }
)
.then(response => {
  response.data.items.forEach(p =>
    console.log(`${p.start_date} to ${p.end_date}`)
  );
});

Successful Response

{
  "items": [
    {
      "id": "11111111-1111-1111-1111-111111111111",
      "start_date": "2024-01-01",
      "end_date": "2024-06-30"
    },
    {
      "id": "22222222-2222-2222-2222-222222222222",
      "start_date": "2024-07-01",
      "end_date": "2024-12-31"
    }
  ]
}

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: Product does not exist or does not belong to your organization
{
  "detail": "Not found."
}

Check Period Overlap

Verify if a date range overlaps existing periods

Period Country Sales

Get country-level sales breakdown for a period