নিউজ API সাধারণত প্রতিটি অনুরোধের জন্য বিক্রি করা হয়, একটি কী-এর পেছনে গোপন থাকে এবং ফ্রি টায়ারে প্রতিদিন সর্বোচ্চ ১০০টি কল-এ সীমাবদ্ধ থাকে। Free News API এর এমন নয়: একটি রোলিং ৯০-দিনের উইন্ডো জুড়ে ২১.৫ মিলিয়ন নিবন্ধ, ২৫,০০০-এর বেশি প্রকাশক, কোনো কী নেই, কোনো সাইনআপ নেই, কোনো কোটা নেই, কমার্শিয়াল ব্যবহার অনুমোদিত। এখানে পুরো সার্ফেসটি রয়েছে — সার্চ, পরিসংখ্যান, ট্রেন্ড, মার্কেট, ফিড এবং MCP — এবং ডেটা কোথায় ভুল হয় তার একটি সৎ বিবরণ।

সমস্যার আকৃতি

একটি AI এজেন্টকে জিজ্ঞাসা করুন যে বর্তমানে পৃথিবীতে কী নিয়ে লেখা হচ্ছে, এবং এর তিনটি খারাপ বিকল্প থাকবে। এটি সরাসরি প্রকাশকদের থেকে স্ক্র্যাপ করতে পারে, যা দুর্বল, ধীর এবং আইনি দিক থেকে অস্পষ্ট। এটি একটি কমার্শিয়াল নিউজ API-এ কল করতে পারে, যার অর্থ একটি অ্যাকাউন্ট, একটি কী, মাসিক বিল এবং — বাজারে থাকা প্রতিটি ফ্রি টায়ারে — প্রতিদিন ১০০টি অনুরোধ এবং নিবন্ধ ২৪ ঘণ্টা বিলম্বিত হওয়া। অথবা এটি মাস কয়েক আগে থেমে যাওয়া ট্রেনিং ডেটা থেকে অনুমান করতে পারে।

Free News API মাধ্যমিক বিকল্পটির মূল্য এবং কাগজপত্র সরিয়ে দেয় কিন্তু এর সক্ষমতা সরায় না। একটি GET অনুরোধ, কোনো ক্রেডেনশিয়াল ছাড়াই, এমন একটি কর্পাসের ওপর যেটি লেখার সময় ২১,৫৫৭,০৪৪টি নিবন্ধ ধারণ করে, ২৫,০০০-এর বেশি প্রকাশকের, একটি রোলিং নিন্ম-দিনের উইন্ডোতে রাখা এবং ক্রমাগত আপডেট করা — সূচিকৃত নতুনতম নিবন্ধটি সাধারণত দুই মিনিটেরও কম পুরনো হয়।

২১.৫ মিলিয়ন
নিবন্ধ সূচিকৃত
25,000+
প্রকাশক
100
দেশ
~১০০
ভাষা
৯০ দিন
রোলিং উইন্ডো
0
API সংখ্যক কী বিদ্যমান
নিয়মটি: কোনো API কী নেই এবং ভবিষ্যতেও থাকবে না। এর জন্য কোনো প্যারামিটার নেই, পাঠানোর কোনো হেডার নেই, তৈরি করার কোনো অ্যাকাউন্ট নেই এবং কোনো অনুরোধের কোটাও নেই — শুধুমাত্র প্রতি আইপি-তে সেকেন্ডে ২০টি অনুরোধের হার সীমা রয়েছে, যাতে একজন কলার অন্যদের জন্য সেবাটি বন্ধ করতে না পারে।

চারটি মূল এন্ডপয়েন্ট এবং তার বেশি

সেবার মূল চারটি GET এন্ডপয়েন্ট, সবগুলো https://freenewsapi.ai-এর অধীনে, সবগুলোই ইউটিএফ-৮ JSON ফেরত দেয় Access-Control-Allow-Origin: * হেডার সহ, যাতে ব্রাউজার কোড সরাসরি এগুলো কল করতে পারে, এবং সবগুলো took_ms-এ সার্ভার-সাইড সময় রিপোর্ট করে।

এন্ডপয়েন্টএটি কী উত্তর দেয়
GET /v1/searchফিল্টার সহ ফুল-টেক্সট সার্চ। আপনি ৯৫% সময় যে এন্ডপয়েন্টটি ব্যবহার করেন।
GET /v1/statsযেকোনো বিভাজনের জন্য একত্রিত কাউন্ট — দেশ, ভাষা, টিএলডি, প্রকাশক এবং দিন অনুযায়ী।
GET /v1/articleনির্দিষ্ট URL-এর একটি নিবন্ধ, পুরো শরীরের টেক্সট সহ।
GET /healthলাইভনেস এবং বর্তমান ডকুমেন্ট সংখ্যা। পোল করার জন্য যথেষ্ট সস্তা।

সেই কোরের চারপাশে চারটি আরও পরিবার রয়েছে, যার প্রতিটি অন্যত্র একটি পণ্য হতো: ট্রেন্ডস (দেশভেদে লাইভ স্টোরি ক্লাস্টারিং), মার্কেটস (কভারেজ ভলিউমের বিরুদ্ধে মূল্য সিরিজ), ক্রিপ্টো সেন্টিমেন্ট (বিটকয়েন ব্লকের সাতটি এন্ডপয়েন্ট), এবং সিন্ডিকেশন (একই সার্চ RSS, Atom বা JSON ফিড হিসেবে রেন্ডার করা)। তাদের সবকটি নিচে কভার করা হয়েছে।

curl "https://freenewsapi.ai/v1/search?q=climate+summit&size=2"
{
  "took_ms": 41,
  "total": 1284,
  "total_is_lower_bound": false,
  "size": 2,
  "offset": 0,
  "results": [
    {
      "id": "9c1f8a4b2d3e5f6071829304a5b6c7d8",
      "url": "https://example-news.com/world/climate-summit-opens",
      "title": "Climate summit opens with a call for binding targets",
      "description": "Delegates from 190 countries gathered on Monday ...",
      "published_at": "2026-08-17T09:12:00Z",
      "crawled_at": "2026-08-17T10:48:31Z",
      "host": "example-news.com",
      "sitename": "Example News",
      "country": "GB",
      "country_source": "cctld",
      "lang": "en",
      "tld": "com"
    }
  ]
}

