인증
API사용을 위한 인증 토큰 발급 규격을 설명합니다.
토큰은 만료 시간(24시간)이 있으며 만료 시간 후에는 사용이 불가하고 재발급이 필요합니다.
토큰이 외부로 노출된 경우 악용의 소지가 있으므로 유의 바랍니다.
토큰 발급에 횟수 제한은 없으며, 발급 된 토큰은 모두 사용 가능하나
토큰 만료 시간 안에 재사용하는 것을 권장합니다.
과도한 토큰 발급 요청 시 HTTP 429(Too many request) 에러가 발생할 수 있습니다.
토큰 발급
POST
/v1/auth/token
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
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
Response
Header
Name
Type
Description
Content-Type
String
application/json
Body
Name
Type
Description
code
String(4)
API 호출
결과 코드
result
String
API 호출
결과 설명
data
Object
API 호출
결과 데이터
{
"code": "A000",
"result": "Success",
"data": {
"schema": "Bearer",
"expired": "2024-00-00T00:00:00+09:00",
"token": "발급된 토큰"
}
}
{
"result": "Invalid authentication information",
"code": "A100"
}
{
"result": "Unknown error",
"code": "A999"
}
Last updated