{"openapi":"3.1.0","info":{"title":"Trust Cue public API","version":"1.0.0","description":"Read evidence-backed credibility ratings for X (Twitter) accounts, and buy a one-off rating when none exists. Live ratings expire after 48 hours; explicitly marked sample snapshots are frozen. Neither is an endorsement or financial advice."},"servers":[{"url":"https://api.trustcue.app"}],"paths":{"/v1/public/verdicts/{handle}":{"get":{"summary":"Read the current rating for an X account","description":"Returns a current, fresh (<48h) live rating or an explicitly marked frozen sample snapshot if one exists; otherwise returns 404 with an offer pointer to buy one.","parameters":[{"name":"handle","in":"path","required":true,"schema":{"type":"string"},"description":"X handle without the @."}],"responses":{"200":{"description":"A current rating.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerdictResponse"}}}},"404":{"description":"No fresh rating; body carries an offer pointer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAvailable"}}}}}}},"/v1/public/onboarding-samples":{"get":{"summary":"List free sample ratings","responses":{"200":{"description":"Up to four sample ratings."}}}},"/v1/public/rating-offers":{"post":{"summary":"Buy a one-off rating for an account with no fresh rating","description":"Creates a Stripe Checkout session for a single rating. After payment the rating is readable at /v1/public/verdicts/{handle} for 48 hours. The caller (e.g. an AI assistant) hands the checkout URL to a human — it cannot complete payment itself.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["handle"],"properties":{"handle":{"type":"string","description":"X handle without the @."}}}}}},"responses":{"200":{"description":"A checkout URL and the result URL to read the rating after payment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RatingOffer"}}}},"409":{"description":"A fresh rating already exists (read it for free at /v1/public/verdicts/{handle})."}}}}},"components":{"schemas":{"VerdictResponse":{"type":"object","properties":{"verdict":{"type":"object","description":"Overall mark, the five checks with verbatim evidence quotes, confidence, and caveats."},"ratedAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","format":"date-time"},"sampleSnapshot":{"oneOf":[{"type":"null"},{"type":"object","properties":{"frozen":{"const":true},"capturedAt":{"type":"string","format":"date-time"},"updatesAutomatically":{"const":false}}}]},"disclaimer":{"type":"string"},"methodology_url":{"type":"string","format":"uri"}}},"NotAvailable":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string","example":"RATING_NOT_AVAILABLE"},"offer":{"$ref":"#/components/schemas/OfferPointer"}}},"OfferPointer":{"type":"object","properties":{"method":{"type":"string","example":"POST"},"url":{"type":"string","format":"uri"},"body":{"type":"object"},"price_usd":{"type":"number"},"note":{"type":"string"}}},"RatingOffer":{"type":"object","properties":{"checkout_url":{"type":"string","format":"uri"},"result_url":{"type":"string","format":"uri"},"expires_at":{"type":"string","format":"date-time"}}}}}}