Appearance
Getting Started
This guide takes you from zero to your first successful API response.
1. Get an API key
API keys are created by a partner admin in the TDC portal:
- Sign in to the portal and open Settings → API Keys.
- Click Create key, give it a descriptive label (e.g.
production-storefront), and confirm. - Copy the key immediately. It looks like
dk_live_...and is shown only once — it is stored hashed and cannot be retrieved later. If you lose it, revoke it and create a new one.
Your key is scoped to your partner account, so it can only ever read your own products.
Keep your key secret
Treat the key like a password. Use it only from your server — never embed it in browser JavaScript, a mobile app, or a public repository. See Authentication for details.
2. Make your first request
Request a product by its Desire Company ID. Replace dk_live_your_key_here with your key and 123 with a real product ID.
bash
curl https://api.prod.thedesirecompany.com/api/v1/public/products/123 \
-H "Authorization: Bearer dk_live_your_key_here"js
const res = await fetch(
'https://api.prod.thedesirecompany.com/api/v1/public/products/123',
{ headers: { Authorization: `Bearer ${process.env.TDC_API_KEY}` } },
);
if (!res.ok) throw new Error(`TDC API error: ${res.status}`);
const { data } = await res.json();
console.log(data.product.title);3. Read the response
A successful request returns HTTP 200 with a data object:
json
{
"data": {
"status": "active",
"product": {
"id": 9066,
"title": "Hellmann's Purely 100% Avocado Oil Mayonnaise",
"description": "A real mayonnaise made with 100% avocado oil…",
"short_description": "Avocado Oil Mayo made with a squeeze of lime and a pinch of black pepper.",
"image": "https://cdn.thedesirecompany.com/images/hellmanns-avocado-oil-mayo.avif",
"what_text": "What it is…",
"who_text": "Who it's for…",
"why_text": "Why it matters…",
"videos": [
{
"id": 3557,
"name": "Sam's Club In-Store Digital Signage",
"aspect_ratio": "16x9",
"length": 20.02,
"json_ld": {
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "Hellmann's 100% Avocado Oil Mayonnaise at Sam's Club",
"transcript": "Hellmann's purely 100% Avocado Oil Mayonnaise brings flavor to everyday meals…",
"creator": { "@type": "Person", "name": "Alexandra Caspero", "jobTitle": "CEO/Founder - Wellness Expert - Dietician" },
"publisher": { "@type": "Organization", "name": "Hellmann's" },
"about": { "@type": "Product", "brand": { "@type": "Brand", "name": "Hellmann's" } }
}
}
]
}
}
}Map the text fields into your PDP template, and for each entry in videos, inject its json_ld as a <script type="application/ld+json"> block for video rich results. The what_text / who_text / why_text fields are expert-written copy you can surface as-is. See Embedding the JSON-LD for a copy-paste example.
Looking up by your own SKU
If you key your catalog by SKU rather than TDC's product ID, use the SKU endpoint instead — it takes your SKU string and is scoped to your partner account the same way:
bash
curl https://api.prod.thedesirecompany.com/api/v1/public/sku/ABC123 \
-H "X-API-Key: dk_live_your_key_here"Next steps
- Authentication — both header styles, scoping, rate limits, rotation.
- Get Product by SKU and Get Product by ID — full schemas.
- Errors — every error code and how to handle it.

