{"service":"keepa-api-server","version":"1.0.1","endpoints":{"health":"GET /health","docs":"GET /docs","product":"POST /keepa/product","productBarcode":"POST /keepa/product/barcode","productLive":"POST /keepa/product/live","cacheLookup":"POST /keepa/cache/lookup (cache-only bulk, 0 tokens)","cacheLookupContract":"GET /keepa/cache/lookup/contract (v2)","catalogResolve":"POST /keepa/catalog/resolve","catalogResolveStatus":"POST /keepa/catalog/resolve/status","catalogStreamsStatus":"GET /keepa/catalog/streams/status","search":"POST /keepa/search","query":"POST /keepa/query","graph":"GET /keepa/graph?asin={ASIN}","graphSmall":"GET /keepa/graph/small?asin={ASIN}&range={7|30|60|90|180|360}","graphImage":"GET /keepa/graph/image?...&sig={HMAC} (signed PNG proxy, no x-api-key, 1 token per uncached image)","seller":"POST /keepa/seller","category":"POST /keepa/category","tokens":"GET /keepa/tokens","usage":"GET /keepa/usage","callerPolicies":"GET /keepa/admin/caller-policies","callerPolicySave":"PUT /keepa/admin/caller-policies/:callerId","upstreamKeys":"GET /keepa/admin/upstream-keys (admin key; never returns a secret)","upstreamKeyVerify":"POST /keepa/admin/upstream-keys/verify {secret} (live Keepa /token check, pool untouched)","upstreamKeyAdd":"POST /keepa/admin/upstream-keys {label, secret, secretEnv?, note?, enabled?, graphKey?, actor} (live now; Coolify env is the caller's write)","upstreamKeyUpdate":"PATCH /keepa/admin/upstream-keys/:label {enabled?, graphKey?, note?, actor}","upstreamKeyProbe":"POST /keepa/admin/upstream-keys/:label/probe","maintenanceTrigger":"POST /keepa/maintenance/trigger","maintenanceStatus":"GET /keepa/maintenance/status","cacheStats":"GET /keepa/maintenance/cache-stats","recentCache":"GET /keepa/maintenance/recent-cache?limit=50"},"authentication":"x-api-key header required for /keepa/* endpoints","callerIdentification":"x-caller-id header required for /keepa/* endpoints (x-client-name or caller query/body accepted as fallback)"}