API · MCP 사용 가이드
/api/v1/facts)은 따로 — 키 없음 120 · 1,000, 무료 키 600 · 5,000. 최근 1시간·24시간 기준이며 남은 횟수는 응답 헤더 X-RateLimit-* 에 옵니다. 자세히 · 점수 산출 방법글은 세 가지 방법으로 가져갈 수 있습니다. 무료 글은 키 없이, 유료 글 전문과 종목별 숫자는 구독자 키로 열립니다. 키는 내 계정 → API · MCP에서 발급·확인합니다.
1. MCP — AI 어시스턴트에 연결
Claude·ChatGPT·Cursor 같은 도구가 이 사이트의 글을 직접 읽고 인용하게 하는 방법입니다.
| 서버 | 주소 | 인증 | 내용 |
|---|---|---|---|
| 무료 | https://aiswingx.com/mcp | 없음 | 무료 글 전문, 유료 글은 네 줄 요약 |
| Pro | https://aiswingx.com/mcp/pro | Authorization: Bearer asx_… | 유료 글 전문 + 종목별 분기 숫자 |
Claude (claude.ai · Claude Desktop)
설정 → 커넥터(Connectors) → "커스텀 커넥터 추가" → URL 에 https://aiswingx.com/mcp/pro, 헤더에 Authorization: Bearer asx_…. 그 뒤 대화에서 "SOFI 최신 글 찾아줘"처럼 물으면 됩니다.
Claude Code · Cursor · 기타 (JSON 설정)
{
"mcpServers": {
"aiswingx": {
"url": "https://aiswingx.com/mcp/pro",
"headers": { "Authorization": "Bearer asx_여기에_키" }
}
}
}
ChatGPT (개발자 모드 · 커스텀 GPT)
설정 → 커넥터 → MCP 서버 추가 → URL https://aiswingx.com/mcp (무료) 또는 /mcp/pro + 헤더.
제공 도구
about— 서비스 설명 (AI 가 이 사이트를 정확히 소개하도록)list_posts— 최신 글 목록 (티커·언어·무료/유료 필터)get_post— 글 하나 (네 줄 + FAQ + 본문 + 숫자)search_posts— 전문 검색list_tickers— 다룬 종목get_metrics— 종목별 분기 숫자 (Pro)list_facts— 공시 원문 사실 목록 (무료 서버 포함). 값·기간·us-gaap 태그·영구 인용 URL·EDGAR 딥링크get_fact— 사실 하나 (접수번호 + 태그, 무료 서버 포함)list_events— 공시 속 일정 (종목·종류·성격·기간 필터,localeko|en). Free 서버: 앞으로 30일, 제목·날짜·성격만 / Pro: 전 기간 + 원문 문장·한국어 번역·설명·EDGAR 링크get_event— 일정 한 건 (Pro)
2. REST API
lang=ko 또는 lang=en 을 붙이면 그 언어의 데이터만 옵니다(locale= 도 같은 뜻). 기사·지표·피드·위젯은 언어별로 별도 판이 있으므로 lang 을 생략하면 기사 API 는 두 언어가 섞여 나오고, 지표는 영어, 일정(events) API 는 두 언어 필드(title_ko·title_en 등)를 모두 줍니다. 한 언어로 쓰는 뉴스 화면이면 항상 lang 을 지정하십시오.
GET https://aiswingx.com/api/v1/posts?lang=ko # 한국어 기사만
GET https://aiswingx.com/api/v1/metrics/NVDA?lang=ko # 한국어 지표명
GET https://aiswingx.com/api/v1/feed?lang=en # 영어 피드
GET https://aiswingx.com/api/v1/events?lang=ko # 일정: 한국어 단일 필드(title·text·note·labels)GET https://aiswingx.com/api/v1 # 안내
GET https://aiswingx.com/api/v1/posts?ticker=SOFI # 목록
GET https://aiswingx.com/api/v1/posts/sofi-2026q2 # 글 하나
GET https://aiswingx.com/api/v1/search?q=공정가치
GET https://aiswingx.com/api/v1/tickers
GET https://aiswingx.com/api/v1/metrics/SOFI # 무료는 한 분기 값까지, 구독자 키는 전 분기
GET https://aiswingx.com/api/v1/facts?ticker=NVDA # 공시 원문 사실 (키 없이 열림)
GET https://aiswingx.com/api/v1/facts/<접수번호>/<태그> # 사실 하나
Authorization: Bearer asx_여기에_키
인용 가능한 공시 사실 — /n/<접수번호>/<XBRL 태그>
회사가 EDGAR 에 제출한 인라인 XBRL 사실을 숫자 하나 단위로 공개합니다. 각 사실에는 영구 인용 URL 과 공시 원문에서 그 숫자가 적힌 위치로 가는 딥링크가 붙습니다. 접수번호와 XBRL 태그는 모두 SEC 의 불변 식별자이므로 이 URL 은 바뀌지 않습니다.
GET https://aiswingx.com/n/0000730263-26-000027/Assets # 사람이 읽는 페이지 (한국어: /ko/n/...)
GET https://aiswingx.com/n/0000730263-26-000027 # 그 공시의 사실 색인
GET https://aiswingx.com/api/v1/facts/0000730263-26-000027/Assets # 같은 데이터, JSON
GET https://aiswingx.com/api/v1/facts?ticker=THO&tag=Assets&limit=100
응답에는 값·단위·기간·us-gaap 태그·회사·CIK·접수번호·서식·접수일, EDGAR 원문 딥링크, 그리고 우리가 기사를 쓴 경우 기사 링크가 들어 있습니다. 비율·분해·해석은 우리 분석이며 기사 구독자 구간에 남습니다. 인용하실 때는 사실 URL 을 적어 주시면 됩니다.
변형 표기도 받아 정답 URL 로 넘깁니다 — us-gaap:Assets, 대시 없는 접수번호, 대소문자 차이 모두 301 로 정규화됩니다.
기사 응답(/api/v1/posts/<slug>)에는 citable 블록이 들어 있습니다 — 무료로 공개되는 범위의 claim 문장, 인용에 쓸 cite_url, EDGAR 검증 링크(verify_url), 그 공시의 사실 색인(facts_url)입니다. 우리가 찾아낸 사실은 기사가 인용 대상이고, 회사가 제출한 사실은 사실 URL 이 인용 대상입니다.
MCP 도구: list_facts · get_fact (무료 서버에 포함).
응답은 JSON. 글에는 four_lines(숫자·비유·출처·다음 분기), body_md, faq, metrics, url, 그리고 공유용 이미지 image(url·jpg·png, 1200×630, alt) 와 share(url·text·attribution) 가 들어 있습니다. 이미지는 기사 커버와 동일하며 귀사 앱·SNS·리포트에 그대로 쓸 수 있습니다(출처 표기 조건). get_post//api/v1/posts/<slug> 전문 응답은 조립식입니다: sections(소제목별 heading·md·html, 계산 근거는 appendix), glossary, faq, metrics, image, share 를 각각 따로 쓰거나 원하는 순서로 조합하세요. blocks 에 블록 이름 목록이 있습니다.
curl 예시
curl -H "Authorization: Bearer asx_…" "https://aiswingx.com/api/v1/posts/sofi-2026q2"
Python 예시
import requests
r = requests.get("https://aiswingx.com/api/v1/posts", params={"ticker": "SOFI"},
headers={"Authorization": "Bearer asx_…"})
for p in r.json()["items"]:
print(p["ticker"], p["quarter"], p["four_lines"]["number"], p["url"])
2-1. 조립 가이드 — 글 한 편은 10개의 블록
전문 응답(GET /api/v1/posts/<slug> 또는 MCP get_post)은 기사를 통째로 주는 것이 아니라 블록 단위로 준다. 블록은 서로 독립적이어서 하나만 써도 되고, 여러 개를 골라 원하는 순서로 붙여도 된다. 어떤 조합이든 마지막에 share.attribution(출처 문구) 한 줄만 붙이면 된다.
| 블록 | 무엇인가 | 이렇게 쓴다 |
|---|---|---|
title | 제목 (사실 + 숫자, 30자 내외) | 알림 제목, 뉴스 리스트 한 줄, 카드 헤드라인 |
subtitle | 부제 한 문장 — 왜 중요한가 | 제목 아래 보조 문구 |
lead | 리드 2~3문장 — 이것만 읽어도 되는 요약 | 푸시 알림 본문, 카톡 메시지, 미리보기 |
four_lines | 한눈에 보기 네 줄: number(숫자 하나) · analogy(비유 하나) · source(출처 하나) · watch_next(다음 분기에 볼 것) | 앱의 "핵심 4줄" 박스, 인스타 카드 4장, 방송용 자막 |
image | 커버 이미지 1200×630 — url(jpg) · jpg · png · width · height · alt · link(고정 공유 링크 /p/<slug>/cover.jpg, 커버가 갱신돼도 주소 불변). 기사 페이지의 og:image 와 동일한 파일 | 썸네일, SNS 카드, 리포트 표지. 절대 URL 이라 <img src> 에 그대로 |
sections | 본문을 소제목별로 자른 배열. 각 항목은 heading · md(마크다운) · html. 순서는 항상 같다: 무슨 일인가 → 이 숫자가 뜻하는 것 → 왜 중요한가 → 회사 설명과 맥락 → 투자자가 볼 것. 마지막 appendix 는 계산 근거 표 | "왜 중요한가"만 떼어 리서치 노트에, "투자자가 볼 것"만 떼어 체크리스트에, 계산 근거만 떼어 각주에 |
glossary | 용어 3~5개 — term · meaning | 툴팁, 용어 사전, 초보자용 카드 |
faq | 질문·답 2~4개 — q · a | 앱 FAQ, 챗봇 답변, FAQPage 구조화 데이터 |
metrics | 분기별 핵심 지표 — name · quarter · value · unit · source. 페이지 언어의 지표만 | 차트, 분기 비교표, 종목 대시보드 |
share | url(기사 링크) · text(공유 문구) · attribution(출처 표기 — 재배포 조건) | 공유 버튼, 게재물 하단 출처 줄 |
그 밖에 body_md / body_html(본문 전체), ticker · company · quarter · filing(메타), published_at · updated_at · revisions(수정 이력), blocks(블록 이름 목록) 가 함께 온다. 유료 글을 구독자 키 없이 부르면 locked: true 이고 sections · body_* 만 빠진다 — 제목·리드·네 줄·이미지·FAQ 는 그대로 쓸 수 있다.
조립 예 1 — 푸시 알림 (제목 + 리드 + 링크)
p = requests.get("https://aiswingx.com/api/v1/posts/mstr-2026q2").json()
push(title=p["title"], body=p["lead"], url=p["share"]["url"], image=p["image"]["url"])
조립 예 2 — SNS 카드 (이미지 + 네 줄 + 출처)
f = p["four_lines"]
caption = "\n".join([p["title"], "", "① " + f["number"], "② " + f["analogy"],
"③ " + f["source"], "④ " + f["watch_next"], "", p["share"]["attribution"]])
post_to_social(image_url=p["image"]["jpg"], text=caption, link=p["share"]["url"])
조립 예 3 — 리서치 노트 (원하는 섹션만)
want = {"왜 중요한가", "투자자가 볼 것"}
html = f'<img src="{p["image"]["url"]}" alt="{p["image"]["alt"]}">'
html += f"<h1>{p['title']}</h1><p>{p['lead']}</p>"
for s in p["sections"]:
if s["heading"] in want:
html += f"<h2>{s['heading']}</h2>" + s["html"]
html += "<p>" + p["share"]["attribution"] + "</p>"
조립 예 5 — 일정을 우리 서비스 캘린더에 넣기
r = requests.get("https://aiswingx.com/api/v1/events",
params={"ticker": "COHR,CIEN", "from": "2026-10-01", "lang": "ko"},
headers={"Authorization": "Bearer asx_…"}).json()
for e in r["items"]:
# 걸러낼 것이 없다 — 모든 항목이 회사가 공시에 적은 날짜다
assert e["date_basis"] == "stated_in_filing"
add_event(
date = e["date_start"], # precision 이 day 가 아니면 그 달·분기의 첫날
fuzzy = e["precision"] != "day", # 화면에 '2026년 4분기' 처럼 표시할지
title = f'{e["ticker"]} · {e["title"]}',
body = e.get("text") or "", # 원문 문장 (유료 키)
cite = f'{e["form"]} {e["accession"]}',
link = e["source_url"], # EDGAR 원문
)
조립 예 4 — 종목 대시보드 (지표만 차트로)
m = requests.get("https://aiswingx.com/api/v1/metrics/MSTR?locale=ko",
headers={"Authorization": "Bearer asx_…"}).json()["items"]
series = {}
for row in m: # name → [(quarter, value)]
series.setdefault(row["name"], []).append((row["quarter"], row["value"]))
draw_chart(series["비트코인 평가액 / 원가"]) # 2025Q4 116.7 → 2026Q2 77.7
조립 예 5 — 그대로 싣기 (전문 + 이미지)
article_html = f'<img src="{p["image"]["url"]}">' + p["body_html"] + f"<p>{p['share']['attribution']}</p>"
# 또는 마크다운: GET https://aiswingx.com/ko/p/mstr-2026q2.md (제목 아래 이미지가 이미 들어 있다)
규칙 세 가지
- 숫자는 고치지 않는다. 제목·순서·디자인은 바꿔도 되지만 값·단위·출처는 그대로.
- 출처 한 줄(
share.attribution) 은 어떤 조합에든 붙인다. 화이트라벨(출처 생략)은 라이선스 계약으로 별도 협의. - 이미지는 링크로 쓰거나 내려받아 써도 된다. 공유·임베드에는 불변 주소
image.link를, 캐시에는 파일 URL 의?v=를 키로 쓰면 된다.
2-2. 뉴스 화면에 그대로 넣기 — 3분 연동
고객사의 뉴스 피드·앱·CMS 에 기사를 바로 흘려 넣으려면 조립할 필요 없이 피드 하나면 됩니다. 항목은 뉴스 시스템이 이미 아는 이름(제목·요약·본문 HTML·이미지·날짜·카테고리·출처)으로 평평하게 옵니다.
GET https://aiswingx.com/api/v1/feed?lang=ko&limit=20 # JSON (기본)
GET https://aiswingx.com/api/v1/feed?lang=ko&format=jsonfeed # JSON Feed 1.1
GET https://aiswingx.com/api/v1/feed?lang=ko&format=rss # RSS 2.0 + content:encoded + media:content
필터: ticker= · sector= · topic= · importance=3 · since=2026-09-01 (또는 7d)
Authorization: Bearer asx_… → 라이선스 키면 유료 기사도 전문(paywall:false)
| 필드 | 내용 |
|---|---|
title · summary | 제목 · 리드(요약) |
content_html | 붙여 넣기용 본문 HTML(인라인 스타일, 한눈에 보기·본문·용어·FAQ·출처 표기 포함). 키 범위 밖이면 무료 구간 + "전문 보기" 링크 |
image_url | 커버 1200×630 JPEG |
published_at · updated_at | ISO 8601 (UTC) |
categories · tags | 업종 · 토픽·티커 |
paywall · read_more_url | 잠김 여부 · 원문 링크 |
attribution | 표기 문구("자료: aiSwingX™"). 화이트라벨 라이선스는 white_label=1 |
기사 한 편만 넣기
GET https://aiswingx.com/api/v1/posts/<slug>/embed.html?lang=ko&theme=light&parts=four_lines,body,glossary,faq
→ <article> HTML 조각. 그대로 삽입.
스크립트 한 줄(위젯)
<script src="https://aiswingx.com/embed.js" data-lang="ko" data-ticker="NVDA" data-limit="5" data-theme="light"></script>
그 자리에 최신 기사 카드(커버·티커·제목·요약·링크)가 그려집니다. 키 없이 동작하며 무료 피드를 씁니다.
발행 즉시 받기(웹훅)
계정 → API·MCP에서 키에 웹훅 URL 을 저장하면, 새 기사가 발행될 때 위 피드 항목과 같은 JSON 을 POST 합니다. 헤더 X-AiSwingX-Event: post.published, 서명 X-AiSwingX-Signature = HMAC-SHA256(secret, body).
2-3. 공시 속 일정 (Filing calendar) — 날짜 박힌 사실만
커버 종목의 10-Q·10-K 에 회사가 직접 적은 일정을 날짜순으로 제공합니다. 부채 만기·상환 스케줄, 워런트 베스팅·만료, 조건부 대가, 수주잔고 인식 시점, 자사주 한도, 락업 해제, 배당 기준일·지급일, 주주총회, 소송·규제 일정, 인수·매각 종결, 구조조정 완료, 경영진 변경, 내부자 거래 계획, 리스 개시·만료, 주식보상 베스팅, 계약·약정, 세무 등 21개 종류입니다. 추정·예측은 없습니다. 각 항목에 공시 원문 문장(text), 한국어 번역(text_ko), 우리 설명(note_ko·note_en), EDGAR 링크(source_url), 접수번호(accession)가 붙습니다.
date_basis 는 항상 "stated_in_filing" 입니다. 추정·전망·외부 출처 날짜는 한 건도 들어 있지 않습니다. 회사가 얼마나 구체적으로 적었는지는 precision(day·month·quarter·year·range)으로 판단하시고, 근거 문서는 accession·form·filed_at·source_url 로 바로 확인하실 수 있습니다.
{
"ticker": "COHR", "date_start": "2026-09-30", "precision": "day",
"date_basis": "stated_in_filing",
"form": "10-K", "accession": "0000820318-26-000020",
"filed_at": "2026-08-14T20:05:48+00:00"
}무료 · 유료
| 무료 (키 없음 · free 키) | 유료 (개인·팀·라이선스 키) | |
|---|---|---|
| 기간 | 오늘부터 30일 | 전 기간 (과거 포함, from·to 자유) |
| 필드 | 종목·회사·종류·성격(긍정/부정/중립)·날짜·정밀도·제목(ko/en)·항목 페이지 URL | 무료 필드 + 원문 문장·한국어 번역·설명·금액·EDGAR 링크·검수 상태·실제 결과(outcome) |
| 건수/호출 | 50 | 500 |
| iCal 피드·임베드 위젯 | — | 제공 |
엔드포인트
GET https://aiswingx.com/api/v1/events?ticker=NVDA,MRVL&from=2026-10-01&to=2026-12-31&limit=200
GET https://aiswingx.com/api/v1/events?category=debt,warrant&tone=negative
GET https://aiswingx.com/api/v1/events?ticker=NVDA&lang=ko # lang=ko|en: 그 언어의 단일 필드(title·text·note·category_label·tone_label·url)만. 생략하면 두 언어 필드 모두
GET https://aiswingx.com/api/v1/events/123?lang=en # 항목 한 건
GET https://aiswingx.com/api/v1/events/upcoming/NVDA?limit=10 # 한 종목의 다가오는 일정 (뉴스 옆 위젯용)
GET https://aiswingx.com/api/v1/events/calendar.ics?ticker=NVDA&lang=ko # iCal 구독 (유료) — Google/Apple/Outlook 에 URL 로 추가
GET https://aiswingx.com/api/v1/events/embed.html?ticker=NVDA&limit=8&lang=ko&theme=light # 붙여넣기용 HTML 위젯 (유료)
필드 설명
precision—day는 확정 날짜.month·quarter·year·range는 공시가 기간으로 적은 항목이며date_start~date_end로 표현됩니다. 회계연도는 각 회사의 결산월 기준으로 실제 날짜 범위로 환산돼 있습니다.category— debt · warrant · earnout · rpo · buyback · lockup · dividend · meeting · regulatory · litigation · deal · restructuring · leadership · insider · crypto · product · lease · option · contract · tax · othertone—positive·negative·neutral. 항목 종류와 문장 키워드에 따른 규칙 기반 표시입니다. 방향이 문장에서 분명하지 않거나(예: 우리가 받을 채권, 이미 상환 완료, 세금 충당용 매도, 권한 승인) 해석이 갈릴 수 있으면neutral로 둡니다. 투자 판단이 아닙니다 (예: 부채 만기 = negative, 수주잔고 인식·배당 = positive, 만기 상환 완료 = neutral).title_ko·title_en— "종류 · 날짜"만 담은 짧은 표기. 사실의 근거는 항상text(원문 문장)입니다.status—auto(자동 추출) ·verified(편집부 확인). 숨긴 항목은 API 에 나오지 않습니다.outcome은 실제 발생 여부를 이후 보고서로 확인해 적은 기록입니다.url·url_ko— 항목 페이지(공유·인용용 고유 주소).tone_note— 성격 표시의 성격을 설명하는 고정 문구. 재배포 시 함께 표시해 주십시오.lang—ko또는en을 주면 응답이 그 언어 하나로 정리됩니다:title,note,text(ko 는 한국어 번역, 번역이 아직 없으면 영문 원문이며text_lang으로 표시),text_original(영문 원문),category_label,tone_label,url. 뉴스 화면에 그대로 넣을 때 쓰십시오.
응답 예 (유료)
{"tier": "paid", "count": 1, "items": [{
"id": 1387, "ticker": "MRVL", "company": "Marvell Technology", "category": "warrant", "tone": "negative",
"date_start": "2033-08-01", "date_end": "2033-08-31", "precision": "month",
"title_ko": "워런트 · 2033년 8월", "title_en": "Warrant · August 2033",
"text": "Subsequent to quarter end, the Company issued a warrant to a customer to purchase an aggregate of up to 59.0 million ...",
"text_ko": "분기 말 이후 회사는 한 고객에게 회사 보통주 합계 최대 5900만주를 ...",
"note_ko": "워런트가 베스팅되거나 행사되면 새 주식이 발행되어 기존 주주의 지분이 희석됩니다. ...",
"form": "10-Q", "accession": "0001835632-26-000025", "filed_at": "2026-08-28T20:04:02+00:00",
"source_url": "https://www.sec.gov/Archives/edgar/data/1835632/000183563226000025/mrvl-20260801.htm",
"url": "https://aiswingx.com/calendar/e/1387", "attribution": "Source: company filings on SEC EDGAR via aiSwingX™"}]}
갱신: 새 10-Q·10-K 가 EDGAR 에 접수되면 몇 분 안에 추출돼 API 에 나타납니다. 항목은 편집부가 매일 검수하며, 문제가 있으면 숨김 처리되어 즉시 API 에서 빠집니다. 재배포 시 출처 표기(attribution)를 유지해 주세요.
2-4. 공시 변화 점수 (Filing score) — 숫자가 얼마나 움직였나
공시 한 건마다 0~100 점수를 매깁니다. 주가 예측이나 매매 신호가 아니라, 그 공시에서 보고된 숫자가 얼마나 크게 움직였는지를 아홉 가지 규칙으로 계산한 값입니다. 모든 구성 요소는 같은 공시의 인라인 XBRL 값과 우리가 뽑은 일정에서만 나오며, 각 항목의 근거 숫자가 함께 제공됩니다.
구성: 매출 변화 15 · 순이익 변화 15 · 이익의 질(영업현금/순이익) 15 · 재고 대 매출 10 · 매출채권 비중 10 · 부채·자본 10 · 자동 플래그 10 · 공시 속 일정 10 · 편집부 중요도 15 (합계 100 상한). 등급: 70 이상 “변화 큼”, 40~69 “보통”, 40 미만 “변화 작음”.
GET https://aiswingx.com/api/v1/scores?min=70&ticker=NVDA&limit=50&lang=ko
GET https://aiswingx.com/api/v1/posts?min_score=70 # 점수로 기사 거르기
# 기사·공시 응답의 filing_score 필드에도 같은 값이 들어갑니다
| 무료 | 유료 | |
|---|---|---|
| 점수·등급 | 제공 | 제공 |
| 상위 3개 요소 이름 | 제공 | 제공 |
아홉 가지 구성 요소와 근거 숫자(components) | — | 제공 |
min_score·min 필터 | 제공 | 제공 |
표기 의무 — 점수를 재배포하실 때는 (1) 0~100 척도, (2) 신용등급·투자등급·목표주가·추천이 아니라는 점, (3) 산출 방법 링크(methodology_url)를 함께 표시해 주십시오. 응답의 method·not·methodology_url·disclaimer_url 필드가 그대로 쓰실 수 있는 문구입니다.
"filing_score": {
"score": 68, "label": "Moderate", "label_ko": "보통", "scale": "0-100",
"method": "Rule-based measure of how much the figures reported in this filing moved ...",
"not": "Not a credit rating, investment grade, price target, recommendation or forecast ...",
"methodology_url": "https://aiswingx.com/docs#score", "disclaimer_url": "https://aiswingx.com/disclaimer",
"top_factors": [{"key": "net_income", "label_ko": "순이익 변화"}, ...],
"components": [{"key": "cash_quality", "label_ko": "이익의 질", "points": 8, "max": 15,
"detail_ko": "영업활동 현금흐름 / 순이익 = 54%"}, ...] // 유료 키에만
}
이용 범위 — 점수·등급과 일정 데이터는 무료로 보이더라도 개인적·비상업적 이용에 한합니다. 고객·독자에게 보여 주거나 자사 서비스·리포트에 넣으시려면 라이선스 플랜이 필요합니다(약관 제5·7조). 응답의 usage·license_url 필드에 같은 내용이 들어 있습니다.
편집부 중요도(15점)는 사람의 판단이며 나머지 85점은 공시 수치에서 기계적으로 계산됩니다. 점수는 발행 시점의 공시 내용만 반영하고 이후 시장 가격과는 무관합니다. 자세한 고지는 면책 고지 6항에 있습니다.
2-4-1. 개선 순위 (Improving) — 숫자가 좋아진 종목
공시 변화 점수가 얼마나 움직였나를 본다면, 개선 점수는 어느 방향으로 움직였나를 봅니다. 회사가 10-Q·10-K 에 직접 인쇄한 값과, 같은 문서에 나란히 인쇄된 전년 동기 비교값만 비교합니다. 외부 추정치·컨센서스·주가·거래량은 한 건도 쓰지 않습니다.
주가 예측이 아니며 매매 권유가 아닙니다. 숫자가 좋아진 회사의 주가가 내릴 수 있고 그 반대도 마찬가지입니다.
구성(사용 가능한 항목만으로 0~100 정규화): 매출 20 · 영업손익 20 · 매출총이익률 15 · 영업활동 현금 15 · 잉여현금흐름 10 · 순부채 10 · 매출채권 비중 5 · 재고 비중 5. 열 항목 중 공시가 제공하지 않는 항목은 계산에서 빼고, 남은 배점 합계로 나눠 환산합니다.
추세는 주가가 아니라 이 개선 점수의 방향입니다. 같은 종목의 직전 공시 점수와 비교해 up(개선 지속) · slow(개선 둔화) · flat(변화 없음) · down(후퇴) · first(첫 기록) 중 하나를 돌려드립니다.
GET https://aiswingx.com/api/v1/improving?limit=10&lang=ko
GET https://aiswingx.com/api/v1/improving?ticker=NVDA,AMD&days=400
# 웹 화면: https://aiswingx.com/ko/improving
| 무료 | 유료 | |
|---|---|---|
| 순위·티커·공시 정보 | 제공 (10위까지) | 제공 (50위까지) |
| 개선 점수·추세·근거 한 줄 | 상위 5위까지 | 전체 |
열 항목의 근거 숫자(components) | 상위 5위까지 | 전체 |
limit 상한 | 10 | 50 |
응답 예 (유료)
{
"tier": "paid", "count": 10, "free_ranks": 3,
"basis": "Figures printed in the filing itself and the prior-year comparatives ...",
"disclaimer": "improve_score measures only how far the figures in a filing improved ...",
"items": [{
"rank": 1, "ticker": "MU", "company": "Micron Technology, Inc.",
"form": "10-Q", "period": "2026Q3", "accession": "0000723125-26-000015",
"filed_at": "2026-06-24T20:31:02+00:00",
"improve_score": 94,
"trend": "up", "trend_label": "개선 지속 3분기", "trend_streak": 3,
"why": "매출 전년 동기 대비 +345.7%",
"components": [
{"key": "revenue", "label": "매출", "prior_year": 9301000000.0,
"this_filing": 41456000000.0, "unit": "$",
"change": "전년 동기 대비 +345.7%", "points": 20.0, "max_points": 20},
{"key": "gross_margin", "label": "매출총이익률", "prior_year": 37.7164,
"this_filing": 84.5619, "unit": "%",
"change": "37.7% → 84.6% (+46.8%p)", "points": 15, "max_points": 15}
],
"filing_url": "https://www.sec.gov/Archives/edgar/data/723125/...",
"article_url": "https://aiswingx.com/ko/p/mu-fy26q3"
}]
}
Python 예시 — 개선 지속 종목만 추리기
import requests
r = requests.get("https://aiswingx.com/api/v1/improving",
params={"limit": 50, "lang": "ko"},
headers={"Authorization": "Bearer asx_..."}, timeout=10)
r.raise_for_status()
d = r.json()
for it in d["items"]:
if it.get("trend") in ("up", "slow") and (it.get("improve_score") or 0) >= 70:
print(f'{it["rank"]:2d}. {it["ticker"]:6s} {it["improve_score"]:3d} '
f'{it["trend_label"]} {it["why"]}')
for c in it["components"]:
if c["points"] > 0:
print(f' {c["label"]}: {c["change"]}')
print(" 원문:", it["filing_url"])
# 재배포하실 때는 아래 두 문장을 함께 표시해 주십시오.
print(d["basis"]); print(d["disclaimer"])
curl 예시
curl -s "https://aiswingx.com/api/v1/improving?limit=10&lang=ko" \
-H "Authorization: Bearer asx_..." | jq '.items[] | {rank, ticker, improve_score, trend_label, why}'
표기 의무 — 개선 점수를 재배포하실 때는 (1) 0~100 척도, (2) 주가 예측·투자등급·목표주가·추천이 아니라는 점, (3) 산출 방법 링크를 함께 표시해 주십시오. 응답의 basis·disclaimer·docs 필드가 그대로 쓰실 수 있는 문구입니다. 자세한 고지는 면책 고지 6항에 있습니다.
사용 한도
공시 원문 사실 엔드포인트(/api/v1/facts)는 인용을 위해 한도를 따로 크게 잡았습니다 — 키 없이 시간당 120·하루 1,000, 무료 키는 600·5,000. SEC 에 제출된 값이라 우리 분석이 아니기 때문입니다. 한도는 시간당·일일 두 층으로 적용되며 요청 시점 기준 최근 1시간·24시간을 셉니다. 응답 헤더에 남은 횟수가 옵니다(X-RateLimit-Limit-Hour, X-RateLimit-Remaining-Hour, -Day, X-RateLimit-Tier). 초과하면 429와 Retry-After 를 돌려드립니다.
| 등급 | 시간당 | 하루 | 내용 |
|---|---|---|---|
| 키 없음 (맛보기) | 20 | 100 | IP 기준. 응답 구조를 확인하는 용도입니다 |
| 무료 키 | 60 | 500 | 가입 후 계정 → API 에서 발급 |
| 구독자 키 (개인·팀) | 1,000 | 10,000 | 유료 기사 전문·지표·일정 전체·점수 구성 요소 |
| 라이선스 키 | 3,000 | 50,000 | 재배포·화이트라벨. 필요하면 상향 조정 |
HTTP/1.1 200 OK
X-RateLimit-Tier: anonymous
X-RateLimit-Limit-Hour: 20 X-RateLimit-Remaining-Hour: 15
X-RateLimit-Limit-Day: 100 X-RateLimit-Remaining-Day: 84
HTTP/1.1 429 Too Many Requests (한도 초과)
Retry-After: 3600
{"error":"rate_limited","tier":"anonymous","exceeded":"hour",
"limit_per_hour":20,"limit_per_day":100,
"hint":"Send an API key (Authorization: Bearer asx_...) for higher limits."}
이용 범위: 한도 안에서 받아 가신 데이터라도 무료·구독자 키는 개인적·비상업적(팀은 조직 내부) 이용입니다. 재배포·상업적 이용은 라이선스 키로만 가능합니다.
MCP 서버 호출도 같은 한도를 씁니다. 한도가 모자라시면 계정의 지원(메시지)으로 알려 주십시오.
2-5. 계산 지표 — 공시 숫자에서 규칙으로 뽑은 재료
종목 지표(/api/v1/metrics/<ticker>)에는 기사에서 뽑아 적은 숫자 외에, 회사가 EDGAR 에 제출한 XBRL 값에서 규칙 하나로 계산해 모든 커버 종목에 쌓는 항목이 있습니다. 해석이 아니라 재료이며, 계산식과 출처가 전부입니다.
- 영업 밖 이익 비중(%) = (세전이익 − 영업이익) ÷ 세전이익. 그 분기 이익 가운데 본업이 아닌 데서 온 몫입니다. 지분 평가이익·이자·환차손익 등이 여기에 들어갑니다. 세전이익이 0 이하이거나 1000만달러 미만인 분기는 비율이 잡음이 되므로 싣지 않으며, 영업이익이 적자면 비율이 100%를 넘으므로 100 으로 적고 그 사실을
note에 밝힙니다. - 12개월 내 상환 예정 원금($M) = 회사가 스스로 태그한 다음 12개월 장기부채 상환액(
LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths). 우리가 추정한 값이 아닙니다.
기간 라벨은 그 숫자의 기간 종료일에서 만듭니다(예: 2026Q2). XBRL 의 fy/fp 는 그 값을 실은 보고서의 회계연도라서 1년 전 비교 수치가 올해 분기로 찍히기 때문입니다. 두 항목 모두 전망이 아니며, 좋고 나쁨을 뜻하지 않습니다. 매일 갱신합니다.
3. RSS · 텍스트
- /feed.xml — RSS (새 글)
- /llms.txt · /llms-full.txt — AI 용 목록·전문
- 글마다
/p/<slug>.md— 순수 텍스트
한도 · 규칙
- 개인 키: 하루 200회 · 라이선스 키: 하루 5,000회. 초과 시
429. - 키는 본인(또는 라이선스 계약 범위) 용도입니다. 유출 시 즉시 폐기하고 재발급하세요.
- 인용 시 기사 URL 과 공시 출처를 함께 표기한다. 재배포(애플리케이션·리포트)는 라이선스 플랜에서만 허용된다. 출처를 표기하지 않는 화이트라벨(
white_label=1)은 별도 협의 후 관리자가 해당 키에 권한을 부여한 경우에만 동작한다. - 이 글들은 투자 자문이 아닙니다.
