韩国市场API技术对接指南,涵盖实时行情、历史数据、指数信息、公司详情等功能

简介: StockTV API提供全面韩国股市数据服务,涵盖实时行情、历史K线、指数、IPO、涨跌榜及公司信息等,支持KOSPI/KOSDAQ/KONEX全市场,返回标准JSON,含WebSocket实时推送,适配韩元计价与交易时间特性。(239字)

一、概述

StockTV API为开发者提供全面的韩国股票市场数据接口,涵盖实时行情、历史数据、指数信息、公司详情等功能。本指南详细说明如何使用API接口获取韩国市场相关数据,所有接口均返回标准JSON格式。

二、韩国市场特性说明

1. 韩国交易所概览

  • 韩国交易所:KRX(Korea Exchange)
  • 交易时间:韩国时间 09:00-15:30
  • 交易货币:韩元(KRW)
  • 涨跌限制:±30%

2. 主要市场板块

  • 主板市场(KOSPI)
  • 创业板(KOSDAQ)
  • 科斯达克(KONEX)

三、接口认证与配置

1. 认证方式

  • 所有接口请求需在URL参数中包含API密钥
  • 基础认证参数:key=your_api_key_here

2. 基础配置

  • 接口地址:https://api.stocktv.top
  • 支持协议:HTTPS
  • 数据格式:JSON
  • 字符编码:UTF-8

四、韩国股票市场接口

1. 股票列表查询

获取韩国市场股票列表,支持分页查询。

接口地址GET /stock/stocks

请求参数
| 参数名 | 必填 | 说明 | 示例值 |
|--------|------|------|--------|
| countryId | 是 | 韩国国家ID为11 | 11 |
| pageSize | 否 | 每页记录数,默认10 | 20 |
| page | 否 | 页码,默认1 | 1 |
| exchangeId | 否 | 交易所ID(60:Seoul, 110:KOSDAQ) | 60 |
| key | 是 | API密钥 | your_key |

示例请求

# 获取韩国主板市场股票列表
curl -X GET "https://api.stocktv.top/stock/stocks?countryId=11&pageSize=20&page=1&exchangeId=60&key=your_key"

响应示例

{
   
  "code": 200,
  "message": "操作成功",
  "data": {
   
    "records": [
      {
   
        "id": 953367,
        "name": "Samsung Electronics",
        "symbol": "005930",
        "last": 84500,
        "chg": 500,
        "chgPct": 0.60,
        "high": 85000,
        "low": 84000,
        "volume": 24567890,
        "avgVolume": 32567890,
        "exchangeId": 60,
        "countryId": 11,
        "countryNameTranslated": "South Korea",
        "flag": "KR",
        "open": true,
        "lastClose": 84000,
        "pairType": "Equities",
        "time": 1755008213,
        "lastPairDecimal": 0
      }
    ],
    "total": 2500,
    "size": 20,
    "current": 1,
    "pages": 125
  }
}

字段说明

  • lastPairDecimal: 价格小数位数(韩国股票通常为整数)
  • exchangeId=60: 首尔交易所主板
  • exchangeId=110: KOSDAQ创业板

2. 个股详情查询

根据多种条件查询韩国个股详细信息。

接口地址GET /stock/queryStocks

查询方式示例

# 通过股票代码查询(三星电子)
curl -X GET "https://api.stocktv.top/stock/queryStocks?symbol=005930&key=your_key"

# 通过PID查询
curl -X GET "https://api.stocktv.top/stock/queryStocks?id=953367&key=your_key"

响应包含韩股特有信息

{
   
  "fundamentalBeta": 1.12,
  "fundamentalMarketCap": 450000000000000,  // 市值(韩元)
  "fundamentalRevenue": "302.23T",          // 营收(韩元,T表示万亿)
  "technicalDay": "buy",
  "technicalHour": "neutral",
  "cfd": false                              // 是否差价合约
}

3. 批量股票查询

一次请求获取多个韩国股票的实时数据。

接口地址GET /stock/stocksByPids

请求示例

# 查询三星、SK海力士、现代汽车
curl -X GET "https://api.stocktv.top/stock/stocksByPids?pids=953367,953368,953369&key=your_key"

使用场景

  • 自选股监控
  • 板块分析
  • 投资组合跟踪

4. 韩国股指数据

获取韩国主要股票指数信息。

接口地址GET /stock/indices

请求参数

countryId=11&key=your_key