সেই রেসপন্সের তিনটি ফিল্ড তৎক্ষণাৎ মনোযোগ আকর্ষণ করে, কারণ তারা পুরো ডেটাসেটের সততার এনকোড করে। total_is_lower_bound আপনাকে বলে দেয় যখন ম্যাচ সংখ্যা ১০,০০০ ছাদে পৌঁছেছে এবং গণনা বন্ধ করেছে। country_source আপনাকে বলে কীভাবে দেশটি নির্ধারণ করা হয়েছে — কারণ যেকোনো নিউজ ডেটাসেটে দেশের মানের একটি বড় অংশ অনুমান, তথ্য নয়। এবং crawled_at হলো বিশ্বাসযোগ্য টাইমস্ট্যাম্প: প্রকাশকরা published_at সাধারণত ব্যাকডেট করেন, কিন্তু ক্রল টাইম পাইপলাইন দ্বারা নির্ধারিত হয় এবং কেবলমাত্র সামনের দিকে চলে।

সার্চ: প্রতিটি প্যারামিটার যা গুরুত্বপূর্ণ

সব প্যারামিটার ঐচ্ছিক। একটি খালি কল ইনডেক্সের সবচেয়ে নতুন নিবন্ধগুলি ফেরত দেয়।

কুয়েরি

একটি চ্যাটবটের মতো নয়, একটি সার্চ ইঞ্জিনের মতো কুয়েরি করুন: এটি এককতম সবচেয়ে সাধারণ ভুল। সার্চটি সব টার্মের বিরুদ্ধে AND, তাই একটি বাক্য না লিখে ২-৫টি কিওয়ার্ড লিখুন। opec production cut কাজ করে। what did OPEC decide about oil কিছুই ফেরত দেয় না।

ফিল্টার

ফিল্টার প্যারামিটারগুলির মধ্যে AND এবং একটির মধ্যে OR এর সাথে যুক্ত হয়। তাই country=DE,AT&lang=de পড়ে "জার্মান ভাষার নিবন্ধ জার্মানি বা অস্ট্রিয়া থেকে"। প্রতিটি পঞ্চাশটি মানের একটি কমমা-সেপারেটেড তালিকা গ্রহণ করে।

ফিল্টারফরম্যাটনোট
countryISO 3166-1 alpha-2, বড় হাতের অক্ষরেপ্রকাশকের দেশ। উদ্ভূত, ঘোষিত নয় — country_source এবং strict_country দেখুন।
langISO 639-1, ছোট হাতের অক্ষরেডকুমেন্ট থেকে শনাক্তকৃত। ৯৯.৯% কভারেজ।
tldডট ছাড়াপ্রকাশকের ডোমেইন জোন। tld=ua একটি সত্য; country=UA একটি অনুমান।
hostনির্ভুল হোস্টনেমযেভাবে URL-এ দেখা যায় — প্রকাশক যদি www. ব্যবহার করেন তবে সেটি অন্তর্ভুক্ত করুন।
dateআজ · গতকাল · ২৪ ঘণ্টা · ৪৮ ঘণ্টা · ৭ দিন · ৩০ দিননির্দিষ্ট সময়কাল, যা published_at-এর ওপর ভিত্তি করে মূল্যায়ন করা হয়।
from / toISO তারিখসেই স্পষ্ট সময়সীমা যখন প্রিসেটগুলো ফিট করে না।
strict_countrytrue/falseশুধুমাত্র সেইসব আর্টিকেল গণনা করুন যাদের দেশ একটি কঠিন তথ্য, অনুমান নয়।

আউটপুট নিয়ন্ত্রণ

প্যারামিটারমানপ্রভাব
sortdate · date_asc · crawled · crawled_asc · relevanceনতুন আর্টিকেল পোল করার সময় crawled দিয়ে সর্ট করুন — প্রকাশকরা প্রকাশের সময় পিছিয়ে রাখে; ক্রল করার সময় শুধু সামনের দিকেই এগোয়।
size1–100প্রতি পৃষ্ঠায় ফলাফলের সংখ্যা।
offset০–৯৯০০পেজিং অফসেট।
full_texttrue/falseআর্টিকেলের মূল অংশ অন্তর্ভুক্ত করুন। ডিফল্টভাবে এটি বন্ধ থাকে।
highlighttrue/falseমিলে যাওয়া অংশগুলো ফেরত দিন।
fieldsCSVআপনি যা ব্যবহার করেন, সেই ফিল্ডগুলোর জন্য রেসপন্সটি সীমিত করুন।
curl "https://freenewsapi.ai/v1/search?country=UA&lang=uk&date=today&sort=date&size=10"
curl "https://freenewsapi.ai/v1/search?q=merger&country=DE&date=48h&sort=date&size=20"

সার্চ করার আগেই গণনা

সার্ভিসে সবচেয়ে কম ব্যবহৃত এন্ডপয়েন্ট হলো /v1/stats। প্রায়শই প্রাসঙ্গিক প্রশ্নটি হয় "আর্টিকেলগুলো কী" নয়, বরং "এখানে কিছু আছে কি না, আর সেগুলো কোথায়"। ফলাফলের একটি পৃষ্ঠার জন্য কয়েক হাজার টোকেনের তুলনায় মাত্র দুইশো টোকেন খরচ করে এই গণনা করা হয়, যা এমন একটি এজেন্টের জন্য সার্চ চালানো কি না তা সিদ্ধান্ত নেওয়ার সময় সঠিক প্রথম কল হিসেবে বিবেচিত হয়।

curl "https://freenewsapi.ai/v1/stats?q=earthquake&date=7d"

