ECONALK 공개 API로 게재된 기사와 경제 캘린더 이벤트를 프로그래밍 방식으로 조회할 수 있습니다. 모든 엔드포인트는 개발자 대시보드에서 발급한 API 키가 필요합니다.
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/min | 10,000 | $2 / 1,000 req | 20,000 |
| Premium | 300 req/min | 100,000 | $1 / 1,000 req | 500,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 | 의미 |
|---|---|---|
| 400 | invalid_params | 쿼리 파라미터 값이 유효하지 않음 |
| 401 | unauthorized / invalid_key | API 키가 없거나 유효하지 않거나 회수됨 |
| 429 | rate_limited | 분당 속도 제한 초과 — Retry-After 참조 |
| 429 | quota_exceeded | 월간 하드캡 도달 — 다음 UTC 월 시작에 초기화 |
| 500 | internal_error | 예기치 않은 서버 오류 |
전 지역의 게재 기사를 페이지네이션 목록으로 반환합니다.
| 파라미터 | 타입 | 필수 | 기본값 | 설명 |
|---|---|---|---|---|
| region | string | 아니오 | us | 에디션: us, kr, jp 중 하나 |
| category | string | 아니오 | — | 카테고리 슬러그 필터 (예: economy, tech) |
| q | string | 아니오 | — | 제목·설명 전문 검색 |
| from | string (YYYY-MM-DD) | 아니오 | — | 이 날짜(포함) 이후 게재된 기사 포함 |
| to | string (YYYY-MM-DD) | 아니오 | — | 이 날짜(포함) 이전 게재된 기사 포함 |
| sort | date_desc | date_asc | 아니오 | date_desc | 게재일 기준 정렬 순서 |
| limit | integer | 아니오 | 20 | 페이지당 결과 수 (1–100) |
| offset | integer | 아니오 | 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 }
}슬러그로 단일 기사를 반환합니다(전체 렌더링 콘텐츠 포함).
| 파라미터 | 타입 | 필수 | 기본값 | 설명 |
|---|---|---|---|---|
| slug | string | 예 | — | 기사 슬러그 (목록 엔드포인트에서 획득) |
| 파라미터 | 타입 | 필수 | 기본값 | 설명 |
|---|---|---|---|---|
| region | string | 아니오 | 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 -->"
}
}중앙은행 결정, CPI 발표, 고용 보고서 등 예정(및 최근) 경제 이벤트를 반환합니다.
| 파라미터 | 타입 | 필수 | 기본값 | 설명 |
|---|---|---|---|---|
| region | string | 아니오 | us | 에디션: us, kr, jp 중 하나 |
| futureDays | integer | 아니오 | 90 | 며칠 앞까지 포함할지 (최대 365) |
| importance | integer (1–3) | 아니오 | — | 최소 중요도 (3 = 높음) |
| limit | integer | 아니오 | 20 | 페이지당 결과 수 (1–100) |
| offset | integer | 아니오 | 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