韩国主要指数

  • KOSPI 200
  • KOSPI
  • KOSDAQ
  • KRX 100

响应示例

{
   
  "code": 200,
  "message": "操作成功",
  "data": [
    {
   
      "id": 17950,
      "name": "KOSPI 200",
      "symbol": "KS200",
      "last": 320.45,
      "chg": 2.15,
      "chgPct": 0.68,
      "high": 321.20,
      "low": 318.75,
      "changeDecimalPrecision": 2,
      "changePercentageDecimalPrecision": 2,
      "isOpen": true,
      "flag": "KR",
      "lastPairDecimal": 2,
      "time": 1755008213
    }
  ]
}

5. 通过ID查询指数

获取特定指数的详细信息。

接口地址GET /stock/indicesById

示例请求

# 查询KOSPI 200指数
curl -X GET "https://api.stocktv.top/stock/indicesById?id=17950&key=your_key"

6. 历史K线数据

获取韩国股票的历史价格数据。

接口地址GET /stock/kline

时间周期参数
| interval | 说明 | 韩国适用场景 |
|----------|------|------------|
| PT5M | 5分钟线 | 日内高频交易 |
| PT15M | 15分钟线 | 短线交易 |
| PT1H | 1小时线 | 趋势分析 |
| P1D | 日线 | 技术分析主力 |
| P1W | 周线 | 长期投资 |

示例请求

# 获取三星电子日K线
curl -X GET "https://api.stocktv.top/stock/kline?pid=953367&interval=P1D&key=your_key"

K线数据格式

{
   
  "time": 1754928000000,
  "open": 84000,
  "high": 85000,
  "low": 83500,
  "close": 84500,
  "volume": 24567890,
  "vo": 2075678900000
}

韩股特性注意

  • 价格通常为整数
  • 成交额单位较大(韩元)
  • 成交量单位:股

7. 韩国IPO信息

获取韩国市场的IPO发行信息。

接口地址GET /stock/getIpo

请求参数

countryId=11&type=1&key=your_key

type参数说明

  • 1: 未上市IPO
  • 2: 已上市IPO

响应示例

{
   
  "code": 200,
  "message": "操作成功",
  "data": [
    {
   
      "id": 25,
      "ipoListing": 1755008213,
      "country": "South Korea",
      "company": "Kakao Games Corp",
      "exchange": "KOSDAQ",
      "ipoValue": "1.2T",
      "ipoPrice": "32000",
      "last": "34500",
      "symbol": "293490",
      "date": "2025-03-15",
      "pid": 1256789
    }
  ]
}

8. 涨跌排行榜

获取韩国市场的实时涨跌排名。

接口地址GET /stock/updownList

请求示例

# 获取韩国涨幅榜
curl -X GET "https://api.stocktv.top/stock/updownList?countryId=11&type=1&key=your_key"

排行榜类型
| type | 说明 | 适用场景 |
|------|------|----------|
| 1 | 涨幅榜 | 热门股分析 |
| 2 | 跌幅榜 | 风险监控 |
| 3 | 涨停榜 | 市场热度 |
| 4 | 跌停榜 | 风险预警 |

9. 韩国公司信息

获取韩国上市公司的详细资料。

接口地址GET /stock/companies

请求示例

curl -X GET "https://api.stocktv.top/stock/companies?countryId=11&pageSize=10&page=1&key=your_key"

响应示例

{
   
  "companyName": "Samsung Electronics Co Ltd Company Profile",
  "description": "Samsung Electronics Co., Ltd. engages in the manufacturing and sale of consumer electronics, IT and mobile communications, and device solutions worldwide...",
  "industry": "Semiconductors",
  "sector": "Technology",
  "employeeCount": 267937,
  "market": "South Korea",
  "countryId": 11
}

10. 通过URL查询公司信息

根据股票详情页URL查询公司信息。

接口地址GET /stock/companyUrl

韩股URL格式示例

/equities/samsung-electronics-co-ltd

11. 韩国ETF市场

韩国ETF市场数据查询(需单独开通权限)。

接口特性

  • 韩国是全球重要的ETF市场
  • 包含KOSPI 200 ETF、杠杆ETF等
  • 支持实时行情和K线数据

五、实时数据推送

1. WebSocket连接

连接地址

wss://ws-api.stocktv.top/connect?key=your_api_key

JavaScript示例

// 连接韩国股票WebSocket
const ws = new WebSocket('wss://ws-api.stocktv.top/connect?key=your_key');