এটি দেশ, ভাষা, TLD, প্রকাশক এবং দিনভেদে গণনা ফেরত দেয়, যা বর্তমান পেজের চেয়ে পুরো মিলে যাওয়া সেটের ওপর ভিত্তি করে গণনা করা হয়। এটিই হলো আপনি যখন এটির ওপর ভরসা করবেন, তখন কভারেজ পরিমাপের পদ্ধতি। লেখার সময়ের কোনো ফিল্টার ছাড়াই নেওয়া স্ন্যাপশট:

শীর্ষ দেশসমূহ

দেশপ্রবন্ধ
ভারত2,286,014
মার্কিন যুক্তরাষ্ট্র2,180,797
তুরস্ক1,499,897
রাশিয়া1,436,556
ইতালি1,057,479
আর্জেন্টিনা826,947
স্পেন812,347
ইউক্রেন662,041
ব্রাজিল551,013
জার্মানি543,132
ফ্রান্স502,846
গ্রিস460,372
জাপান437,209
ভিয়েতনাম408,934
মেক্সিকো402,320
দক্ষিণ কোরিয়া362,945
রোমানিয়া354,229
যুক্তরাজ্য334,379
ইরান291,782
পোল্যান্ড255,599

প্রধান ভাষা

ইংরেজি ৫,৫১৩,৬৫০ · স্প্যানিশ ২,৬৯৯,৪৫৭ · রাশিয়ান ১,৭৮৫,৭৯৬ · তুর্কি ১,৫০১,০০৪ · ইতালীয় ৯৯২,২০০ · জার্মান ৭৩৩,৬৭৭ · ফরাসি ৬৮৯,১৩৬ · আরবি ৬৬৪,০১৬ · পর্তুগিজ ৬৩৭,৬০৭ · হিন্দি ৫৬০,৮৪০ · গ্রিক ৪৬৬,৫০৪ · জাপানি ৪২৭,০৮৫ · ভিয়েতনামী ৩৮৫,৭১৯ · রোমানীয় ৩৫৮,৭৬৬ · চীনা ৩৫২,৭২০ · ইউক্রেনীয় ৩৪৫,৮০৯ · কোরিয়ান ৩৩৫,০৭৯ · পারস্য ২৬৮,১২৬ · পোলিশ ২৩৮,৯০৪ · বুলগেরিয়ান ১৮৩,২০৪।

এই বণ্টনটি একটুক্ষণ ধরে পর্যবেক্ষণ করার মতো, কারণ এটি বেশিরভাগ খবর API-এর দেওয়া তথ্যের ঠিক বিপরীত। সাধারণত ইংরেজি-প্রধান, মার্কিন যুক্তরাষ্ট্র-প্রধান কোরাস এই ক্ষেত্রে প্রযোজ্য নয়: ভারত যুক্তরাষ্ট্রকে ছাড়িয়ে আছে, তুর্কি জার্মানকে ছাড়িয়ে আছে, এবং গ্রিক, ভিয়েতনামী, পারস্য ও বুলগেরিয়ান ভাষার প্রতিটিতেই লক্ষাধিক প্রতিনিধিত্ব রয়েছে। যদি আপনার প্রশ্নটি কোনো অ-ইংরেজি সংবাদপত্র সম্পর্কে হয়, তবে এটি একটি সম্পূর্ণ ভিন্ন ডেটাসেট।

পরিমাণ

by_day-এর দৈনিক বক্ররেখা পুরো নব্বই দিনের সময়সীমা জুড়ে বিস্তৃত। সাম্প্রতিক দিনগুলোতে দৈনিক ৪০০,০০০ থেকে ৭০০,০০০টি আর্টিকেলের পরিসীমা রয়েছে; আর এই সময়সীমার শুরুতে, যখন আর্কাইভ ইনজেস্টের পাশাপাশি RSS লেয়ার যুক্ত করা হয়েছিল, তখন দৈনিক পরিমাণ ছিল ১৩০,০০০–২৩০,০০০। উভয় সংখ্যা একই রেসপন্সে দৃশ্যমান, যাই মূল বিষয় — সার্ভিসটি কোনো মার্কেটিং গড় উল্লেখ না করে নিজের প্রসারণ প্রক্রিয়াটি আপনাকে দেখায়।

প্রবণতা: বর্তমানে সংবাদপত্রগুলো আসলে কী কী বিষয় কভার করছে

সার্চ উত্তর দেয় "X সম্পর্কে কী লেখা হয়েছে"। প্রবণতা একটি ভিন্ন এবং প্রায়শই উত্তম প্রশ্নের উত্তর দেয়: "কী ঘটছে" — কোনো X-এর প্রয়োজন নেই।

একটি রোবট প্রতিটি দেশের জন্য আর্টিকেলগুলোকে গল্পে ক্লাস্টার করে এবং সেগুলোকে আপডেটেড রাখে। প্রতি পাঁচ মিনিটে নতুন আর্টিকেলগুলো তাদের শনাক্তকারী শব্দের মাধ্যমে পরিচিত গল্পগুলোর সাথে যুক্ত হয়, সম্পূর্ণভাবে কোনো মডেল কল ছাড়াই; প্রতি কয়েক ঘণ্টায় একটি দেশ সম্পূর্ণভাবে একটি পাস থেকে যায় যেখানে একটি ভাষা মডেল শিরোনাম পড়ে এবং গল্পগুলিকে নতুন করে নামকরণ করে। লেখার সময় ট্রেন্ড লেয়ার ১১৫টি দেশ কভার করে, প্রতিটি সাম্প্রতিক কয়েক মিনিটের মধ্যে পুনরায় গণনা করা হয়েছে।

curl "https://freenewsapi.ai/v1/trends?country=US&window=24h&size=5"
{
  "window": "24h",
  "filters": { "country": ["US"], "min_publishers": 1 },
  "trends": [
    {
      "title": "Hurricane Marie threatens Labor Day weather",
      "slug": "hurricane-marie-threatens-labor-day-weather",
      "country": "US",
      "category": "weather",
      "articles": 57,
      "publishers": 24,
      "first_seen": "2026-09-05T19:24:36Z",
      "latest": "2026-09-06T19:00:04Z",
      "url": "https://freenewsapi.ai/trends/us/hurricane-marie-…",
      "headlines": [ … ]
    }
  ]
}

