{"openapi":"3.1.0","info":{"title":"Twitter / X API","version":"1.0.0","description":"Read public Twitter/X data in real time — no login or key needed. Look up any tweet by its id (or by its URL) and get the full tweet: text, author, created date, language, like/retweet/reply/quote/view counts, attached photos and videos, and any quoted tweet. Look up any public account by @handle for its profile — display name, bio, location, follower/following counts, tweet and media counts and avatar. Tweets are read from X's own official syndication endpoint (the source that powers embedded tweets); profiles via the public FixTweet service. Every call is live (no cache). 4 endpoints. Built for tweet/embed enrichment, brand and author monitoring and content back-ends. Note: X exposes no public search or timeline, so this reads single tweets and profiles. No upstream key, no cache.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/twitterx-api","description":"oanor gateway"}],"tags":[{"name":"Tweets"},{"name":"Users"},{"name":"Meta"}],"components":{"securitySchemes":{"oanorKey":{"type":"apiKey","in":"header","name":"x-oanor-key","description":"Get your key at https://www.oanor.com/developer/keys"}}},"security":[{"oanorKey":[]}],"paths":{"/v1/tweet":{"get":{"operationId":"get_v1_tweet","tags":["Tweets"],"summary":"Tweet by id","description":"","parameters":[{"name":"id","in":"query","required":true,"description":"Numeric tweet id","schema":{"type":"string"},"example":"20"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"lang":"en","text":"just setting up my twttr","user":{"name":"jack","id_str":"12","verified":false,"screen_name":"jack","is_blue_verified":true,"highlighted_label":{"url":{"url":"https://twitter.com/Square","url_type":"DeepLink"},"badge":{"url":"https://pbs.twimg.com/profile_images/1285655593592791040/HtwPZgej_bigger.jpg"},"description":"Square","user_label_type":"BusinessLabel","user_label_display_type":"Badge"},"profile_image_shape":"Circle","profile_image_url_https":"https://pbs.twimg.com/profile_images/1661201415899951105/azNjKOSH_normal.jpg"},"id_str":"20","entities":[],"isEdited":false,"__typename":"Tweet","created_at":"2006-03-21T20:50:14.000Z","isStaleEdit":false,"edit_control":{"edit_tweet_ids":["20"],"edits_remaining":"5","is_edit_eligible":true,"editable_until_msecs":"1142976014000"},"favorite_count":309474,"news_action_type":"conversation","conversation_count":17917,"display_text_range":[0,24]},"meta":{"timestamp":"2026-06-02T16:53:16.639Z","request_id":"5d8a3d1a-5381-4ff2-9776-b9328fa0c260"},"status":"ok","message":"Tweet by id","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/tweet/by-url":{"get":{"operationId":"get_v1_tweet_by_url","tags":["Tweets"],"summary":"Tweet by URL","description":"","parameters":[{"name":"url","in":"query","required":true,"description":"Tweet URL","schema":{"type":"string"},"example":"https://twitter.com/jack/status/20"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"lang":"en","text":"just setting up my twttr","user":{"name":"jack","id_str":"12","verified":false,"screen_name":"jack","is_blue_verified":true,"highlighted_label":{"url":{"url":"https://twitter.com/Square","url_type":"DeepLink"},"badge":{"url":"https://pbs.twimg.com/profile_images/1285655593592791040/HtwPZgej_bigger.jpg"},"description":"Square","user_label_type":"BusinessLabel","user_label_display_type":"Badge"},"profile_image_shape":"Circle","profile_image_url_https":"https://pbs.twimg.com/profile_images/1661201415899951105/azNjKOSH_normal.jpg"},"id_str":"20","entities":[],"isEdited":false,"__typename":"Tweet","created_at":"2006-03-21T20:50:14.000Z","isStaleEdit":false,"edit_control":{"edit_tweet_ids":["20"],"edits_remaining":"5","is_edit_eligible":true,"editable_until_msecs":"1142976014000"},"favorite_count":309474,"news_action_type":"conversation","conversation_count":17917,"display_text_range":[0,24]},"meta":{"timestamp":"2026-06-02T16:53:16.745Z","request_id":"cdbe82f5-74f5-4c7c-bf8b-9414bc69b351"},"status":"ok","message":"Tweet by URL","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/user":{"get":{"operationId":"get_v1_user","tags":["Users"],"summary":"User profile","description":"","parameters":[{"name":"username","in":"query","required":true,"description":"@handle (without @)","schema":{"type":"string"},"example":"NASA"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"id":"11348282","url":"https://x.com/NASA","name":"NASA","likes":16797,"joined":"Wed Dec 19 20:20:32 +0000 2007","tweets":74051,"website":{"url":"http://www.nasa.gov/","display_url":"nasa.gov"},"location":"Pale Blue Dot","followers":92086705,"following":119,"protected":false,"avatar_url":"https://pbs.twimg.com/profile_images/1321163587679784960/0ZxKlEKB_normal.jpg","banner_url":"https://pbs.twimg.com/profile_banners/11348282/1775567134","description":"Making the seemingly impossible, possible. ✨","media_count":27976,"screen_name":"NASA","verification":{"type":"government","verified":true},"raw_description":{"text":"Making the seemingly impossible, possible. ✨","facets":[]}},"meta":{"timestamp":"2026-06-02T16:53:17.163Z","request_id":"74cfb7c6-162b-4a85-850d-905f392ea754"},"status":"ok","message":"User profile","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/meta":{"get":{"operationId":"get_v1_meta","tags":["Meta"],"summary":"Spec","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"auth":"none upstream; gateway requires x-api-key","name":"Twitter / X API","note":"Live, no cache. tweet takes a numeric tweet id (or use tweet/by-url with a tweet URL) and returns the full tweet with author, media, stats and any quoted tweet. user takes an @handle and returns the public profile (followers, counts, bio). Public tweets/accounts only; X exposes no public search or timeline.","source":"X official syndication (tweets) + FixTweet public API (users)","endpoints":4},"meta":{"timestamp":"2026-06-02T16:53:17.287Z","request_id":"b2a1977d-c21b-437b-b218-3041915b8be9"},"status":"ok","message":"Meta","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":3600,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":1200,"monthly_call_quota":68000,"rps_limit":8,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":3500,"monthly_call_quota":340000,"rps_limit":20,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":7900,"monthly_call_quota":1660000,"rps_limit":50,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/twitterx-api"}