polygon.io
Version:
Isomorphic Javascript client for Polygon.io Stocks, Forex, and Crypto APIs
75 lines (68 loc) • 2.04 kB
text/typescript
// Crypto QUOTE:
import { w3cwebsocket as Websocket } from "websocket";
import { getWsClient } from "../transport";
export interface IQuoteCryptoEvent {
ev: string; // Event Type
pair: string; // Crypto Pair
lp: number; // Last Trade Price
ls: number; // Last Trade Size
bp: number; // Bid Price
bs: number; // Bid Size
ap: number; // Ask Price
as: number; // Ask Size
t: number; // Exchange Timestamp Unix ( ms )
x: number; // Exchange ID
r: number; // Received @ Polygon Timestamp
}
// Crypto TRADE:
export interface ITradeCryptoEvent {
ev: string; // Event Type
pair: string; // Crypto Pair
p: number; // Price
t: number; // Timestamp Unix ( ms )
s: number; // Size
c: number[]; // Condition
i: string; // Trade ID ( Optional )
x: number; // Exchange ID
r: number; // Received @ Polygon Timestamp
}
// Crypto AGGREGATE:
export interface IAggregateCryptoEvent {
ev: string; // Event Type
pair: string; // Crypto Pair
o: number; // Open Price
ox: number; // Open Exchange
h: number; // High Price
hx: number; // High Exchange
l: number; // Low Price
lx: number; // Low Exchange
c: number; // Close Price
cx: number; // Close Exchange
v: number; // Volume of Trades in Tick
s: number; // Tick Start Timestamp
e: number; // Tick End Timestamp
}
// Crypto SIP ( NBBO ):
export interface ISIPCryptoEvent {
ev: string; // Event Type
pair: string; // Crypto Pair
as: number; // Ask Size
ap: number; // Ask Price
ax: number; // Ask Exchange
bs: number; // Bid Size
bp: number; // Bid Price
bx: number; // Bid Exchange
t: number; // Tick Start Timestamp
}
// Crypto LEVEL2:
export interface ILevel2CryptoEvent {
ev: string; // Event Type
pair: string; // Crypto Pair
b: any[];
a: any[];
t: number; // Timestamp Unix ( ms )
x: number; // Exchange ID
r: number; // Tick Received @ Polygon Timestamp
}
export const getCryptoWebsocket = (apiKey: string, apiBase = "wss://socket.polygon.io"): Websocket =>
getWsClient(`${apiBase}/crypto`, apiKey);