ws.onopen = () => {
   
  console.log('韩国股票WebSocket连接已建立');

  // 订阅三星电子
  ws.send(JSON.stringify({
   
    type: 'subscribe',
    pids: ['953367']
  }));
};

ws.onmessage = (event) => {
   
  const data = JSON.parse(event.data);

  // 韩股数据处理
  if (data.type === 1) {
   
    const stockData = {
   
      pid: data.pid,
      price: parseInt(data.last_numeric),  // 韩元价格通常为整数
      change: parseFloat(data.pc),
      changePercent: parseFloat(data.pcp),
      volume: parseInt(data.turnover_numeric),
      time: data.time
    };

    updateStockDisplay(stockData);
  }
};

2. WebSocket数据格式

{
   
  "pid": "953367",
  "last_numeric": "84500",
  "bid": "84400",
  "ask": "84600",
  "high": "85000",
  "low": "84000",
  "last_close": "84000",
  "pc": "+500",
  "pcp": "+0.60%",
  "turnover_numeric": "24567890",
  "time": "14:30:15",
  "timestamp": "1755008213",
  "type": 1
}

六、韩国市场特殊处理

1. 价格单位处理

// 韩元格式化函数
function formatKRWPrice(price) {
   
  if (price >= 100000000) {
     // 1亿以上
    return Math.floor(price / 100000000) + '억';
  } else if (price >= 10000) {
     // 1万以上
    return Math.floor(price / 10000) + '만';
  } else {
   
    return price.toLocaleString('ko-KR');
  }
}

// 成交额格式化
function formatKRWAmount(amount) {
   
  if (amount >= 1000000000000) {
     // 1조以上
    return (amount / 1000000000000).toFixed(2) + '조';
  } else if (amount >= 100000000) {
     // 1억以上
    return (amount / 100000000).toFixed(2) + '억';
  } else {
   
    return amount.toLocaleString('ko-KR');
  }
}

2. 交易时间处理

// 韩国交易时间判断
function isKoreaTradingTime() {
   
  const now = new Date();
  const koreaTime = new Date(now.toLocaleString('en-US', {
    timeZone: 'Asia/Seoul' }));
  const hours = koreaTime.getHours();
  const minutes = koreaTime.getMinutes();

  // 韩国时间 09:00-15:30
  if (hours < 9) return false;
  if (hours === 9 && minutes < 0) return false;
  if (hours > 15) return false;
  if (hours === 15 && minutes > 30) return false;

  return true;
}

七、数据更新策略

1. 实时性说明

  • 股票数据:1-3秒延迟
  • 指数数据:5-10秒延迟
  • 历史数据:T+1更新
  • 韩股休市:周六、周日及韩国公休日

2. 优化建议

class KoreaStockDataManager {
   
  constructor() {
   
    this.stockCache = new Map();
    this.lastUpdateTime = {
   };
    this.cacheDuration = 30000; // 30秒
  }

  async getStockData(pid) {
   
    const now = Date.now();
    const cached = this.stockCache.get(pid);

    // 检查缓存有效性
    if (cached && (now - this.lastUpdateTime[pid]) < this.cacheDuration) {
   
      return cached;
    }

    // 重新获取数据
    const data = await this.fetchStockData(pid);
    this.stockCache.set(pid, data);
    this.lastUpdateTime[pid] = now;

    return data;
  }

  async fetchStockData(pid) {
   
    const response = await fetch(
      `https://api.stocktv.top/stock/queryStocks?id=${
     pid}&key=${
     API_KEY}`
    );
    return response.json();
  }
}

八、应用开发示例

1. 韩股行情展示组件

<div class="korea-stock-widget">
  <div class="stock-header">
    <span class="symbol">005930</span>
    <span class="name">삼성전자</span>
    <span class="market">KOSPI</span>
  </div>
  <div class="stock-price">
    <span class="price">84,500</span>
    <span class="change positive">+500 (+0.60%)</span>
  </div>
  <div class="stock-details">
    <div>고가: 85,000</div>
    <div>저가: 84,000</div>
    <div>거래량: 2,456만주</div>
    <div>거래대금: 2조 756억원</div>
  </div>
</div>

2. 韩股K线图表

