본문 바로가기
PHP/PHP

[해외주식 API] polygon.io - 미국 금융 데이터 API 사용하기

by 집탱구리 2023. 4. 15.
반응형

polygon.io 

 

Polygon.io API는

금융 데이터를 손쉽게 접근하고 분석할 수 있도록 제공되는 인터페이스이다.

주식, 암호화폐 등 다양한 금융 상품에 대한 실시간 시장 데이터를 제공한다.

다양한 기능과 안정성을 가지고 있으며, 사용자가 쉽게 사용할 수 있는 문서와 SDK를 제공한다.

이를 통해 사용자는 원하는 데이터를 요청하고 적절한 응답을 받을 수 있습니다.

Polygon.io API를 사용하면 주가, 거래량, 거래 시간 등 다양한 정보를 얻을 수 있으며, 이를 통해 투자 전략 수립 및 시장 동향 파악에 도움을 받을 수 있다.

풍부한 데이터를 제공하며, 과거 데이터 및 실시간 데이터를 제공한다.

금융 분석가, 트레이더, 개발자 등 다양한 사용자들에게 필요한 데이터를 제공하며,

높은 수준의 정확성과 신뢰성을 제공한다.

 

 

Polygon.io API 사용방법

  1. 계정 생성 및 인증
    Polygon.io 홈페이지에서 계정을 생성하고 API key를 발급받아야 한다.
    API key는 API를 사용할 때 인증에 사용된다.

    여러 플랜 중 Basic 플랜으로 API를 무료로 사용 할 수 있다.
    Basic 플랜은 분당 5회 밖에 호출 할 수 없고 과거 2년간의 데이터만 불러올 수 있으며 실시간 데이터가 아닌 전날 장마감된 시점까지의 데이터만 가져올 수 있다는 단점이 있다.
    하지만 개인 프로젝트를 위해 API조회만을 위한 플랜으로서는 손색이 없어보인다.


    dashboard로 이동해 API Key를 확인한다.
    API Key를 추가 하거나 삭제 할 수 있다.




  2. API 문서 확인
    Polygon.io에서는 API 사용을 위한 문서를 제공한다.
    API 문서를 확인하여 사용하고자 하는 API의 요청과 응답 형식, 매개변수, 인증 등을 파악해야 한다.

 

Polygon.io에서는 다양한 프로그래밍 언어를 지원하는 클라이언트 라이브러리를 제공한다. 클라이언트 라이브러리는 API에 액세스하기 위한 편리한 인터페이스를 제공하여 개발자가 더 쉽게 데이터를 다운로드하고 처리할 수 있도록 한다.

 

* WebSocket & RESTful APIs *

 Python Client 

 Go Client 

 Js Client 

 PHP Client 

 JVM Client SDK written in Kotlin 

 

 

 

 

 

3. API 호출
API 문서를 기반으로 API 호출을 수행한다. HTTP 요청을 보내고, API key와 함께 요청 매개변수를 전송한다.
응답으로 JSON 형식의 데이터가 반환된다.

아래는 PHP예제이다.

<?php

// API 키
$api_key = "your_api_key_here";

// 종목 코드
$ticker = "AAPL";

// API 요청 URL
$url = "https://api.polygon.io/v1/last/stocks/{$ticker}?apiKey={$api_key}";

// CURL 초기화
$curl = curl_init();

// CURL 옵션 설정
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

// API 호출 및 결과 수신
$response = curl_exec($curl);

// CURL 종료
curl_close($curl);

// JSON 데이터를 배열로 변환
$data = json_decode($response, true);

// 결과 출력
echo "Ticker: " . $data["symbol"] . "<br>";
echo "Price: $" . number_format($data["last"]["price"], 2) . "<br>";
echo "Timestamp: " . $data["last"]["timestamp"] . "<br>";

위의 코드에서 your_api_key_here 부분에는 Polygon.io에서 발급받은 API 키를 입력한다.

또한, $ticker 변수에는 조회하려는 종목의 코드를 입력하면 된다.

위의 예제에서는 종목 코드, 가격, 타임스탬프 정보를 출력한다.

 

API를 검색 하고 나서 반환되는 데이터 페이지가 더 있는 경우 previous_url, next_url 속성을 반환하다.

예를들어, Reference Tickers API에 대한 요청이다.

 https://api.polygon.io/vX/reference/tickers?limit=2

{
  "results": [
    {
      "ticker": "A",
      "name": "Agilent Technologies Inc."
    },
        {
      "ticker": "AA",
      "name": "Alcoa Corporation"
    }
  ],
  "status": "OK",
  "request_id": "491513491b2bdd4c1647cd98bc8bc6df",
  "count": 2,
  "next_url": "https://api.polygon.io/vX/reference/tickers?cursor=YWN0aXZlP..."
}

next_url데이터의 다음 페이지를 가져오려면 API 키 쿼리 매개변수를 추가하는 값에 대해 HTTP GET을 수행한다.

https://api.polygon.io/vX/reference/tickers?apiKey=... 

 

또한, 세분화된 검색을 허용하기 위해 쿼리 패턴을 제공한다. 특정 필드에서 다음 연산자를 사용 할 수 있다.

  • lt미만
  • lte보다 작거나 같음
  • gt~보다 큰
  • gte크거나 같음

예를 들어:

  • ?ticker.gte=A
  • ?ticker.gte=A&ticker.lt=B
  • ?last_updated_utc.gt=2021-03-30T00:00:00Z

 Tickers API를 사용하여 A로 시작한느 티커를 얻기 위해서는 아래 처럼 요청하면된다. (A이상 B미만)

https://api.polygon.io/vX/reference/tickers?sort=ticker&ticker.get=A&ticker.lt=B

 

2021년 4월 22일 이후에 게시된 뉴스 기사를 가져오는 URL이다.

https://api.polygon.io/v2/reference/news?limit=2&sort=ticker&published_utc.gt=2021-04-22T00:00:00-04:00

 

 

4. 데이터 처리
반환된 JSON 데이터를 파싱하여 원하는 형식으로 가공한다.
예를 들어, 주가 정보를 얻고자 한다면, 받아온 데이터에서 필요한 정보를 추출하고 분석하여 처리한다.

{
    "ticker": "AAPL",
    "queryCount": 100,
    "resultsCount": 100,
    "adjusted": true,
    "results": [
        {
            "T": "AAPL",
            "v": 155,
            "vw": 95.21,
            "o": 96.47,
            "c": 93.74,
            "h": 96.77,
            "l": 93.45,
            "t": 1589008800000,
            "n": 3253749
        },
        {
            "T": "AAPL",
            "v": 175,
            "vw": 95.94,
            "o": 95.87,
            "c": 96.04,
            "h": 96.05,
            "l": 94.11,
            "t": 1589095200000,
            "n": 2535792
        }
    ]
}

주요 정보는 "ticker" (주식 코드), "queryCount" (조회 요청 횟수), "resultsCount" (반환된 결과 수), "adjusted" (조정 여부) 등이 있습니다. "results" 필드에는 각각의 시간대별 주가 정보가 객체 형태로 배열로 반환된다. 객체에는 시간대("t"), 시가("o"), 고가("h"), 저가("l"), 종가("c"), 거래량("v") 등의 정보가 포함된다.

반응형

댓글