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아니오20페이지당 결과 수 (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아니오20페이지당 결과 수 (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