API リファレンス

ECONALK 公開 API では、掲載記事と経済カレンダーイベントをプログラムから取得できます。すべてのエンドポイントには開発者ダッシュボードで発行した API キーが必要です。

ベース URL

https://econalk.com/api/v1

認証

API キーを Authorization ヘッダーに Bearer トークンとして渡してください。キーは作成時に一度だけ表示されます — 安全に保管してください。

Authorization: Bearer ek_live_<your-key>

X-API-Key ヘッダーで渡すこともできます。

ティア・レート制限・月間クォータ

制限は ECONALK メンバーシップに従います。コンソールと API キーは、別途の開発者登録なしに ECONALK アカウントをそのまま使用します。会員は Member ティアで、ECONALK プレミアム会員は1時間以内(コンソール訪問時は即時)に自動昇格します。

ティアレート制限月間含有量従量課金ハードキャップ
Member(無料)60 req/min10,000$2 / 1,000 req20,000
Premium300 req/min100,000$1 / 1,000 req500,000

分あたりの制限は固定60秒ウィンドウを使用します。月間クォータは現在の UTC 月のすべてのリクエストを集計し、含有量を超えた使用分はティアごとの単価で従量課金されます(開発者コンソールでリアルタイムに確認可能)。ハードキャップに達すると 429 quota_exceeded で遮断されます。すべてのレスポンスには次のヘッダーが含まれます:

ヘッダー説明
X-RateLimit-Limit分あたりの最大許容リクエスト数(ティア別)
X-RateLimit-Remaining現在のウィンドウの残りリクエスト数
X-RateLimit-Resetウィンドウがリセットされる Unix タイムスタンプ(秒)
Retry-After再試行までの待機秒数(429 レスポンスのみ)
X-Quota-Tier決定されたティア: free または premium
X-Quota-Included今月のサイクルに含まれるリクエスト数
X-Quota-Used今サイクルで使用したリクエスト数
X-Quota-Remaining残りの含有リクエスト数(従量課金中は 0)

レスポンス形式

成功(リスト)

{
  "data": [ /* array of objects */ ],
  "pagination": {
    "total": 142,
    "limit": 20,
    "offset": 0
  }
}

成功(単一)

{
  "data": { /* single object */ }
}

エラー

{
  "error": {
    "code": "invalid_region",
    "message": "region must be us, kr, or jp"
  }
}
HTTP ステータスcode意味
400invalid_paramsクエリパラメータの値が無効
401unauthorized / invalid_keyAPI キーが未指定・無効・失効
429rate_limited分あたりレート制限超過 — Retry-After 参照
429quota_exceeded月間ハードキャップ到達 — 次の UTC 月の開始時にリセット
500internal_error予期しないサーバーエラー

GET /api/v1/articles

全地域の掲載記事をページネーション付きリストで返します。

クエリパラメータ

パラメータ必須デフォルト説明
regionstringいいえusエディション: us、kr、jp のいずれか
categorystringいいえカテゴリスラッグでフィルタ(例: economy、tech)
qstringいいえタイトル・説明の全文検索
fromstring (YYYY-MM-DD)いいえこの日付以降に掲載された記事を含む
tostring (YYYY-MM-DD)いいえこの日付以前に掲載された記事を含む
sortdate_desc | date_ascいいえdate_desc掲載日による並び順
limitintegerいいえ201ページあたりの結果数(1–100)
offsetintegerいいえ0ページネーションオフセット

リクエスト例

curl "https://econalk.com/api/v1/articles?region=us&category=economy&limit=5" \
  -H "Authorization: Bearer ek_live_..."

レスポンス例

{
  "data": [
    {
      "slug": "2026-06-01-fed-rate-decision",
      "title": "Fed holds rates steady amid inflation data",
      "description": "The Federal Reserve opted to keep ...",
      "category": "economy",
      "region": "us",
      "date": "2026-06-01",
      "author": "ECONALK Editorial",
      "image": "/images/fed-rate.jpg"
    }
  ],
  "pagination": { "total": 142, "limit": 5, "offset": 0 }
}

GET /api/v1/articles/{slug}

スラッグで単一の記事を返します(フルレンダリングされたコンテンツを含む)。

パスパラメータ

パラメータ必須デフォルト説明
slugstringはい記事スラッグ(リストエンドポイントから取得)

クエリパラメータ

パラメータ必須デフォルト説明
regionstringいいえusエディション: us、kr、jp のいずれか

リクエスト例

curl "https://econalk.com/api/v1/articles/2026-06-01-fed-rate-decision?region=us" \
  -H "Authorization: Bearer ek_live_..."

戻り値

{
  "data": {
    "slug": "2026-06-01-fed-rate-decision",
    "title": "Fed holds rates steady ...",
    "description": "...",
    "category": "economy",
    "region": "us",
    "date": "2026-06-01",
    "author": "ECONALK Editorial",
    "image": "/images/fed-rate.jpg",
    "content": "<!-- full MDX-rendered HTML string -->"
  }
}

GET /api/v1/economic-calendar

中央銀行の決定、CPI 発表、雇用統計など、今後(および直近)の経済イベントを返します。

クエリパラメータ

パラメータ必須デフォルト説明
regionstringいいえusエディション: us、kr、jp のいずれか
futureDaysintegerいいえ90何日先まで含めるか(最大365)
importanceinteger (1–3)いいえ最低重要度(3 = 高)
limitintegerいいえ201ページあたりの結果数(1–100)
offsetintegerいいえ0ページネーションオフセット

リクエスト例

curl "https://econalk.com/api/v1/economic-calendar?region=us&importance=3&futureDays=30" \
  -H "Authorization: Bearer ek_live_..."

レスポンス例

{
  "data": [
    {
      "eventName": "Fed Interest Rate Decision",
      "scheduledAt": "2026-07-30T18:00:00.000Z",
      "country": "United States",
      "category": "Central Bank",
      "importance": 3,
      "forecastValue": "4.25%",
      "previousValue": "4.25%",
      "actualValue": ""
    }
  ],
  "pagination": { "total": 12, "limit": 20, "offset": 0 }
}

ページネーション

すべてのリストエンドポイントは limit(デフォルト20、最大100)と offset(デフォルト0)をサポートします。レスポンスの pagination.total でページ数を計算してください: Math.ceil(total / limit)

// Page 3 (zero-indexed), 10 per page
GET /api/v1/articles?limit=10&offset=20