প্রতিটি গল্পের সাথে দুটি গণনা থাকে এবং সেগুলোর অর্থ ভিন্ন। articles হলো তীব্রতা; publishers হলো বিস্তৃতি। ৪টি মিডিয়ার ২০০টি আর্টিকেলের একটি গল্প হলো একটি সংবাদপত্রের একচেটিয়া বিষয়। ৪০টি মিডিয়ার ৬০টি আর্টিকেলের একটি গল্প হলো একটি ঘটনা। ডিফল্ট সর্ট publishers অনুযায়ী করা হয়, এবং min_publishers / min_articles আপনাকে নিজের মান নির্ধারণ করতে দেয়।

প্রতিটি স্টোরি একটি নির্দিষ্ট সেট থেকে একটি বিভাগ বহন করে: politics, business, markets, tech, sport, health, science, culture, crime, conflict, weather, society।

উইন্ডোটি পাঠকের পছন্দ, রোবটের নয়

এটি একটি সত্যিকারের মার্জিত ডিজাইন সিদ্ধান্ত। প্রতিটি আর্টিকেল তার প্রকাশের সময়ের সাথে সংরক্ষণ করা হয় এবং এর স্টোরির সাথে যুক্ত থাকে, তাই যেকোনো উইন্ডো — পনেরো মিনিট, এক ঘণ্টা, এক দিন, একটি নির্দিষ্ট ক্যালেন্ডার তারিখ — একই সংরক্ষিত ডেটার ওপর একটি রেঞ্জ কুয়েরি মাত্র। একক গণনা একসাথে প্রতিটি উইন্ডোর জন্য কাজ করে। window=15m, window=1h, window=24h, date=2026-09-01, বা একটি স্পষ্ট since/until জোড়া — সবকিছু একই ইনডেক্সের ওপর কোনো পুনর্গণনা ছাড়াই কাজ করে।

কীওয়ার্ড: খবর যা গড়ে ওঠে সেই শব্দগুলো

curl "https://freenewsapi.ai/v1/trends/keywords?country=US&size=8"

প্রতিটি কীওয়ার্ড ফেরত আসে কতগুলো ভিন্ন স্টোরি এটি বহন করছে, ওই স্টোরিগুলোতে কতগুলো আর্টিকেল রয়েছে, এবং — যা সবচেয়ে আকর্ষণীয় — কতগুলো জাতীয় পত্রিকা এটি ব্যবহার করছে তার তথ্যসহ। শেষ সংখ্যাটি একটি বৈশ্বিক ঘটনা এবং একটি স্থানীয় ঘটনার মধ্যে পার্থক্য তৈরি করে। সত্তরটি দেশ জুড়ে প্রকাশিত একটি শব্দ হলো বিশ্বখবর; একটি দেশের পত্রিকায় প্রভাব বিস্তারকারী একটি শব্দ হলো স্থানীয় খবর, সেখানে যতই শোরগোল থাকুক না কেন।

কোন দেশগুলো লাইভ

curl "https://freenewsapi.ai/v1/trends/countries"

এটি ট্র্যাক করা প্রতিটি দেশের নাম ফেরত দেয়, তার লাইভ স্টোরির সংখ্যা এবং এটি কত মিনিট আগে পুনরায় গণনা করা হয়েছিল — তুরস্ক, রাশিয়া, ইরান, গ্রিস, ভারত, ইতালি, ইউক্রেন, রোমানিয়া, আর্জেন্টিনা, জার্মানি এবং ব্রাজিল — সবকটি দেশে বর্তমানে হাজার হাজার লাইভ স্টোরি রয়েছে, যা সর্বশেষ দশ মিনিটের মধ্যে পুনর্গণনা করা হয়েছে। এবং /v1/trends/{cc}/{slug} যেকোনো একটি স্টোরি খুলে দেয় তার সম্পূর্ণ আর্টিকেল তালিকাসহ।

বাজার বনাম কভারেজ: এক অক্ষরে দাম, অন্য অক্ষরে মনোযোগ

এটি সার্ভিসের সবচেয়ে অস্বাভাবিক অংশ, এবং এটি বিদ্যমান কারণ কর্পাসটি এটি তৈরি করা প্রায় বিনামূল্যে করে তোলে। একটি প্রাইস সিরিজ পাশাপাশি রাখুন যে বিষয়ে বিশ্ব একই সময়ে কতটা লিখেছিল, একটি একক টাইমলাইনে।

curl "https://freenewsapi.ai/v1/markets"

চারটি ইনস্ট্রুমেন্ট ট্র্যাক করা হয়, চারটি অ্যাসেট ক্লাস জুড়ে:

ক্লাসইনস্ট্রুমেন্টগ্রেইনসোর্স
ক্রিপ্টোবিটকয়েন, ইথেরিয়াম, সলানা, এক্সআরপি, বিএনবি, ডগেকয়েনঘণ্টাবাইনান্স
ধাতবস্বর্ণ (USD/oz)ঘণ্টাবাইনান্স
এফএক্সEUR/USD, USD/JPY, USD/TRY, USD/INR, USD/BRL, USD/PLNদিনইসিবি
শক্তিজার্মান বিদ্যুৎ মূল্য (EUR/MWh)ঘণ্টাএনার্জি-চার্টস
curl "https://freenewsapi.ai/v1/markets/usd-try?window=30d"

একটিমাত্র কল আপনাকে ডলারের বিপরীতে লিরার তথ্য এবং একই সময়কালের জন্য তুরস্কের সংবাদপত্রের কভারেজের পরিমাণ প্রদান করে, যা ঘণ্টাভিত্তিকভাবে সাজানো। তুরস্কের সংবাদপত্র এই কর্পাসের তৃতীয় বৃহত্তম অংশ, ঠিক একই কারণে এই জোড়াটি কোনো নয়েজের চেয়ে কিছু অর্থপূর্ণ তথ্য প্রদান করে।

এবং একটি সম্পূর্ণ বিটকয়েন সেন্টিমেন্ট ব্লক