// 使用Chart.js绘制韩股K线
async function renderKoreaKLine(pid) {
   
  const klineData = await fetchKLineData(pid, 'P1D', 30);

  const ctx = document.getElementById('korea-chart').getContext('2d');
  const chart = new Chart(ctx, {
   
    type: 'candlestick',
    data: {
   
      datasets: [{
   
        label: '주가',
        data: klineData.map(item => ({
   
          x: new Date(item.time),
          o: item.open,
          h: item.high,
          l: item.low,
          c: item.close
        }))
      }]
    },
    options: {
   
      scales: {
   
        x: {
    type: 'time' },
        y: {
   
          ticks: {
   
            callback: value => value.toLocaleString('ko-KR')
          }
        }
      }
    }
  });
}

3. 实时监控系统

class KoreaStockMonitor {
   
  constructor() {
   
    this.ws = null;
    this.subscriptions = new Set();
    this.priceAlerts = new Map();
  }

  connect() {
   
    this.ws = new WebSocket(`wss://ws-api.stocktv.top/connect?key=${
     API_KEY}`);

    this.ws.onmessage = (event) => {
   
      const data = JSON.parse(event.data);
      this.processData(data);
    };

    // 断线重连
    this.ws.onclose = () => {
   
      setTimeout(() => this.connect(), 5000);
    };
  }

  subscribe(pid) {
   
    this.subscriptions.add(pid);
    if (this.ws.readyState === WebSocket.OPEN) {
   
      this.ws.send(JSON.stringify({
   
        type: 'subscribe',
        pids: [pid]
      }));
    }
  }

  processData(data) {
   
    if (data.type !== 1) return;

    const price = parseInt(data.last_numeric);
    const pid = data.pid;

    // 检查价格预警
    if (this.priceAlerts.has(pid)) {
   
      const alerts = this.priceAlerts.get(pid);
      alerts.forEach(alert => this.checkAlert(alert, price));
    }

    // 更新UI
    this.updateUI(pid, {
   
      price: price,
      change: data.pc,
      changePercent: data.pcp,
      volume: data.turnover_numeric
    });
  }
}

九、错误处理与监控

1. 错误码处理

const ERROR_CODES = {
   
  200: '정상 처리되었습니다',
  400: '잘못된 요청 파라미터',
  401: '인증 실패',
  404: '존재하지 않는 종목',
  429: '요청 빈도 초과',
  500: '서버 내부 오류'
};

function handleApiError(code, message) {
   
  const errorMsg = ERROR_CODES[code] || '알 수 없는 오류';
  console.error(`API 오류 ${
     code}: ${
     errorMsg} - ${
     message}`);

  // 使用友好提示
  showUserMessage(`오류가 발생했습니다: ${
     errorMsg}`);

  // 记录日志
  logError({
   
    code,
    message,
    timestamp: new Date().toISOString()
  });
}

2. 网络异常处理

async function fetchWithRetry(url, retries = 3) {
   
  for (let i = 0; i < retries; i++) {
   
    try {
   
      const response = await fetch(url);
      if (response.ok) return response;

      // 特定状态码重试
      if ([500, 502, 503, 504].includes(response.status)) {
   
        await delay(1000 * Math.pow(2, i)); // 指数退避
        continue;
      }

      throw new Error(`HTTP ${
     response.status}`);
    } catch (error) {
   
      if (i === retries - 1) throw error;
      await delay(1000 * Math.pow(2, i));
    }
  }
}

十、性能优化建议

1. 数据缓存策略

class KoreaDataCache {
   
  constructor() {
   
    this.cache = new Map();
    this.maxAge = {
   
      realtime: 3000,    // 3秒
      kline: 60000,     // 1分钟
      company: 3600000  // 1小时
    };
  }

  get(key, type = 'realtime') {
   
    const item = this.cache.get(key);
    if (!item) return null;

    const age = Date.now() - item.timestamp;
    if (age > this.maxAge[type]) {
   
      this.cache.delete(key);
      return null;
    }

    return item.data;
  }

  set(key, data, type = 'realtime') {
   
    this.cache.set(key, {
   
      data,
      timestamp: Date.now(),
      type
    });
  }
}

2. 请求批量化

// 批量查询替代单个查询
async function batchFetchStocks(pids) {
   
  const batchSize = 50; // 每次最多查询50个
  const results = [];

  for (let i = 0; i < pids.length; i += batchSize) {
   
    const batch = pids.slice(i, i + batchSize);
    const batchResult = await fetch(
      `https://api.stocktv.top/stock/stocksByPids?pids=${
     batch.join(',')}&key=${
     API_KEY}`
    );
    results.push(...(await batchResult.json()).data);
  }

  return results;
}

