{"openapi":"3.1.0","info":{"title":"How It Spread API","version":"1.1.0","description":"Viral cases traced from the first post to the peak: dated spread timelines, a Spread Score and a citation for each. No key reads the public tier; a Pro account key (Account → API keys) adds every event, sourced number and source. Cite cases by their url.","contact":{"name":"How It Spread","url":"https://howitspread.com/mcp#api","email":"hello@howitspread.com"},"termsOfService":"https://howitspread.com/terms"},"servers":[{"url":"https://howitspread.com"}],"externalDocs":{"url":"https://howitspread.com/mcp#api"},"components":{"securitySchemes":{"apiKey":{"type":"http","scheme":"bearer","description":"Optional. A Pro account key."}}},"paths":{"/api/v1/cases":{"get":{"operationId":"searchCases","summary":"Search viral cases","description":"Search by text, kind, mechanic or platform. Returns each case's Spread Score, dates, platforms, mechanics, image and url.","parameters":[{"name":"query","in":"query","schema":{"type":"string"},"description":"A brand, product, film, format or idea."},{"name":"kind","in":"query","schema":{"type":"string","enum":["campaign","product","food","app","film","series","music","game","book","creator","meme","trend","activity","moment"]}},{"name":"mechanic","in":"query","schema":{"type":"string","enum":["remixable-template","audio-meme","catchphrase","shareable-output","daily-ritual","challenge","response-chain","low-effort-copy","identity-badge","scarcity-drop","variable-reward","collectible-set","visible-use","unscripted-proof","underdog","founder-origin","mystery-lore","spectacle","controversy","transgression","celebrity-amplifier","creator-relay","fandom-mobilisation","brand-pile-on","platform-jump","press-loop","political-adoption","dupe-economy","resale-market","sell-out-loop","counter-programming","newsjacking","mascot-persona","unhinged-voice","nostalgia-revival"]}},{"name":"platform","in":"query","schema":{"type":"string","enum":["tiktok","instagram","youtube","x","reddit","facebook","threads","snapchat","twitch","chat","xiaohongshu","press","tv","audio","retail","box-office","app-store","web"]}},{"name":"limit","in":"query","schema":{"type":"integer","default":20,"maximum":100}}],"responses":{"200":{"description":"Matching cases, best first.","content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","additionalProperties":true}},"count":{"type":"integer"}}}}}}}}},"/api/v1/cases/{slug}":{"get":{"operationId":"getCase","summary":"Read a case","description":"One case: dated spread timeline (seed, first amplifier, platform jumps, press, peak), Spread Score, summary and citation. Locked fields say what an account adds.","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"},"description":"The slug from searchCases."}],"responses":{"200":{"description":"The case.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"404":{"description":"No case with that slug."}}}},"/api/v1/standard":{"get":{"operationId":"getStandard","summary":"The Spread Score and taxonomy definitions","responses":{"200":{"description":"Versioned score method, mechanics and ID scheme.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}}}}}}