বাইটকয়েন তার নিজস্ব সাত-এন্ডপয়েন্ট পরিবার পেয়েছে, কারণ এটি একমাত্র এমন যন্ত্র যেখানে খবরের ধরন এবং মূল্যের পরিবর্তন নিয়ে ক্রমাগত বিতর্ক হয় কিন্তু বিরলভাবে পরিমাপ করা হয়:

এন্ডপয়েন্টরিটার্ন
/v1/btc/summaryসর্বশেষ মূল্য, সাম্প্রতিক পরিবর্তন এবং আজকের কভারেজের ধরন।
/v1/btc/priceইন্টারভ্যাল অনুযায়ী BTC/USDT ক্যান্ডলস।
/v1/btc/sentimentপ্রতিটি সময়কালের জন্য খবরের ধরন।
/v1/btc/seriesএকটি টাইমলাইনে মূল্য এবং ধরন একত্রিত।
/v1/btc/correlationসময় শিফট অনুযায়ী ধরন এবং মূল্যের পরিবর্তনের মধ্যে পারস্পরিক সম্পর্ক — কভারেজ কি মূল্যের আগে আসে, নাকি পরে?
/v1/btc/newsক্রিপ্টো আর্টিকেল তাদের সেন্টিমেন্ট লেবেল সহ, লেবেল, হোস্ট, ভাষা এবং কুয়েরি দ্বারা ফিল্টারযোগ্য।
/v1/btc/sourcesকোন মিডিয়া আউটলেট ক্রিপ্টো সংক্রান্ত খবর প্রকাশ করে এবং সেগুলো কীভাবে ভিন্ন দৃষ্টিভঙ্গি বজায় রাখে।

সেন্টিমেন্ট লেবেলগুলো এমন একটি ভাষা মডেল থেকে আসে যা প্রতি পাঁচ মিনিটে নতুন ক্রিপ্টো আর্টিকেল এবং একটি ক্যালিব্রেটেড কয়েন তালিকার ওপর চালিত হয়। /v1/btc/correlation এন্ডপয়েন্টটি ব্যবহার করুন max_shift প্যারামিটার সহ যদি আপনি কখনো "খবরই বাজারের নড়াচড়ার কারণ"—এই দাবিটি পুনরাবৃত্তি না করে পরীক্ষা করতে চান।

একই অনুসন্ধান, একটি ফিড হিসেবে

তিনটি অতিরিক্ত এন্ডপয়েন্ট একই অনুসন্ধান প্যারামিটার গ্রহণ করে এবং ফলাফলগুলো JSON-এর পরিবর্তে সিন্ডিকেশন ফরম্যাটে প্রদান করে:

https://freenewsapi.ai/v1/rss?q=semiconductor+export+controls&lang=en&date=7d&sort=date

এর মানে হলো, যেকোনো সংরক্ষিত অনুসন্ধান একটি ফিডে পরিণত হয় যা আপনি কোনো রিডার, n8n নোড, স্ল্যাক ইন্টিগ্রেশন, জ্যাপিয়ার ট্রিগার বা স্ট্যাটিক সাইট জেনারেটরে পেস্ট করতে পারেন — কোনো কোড বা API কী ছাড়াই। এটি একটি ছোট বৈশিষ্ট্য যা প্রোগ্রামার নয় এমন ব্যবহারকারীদের জন্য একটি পুরো ইন্টিগ্রেশন লেয়ার নিঃশব্দে সরিয়ে দেয়।

MCP: আঠারোটি টুল, দুটি স্তর

MCP সার্ভারটি একটি URL-এ অবস্থিত, স্ট্রিমযোগ্য HTTP (JSON-RPC 2.0, POST এর মাধ্যমে, প্রোটোকল সংস্করণ 2025-06-18) ব্যবহার করে, ব্যাচিং সাপোর্ট করে এবং — এখানে অন্য সবকিছুর মতো — এতে কোনো অথোরাইজেশন স্টেপ বা সেশন আইডি নেই।

claude mcp add --transport http freenewsapi https://freenewsapi.ai/mcp

এটি দুটি সচেতন স্তরে ২৮টি টুল প্রকাশ করে।

প্রথম স্তর: ছয়টি শর্টকাট যা একটি কলেই একটি সম্পূর্ণ প্রশ্নের উত্তর দেয়

টুলযার জন্য
search_news"X সম্পর্কে কী লেখা হয়েছে" — ফুল-টেক্সট সার্চ, ফলাফল সংক্ষিপ্ত করা হয়েছে।
get_trends"কী ঘটছে" — নিবন্ধের তালিকা নয়, বরং গোষ্ঠীবদ্ধ গল্প।
trend_keywordsবর্তমানে খবর গড়ে ওঠা শব্দগুলি, গল্পের সংখ্যা এবং দেশভিত্তিক বিস্তার সহ।
find_publishersপ্রকাশনা প্রতিষ্ঠান খুঁজুন: নাম, ডোমেইন, দেশ, ভাষা, প্রতিদিনের নিবন্ধ সংখ্যা।
list_countriesকোন দেশগুলিতে সরাসরি গল্প রয়েছে, কতটি এবং কতটা সাম্প্রতিক।
market_vs_newsকভারেজের পরিমাণের পাশাপাশি মূল্যের সিরিজ। কী কী বিদ্যমান তা দেখতে কোনো ইনস্ট্রুমেন্ট ছাড়াই কল করুন।

স্তর দুই: প্রতিটি এন্ডপয়েন্ট, যা সার্ভিস থেকেই তৈরি হয়েছে

শর্টকাটগুলির নিচে, প্রতিটি কাঁচা এন্ডপয়েন্টকে API-এর প্রতিটি প্যারামিটার গ্রহণকারী একটি আলাদা টুল হিসেবে প্রকাশ করা হয়েছে — news_get_search, news_get_stats, news_get_article, news_get_trends, news_get_trends_keywords, news_get_markets_slug, সম্পূর্ণ news_get_btc_* পরিবার, ফিড রেন্ডারার এবং news_get_health। এগুলি লাইভ সার্ভিস থেকে তৈরি হয়েছে, তাই এগুলি API-এর সাথে যা মিলে যায় তার থেকে বিচ্যুত হতে পারে না।

