Skip to content

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:

  1. Sign in to the portal and open Settings → API Keys.
  2. Click Create key, give it a descriptive label (e.g. production-storefront), and confirm.
  3. 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

The Desire Company — Enterprise API