{"openapi":"3.1.0","info":{"title":"Media Bias API","version":"1.0.0","description":"Political-bias and factual-reporting ratings for 1,350+ news sources, sourced from AllSides and Media Bias/Fact Check. Look up any outlet by domain or name to get its left/center/right political lean (5-point scale) and high/mixed/low factual reliability — ideal for news aggregators, media-literacy tools and content moderation.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/mediabias-api","description":"oanor gateway"}],"tags":[{"name":"Lookup"},{"name":"Search"},{"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/source":{"get":{"operationId":"get_v1_source","tags":["Lookup"],"summary":"Bias & factual rating for one news source (by domain or name)","description":"","parameters":[{"name":"domain","in":"query","required":false,"description":"News-source domain, e.g. nytimes.com","schema":{"type":"string"},"example":"nytimes.com"},{"name":"name","in":"query","required":false,"description":"News-source name, e.g. Fox News","schema":{"type":"string"},"example":"Fox News"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"bias":"left-center","name":"New York Times - News","type":"News Media","domain":"nytimes.com","sources":{"allsides":"https://www.allsides.com/news-source/new-york-times","wikipedia":"https://en.wikipedia.org/wiki/The_New_York_Times"},"bias_label":"lean left","bias_scale":"5-point (AllSides)","bias_position":-1},"meta":{"timestamp":"2026-05-30T22:48:25.714Z","request_id":"4b7bd249-96f1-4ba4-877f-98f7c66d80f9"},"status":"ok","message":"Source rating retrieved","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/search":{"get":{"operationId":"get_v1_search","tags":["Search"],"summary":"Filter news sources by text, bias and factual reliability","description":"","parameters":[{"name":"q","in":"query","required":false,"description":"Free-text match on source name/domain","schema":{"type":"string"},"example":"guardian"},{"name":"bias","in":"query","required":false,"description":"left | left-center | center | right-center | right","schema":{"type":"string"},"example":"left"},{"name":"factual","in":"query","required":false,"description":"high | mixed | low","schema":{"type":"string"},"example":"high"},{"name":"limit","in":"query","required":false,"description":"Results per page (1-100, default 20)","schema":{"type":"string"},"example":"20"},{"name":"offset","in":"query","required":false,"description":"Pagination offset","schema":{"type":"string"},"example":"0"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"count":2,"limit":20,"total":2,"offset":0,"filters":{"q":"guardian","bias":"left","factual":"high"},"results":[{"bias":"left","name":"Guardianlv","domain":"guardianlv.com","sources":{"mbfc":"http://mediabiasfactcheck.com/guardian-liberty-voice/"},"bias_label":"left","bias_scale":"3-point (MBFC)","bias_position":-2,"factual_reporting":"high"},{"bias":"left","name":"Theguardiansofdemocracy","domain":"theguardiansofdemocracy.com","sources":{"mbfc":"https://mediabiasfactcheck.com/guardians-of-democracy/"},"bias_label":"left","bias_scale":"3-point (MBFC)","bias_position":-2,"factual_reporting":"high"}]},"meta":{"timestamp":"2026-05-30T22:48:25.795Z","request_id":"b021ed20-b3b2-48cf-b63d-c44717b4dc83"},"status":"ok","message":"Search completed","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":"Dataset totals, bias values and rating distributions","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"total":1352,"sources":"AllSides Media Bias + Media Bias/Fact Check","bias_counts":{"left":323,"right":448,"center":400,"left-center":106,"right-center":75},"bias_values":["left","left-center","center","right-center","right"],"with_domain":892,"factual_counts":{"low":162,"high":452,"mixed":245},"factual_values":["high","mixed","low"]},"meta":{"timestamp":"2026-05-30T22:48:25.863Z","request_id":"f4fb1eea-cea4-407c-9d62-a5da934f8b29"},"status":"ok","message":"Meta retrieved","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":1000,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":1900,"monthly_call_quota":50000,"rps_limit":10,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":7900,"monthly_call_quota":500000,"rps_limit":30,"hard_limit":true},{"slug":"enterprise","name":"Enterprise","price_cents_month":29900,"monthly_call_quota":5000000,"rps_limit":100,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/mediabias-api"}