দুটি মেটা-টুল লুপ সম্পন্ন করে: news_list_endpoints বিদ্যমান সবকিছুর ক্যাটালগ ফেরত দেয়, এবং news_get যেকোনো পথে একটি কাঁচা GET পরিচালনা করে — তাই একটি এজেন্ট যদি এমন একটি এন্ডপয়েন্টের মুখোমুখি হয় যা তার টুল তালিকায় নেই, তবুও সেটিতে পৌঁছাতে পারে।

curl "https://freenewsapi.ai/mcp?format=json"

একটি GET, কোনো হ্যানশেক নেই, এবং আপনার কাছে পুরো মেশিন-পাঠযোগ্য ক্যাটালগ রয়েছে: সার্ভার, ট্রান্সপোর্ট, প্রোটোকল, টুল সংখ্যা, প্রতিটি টুলের বর্ণনা সহ এবং প্রতিটি এন্ডপয়েন্টের প্যারামিটার তালিকা।

যন্ত্রগুলির জন্য পড়ার উপযোগীভাবে তৈরি

ডকুমেন্টেশন API-এর সাথে লাগানো কোনো পরবর্তী চিন্তা নয় — এটি এর একটি প্রথম-শ্রেণির আউটপুট। সাইট ৬৬৫টি স্ট্যাটিক পেজ সরবরাহ করে, এবং তাদের মধ্যে কয়েকটি বিশেষভাবে এমনভাবে তৈরি যাতে একটি মডেলকে কখনও HTML পড়তে না হয়:

প্লাস ১৬৮টি দেশের পৃষ্ঠা, ১২১টি ভাষার পৃষ্ঠা এবং ২৭৫টি TLD পৃষ্ঠা — কর্পাসের প্রতিটি অংশের জন্য একটি ব্রাউজযোগ্য পৃষ্ঠা, যেখানে দেখানো হয়েছে সেখানে আসলে কী আছে।

আর্টিকেলগুলো কোথা থেকে আসে

দুটি ইনজেস্ট প্যাথ একই ইনডেক্সে ডেটা সরবরাহ করে, এবং তাদের মধ্যে পার্থক্যটি গুরুত্বপূর্ণ।

আর্কাইভ প্যাথ

প্রতি দশ মিনিট পর একটি জব কমন ক্রল-এর CC-NEWS আর্কাইভে নতুন WARC ফাইলগুলোর জন্য চেক করে এবং যা আগে দেখেনি, তা প্রসেস করে, চল্লিশটি প্যারালাল ওয়ার্কার ব্যবহার করে। এক্সট্রাক্টর প্রতিটি আর্টিকেলকে রো ক্রল থেকে বের করে প্রতিটি ফিল্ডের জন্য একটি দলিলযুক্ত ক্যাসকেড ব্যবহার করে — এবং ক্যাসকেডগুলো অনুমানের চেয়ে বাস্তব ডেটার সাথে পরিমাপ করা হয়েছিল:

ফিল্ডক্যাসকেডকভারেজ
বিবরণJSON-LD → মেটা → ওপেনগ্রাফ → টুইটার কার্ড → articleBody → লিড প্যারাগ্রাফ98.1%
ভাষা<html lang> → JSON-LD inLanguage → og:locale99.9%
দেশccTLD → JSON-LD addressCountry → ভাষা-অঞ্চল → og:locale79.1%
তারিখJSON-LD datePublished → মেটা → ট্রাফিলাতুরা → ক্রল সময়100%

সেই দেশ-সংক্রান্ত তথ্যটিই হলো সত্যনিষ্ঠ অংশ, এবং তাই প্রতিটি আর্টিকেলে country_source উন্মুক্ত রাখা হয়েছে: প্রায় একপঞ্চমাংশ রেকর্ডে কোনো নির্ভরযোগ্য দেশের সংকেত নেই, আর যেসব মান বিদ্যমান, তার প্রায় একতৃতীয়াংশ হলো অনুমান, তথ্য নয়। API আপনাকে বলে দেবে কোনটি কী — মিথ্যাচার না করে।

লাইভ প্যাথ

একটি দ্বিতীয় রোবট প্রতি পাঁচ মিনিটে প্রকাশক RSS-এর ফিডগুলি পোল করে, শর্তসাপেক্ষ অনুরোধের সাথে একটি ঘূর্ণায়মান পদ্ধতিতে — 304 Not Modified প্রত্যুত্তর দেওয়া ফিডের খরচ প্রায় নগণ্য, আর প্রতিটি ফিডের পোলিং ইন্টারভ্যাল নির্ভর করে এটি কতটা নিয়মিত প্রকাশ করে তার ওপর। দিনে পাঁটি গল্প প্রকাশকারী কোনো পত্রিকাকে প্রতি পনেরো মিনিটেই চাপ দেওয়া হয় না।

এটি কেবলমাত্র প্রকাশক যা ফিডে দিয়েছে — শিরোনাম, ভূমিকা এবং পুরো পাঠ — সেটাই গ্রহণ করে। এটি প্রকাশকের ওয়েবসাইটে গিয়ে আরও তথ্য আনার চেষ্টা করে না। এটি একটি ইচ্ছাকৃত সীমানা, আর এই কারণেই সার্ভিসটি তার প্রকাশক-সম্মুখীন আইনি পৃষ্ঠায় যে প্রতিশ্রুতি দেয়, তা পালন করতে পারে।

এবং তাদের চারপাশের যন্ত্রপাতি

ওই দুটি ইনজেস্ট প্যাথের চারপাশে আরও একদল রোবট বিভিন্ন সময়সূচিতে কাজ করে: উৎস আবিষ্কার এবং সিঙ্ক, ডোমেইন-ভিত্তিক দেশ নির্ধারণ, ট্রেন্ড তৈরি এবং নিরীক্ষা, কীওয়ার্ড ব্যাকফিল, ক্রিপ্টো সেন্টিমেন্ট, মার্কেট পুল, একটি ট্যাক্সোনমি ক্যাটালগ, রেটেনশন (নব্বই দিনের উইন্ডো published_at-এর ওপর একটি রাতের কুয়েরির মাধ্যমে জোর করা হয়, ইনডেক্সের বয়সের মাধ্যমে নয়), দিন যাচাই, খালি আর্টিকেল পুনরায় চেক এবং একটি হেলথ গার্ড যা থেমে যাওয়া যেকোনো কিছু রিস্টার্ট করে। কর্পাস একটি নিবেদিত Elasticsearch ক্লাস্টারে থাকে।

