{"openapi":"3.1.0","info":{"title":"AttentionWatch Public Discovery API","version":"1.0.0","description":"Anonymous read-only discovery. Trending uses ORGANIC_VERIFIED_VISITS; Attention Market is paid competitive visibility (PAID_COMPETITIVE_VISIBILITY)."},"servers":[{"url":"https://attentionwatch.com/api/v1/discovery"}],"paths":{"/products":{"get":{"operationId":"search_products","summary":"Search Published Products","parameters":[{"name":"query","in":"query","schema":{"type":"string","maxLength":200}},{"name":"category","in":"query","schema":{"type":"string"}},{"name":"tags","in":"query","description":"Repeated tag slugs; ANY requested tag qualifies","schema":{"type":"array","items":{"type":"string"},"maxItems":5},"explode":true},{"name":"verifiedOnly","in":"query","schema":{"type":"boolean","default":false}},{"name":"sort","in":"query","schema":{"enum":["relevance","latest","name"],"default":"relevance"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":50,"default":20}},{"name":"cursor","in":"query","description":"Opaque signed cursor returned by the preceding page","schema":{"type":"string"}}],"responses":{"200":{"description":"Successful public discovery response"},"400":{"description":"Invalid request or cursor","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","requestId"],"properties":{"code":{"enum":["INVALID_REQUEST","INVALID_CURSOR","NOT_FOUND","RATE_LIMITED","INTERNAL_ERROR"]},"message":{"type":"string"},"requestId":{"type":"string"}}}}}}}},"404":{"description":"Public resource not found","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","requestId"],"properties":{"code":{"enum":["INVALID_REQUEST","INVALID_CURSOR","NOT_FOUND","RATE_LIMITED","INTERNAL_ERROR"]},"message":{"type":"string"},"requestId":{"type":"string"}}}}}}}},"429":{"description":"Rate limited; Retry-After is supplied","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","requestId"],"properties":{"code":{"enum":["INVALID_REQUEST","INVALID_CURSOR","NOT_FOUND","RATE_LIMITED","INTERNAL_ERROR"]},"message":{"type":"string"},"requestId":{"type":"string"}}}}}}}}}}},"/products/{slug}":{"get":{"operationId":"get_product","summary":"Get one Published Product","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful public discovery response"},"400":{"description":"Invalid request or cursor","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","requestId"],"properties":{"code":{"enum":["INVALID_REQUEST","INVALID_CURSOR","NOT_FOUND","RATE_LIMITED","INTERNAL_ERROR"]},"message":{"type":"string"},"requestId":{"type":"string"}}}}}}}},"404":{"description":"Public resource not found","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","requestId"],"properties":{"code":{"enum":["INVALID_REQUEST","INVALID_CURSOR","NOT_FOUND","RATE_LIMITED","INTERNAL_ERROR"]},"message":{"type":"string"},"requestId":{"type":"string"}}}}}}}},"429":{"description":"Rate limited; Retry-After is supplied","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","requestId"],"properties":{"code":{"enum":["INVALID_REQUEST","INVALID_CURSOR","NOT_FOUND","RATE_LIMITED","INTERNAL_ERROR"]},"message":{"type":"string"},"requestId":{"type":"string"}}}}}}}}}}},"/products/{slug}/similar":{"get":{"operationId":"find_similar_products","summary":"Find deterministic similar Products","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":12,"default":6}}],"responses":{"200":{"description":"Successful public discovery response"},"400":{"description":"Invalid request or cursor","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","requestId"],"properties":{"code":{"enum":["INVALID_REQUEST","INVALID_CURSOR","NOT_FOUND","RATE_LIMITED","INTERNAL_ERROR"]},"message":{"type":"string"},"requestId":{"type":"string"}}}}}}}},"404":{"description":"Public resource not found","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","requestId"],"properties":{"code":{"enum":["INVALID_REQUEST","INVALID_CURSOR","NOT_FOUND","RATE_LIMITED","INTERNAL_ERROR"]},"message":{"type":"string"},"requestId":{"type":"string"}}}}}}}},"429":{"description":"Rate limited; Retry-After is supplied","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","requestId"],"properties":{"code":{"enum":["INVALID_REQUEST","INVALID_CURSOR","NOT_FOUND","RATE_LIMITED","INTERNAL_ERROR"]},"message":{"type":"string"},"requestId":{"type":"string"}}}}}}}}}}},"/products/{slug}/launches":{"get":{"operationId":"get_product_launches","summary":"List Approved Product Launches","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":50,"default":20}},{"name":"cursor","in":"query","description":"Opaque signed cursor returned by the preceding page","schema":{"type":"string"}}],"responses":{"200":{"description":"Successful public discovery response"},"400":{"description":"Invalid request or cursor","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","requestId"],"properties":{"code":{"enum":["INVALID_REQUEST","INVALID_CURSOR","NOT_FOUND","RATE_LIMITED","INTERNAL_ERROR"]},"message":{"type":"string"},"requestId":{"type":"string"}}}}}}}},"404":{"description":"Public resource not found","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","requestId"],"properties":{"code":{"enum":["INVALID_REQUEST","INVALID_CURSOR","NOT_FOUND","RATE_LIMITED","INTERNAL_ERROR"]},"message":{"type":"string"},"requestId":{"type":"string"}}}}}}}},"429":{"description":"Rate limited; Retry-After is supplied","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","requestId"],"properties":{"code":{"enum":["INVALID_REQUEST","INVALID_CURSOR","NOT_FOUND","RATE_LIMITED","INTERNAL_ERROR"]},"message":{"type":"string"},"requestId":{"type":"string"}}}}}}}}}}},"/categories":{"get":{"operationId":"list_categories","summary":"List public Categories","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":50,"default":20}},{"name":"cursor","in":"query","description":"Opaque signed cursor returned by the preceding page","schema":{"type":"string"}}],"responses":{"200":{"description":"Successful public discovery response"},"400":{"description":"Invalid request or cursor","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","requestId"],"properties":{"code":{"enum":["INVALID_REQUEST","INVALID_CURSOR","NOT_FOUND","RATE_LIMITED","INTERNAL_ERROR"]},"message":{"type":"string"},"requestId":{"type":"string"}}}}}}}},"404":{"description":"Public resource not found","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","requestId"],"properties":{"code":{"enum":["INVALID_REQUEST","INVALID_CURSOR","NOT_FOUND","RATE_LIMITED","INTERNAL_ERROR"]},"message":{"type":"string"},"requestId":{"type":"string"}}}}}}}},"429":{"description":"Rate limited; Retry-After is supplied","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","requestId"],"properties":{"code":{"enum":["INVALID_REQUEST","INVALID_CURSOR","NOT_FOUND","RATE_LIMITED","INTERNAL_ERROR"]},"message":{"type":"string"},"requestId":{"type":"string"}}}}}}}}}}},"/launches":{"get":{"operationId":"get_just_shipped","summary":"List Approved Just Shipped Launches","parameters":[{"name":"query","in":"query","schema":{"type":"string","maxLength":200}},{"name":"category","in":"query","schema":{"type":"string"}},{"name":"type","in":"query","schema":{"enum":["NEW","UPDATE","MODEL","BETA","WAITLIST","OFFER"]}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":50,"default":20}},{"name":"cursor","in":"query","description":"Opaque signed cursor returned by the preceding page","schema":{"type":"string"}}],"responses":{"200":{"description":"Successful public discovery response"},"400":{"description":"Invalid request or cursor","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","requestId"],"properties":{"code":{"enum":["INVALID_REQUEST","INVALID_CURSOR","NOT_FOUND","RATE_LIMITED","INTERNAL_ERROR"]},"message":{"type":"string"},"requestId":{"type":"string"}}}}}}}},"404":{"description":"Public resource not found","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","requestId"],"properties":{"code":{"enum":["INVALID_REQUEST","INVALID_CURSOR","NOT_FOUND","RATE_LIMITED","INTERNAL_ERROR"]},"message":{"type":"string"},"requestId":{"type":"string"}}}}}}}},"429":{"description":"Rate limited; Retry-After is supplied","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","requestId"],"properties":{"code":{"enum":["INVALID_REQUEST","INVALID_CURSOR","NOT_FOUND","RATE_LIMITED","INTERNAL_ERROR"]},"message":{"type":"string"},"requestId":{"type":"string"}}}}}}}}}}},"/trending":{"get":{"operationId":"get_trending","summary":"List organically Trending Launches","description":"Uses verified organic visits in a fixed PT24H window and never affects Attention Market rank.","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":50,"default":20}},{"name":"cursor","in":"query","description":"Opaque signed cursor returned by the preceding page","schema":{"type":"string"}}],"responses":{"200":{"description":"Successful public discovery response"},"400":{"description":"Invalid request or cursor","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","requestId"],"properties":{"code":{"enum":["INVALID_REQUEST","INVALID_CURSOR","NOT_FOUND","RATE_LIMITED","INTERNAL_ERROR"]},"message":{"type":"string"},"requestId":{"type":"string"}}}}}}}},"404":{"description":"Public resource not found","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","requestId"],"properties":{"code":{"enum":["INVALID_REQUEST","INVALID_CURSOR","NOT_FOUND","RATE_LIMITED","INTERNAL_ERROR"]},"message":{"type":"string"},"requestId":{"type":"string"}}}}}}}},"429":{"description":"Rate limited; Retry-After is supplied","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","requestId"],"properties":{"code":{"enum":["INVALID_REQUEST","INVALID_CURSOR","NOT_FOUND","RATE_LIMITED","INTERNAL_ERROR"]},"message":{"type":"string"},"requestId":{"type":"string"}}}}}}}}}}},"/offers":{"get":{"operationId":"get_active_offers","summary":"List active Offers","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":50,"default":20}},{"name":"cursor","in":"query","description":"Opaque signed cursor returned by the preceding page","schema":{"type":"string"}}],"responses":{"200":{"description":"Successful public discovery response"},"400":{"description":"Invalid request or cursor","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","requestId"],"properties":{"code":{"enum":["INVALID_REQUEST","INVALID_CURSOR","NOT_FOUND","RATE_LIMITED","INTERNAL_ERROR"]},"message":{"type":"string"},"requestId":{"type":"string"}}}}}}}},"404":{"description":"Public resource not found","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","requestId"],"properties":{"code":{"enum":["INVALID_REQUEST","INVALID_CURSOR","NOT_FOUND","RATE_LIMITED","INTERNAL_ERROR"]},"message":{"type":"string"},"requestId":{"type":"string"}}}}}}}},"429":{"description":"Rate limited; Retry-After is supplied","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","requestId"],"properties":{"code":{"enum":["INVALID_REQUEST","INVALID_CURSOR","NOT_FOUND","RATE_LIMITED","INTERNAL_ERROR"]},"message":{"type":"string"},"requestId":{"type":"string"}}}}}}}}}}},"/market":{"get":{"operationId":"get_attention_market","summary":"Read Attention Market","description":"Paid competitive visibility ranked only by Promotion Credits. This operation never mutates Market state.","parameters":[{"name":"date","in":"query","description":"Optional UTC date in YYYY-MM-DD form","schema":{"type":"string","format":"date"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":50,"default":20}},{"name":"cursor","in":"query","description":"Opaque signed cursor returned by the preceding page","schema":{"type":"string"}}],"responses":{"200":{"description":"Successful public discovery response"},"400":{"description":"Invalid request or cursor","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","requestId"],"properties":{"code":{"enum":["INVALID_REQUEST","INVALID_CURSOR","NOT_FOUND","RATE_LIMITED","INTERNAL_ERROR"]},"message":{"type":"string"},"requestId":{"type":"string"}}}}}}}},"404":{"description":"Public resource not found","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","requestId"],"properties":{"code":{"enum":["INVALID_REQUEST","INVALID_CURSOR","NOT_FOUND","RATE_LIMITED","INTERNAL_ERROR"]},"message":{"type":"string"},"requestId":{"type":"string"}}}}}}}},"429":{"description":"Rate limited; Retry-After is supplied","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","requestId"],"properties":{"code":{"enum":["INVALID_REQUEST","INVALID_CURSOR","NOT_FOUND","RATE_LIMITED","INTERNAL_ERROR"]},"message":{"type":"string"},"requestId":{"type":"string"}}}}}}}}}}},"/champions":{"get":{"operationId":"get_daily_champions","summary":"List finalized Daily Champions","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":50,"default":20}},{"name":"cursor","in":"query","description":"Opaque signed cursor returned by the preceding page","schema":{"type":"string"}}],"responses":{"200":{"description":"Successful public discovery response"},"400":{"description":"Invalid request or cursor","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","requestId"],"properties":{"code":{"enum":["INVALID_REQUEST","INVALID_CURSOR","NOT_FOUND","RATE_LIMITED","INTERNAL_ERROR"]},"message":{"type":"string"},"requestId":{"type":"string"}}}}}}}},"404":{"description":"Public resource not found","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","requestId"],"properties":{"code":{"enum":["INVALID_REQUEST","INVALID_CURSOR","NOT_FOUND","RATE_LIMITED","INTERNAL_ERROR"]},"message":{"type":"string"},"requestId":{"type":"string"}}}}}}}},"429":{"description":"Rate limited; Retry-After is supplied","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","requestId"],"properties":{"code":{"enum":["INVALID_REQUEST","INVALID_CURSOR","NOT_FOUND","RATE_LIMITED","INTERNAL_ERROR"]},"message":{"type":"string"},"requestId":{"type":"string"}}}}}}}}}}}},"x-rate-limit":{"minute":30,"hour":600},"x-pagination":"Opaque signed cursor","x-freshness":{"productsSeconds":300,"categoriesSeconds":900,"trendingSeconds":15,"currentMarketSeconds":5},"components":{"schemas":{"SuccessEnvelope":{"type":"object","required":["apiVersion","data","meta"],"properties":{"apiVersion":{"const":"1"},"data":{},"pagination":{"type":"object","properties":{"nextCursor":{"type":["string","null"]},"hasMore":{"type":"boolean"}}},"meta":{"type":"object","required":["generatedAt","sourceTimestamp","freshnessSeconds"],"properties":{"generatedAt":{"type":"string","format":"date-time"},"sourceTimestamp":{"type":["string","null"],"format":"date-time"},"freshnessSeconds":{"type":"integer"}}}}},"ProductSummary":{"type":"object","required":["id","slug","name","tagline","descriptionSummary","websiteUrl","faviconUrl","verified","publishedAt","updatedAt","categories","tags","canonicalUrl","attributedUrl"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"tagline":{"type":["string","null"]},"descriptionSummary":{"type":["string","null"],"maxLength":280},"websiteUrl":{"type":"string","format":"uri"},"faviconUrl":{"type":["string","null"],"format":"uri"},"verified":{"type":"boolean"},"publishedAt":{"type":["string","null"],"format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"categories":{"type":"array","items":{"$ref":"#/components/schemas/CategorySummary"}},"tags":{"type":"array","items":{"type":"object"}},"canonicalUrl":{"type":"string","format":"uri"},"attributedUrl":{"type":"string","format":"uri"}}},"CategorySummary":{"type":"object","required":["slug","name","label","description","productCount","canonicalUrl"],"properties":{"slug":{"type":"string"},"name":{"type":"string"},"label":{"type":["string","null"]},"description":{"type":["string","null"]},"productCount":{"type":"integer","minimum":0},"canonicalUrl":{"type":"string","format":"uri"}}},"LaunchSummary":{"type":"object","description":"Approved public Launch projection"},"OfferSummary":{"type":"object","description":"Currently active Offer on an Approved Launch"},"TrendingPosition":{"type":"object","description":"ORGANIC_VERIFIED_VISITS in a PT24H window; does not affect Market rank"},"MarketDaySummary":{"type":"object","description":"PAID_COMPETITIVE_VISIBILITY public MarketDay projection"},"MarketEntrySummary":{"type":"object","description":"Promotion Credit-ranked public Market entry without financial internals"},"DailyChampionSummary":{"type":"object","description":"DAILY_CHAMPION from a finalized CLOSED MarketDay"},"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","requestId"],"properties":{"code":{"enum":["INVALID_REQUEST","INVALID_CURSOR","NOT_FOUND","RATE_LIMITED","INTERNAL_ERROR"]},"message":{"type":"string"},"requestId":{"type":"string"}}}}}}}}