क्विकस्टार्ट
एक कुंजी प्राप्त करें, लाइन कॉपी करें, इसे चलाएं, JSON पढ़ें।
0. एक कुंई प्राप्त करें
फ्री अकाउंट बनाएं, API कुंजियां खोलें और एक बनाएं। फिर इसे एक एन्वायरनमेंट वेरिएबल में रखें:
export FNA_KEY=fna_live_...1. खोजें
curl -H "Authorization: Bearer $FNA_KEY" "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 उन आर्टिकल की संख्या है जो मिले, न कि जो लौटे — गति के लिए इसे 10,000 तक सीमित रखा गया है, और total_is_lower_bound आपको बताता है कि आपने कैप पर पहुंच गए हैं। country_source बताता है कि देश की पहचान कैसे की गई, जो मायने रखता है क्योंकि किसी भी न्यूज़ डेटासेट में देश के मानों का लगभग एक तिहाई अनुमानित है, तथ्य नहीं। और crawled_at ईमानदार टाइमस्टैम्प है: प्रकाशक published_at को बैकडेट कर सकते हैं, लेकिन क्रॉल टाइम पाइपलाइन द्वारा निर्धारित किया जाता है।
2. इसे संकीर्ण करें
फिल्टर पैरामीटर के बीच AND और एक ही पैरामीटर के भीतर OR के साथ जुड़ते हैं। इसलिए country=DE,AT&lang=de का अर्थ है "जर्मन भाषा के आर्टिकल जर्मनी या ऑस्ट्रिया से"। यह आज के यूक्रेनियन भाषा के आर्टिकल मांगता है, जो यूक्रेन से हैं, सबसे नए पहले:
curl -H "Authorization: Bearer $FNA_KEY" "https://freenewsapi.ai/v1/search?country=UA&lang=uk&date=today&sort=date&size=10"3. पूर्ण पाठ प्राप्त करें
समाधान छोटे रखने के लिए, डिफ़ॉल्ट रूप से समाधान परिणामों में लेख का पाठ छोड़ दिया जाता है। जब आपने उन लेखों को चुन लिया हो जिनकी आपको वास्तव में आवश्यकता है, तो स्पष्ट रूप से पूछें:
curl -H "Authorization: Bearer $FNA_KEY" "https://freenewsapi.ai/v1/search?q=inflation&full_text=true&size=5"प्रति आर्टिकल पूर्ण पाठ लगभग 2,000–4,000 अक्षरों का होता है। full_text=true के साथ बीस आर्टिकल एक भाषा मॉडल के लिए लगभग 40,000 टोकन होते हैं। पहले चुनें, फिर बॉडी प्राप्त करें। टोकन लागत देखें।
4. गिनती करें, सूची नहीं बनाएं
अक्सर उपयोगी प्रश्न यह नहीं होता कि "आलेख क्या हैं" बल्कि "क्या यहाँ कुछ भी है, और वह कहाँ है"। उत्तरों की गिनती लागत के एक अंश में — लगभग 200 टोकन, परिणामों के एक पृष्ठ के लिए कई हजारों के विपरीत — जो इसे यह तय करने वाले एजेंट के लिए सही पहला कॉल बनाता है कि खोज चलाना मूल्यवान है या नहीं:
curl -H "Authorization: Bearer $FNA_KEY" "https://freenewsapi.ai/v1/stats?q=earthquake&date=7d"प्रतिक्रिया आपको गणना प्रदान करती है, जो पूरे मिलान सेट पर गणना की गई है, न कि वर्तमान पृष्ठ पर।
पायथन में
import os, requests
HEADERS = {"Authorization": "Bearer " + os.environ["FNA_KEY"]}
r = requests.get("https://freenewsapi.ai/v1/search", headers=HEADERS, params={
"q": "semiconductor export controls",
"date": "7d",
"lang": "en",
"size": 20,
"sort": "relevance",
})
for a in r.json()["results"]:
print(a["published_at"], a["host"], a["title"])जैवस्क्रिप्ट में
const url = new URL("https://freenewsapi.ai/v1/search");
url.search = new URLSearchParams({ q: "central bank", date: "24h", size: "20" });
const { results } = await (await fetch(url, { headers: { Authorization: `Bearer ${FNA_KEY}` } })).json();
results.forEach(a => console.log(a.published_at, a.host, a.title));