এই ডেটাসেটটিতে যা ভুল আছে

সার্ভিসটি তার নিজস্ব সীমাবদ্ধতাগুলো প্রকাশ করে, যা এটি আপনার সমস্যার জন্য উপযুক্ত কিনা তা বিচার করার সবচেয়ে দ্রুত উপায়।

সঠিকভাবে ব্যবহার: খরচ, পেজিং এবং ত্রুটি

টোকেন শৃঙ্খলা

একটি এজেন্টের জন্য প্রতিক্রিয়ার আকারই হলো প্রকৃত খরচ। এর দলিলভুক্ত গঠন:

কলআনুমানিক টোকেন খরচযখন
/v1/stats~২০০প্রথমে, সিদ্ধান্ত নিন যে খোঁজ নেওয়াটা কি সত্যিই মূল্যবান।
/v1/search শুধুমাত্র মেটাডেটাপ্রতি পৃষ্ঠায় কয়েক হাজার করেস্ক্যান করুন এবং নির্বাচন করুন।
/v1/search?full_text=trueপ্রতি আর্টিকেলের জন্য ~৯০০শুধুমাত্র সেই কয়েকটির জন্য আপনি যা বাস্তবে বেছে নিয়েছেন।

full_text=true সহ বিশটি আর্টিকেল প্রায় ৪০,০০০ টোকেন। সুপারিশকৃত প্যাটার্নটি সবসময় একই: গণনা করুন, স্ক্যান করুন, তারপর প্রয়োজনীয় কয়েকটির জন্য বডি ফেচ করুন।

ছাদের ওপারে পেজিং

offset ৯,৯০০-এ থেমে যায়। একটি বড় সেট হাঁটতে হলে ছাদের সাথে লড়াই করবেন না — বরং সময় অনুযায়ী স্লাইস করুন। from/to এবং sort=date ব্যবহার করে দিনে দিনে বা একটি ব্যস্ত কুয়েরির ক্ষেত্রে ঘণ্টায় ঘণ্টায় লুপ করুন। ডকুমেন্টেশনে একটি পুরো দিন হাঁটার জন্য একটি নির্দিষ্ট পৃষ্ঠা রয়েছে।

ত্রুটি

চুক্তিটি সরল এবং কোডিংয়ের জন্য সহজ: 4xx মানে অনুরোধ ভুল — এটি ঠিক করুন, রিট্রাই করবেন না। 5xx মানে সার্ভিস ডাউন — ব্যাক অফ করুন। 429 মানে ধীর করুন এবং রিট্রাই করুন। অজানা কুয়েরি প্যারামিটারগুলো উপেক্ষিত হয়, তাই একটি ফিল্ড যোগ করলে বিদ্যমান কলারের ক্ষতি হওয়ার কথা নয়।

নিজেকে চিহ্নিত করুন (ঐচ্ছিক, এবং সত্যিকার অর্থে ঐচ্ছিক)

কোনো কী না থাকলে কলারকে খুঁজে পাওয়ার কোনো উপায় নেই। পরামর্শ দেওয়া শিষ্টাচার হলো একটি হেডার দিয়ে আপনার এজেন্ট, ফ্রেমওয়ার্ক যা এটি চালনা করে এবং মডেল যা এটি চালিত করে তার নাম উল্লেখ করা:

X-Agent: agent_name=<agent>; software=<langchain|llamaindex|n8n|claude-desktop|cursor|openai-assistants|crewai|custom>; model=<model>; version=<v>; purpose=<rag|monitoring|research|digest>; contact=<url or mailto>
User-Agent: <agent>/<version> (+<contact url>)

একই মানগুলো সাধারণ কুয়েরি প্যারামিটার হিসেবে কাজ করে, যা সাধারণত সহজ:

https://freenewsapi.ai/v1/search?q=climate&agent_name=newsbot&software=langchain&model=gpt-4o

অজানা কীগুলো উপেক্ষিত হয়, তাই অতিরিক্ত কী পাঠানো সবসময় নিরাপদ। কিছু যাচাই করা হয় না, এটি বাদ দেওয়ার জন্য কোনো থ্রটলিং করা হয় না, এবং একমাত্র নির্দেশনা কঠোর: এই ফিল্ডগুলোতে এন্ড-ইউজারের ব্যক্তিগত ডেটা রাখবেন না।

পেইড নিউজ API-এর বিরুদ্ধে

সাইটের তুলনামূলক পৃষ্ঠাগুলো একাদশ প্রতিযোগীকে আলাদাভাবে কভার করে। যে কাঠামোগত পার্থক্যগুলো তাদের সবকটির মধ্যে টিকে থাকে:

অন্যান্য স্থানে ফ্রি টায়ার

১০০ অনুরোধ/দিন, ২৪ ঘণ্টার বিলম্ব

ফ্রি নিউজ-API টায়ারের প্রমিত আকার: একটি টোকেন বাস্কেট, যা ডেমোর জন্য যথেষ্ট ছোট, এবং নতুন আর্টিকেলগুলো প্রদানকারী গ্রাহকদের জন্য অপেক্ষমাণ থাকে।

  • কী প্রয়োজন
  • দৈনিক সীমা
  • বিলম্বিত আর্টিকেল
  • শুধুমাত্র অ-বাণিজ্যিক
Free News API

কোনো সীমা নেই, কোনো বিলম্ব নেই, কোনো কী নেই

