From 1 November 2026 the API needs a free key. Calls without one work until then. Get a key · what changes
JA
EnglishУкраїнськаEspañolPortuguêsDeutschFrançaisItalianoPolskiNederlandsSvenskaDanskNorskSuomiČeštinaRomânăMagyarΕλληνικάTürkçeالعربيةעבריתفارسیहिन्दीবাংলাIndonesiaMelayuTiếng Việtไทย日本語한국어中文
サインインAPIキーを取得
ホーム › APIドキュメント › クイックスタート

クイックスタート

キーを取得し、行をコピーして実行し、JSONを読み取る。

0。APIキーの取得

無料アカウントを作成し、APIキーを開いて1つ作成してください。その後、環境変数に格納してください:

bash
export FNA_KEY=fna_live_...

1。検索

bash
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"
    }
  ]
}

そのレスポンスのうち、3つのフィールドはすぐに注目する価値があります。totalは返された記事数ではなく、一致した記事数です。速度のために10,000に制限されており、total_is_lower_boundはその制限に達したかどうかを示します。country_sourceは国の判定方法を表しており、これは重要です。なぜなら、ニュースデータセットの国の値の約3分の1は事実ではなく推測によるものだからです。そしてcrawled_atは誠実なタイムスタンプです。出版社はpublished_atを遡って設定できますが、クロール時間はパイプラインによって付与されます。

2。検索条件の絞り込み

フィルターは、パラメータ間ではANDで、1つのパラメータ内ではORで結合されます。つまりcountry=DE,AT&lang=deは「ドイツ語の記事で、ドイツまたはオーストリアから」という意味になります。これは、ウクライナ語の記事で、ウクライナから、最新順に今日のものを検索します:

bash
curl -H "Authorization: Bearer $FNA_KEY" "https://freenewsapi.ai/v1/search?country=UA&lang=uk&date=today&sort=date&size=10"

3。記事本文の取得

レスポンスを小さく保つため、記事本文はデフォルトで検索結果に含まれません。実際に必要な記事を選んだ後に、明示的にリクエストしてください。

bash
curl -H "Authorization: Bearer $FNA_KEY" "https://freenewsapi.ai/v1/search?q=inflation&full_text=true&size=5"

記事の本文は、1記事あたり約2,000~4,000文字です。full_text=trueで20記事取得すると、言語モデルでは約40,000トークンになります。まず検索して、その後本文を取得してください。トークンコストをご覧ください。

4。一覧表示ではなく件数取得

多くの場合、有用な質問は「記事は何ですか」ではなく「ここに何らかの記事が存在するか、そしてそれはどこにあるか」です。結果ページ数個に対して数千トークンかかるところを約200トークンで回答数をカウントすることで、検索を実行する価値があるかどうかを判断するエージェントにとって適切な最初の呼び出しとなります:

bash
curl -H "Authorization: Bearer $FNA_KEY" "https://freenewsapi.ai/v1/stats?q=earthquake&date=7d"

レスポンスには、一致する全セット全体に対して計算された、国、言語、ドメインゾーンの各カウント、出版社、日付ごとのカウントが含まれます。

Pythonの場合

python
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"])

JavaScriptの場合

javascript
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));

次へ