十一、合规性注意事项

1. 数据使用规范

  • 遵循韩国金融监管要求
  • 注明数据来源
  • 不得用于非法交易
  • 尊重知识产权

2. 用户提示

  • 投资有风险提示
  • 数据延迟说明
  • 免责声明

3. 技术合规

  • 遵循GDPR和韩国个人信息保护法
  • 实施数据加密
  • 定期安全审计

本指南详细介绍了StockTV韩国股票市场API的对接方案,涵盖从基础查询到高级应用的各个场景。开发者可根据实际需求选择合适的接口和技术方案,构建稳定、高效的韩股数据应用。建议在实际开发过程中结合具体业务需求,进行适当的性能优化和用户体验改进。

相关文章
|
18天前
|
人工智能 数据可视化 安全
王炸组合!阿里云 OpenClaw X 飞书 CLI,开启 Agent 基建狂潮!(附带免费使用6个月服务器)
本文详解如何用阿里云Lighthouse一键部署OpenClaw,结合飞书CLI等工具,让AI真正“动手”——自动群发、生成科研日报、整理知识库。核心理念:未来软件应为AI而生,CLI即AI的“手脚”,实现高效、安全、可控的智能自动化。
34833 46
王炸组合!阿里云 OpenClaw X 飞书 CLI,开启 Agent 基建狂潮!(附带免费使用6个月服务器)
|
12天前
|
人工智能 自然语言处理 安全
Claude Code 全攻略:命令大全 + 实战工作流(建议收藏)
本文介绍了Claude Code终端AI助手的使用指南,主要内容包括:1)常用命令如版本查看、项目启动和更新;2)三种工作模式切换及界面说明;3)核心功能指令速查表,包含初始化、压缩对话、清除历史等操作;4)详细解析了/init、/help、/clear、/compact、/memory等关键命令的使用场景和语法。文章通过丰富的界面截图和场景示例,帮助开发者快速掌握如何通过命令行和交互界面高效使用Claude Code进行项目开发,特别强调了CLAUDE.md文件作为项目知识库的核心作用。
11746 36
Claude Code 全攻略:命令大全 + 实战工作流(建议收藏)
|
7天前
|
人工智能 JavaScript Ubuntu
低成本搭建AIP自动化写作系统:Hermes保姆级使用教程,长文和逐步实操贴图
我带着怀疑的态度,深度使用了几天,聚焦微信公众号AIP自动化写作场景,写出来的几篇文章,几乎没有什么修改,至少合乎我本人的意愿,而且排版风格,也越来越完善,同样是起码过得了我自己这一关。 这个其实OpenClaw早可以实现了,但是目前我觉得最大的区别是,Hermes会自主总结提炼,并更新你的写作技能。 相信就冲这一点,就值得一试。 这篇帖子主要就Hermes部署使用,作一个非常详细的介绍,几乎一步一贴图。 关于Hermes,无论你赞成哪种声音,我希望都是你自己动手行动过,发自内心的选择!
2460 25
|
30天前
|
人工智能 JSON 机器人
让龙虾成为你的“公众号分身” | 阿里云服务器玩Openclaw
本文带你零成本玩转OpenClaw:学生认证白嫖6个月阿里云服务器,手把手配置飞书机器人、接入免费/高性价比AI模型(NVIDIA/通义),并打造微信公众号“全自动分身”——实时抓热榜、AI选题拆解、一键发布草稿,5分钟完成热点→文章全流程!
45744 157
让龙虾成为你的“公众号分身” | 阿里云服务器玩Openclaw
|
6天前
|
人工智能 弹性计算 安全
Hermes Agent是什么?怎么部署?超详细实操教程
Hermes Agent 是 Nous Research 于2026年2月开源的自进化AI智能体,支持跨会话持久记忆、自动提炼可复用技能、多平台接入与200+模型切换,真正实现“越用越懂你”。MIT协议,部署灵活,隐私可控。
1696 3
|
12天前
|
机器学习/深度学习 存储 人工智能
还在手写Skill?hermes-agent 让 Agent 自己进化能力
Hermes-agent 是 GitHub 23k+ Star 的开源项目,突破传统 Agent 依赖人工编写Aegnt Skill 的瓶颈,首创“自我进化”机制:通过失败→反思→自动生成技能→持续优化的闭环,让 Agent 在实践中自主构建、更新技能库,持续自我改进。
1817 6

热门文章

最新文章

下一篇
开通oss服务