প্রতি আইপি-তে প্রতি সেকেন্ডে ২০ অনুরোধ হলো একমাত্র সীমা। সর্বশেষ আর্টিকেলটি সাধারণত দুই মিনিটেরও কম পুরনো হয়, এবং বাণিজ্যিক ব্যবহার অনুমোদিত।

  • কোনো কী নেই, কোনো সাইনআপ নেই
  • কোনো দৈনিক বা মাসিক সীমা নেই
  • অবিচ্ছিন্ন রিফ্রেশ
  • বাণিজ্যিক ব্যবহার অনুমোদিত
অন্যান্য স্থানে কভারেজ

ইংরেজি-প্রধান, মার্কিন-প্রধান

বেশিরভাগ কর্পাস ইংরেজি ভাষার প্রকাশক তালিকা থেকে তৈরি হয় এবং বাকি বিশ্বকে তার সাথে যুক্ত করা হয়।

  • ইংরেজি প্রভাবশালী
  • অ-ল্যাটিন ভাষার কভারেজ সীমিত
কভারেজ এখানে

ভারত > মার্কিন যুক্তরাষ্ট্র, তুর্কি > জার্মান

গ্রিক, ভিয়েতনামিজ, পারসিক, ইউক্রেনীয় এবং বুলগেরিয়ান ভাষায় ছয় সংখ্যক ভলিউম সহ প্রায় ১০০টি ভাষা।

  • ১০০টি দেশ
  • ~১০০টি ভাষা
  • ১১,৬৬৮টি তালিকাভুক্ত উৎস

যে সুবিধাগুলো এই ফ্রি সার্ভিসটি এখনও দেয় না যা পেমেন্ট-ভিত্তিক সার্ভিসগুলো দেয়: সেন্টিমেন্ট স্কোর এবং এনটিটি এক্সট্রাকশন স্ট্যান্ডার্ড ফিল্ড হিসেবে, বছরের পর বছরের পুরনো আর্কাইভ, এবং এসএলএ-সহ একটি চুক্তি। সেগুলো বাস্তব সুবিধা, এবং যদি আপনার সেগুলো প্রয়োজন হয় তবে সেগুলো কিনুন।

রেসিপি

একটি লাইভ কান্ট্রি মনিটর

curl "https://freenewsapi.ai/v1/search?country=UA&lang=uk&date=today&sort=crawled&size=50"

এই খবরটি কি বৈশ্বিক নাকি স্থানীয়?

curl "https://freenewsapi.ai/v1/trends/keywords?size=30"
# read `countries` on each keyword: 1 country = domestic, 70 = world event

আজকের কভারেজ দিয়ে মডেলকে সাশ্রয়ী মূল্যে গ্রাউন্ড করুন

# 1. count first
curl "https://freenewsapi.ai/v1/stats?q=semiconductor+export+controls&date=7d"
# 2. scan metadata
curl "https://freenewsapi.ai/v1/search?q=semiconductor+export+controls&date=7d&lang=en&size=20&sort=relevance"
# 3. fetch bodies for the three you picked
curl "https://freenewsapi.ai/v1/article?url=<exact-url>&full_text=true"

কভারেজ কি দামের চেয়ে বেশি গুরুত্বপূর্ণ?

curl "https://freenewsapi.ai/v1/btc/correlation?interval=hour&max_shift=12"

একটি সেভ করা সার্চকে ফিডে রূপান্তর করুন

https://freenewsapi.ai/v1/rss?q=central+bank+rate&lang=en&date=24h&sort=date&size=50

বাজারে যেসব আউটলেট গুরুত্বপূর্ণ, সেগুলো খুঁজে বের করুন

curl "https://freenewsapi.ai/v1/stats?country=BR&date=30d&top=50"
# the `hosts` block is a ranked publisher list for that slice

সংক্ষিপ্ত সংস্করণ

Free News API হলো ১০০টি দেশ এবং প্রায় ১০০টি ভাষার ২৫,০০০-এরও বেশি প্রকাশকের ২.১৫ কোটি নিউজ আর্টিকেলের ওপর সম্পূর্ণ টেক্সট সার্চ, যা চলমান নব্বই দিনের সময়সীমার মধ্যে কাজ করে, ক্রমাগত আপডেট হয়, কোনো কী (key) ছাড়া, কোনো সাইনআপ ছাড়া এবং প্রতি আইপি-র হার লিমিট ছাড়া অন্য কোনো কোটা ছাড়াই। সার্চের উপরে ১১৫টি দেশ জুড়ে লাইভ স্টোরি ক্লাস্টারিং, বিশ্ব ও দেশজ ঘটনা আলাদা করা কীওয়ার্ড বিশ্লেষণ, কভারেজ ভলিউমের বিপরীতে চারটি মার্কেট ইনস্ট্রুমেন্ট প্লট, বিটকয়েন সেন্টিমেন্টের সপ্তম-এন্ডপয়েন্ট ব্লক, RSS/Atom/JSON সিন্ডিকেশন এবং সার্ভিসটি থেকেই তৈরি ২৮-টুল MCP সার্ভার রয়েছে।

এটি নিজের ত্রুটির হার নথিভুক্ত করে, প্রতিটি দেশের মান কীভাবে নির্ণয় করা হয়েছে তা প্রকাশ করে এবং ডেটা কোথায় ভুল হয় তার একটি পৃষ্ঠা প্রকাশ করে। এমন একটি এজেন্টের জন্য যাকে জানতে হবে পৃথিবী কী বলছে — তুর্কি, গ্রিক বা হিন্দি ভাষায়, ঠিক এই মুহূর্তে — সেই সমন্বয় যেকোনো মূল্যে খুঁজে পাওয়া কঠিন, আর এটি বিনামূল্যে।

সার্চটি সকল টার্মের জন্য AND (AND) অপারেটর ব্যবহার করে। প্রাকৃতিক ভাষার প্রশ্ন না ব্যবহার করে ২–৫টি কীওয়ার্ড ব্যবহার করুন।

Free News API, এটি কীভাবে ভালোভাবে কুয়েরি করবেন সে বিষয়ে

এখান থেকে শুরু করুন: freenewsapi.ai · freenewsapi.ai/mcp-এ MCP · সম্পূর্ণ ম্যানুয়ালটি একটি ফাইলে /llms-full.txt।