Dokumente
Strg+K Suchen Alt+[Alt+] Hilfslinien
API-Schlüssel abrufen

API

Trends (Exploding Topics)

Search exploding product trends, open trend detail pages, and fetch autocomplete suggestions. Same payloads as the dashboard Trends tab and MCP tools. Each call costs 1 API credit with your API key.

Note

Responses are passthrough JSON from Exploding Topics / Algolia. Non-Standard plans may also see trends_searches_remaining on browse (dashboard free-trend counter). Programmatic /api/v1/trends/* still charges the monthly API credit pool on every call.

Search

Browse the feed (no Abfrage) or keyword-search (Abfrage set). Body field must be Abfrage (MCP also accepts Stichwort as an alias). Autocomplete uses Stichwort.

BEITRAG/api/v1/trends/search

Exploding Topics browse feed or keyword search.

Senden X-API-Schlüssel on every request.

Body parameters

  • AbfrageZeichenkette

    Keyword search; omit to browse categories. MCP alias: keyword.

  • VersatzGanzzahl
    Default: 0
  • KategorieZeichenkette
  • ZeitrahmenZeichenkette
  • SortierenZeichenkette
  • deductZeichenkette

    Set to 1 when paginating browse to deduct dashboard trend credits (browser only).

Request
curl -sS \
  -X POST \
  -H "X-API-Key: $WH_API_KEY" \
  -H "Content-Type: application/json" \
  "{origin}/api/v1/trends/search" \
  -d '{"query":"string","offset":0,"category":"string","timeframe":"string","sorting":"string","deduct":"string"}'
const res = await fetch(`${ORIGIN}/api/v1/trends/search`, {
  method: 'POST',
  headers: {
    'X-API-Key': process.env.WH_API_KEY,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
      "query": "string",
      "offset": 0,
      "category": "string",
      "timeframe": "string",
      "sorting": "string",
      "deduct": "string"
  }),
});
const data = await res.json();
import os, requests

res = requests.post(
    f"{ORIGIN}/api/v1/trends/search",
    headers={"X-API-Key": os.environ["WH_API_KEY"]},
    json={
        "query": "string",
        "offset": 0,
        "category": "string",
        "timeframe": "string",
        "sorting": "string",
        "deduct": "string"
    },
)
data = res.json()
Antwort
{
    "total": 5684,
    "result": [
        {
            "keyword": "zokop",
            "path": "zokop",
            "description": "Comprehensive electrical brand offering kitchen appliances and humidifiers.",
            "absolute_volume": 1000,
            "classifications": {
                "3": "regular",
                "6": "exploding",
                "12": "exploding",
                "24": "exploding",
                "60": "exploding"
            },
            "categories": [
                "business",
                "home",
                "ecommerce",
                "retail",
                "kitchen"
            ],
            "date_added": 1591474468,
            "search_history": {
                "last_12_months": [
                    {
                        "value": 200,
                        "time": "1755993600"
                    },
                    {
                        "value": 221,
                        "time": "1756598400"
                    },
                    {
                        "value": 190,
                        "time": "1758412800"
                    }
                ],
                "last_3_months": [
                    {
                        "value": 613,
                        "time": "1779580800"
                    },
                    {
                        "value": 1057,
                        "time": "1782000000"
                    }
                ],
                "growth": {
                    "3": -62,
                    "6": -12,
                    "12": 15,
                    "24": 104,
                    "60": 125,
                    "120": 4400,
                    "180": 4400
                },
                "regressions": {
                    "3": {
                        "gradient": -4.45e-6,
                        "exponent": -1.52e-7,
                        "y_intercept": 7977.98
                    },
                    "12": {
                        "gradient": 8.6e-7,
                        "exponent": 4.2e-8,
                        "y_intercept": -1498.95
                    },
                    "24": {
                        "gradient": 7.19e-7,
                        "exponent": 2.1e-8,
                        "y_intercept": -1225.26
                    }
                }
            }
        }
    ]
}
{
    "message": "No topic found."
}
{
    "success": false,
    "error": "Unauthorized"
}
{
    "success": false,
    "error": "No API credits remaining. Buy an add-on pack or wait until next monthly reset."
}

Browse responses expose topics under result (array) plus insgesamt. Keyword search (Abfrage set) hits the /topic upstream endpoint and may return a single object under result instead of an array. Unknown keywords return HTTP 200 { "message": "No topic found." } (not an error envelope).

search_history.growth und search_history.regressions sind objects keyed by month windows ("3", "6", "12", …) — not arrays. last_* series are arrays of { value, time } points (examples above are truncated; live payloads include the full series plus forecasts). Additional keys (channelBreakdown, related_trends, …) may appear. Plan gates return HTTP 200 with { "upgrade": "standard", "message": "…" }.

Detail

BEITRAG/api/v1/trends/detail

Full trend detail for a topic path (slug).

Senden X-API-Schlüssel on every request.

Body parameters

  • ThemaZeichenketterequired

    Topic path/slug. Also accepted as slug.

Request
curl -sS \
  -X POST \
  -H "X-API-Key: $WH_API_KEY" \
  -H "Content-Type: application/json" \
  "{origin}/api/v1/trends/detail" \
  -d '{"topic":"zokop"}'
const res = await fetch(`${ORIGIN}/api/v1/trends/detail`, {
  method: 'POST',
  headers: {
    'X-API-Key': process.env.WH_API_KEY,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
      "topic": "zokop"
  }),
});
const data = await res.json();
import os, requests

res = requests.post(
    f"{ORIGIN}/api/v1/trends/detail",
    headers={"X-API-Key": os.environ["WH_API_KEY"]},
    json={
        "topic": "zokop"
    },
)
data = res.json()
Antwort
{
    "result": {
        "keyword": "zokop",
        "path": "zokop",
        "description": "Comprehensive electrical brand offering kitchen appliances and humidifiers.",
        "absolute_volume": 1000,
        "classifications": {
            "3": "regular",
            "6": "exploding",
            "12": "exploding",
            "24": "exploding",
            "60": "exploding"
        },
        "categories": [
            "business",
            "home",
            "ecommerce",
            "retail",
            "kitchen"
        ],
        "date_added": 1591474468,
        "search_history": {
            "last_12_months": [
                {
                    "value": 200,
                    "time": "1755993600"
                },
                {
                    "value": 221,
                    "time": "1756598400"
                }
            ],
            "growth": {
                "3": -62,
                "6": -12,
                "12": 15,
                "24": 104,
                "60": 125,
                "120": 4400,
                "180": 4400
            },
            "regressions": {
                "12": {
                    "gradient": 8.6e-7,
                    "exponent": 4.2e-8,
                    "y_intercept": -1498.95
                },
                "24": {
                    "gradient": 7.19e-7,
                    "exponent": 2.1e-8,
                    "y_intercept": -1225.26
                }
            }
        }
    }
}
{
    "error": "No topic provided"
}

Returns the Brisante Themen payload wrapped under result. Same search_history shape as browse (objects for Wachstum / regressions, not empty arrays). Additional upstream keys may appear. Missing Thema Ergebnisse { "error": "No topic provided" }. Non-Standard plans may get { "upgrade": "standard", "message": "…" }.

Autocomplete

BEITRAG/api/v1/trends/autocomplete

Fuzzy topic suggestions (Algolia multi-index).

Senden X-API-Schlüssel on every request.

Body parameters

  • StichwortZeichenketterequired

    Also accepted as Abfrage on the v1 proxy.

Request
curl -sS \
  -X POST \
  -H "X-API-Key: $WH_API_KEY" \
  -H "Content-Type: application/json" \
  "{origin}/api/v1/trends/autocomplete" \
  -d '{"keyword":"color"}'
const res = await fetch(`${ORIGIN}/api/v1/trends/autocomplete`, {
  method: 'POST',
  headers: {
    'X-API-Key': process.env.WH_API_KEY,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
      "keyword": "color"
  }),
});
const data = await res.json();
import os, requests

res = requests.post(
    f"{ORIGIN}/api/v1/trends/autocomplete",
    headers={"X-API-Key": os.environ["WH_API_KEY"]},
    json={
        "keyword": "color"
    },
)
data = res.json()
Antwort
{
    "results": [
        {
            "hits": [
                {
                    "keyword": "colorblock",
                    "topic": "Keyword",
                    "path": "colorblock",
                    "growth": 0.13,
                    "briefDescription": "Fashion and design technique that involves using large, solid blocks of color…"
                }
            ],
            "nbHits": 12,
            "processingTimeMS": 3
        }
    ]
}

Suggestions live in results[0].hits[] — not a top-level hits array. Hit fields come from Algolia (Stichwort, path, Thema, Wachstum, briefDescription, …). Non-Standard plans may get { "upgrade": "standard", "message": "…" }.

curl -sS -X POST -H "X-API-Key: $WH_API_KEY" -H "Content-Type: application/json" \
  -d '{"query":"matcha"}' \
  "{origin}/api/v1/trends/search"

Session equivalents: POST /search-exploding-topics, POST /get-trend-details, POST /api/trends-fuzzy.