인증
API사용을 위한 인증 토큰 발급 규격을 설명합니다.
토큰은 만료 시간(24시간)이 있으며 만료 시간 후에는 사용이 불가하고 재발급이 필요합니다.
토큰이 외부로 노출된 경우 악용의 소지가 있으므로 유의 바랍니다.
토큰 발급에 횟수 제한은 없으며, 발급 된 토큰은 모두 사용 가능하나
토큰 만료 시간 안에 재사용하는 것을 권장합니다.
과도한 토큰 발급 요청 시 HTTP 429(Too many request) 에러가 발생할 수 있습니다.
토큰 발급
curl -X POST 'https://omni.ibapi.kr/v1/auth/token' \
-H 'X-IB-Client-Id: 아이디' \
-H 'X-IB-Client-Passwd: 비밀번호'
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public final class Auth {
public static void main(String[] args){
HttpURLConnection conn = null;
try{
URL url = new URL( "https://omni.ibapi.kr/v1/auth/token" );
conn = (HttpURLConnection)url.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("POST");
conn.setRequestProperty("Accept", "application/json");
conn.setRequestProperty("X-IB-Client-Id", "아이디"); //발급받은 계정 아이디 입력
conn.setRequestProperty("X-IB-Client-Passwd", "비밀번호"); //발급받은 계정 비밀번호 입력
conn.connect();
InputStream is = conn.getInputStream();
BufferedReader in = new BufferedReader(new InputStreamReader(is));
String line = "";
StringBuffer buff = new StringBuffer();
while ( ( line = in.readLine() ) != null ){
buff.append(line + "\n");
}
String response = buff.toString().trim();
System.out.println(response);
}catch (Exception e){
}finally{
conn.disconnect();
}
}
}
package main
import (
"fmt"
"net/http"
"io/ioutil"
)
func main() {
url := "https://omni.ibapi.kr/v1/auth/token"
method := "POST"
client := &http.Client {
}
req, err := http.NewRequest(method, url, nil)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("X-IB-Client-Id", "<발급 받은 ID>")
req.Header.Add("X-IB-Client-Passwd", "<발급 받은 PASSWORD>")
req.Header.Add("Accept", "application/json")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://omni.ibapi.kr/v1/auth/token',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => array(
'X-IB-Client-Id: <발급 받은 ID>',
'X-IB-Client-Passwd: <발급 받은 PASSWORD>',
'Accept: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var request = require('request');
var options = {
'method': 'POST',
'url': 'https://omni.ibapi.kr/v1/auth/token',
'headers': {
'X-IB-Client-Id': '<발급 받은 ID>',
'X-IB-Client-Passwd': '<발급 받은 PASSWORD>',
'Accept': 'application/json'
}
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
e
using System;
using RestSharp;
namespace HelloWorldApplication {
class HelloWorld {
static void Main(string[] args) {
var client = new RestClient("https://omni.ibapi.kr/v1/auth/token");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("X-IB-Client-Id", "<발급 받은 ID>");
request.AddHeader("X-IB-Client-Passwd", "<발급 받은 PASSWORD>");
request.AddHeader("Accept", "application/json");
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
}
}
}
var settings = {
"url": "https://omni.ibapi.kr/v1/auth/token",
"method": "POST",
"timeout": 5,
"headers": {
"X-IB-Client-Id": "<발급 받은 ID>",
"X-IB-Client-Passwd": "<발급 받은 PASSWORD>",
"Accept": "application/json"
},
};
$.ajax(settings).done(function (response) {
console.log(response);
});
import requests
url = "https://omni.ibapi.kr/v1/auth/token"
payload={}
headers = {
'X-IB-Client-Id': '<발급 받은 ID>',
'X-IB-Client-Passwd': '<발급 받은 PASSWORD>',
'Accept': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
require "uri"
require "net/http"
url = URI("https://omni.ibapi.kr/v1/auth/token")
https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-IB-Client-Id"] = "<발급 받은 ID>"
request["X-IB-Client-Passwd"] = "<발급 받은 PASSWORD>"
request["Accept"] = "application/json"
response = https.request(request)
puts response.read_body
Request
Header
Name | Type | Description |
---|---|---|
X-IB-Client-Id | String | OMNI API ID |
X-IB-Client-Passwd | String | OMNI API Password |
Accept | String | application/json |
Response
Header
Name | Type | Description |
---|---|---|
Content-Type | String | application/json |
Body
Name | Type | Description |
---|---|---|
code | String(4) | API호출 결과 코드 |
result | String | API호출 결과 설명 |
data | Object | API호출 결과 데이터 |
Last updated