0% found this document useful (0 votes)
4K views49 pages

Schwab Trader API - Streamer Guide

Uploaded by

ermohitgupta16
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4K views49 pages

Schwab Trader API - Streamer Guide

Uploaded by

ermohitgupta16
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 49

Schwab Streamer API

The Streamer API enables clients to connect into different services to stream market data and
account activity with JSON-formatting via WebSockets. Authentication and entitlements are
provided via the Access token generated from the POST Token endpoint. Streamer information to
establish the connection can be found on the GET User Preference endpoint. Client as referenced
throughout this document is in reference to the application.

Contents

1. API Contract

1.1 Services available:


Service Name Description Delivery Type

LEVELONE_EQUITIES Level 1 Equities Change

LEVELONE_OPTIONS Level 1 Options Change

LEVELONE_FUTURES Level 1 Futures Change

LEVELONE_FUTURES_OPTIONS Level 1 Futures Options Change

LEVELONE_FOREX Level 1 Forex Change

NYSE_BOOK Level Two book for Equities Whole

NASDAQ_BOOK Level Two book for Equities Whole

OPTIONS_BOOK Level Two book for Options Whole

CHART_EQUITY Chart candle for Equities All Sequence

CHART_FUTURES Chart candle for Futures All Sequence

SCREENER_EQUITY Advances and Decliners for Equities Whole

SCREENER_OPTION Advances and Decliners for Options Whole

ACCT_ACTIVITY Get account activity information such All Sequence


as order fills, etc

1.2 Request Format


A client request will consist of an array of one or more commands. Each command will include:
Request Name Parameter

service Service ADMIN, LEVELONE_EQUITY etc. Please see Service


Name Names table above.
(required)

command Command LOGIN, SUBS, ADD, UNSUBS, VIEW, LOGOUT


(required)

requestid Request ID Unique number that will identify this request.


(required)

SchwabClientCustomerId Client's `schwabClientCustomerId` as found in GET User


customer ID Preference endpoint

SchwabClientCorrelId Client's `schwabClientCorrelId` as found in GET User Preference


session ID endpoint. Unique identifier value that is attached to
requests and messages that allow reference to a
particular transaction or event chain.

parameters Any fields, version, credential, symbol, frequency, period, etc


parameter
(optional)

Command Name

LOGIN Initial request when opening a new connection. This must be successful before
sending other commands.

SUBS Subscribes to a set of symbols or keys for a particular service. This overwrites all
previously subscribed symbols for that service. This is a convenient way to wipe out
old subscription list and start fresh, but it's not the most efficient. If you only want to
add one symbol to 300 already subscribed, use an ADD instead.

For example:

1. SUBS A,B,C (fresh sub for LEVELONE_EQUITIES)


2. SUBS A (fresh sub for LEVELONE_EQUITIES, previous SUBS of B,C are
unsub'ed, only A is sub'ed)

ADD Adds a new symbol for a particular service. This does NOT wipe out previous symbols
that were already subscribed. It is OK to use ADD for first subscription command
instead of SUBS.
For example:

1. ADD A,B (fresh sub for LEVELONE_EQUITIES)


2. ADD C (additional symbol C added to A, B. All 3 symbols will stream)

UNSUBS This unsubscribes a symbol to a list of subscribed symbol for a particular service.

VIEW This changes the field subscription for a particular service. It will apply to all symbols
for that particular service.

LOGOUT Logs out of the streamer connection. Streamer will close the connection.

Example:
One Request
{
"requestid": "0",
"service": "LEVELONE_EQUITIES",
"command": "SUBS",
"SchwabClientCustomerId": "Someone",
"SchwabClientCorrelId": "3be0b7e7-5b8b-4fd3-9bed-7f49106cfe1",
"parameters": {
"keys": "AAPL",
"fields":
"0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27
,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,5
2,53,54"
}
}

Multiple Requests
{
"requests": [
{
"requestid": "1",
"service": "ADMIN",
"command": "LOGIN",
"SchwabClientCustomerId": "Someone",
"SchwabClientCorrelId": "2be0b7e7-5b8b-4fd3-9bed-7f49106cfe1",
"parameters": {
"Authorization": "PN",
"SchwabClientChannel": "IO",
"SchwabClientFunctionId": "Tradeticket"
}
},
{
"requestid":"3",
"service":"LEVELONE_EQUITIES",
"command":"SUBS",
"SchwabClientCustomerId":"Someone",
"SchwabClientCorrelId":"2be0b7e7-5b8b-4fd3-9bed-7f49106cfe1",
"parameters":{
"keys":"AAPL",
"fields":"0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19"
}
}
]
}

1.3 Response Format


There are currently three types of responses:

- Response – Response to a request


- Notify – Notification of heartbeats
- Data – Streaming market data

A client response will consist of an array of one or more responses. Each response will include:
Response Request Name Parameter
Type

service Service Name ADMIN, LEVELONE_EQUITY, etc. Please


see Service Names table in section 5.
response
notify requestid Request ID Unique number that will identify the original
request
data
command Command from LOGIN, SUBS, ADD, UNSUBS, VIEW,
the request LOGOUT

content Data content


Examples:

{"notify":[{"heartbeat":"1668715930582"}]}

{
"response": [
{
"service": "LEVELONE_EQUITIES",
"command": "SUBS",
"requestid": "0",
"SchwabClientCorrelId": "3be0b7e7-5b8b-4fd3-9bed-7f49106cfe1",
"timestamp": 1668715930582,
"content": {
"code": 0,
"msg": "SUBS command succeeded"
}
}
]
}
{
"data": [
{
"service": "LEVELONE_EQUITIES",
"timestamp": 1668715930585,
"command": "SUBS",
"content": [
{
"1": 149.81,
"2": 149.82,
"3": 149.811,
"4": 4,
"5": 2,
"6": "Q",
"7": "P",
"8": 56049058,
"9": 300,
"10": 151.48,
"11": 146.15,
"12": " ",
"13": 142.41,
"14": "Q",
"15": false,
"16": "APPLE INC",
"17": "D",
"18": 146.43,
"19": 7.401,
"20": 182.94,
"21": 129.04,
"22": 0.04062,
"23": 0,
"24": 0,
"25": 0,
"26": "NASDAQ",
"27": "",
"28": true,
"29": true,
"30": 149.811,
"31": 300,
"32": 7.401,
"33": "Normal",
"34": 149.811,
"35": 1668715930570,
"36": 1668715930345,
"37": 1668715930345,
"38": 1668715930570,
"39": 1668715930522,
"40": "XNAS",
"41": "ARCX",
"42": "XADF",
"43": 5.19696651,
"44": 5.19696651,
"45": 7.401,
"46": 5.19696651,
"key": "AAPL",
"delayed": false
}
]
}
]
}

1.4 Response Codes


Cod Name Descriptio Connecti Error Notes
e n on
Severed

0 SUCCESS The No n/a - success


request
was
successful

3 LOGIN_DENIED The user Yes Client should reconnect and re-login


login has with new token. Client to determine
been if failed logins are expected.
denied

9 UNKNOWN_FAILURE Error of TBD Should be investigated by Trader API


last-resort team. Please contact
when no TraderAPI@Schwab.com if you see
specific this with the `schwabClientCorrelId`
error was of subscription.
caught

11 SERVICE_NOT_AVAILABLE The service No Should be investigated by Trader API


is not team. Please contact
available TraderAPI@Schwab.com if you see
this with the `schwabClientCorrelId`
of subscription. Either client is
requesting an unsupported service
or the service is not running from
the source.

12 CLOSE_CONNECTION You've Yes Client to determine if max


reached connections are expected and
the proper response to customer. A limit
maximum of 1 Streamer connection at any
number of given time from a given user is
connection available.
s allowed.

19 REACHED_SYMBOL_LIMIT Subscribe No Client to determine if symbol limit is


or Add expected and proper response to
command customer.
has
reached a
total
subscriptio
n symbol
limit

20 STREAM_CONN_NOT_FOUN No TBD Server cannot find the connection


D connection based on the provided
found for SchwabClientCustomerId &
user or SchwabClientCorrelId in the request.
new
Should be investigated by Trader API
session but
team. Please contact
no login
TraderAPI@Schwab.com if you see
request
this with the `schwabClientCorrelId`
of subscription.

Common causes:
• Client does not wait for a
successful LOGIN response
and issues a command
immediately after the
LOGIN command. There
could be a race condition
where the SUB is processed
before the LOGIN.
• Client
modifies SchwabClientCusto
merId or
SchwabClientCorrelId after
logging in.
• Streamer has disconnected
the client while processing
the command.

21 BAD_COMMAND_FORMAT Command No Client should investigate why a


fails to command is not formatted properly
match
specificatio
n

22 FAILED_COMMAND_SUBS Subscribe No
Should be investigated by Trader API
command
team. Please contact
could not
TraderAPI@Schwab.com if you see
be
this with the `schwabClientCorrelId`
completed
of subscription.
successfull
y Common causes:

23 FAILED_COMMAND_UNSUBS Unsubscrib
e
command
could not
be • Two or more commands are
completed processed in parallel
successfull causing one to fail.
y

24 FAILED_COMMAND_ADD Add
command
could not
be
completed
successfull
y

25 FAILED_COMMAND_VIEW View
command
could not
be
completed
successfull
y

26 SUCCEEDED_COMMAND_SU Subscribe No n/a - success


BS command
completed
successfull
y

27 SUCCEEDED_COMMAND_UN Unsubscrib
SUBS e
command
completed
successfull
y

28 SUCCEEDED_COMMAND_AD Add
D command
completed
successfull
y

29 SUCCEEDED_COMMAND_VIE View
W command
completed
successfull
y

30 STOP_STREAMING Signal that Yes See message provided for details.


streaming
Common Causes:
has been
terminated
due to
administrat • Typically due to no
or action, subscriptions.
inactivity,
or
slowness

1.5 Delivery Types


Delivery Types Description

All Sequence All data is streamed to the client and includes a sequence number. Data is not conflated
by the streamer although the underlying source of the data may conflate.

Change Only fields that clients are interested in, and have changed, are streamed to the
client. Data is conflated by the streamer.

Whole Data is streamed as a whole unit to the client, in throttled mode.

All Sequence All data is streamed to the client and includes a sequence number. Data is not conflated
by the streamer although the underlying source of the data may conflate.

2 Admin Services

2.1 Login Request


Delivery Types Description Type Length Description

service String Variable ADMIN

command String Variable LOGIN

requestid Integer Variable Unique number that will identify this


request.

SchwabClientCustomerId String Variable `schwabClientCustomerId` as found


in GET User Preference endpoint

SchwabClientCorrelId String Variable Unique identifier value that is


attached to requests and messages
that allow reference to a particular
transaction or event chain.
parameters Authorization String Variable Access token as found from POST
Token endpoint.

SchwabClientChannel String 2 Identifies the channel as found


through the GET User Preferences
endpoint.

SchwabClientFunctionId String 5 Identifies the page or source in the


channel where quote is being called
from (5 alphanumeric).

Found through the GET User


Preferences endpoint.

Streamer LOGIN Request Example:


{
"requests": [
{
"requestid": "1",
"service": "ADMIN",
"command": "LOGIN",
"SchwabClientCustomerId": "Someone",
"SchwabClientCorrelId": "5be0b7e7-5b8b-4fd3-9bed-7f49106cfe96",
"parameters": {
"Authorization": "Access Token",
"SchwabClientChannel": "N9",
"SchwabClientFunctionId": "APIAPP"
}
}
]
}

2.2 Login Response


Type Request Name Type Description

service ADMIN

response requestid Unique request ID number

command LOGIN

SchwabClientCorrelId Correlation ID string passed by client

timestamp Milliseconds since epoch

code Integer 0 = Success, 3 = Login denied

content msg String server=hostname-instance (for


troubleshooting purposes)
status=PN (Non-Paying Pro)
NP (Non-Pro)
PP (Paying-Pro)

if no entitlements, client will get


nfl/delayed quotes

error message if there's a login issue

Streamer LOGIN Response Examples:


Login Successful

{
"response": [
{
"service": "ADMIN",
"command": "LOGIN",
"requestid": "1",
"SchwabClientCorrelId": "5be0b7e7-5b8b-4fd3-9bed-7f49106cfe96",
"timestamp": 1669828276886,
"content": {
"code": 0,
"msg": "server=s0166bdv-1;status=PN"
}
}
]
}

Login Denied
{
"response": [
{
"service": "ADMIN",
"command": "LOGIN",
"requestid": "1",
"SchwabClientCorrelId": "5be0b7e7-5b8b-4fd3-9bed-7f49106cfe96",
"timestamp": 1669828982588,
"content": {
"code": 3,
"msg": "Login Denied.: token is invalid or has expired."
}
}
]
}
2.3 Logout request
Streamer Contract name Type Length Description

service String Variable ADMIN

command String Variable LOGOUT

requestid Integer Variable Unique number that will identify this request.

SchwabClientCustomerId String Variable Identifies the page or source in the channel where
quote is being called from (5 alphanumeric).

Found through the GET User Preferences endpoint.

SchwabClientCorrelId String Variable Unique identifier value that is attached to requests


and messages that allow reference to a particular
transaction or event chain.

parameters String Variable Can leave empty

2.4 Logout response


Type Request Name Type Description

service ADMIN

response requestid Unique request ID number

command LOGOUT

SchwabClientCorrelId Correlation ID string passed by client

timestamp Milliseconds since epoch

code Integer 0 = Success, 3 = Login denied

content msg String SUCCESS, FAILURE

Streamer Logout Response Examples:

{
"response": [
{
"service": "ADMIN",
"command": "LOGOUT",
"requestid": "0",
"SchwabClientCorrelId": "5be0b7e7-5b8b-4fd3-9bed-7f49106cfe95",
"timestamp": 1669830137089,
"content": {
"code": 0,
"msg": "SUCCESS"
}
}
]
}

3 LEVELONE Services

3.1 LEVELONE_EQUITIES
Level One Equities Request

Streamer Contract Type Length Description


name

service String Variable LEVELONE_EQUITIES

command String Variable SUBS, UNSUBS, ADD, VIEW

requestid Integer Variable Unique number that will identify this


request.

SchwabClientCustomerId String Variable `schwabClientCustomerId` as found in GET


User Preference endpoint

SchwabClientCorrelId String Variable Unique identifier value that is attached


to requests and messages that allow
reference to a particular transaction or
event chain.

parameters keys String Variable Schwab-standard symbols in uppercase


and separated by commas

e.g. AAPL,TSLA,IBM

fields String Variable Please see the LEVELONE_EQUITIES Field


Definition table below

LEVELONE_EQUITIES Request Example:


{
"requests": [
{
"service": "LEVELONE_EQUITIES",
"requestid": 1,
"command": "SUBS",
"SchwabClientCustomerId": "Someone",
"SchwabClientCorrelId": "29bdf6d-b9d0-46dd-8786-424e1577bd",
"parameters": {
"keys": "SCHW,AAPL,SPY",
"fields": "0,1,2,3,4,5,8,10 "
}
}
]
}

Response Field Definitions

Outside of fields that can be subscribed to, Streamer also returns initial data that indicates whether the
data is real time or NFL (delayed).
Field Name Type Field Description Notes, Examples
Source

key String Usually this is the AAPL


symbol

delayed boolean Whether data is - false : data is from a SIP


from the SIP or
NFL SIP stands for Securities Information
Processor. Often considered the example for
market data around the world, a SIP will
collect trade and quote data from multiple
exchanges and consolidate these sources
into a single source of information.

- true : data is from an NFL source

NFL stands for Non-Fee Liable. This either


means the result is returning delayed data
(typically options, futures and futures
options) or the result is returning real-time
data from a subset of exchanges and
therefore does not contain all markets in the
National Plan (typically equity data). Delayed
quotes do not represent the most recent last
or bid/ask; real-time quotes from the subset
of exchanges may not contain the most
recent last or bid/ask.
-
assetMainType String Asset Type BOND, EQUITY, ETF, EXTENDED, FOREX, FUTURE,
FUTURE_OPTION, FUNDAMENTAL, INDEX,
INDICATOR, MUTUAL_FUND, OPTION,
UNKNOWN

assetSubType String Asset sub type ADR, CEF, COE, ETF, ETN, GDR, OEF, PRF, RGT,
UIT, WAR

cusip String 9 digits CUSIP CUSIP number for the instrument, such
as 594918104

LEVELONE_EQUITIES Response Example:


{
"data": [
{
"service": "LEVELONE_EQUITIES",
"timestamp": 1714949592301,
"command": "SUBS",
"content": [
{
"key": "SCHW",
"delayed": false,
"assetMainType": "EQUITY",
"assetSubType": "COE",
"cusip": "808513105",
"1": 76.08,
"2": 76.49,
"3": 76.44,
"4": 3,
"5": 1,
"8": 5414735,
"10": 76.47
},
{
"key": "AAPL",
"delayed": false,
"assetMainType": "EQUITY",
"assetSubType": "COE",
"cusip": "037833100",
"1": 183.75,
"2": 183.8,
"3": 183.8,
"4": 1,
"5": 2,
"8": 163224109,
"10": 187
},
{
"key": "SPY",
"delayed": false,
"assetMainType": "EQUITY",
"assetSubType": "ETF",
"cusip": "78462F103",
"1": 512.3,
"2": 512.32,
"3": 511.29,
"4": 8,
"5": 1,
"8": 72756709,
"10": 512.55
}
]
}
]
}

Fields Field Name Type Field Description Notes, Examples


Source

0 Symbol String Ticker symbol in upper case.

1 Bid Price double Current Bid Price

2 Ask Price double Current Ask Price

3 Last Price double Price at which the last trade


was matched

4 Bid Size int Number of shares for bid Units are "lots" (typically 100 shares
per lot)

Note for NFL data this field can be


0 with a non-zero bid price which
representing a bid size of less than
100 shares.

5 Ask Size int Number of shares for ask See bid size notes.

6 Ask ID char Exchange with the ask

7 Bid ID char Exchange with the bid

8 Total Volume long Aggregated shares traded Volume is set to zero at 7:28am ET.
throughout the day, including
pre/post market hours.
9 Last Size long Number of shares traded with Units are shares
last trade

10 High Price double Day's high trade price According to industry standard,
only regular session trades set the
High and Low.

If a stock does not trade in the


regular session, high and low will
be zero.

High/low reset to ZERO at 3:30am


ET

11 Low Price double Day's low trade price See High Price notes

12 Close Price double Previous day's closing price Closing prices are updated from
the DB at 3:30 AM ET.

13 Exchange ID char Primary "listing" Exchange As long as the symbol is valid, this
data is always present

This field is updated every time the


closing prices are loaded from DB

Exchange Code Realtime/NFL


AMEX A Both

Indicator : Realtime
Only

Indices 0 Realtime
Only

Mutual 3 Realtime
Fund Only

NASDAQ Q Both

NYSE N Both

Pacific P Both

Pinks 9 Realtime
Only

OTCBB U Realtime
Only

14 Marginable boolean Stock approved by the Federal


Reserve and an investor's
broker as being eligible for
providing collateral for margin
debt.

15 Description String A company, index or fund Once per day descriptions are
name loaded from the database at
7:29:50 AM ET.

16 Last ID char Exchange where last trade was


executed

17 Open Price double Day's Open Price According to industry standard,


only regular session trades set the
open

If a stock does not trade during the


regular session, then the open price
is 0.

In the pre-market session, open is


blank because pre-market session
trades do not set the open.

Open is set to ZERO at 3:30am ET.

18 Net Change double LastPrice - ClosePrice

If close is zero, change will be zero

19 52 Week High double Higest price traded in the past Calculated by merging intraday
12 months, or 52 weeks high (from fh) and 52-week high
(from db)

20 52 Week Low double Lowest price traded in the past Calculated by merging intraday low
12 months, or 52 weeks (from fh) and 52-week low (from
db)

21 PE Ratio double Price-to-earnings ratio.


Note that the "price of a share of
The P/E equals the price of a stock" in the definition does update
share of stock, divided by the during the day so this field has the
company's earnings-per-share. potential to stream. However, the
current implementation uses the
closing price and therefore does
not stream throughout the day.

22 Annual double Annual Dividend Amount


Dividend
Amount

23 Dividend Yield double Dividend Yield


24 NAV double Mutual Fund Net Asset Value Load various times after market
close

25 Exchange String Display name of exchange


Name

26 Dividend Date String

27 Regular boolean Is last quote a regular quote


Market Quote

28 Regular boolean Is last trade a regular trade


Market Trade

29 Regular double Only records regular trade


Market Last
Price

30 Regular integer Currently realize/100, only records


Market Last regular trade
Size

31 Regular double RegularMarketLastPrice -


Market Net ClosePrice
Change

32 Security Status String Indicates a symbols current trading


status, Normal, Halted, Closed

33 Mark Price double Mark Price

34 Quote Time in Long Last time a bid or ask updated The difference, measured in
Long in milliseconds since Epoch milliseconds, between the time an
event occurs and midnight, January
1, 1970 UTC.

35 Trade Time in Long Last trade time in milliseconds The difference, measured in
Long since Epoch milliseconds, between the time an
event occurs and midnight, January
1, 1970 UTC.

36 Regular Long Regular market trade time in The difference, measured in


Market Trade milliseconds since Epoch milliseconds, between the time an
Time in Long event occurs and midnight, January
1, 1970 UTC.

37 Bid Time long Last bid time in milliseconds The difference, measured in
since Epoch milliseconds, between the time an
event occurs and midnight, January
1, 1970 UTC.
38 Ask Time long Last ask time in milliseconds The difference, measured in
since Epoch milliseconds, between the time an
event occurs and midnight, January
1, 1970 UTC.

39 Ask MIC ID String 4-chars Market Identifier Code

40 Bid MIC ID String 4-chars Market Identifier Code

41 Last MIC ID String 4-chars Market Identifier Code

42 Net Percent double Net Percentage Change NetChange / ClosePrice * 100


Change

43 Regular double Regular market hours RegularMarketNetChange /


Market percentage change ClosePrice * 100
Percent
Change

44 Mark Price double Mark price net change 7.97


Net Change

45 Mark Price double Mark price percentage change 4.2358


Percent
Change

46 Hard to integer -1 = NULL


Borrow
>= 0 is valid quantity
Quantity

47 Hard To double null = NULL


Borrow Rate
valid range = -99,999.999 to
+99,999.999

48 Hard to integer -1 = NULL


Borrow
1 = true

0 = false

49 shortable integer -1 = NULL

1 = true

0 = false

50 Post-Market double Change in price since the end PostMarketLastPrice -


Net Change of the regular session (typically RegularMarketLastPrice
4:00pm)
51 Post-Market double Percent Change in price since PostMarketNetChange /
Percent the end of the regular session RegularMarketLastPrice * 100
Change (typically 4:00pm)

3.2 LEVELONE_OPTIONS

Please refer to LEVELONE_EQUITIES for REQUESTS and RESPONSE examples. Replace


LEVELONE_EQUITIES with LEVELONE_OPTIONS.
Level One Options Request

Streamer Contract name Type Length Description

service String Variable LEVELONE_OPTIONS

command String Variable SUBS, UNSUBS, ADD, VIEW

requestid Integer Variable Unique number that will identify this


request.

SchwabClientCustomerId String Variable `schwabClientCustomerId` as found in


GET User Preference endpoint

SchwabClientCorrelId String Variable Unique identifier value that is attached


to requests and messages that allow
reference to a particular transaction or
event chain.

parameters keys String Variable Options symbols in uppercase and


separated by commas

Schwab-standard option symbol format:

RRRRRRYYMMDDsWWWWWddd

Where:

• R is the space-filled root


• symbol YY is the expiration year
• MM is the expiration month
• DD is the expiration day
• s is the side: C/P (call/put)
• WWWWW is the whole portion
of the strike price
• nnn is the decimal portion of
the strike price

e.g.: AAPL 251219C00200000

fields String Variable Please see the LEVELONE_OPTIONS


Field Definition table below

Response Field Definitions


Fields Field Name Type Field Description Update Update Notes,
Regular AM/PM Examples
Hours Hours Source

0 Symbol String Ticker symbol in upper N/A N/A


case.

1 Description String A company, index or Yes Yes Descriptions


fund name are loaded
from the
database
daily at 3:30
am ET.

2 Bid Price double Current Bid Price Yes No

3 Ask Price double Current Ask Price Yes No

4 Last Price double Price at which the last Yes No


trade was matched

5 High Price double Day's high trade price Yes No According to


industry
standard,
only regular
session
trades set the
High and
Low.

If a stock
does not
trade in the
regular
session, high
and low will
be zero.
High/low
reset to zero
at 3:30am ET

6 Low Price double Day's low trade price Yes No See High
Price notes

7 Close Price double Previous day's closing No No Closing


price prices are
updated from
the DB at
7:29AM ET.

8 Total Volume long Aggregated contracts Yes No Volume is set


traded throughout the to zero at
day, including pre/post 3:30am ET.
market hours.

9 Open Interest int Yes No

10 Volatility double Option Risk/Volatility Yes No Volatility is


Measurement/Implied reset to 0 at
3:30am ET

11 Money Intrinsic double The value an option Yes No In-the-money


Value would have if it were is positive,
exercised today. out-of-the
Basically, the intrinsic money is
value is the amount by negative.
which the strike price of
an option is profitable
or in-the-money as
compared to the
underlying stock's price
in the market.

12 Expiration Year int

13 Multiplier double

14 Digits int Number of decimal


places

15 Open Price double Day's Open Price Yes No According to


industry
standard,
only regular
session
trades set the
open
If a stock
does not
trade during
the regular
session, then
the open
price is 0.

In the pre-
market
session, open
is blank
because pre-
market
session
trades do not
set the open.

Open is set
to ZERO at
7:28 ET.

16 Bid Size int Number of contracts Yes No From FH


for bid

17 Ask Size int Number of contracts Yes No From FH


for ask

18 Last Size int Number of contracts Yes No Size in 100's


traded with last trade

19 Net Change double Current Last-Prev Close Yes No If(close>0)


change = last
– close
Else
change=0

20 Strike Price double Contract strike price Yes No

21 Contract Type char

22 Underlying String

23 Expiration int
Month

24 Deliverables String

25 Time Value double

26 Expiration Day int


27 Days to int
Expiration

28 Delta double

29 Gamma double

30 Theta double

31 Vega double

32 Rho double

33 Security Status String Yes Yes Indicates a


symbol's
current
trading
status:
Normal,
Halted,
Closed

34 Theoretical double
Option Value

35 Underlying double
Price

36 UV Expiration char
Type

37 Mark Price double Mark Price Yes Yes

38 Quote Time in long Last quote time in Yes Yes The


Long milliseconds since difference,
Epoch measured in
milliseconds,
between the
time an event
occurs and
midnight,
January 1,
1970 UTC.

39 Trade Time in long Last trade time in Yes Yes The


Long milliseconds since difference,
Epoch measured in
milliseconds,
between the
time an event
occurs and
midnight,
January 1,
1970 UTC.

40 Exchange char Exchange character Yes Yes o

41 Exchange String Display name of Yes Yes


Name exchange

42 Last Trading long Last Trading Day Yes Yes


Day

43 Settlement char Settlement type Yes Yes


Type character

44 Net Percent double Net Percentage Change Yes Yes 4.2358


Change

45 Mark Price Net double Mark price net change Yes Yes 7.97
Change

46 Mark Price double Mark price percentage Yes Yes 4.2358


Percent Change change

47 Implied Yield double

48 isPennyPilot boolean

49 Option Root String

50 52 Week High double

51 52 Week Low double

52 Indicative Ask double Only valid for


Price index options
(0 for all
other
options)

53 Indicative Bid double Only valid for


Price index options
(0 for all
other
options)

54 Indicative long The latest time the Only valid for


Quote Time indicative bid/ask index options
prices updated in (0 for all
milliseconds since other
Epoch options)
The
difference,
measured in
milliseconds,
between the
time an event
occurs and
midnight,
January 1,
1970 UTC.

55 Exercise Type char

3.3 LEVELONE_FUTURES

Please refer to LEVELONE_EQUITIES for REQUESTS and RESPONSE examples. Replace


LEVELONE_EQUITIES with LEVELONE_FUTURES.
Level One Futures Fields for Streamer

Streamer Contract Type Length Description


name

service String Variable LEVELONE_FUTURES

command String Variable SUBS, UNSUBS, ADD, VIEW

requestid Integer Variable Unique number that will identify this


request.

SchwabClientCustomerId String Variable `schwabClientCustomerId` as found in


GET User Preference endpoint

SchwabClientCorrelId String Variable Unique identifier value that is attached


to requests and messages that allow
reference to a particular transaction or
event chain.

parameters keys String Variable Futures symbols in upper case and


separated by commas.

Schwab-standard format:

'/' + 'root symbol' + 'month code' +


'year code'

where month code is:


• F: January
• G: February
• H: March
• J: April
• K: May
• M: June
• N: July
• Q: August
• U: September
• V: October
• X: November
• Z: December

and year code is the last two digits of the


year

Common roots:

• ES: E-Mini S&P 500


• NQ: E-Mini Nasdaq 100
• CL: Light Sweet Crude Oil
• GC: Gold
• HO: Heating Oil
• BZ: Brent Crude Oil
• YM: Mini Dow Jones Industrial
Average

fields String Variable Please see the LEVELONE_FUTURES Field


Definition table below

Response Field Definitions


Fields Field Type Field Update Update Notes, Examples
Name Description Regular AM/PM Source
Hours Hours

0 Symbol String Ticker N/A N/A


symbol in
upper case.

1 Bid Price double Current Best Yes Yes


Bid Price
2 Ask Price double Current Best Yes Yes
Ask Price

3 Last Price double Price at Yes Yes


which the
last trade
was matched

4 Bid Size long Number of Yes Yes


contracts for
bid

5 Ask Size long Number of Yes Yes


contracts for
ask

6 Bid ID char Exchange Yes Yes Currently "?" for unknown as


with the best all quotes are CME
bid

7 Ask ID char Exchange Yes Yes Currently "?" for unknown as


with the best all quotes are CME
ask

8 Total long Aggregated Yes Yes


Volume contracts
traded
throughout
the day,
including
pre/post
market
hours.

9 Last Size long Number of Yes Yes


contracts
traded with
last trade

10 Quote Time long Time of the Yes Yes


last quote in
milliseconds
since epoch

11 Trade Time long Time of the Yes Yes


last trade in
milliseconds
since epoch

12 High Price double Day's high Yes Yes


trade price
13 Low Price double Day's low Yes Yes
trade price

14 Close Price double Previous N/A N/A


day's closing
price

15 Exchange ID char Primary N/A N/A Currently "?" for unknown as


"listing" all quotes are CME
Exchange

16 Description String Description N/A N/A


of the
product

17 Last ID char Exchange Yes Yes


where last
trade was
executed

18 Open Price double Day's Open Yes Yes


Price

19 Net Change double Current Last- Yes Yes If(close>0)


Prev Close change = last – close
else change=0

20 Future double Current Yes Yes If(close>0)


Percent percent pctChange = (last –
Change change close)/close
else pctChange=0

21 Exchange String Name of


Name exchange

22 Security String Trading Yes Yes Indicates a symbols current


Status status of the trading status, Normal,
symbol Halted, Closed

23 Open int The total Yes Yes


Interest number of
futures
contracts
that are not
closed or
delivered on
a particular
day

24 Mark double Mark-to- Yes Yes If lastprice is within spread,


Market value value = lastprice
is calculated else
daily using value=(bid+ask)/2
current
prices to
determine
profit/loss

25 Tick double Minimum N/A N/A Minimum price increment of


price contract
movement

26 Tick double Minimum N/A N/A Tick * multiplier field


Amount amount that
the price of
the market
can change

27 Product String Futures N/A N/A From Database


product

28 Future Price String Display in N/A N/A Set from FSP Config
Format fraction or
decimal format is <numerator
format. decimals to
display>,<implied
denominator>

where D=decimal format,


no fractional display

Equity futures will be "D,D"


to indicate pure decimal.

Fixed income futures are


fractional, typically "3,32".

Below is an example for


"3,32":

price=101.8203125

=101 +
0.8203125 (split into
whole and fractional)

=101 +
26.25/32 (Multiply
fractional by implied
denomiator)

=101 +
26.2/32 (round to
numerator decimals to
display)
=101'262 (
display in fractional format)

29 Future String Trading N/A N/A days: 0 = monday-friday, 1


Trading hours = sunday,
Hours 7 = Saturday
0 = [-2000,1700] ==> open,
close
1= [-1530,-1630,-1700,1515]
==> open, close, open,
close
0 = [-1800,1700,d,-
1700,1900] ==> open,
close, DST-flag, open, close

30 Future Is boolean Flag to N/A N/A


Tradable indicate if
this future
contract is
tradable

31 Future double Point value N/A N/A


Multiplier

32 Future Is boolean Indicates if Yes Yes


Active this contract
is active

33 Future double Closing price Yes Yes


Settlement
Price

34 Future String Symbol of N/A N/A


Active the active
Symbol contract

35 Future long Expiration N/A N/A Milliseconds since epoch


Expiration date of this
Date contract

36 Expiration String
Style

37 Ask Time long Time of the Yes Yes


last ask-side
quote in
milliseconds
since epoch
38 Bid Time long Time of the Yes Yes
last bid-side
quote in
milliseconds
since epoch

39 Quoted In boolean Indicates if


Session this contract
has quoted
during the
active
session

40 Settlement long Expiration N/A N/A Milliseconds since epoch


Date date of this
contract

For more examples on Futures Price format, see:


https://www.cmegroup.com/confluence/display/EPICSANDBOX/Fractional+Pricing+-
+Display+Examples

If the DST-flag is present for Futures Trading Hours (field 29), please see the following hours for DST
days:
https://www.cmegroup.com/confluence/display/EPICSANDBOX/Fractional+Pricing+-
+Display+Examples

3.4 LEVELONE_FUTURES_OPTIONS

Please refer to LEVELONE_EQUITIES for REQUESTS and RESPONSE examples. Replace


LEVELONE_EQUITIES with LEVELONE_FUTURES_OPTIONS.
Level One Futures Options Fields for Streamer

Streamer Contract Type Length Description


name

service String Variable LEVELONE_FUTURES_OPTIONS

command String Variable SUBS, UNSUBS, ADD, VIEW

requestid Integer Variable Unique number that will identify this


request.

SchwabClientCustomerId String Variable `schwabClientCustomerId` as found in


GET User Preference endpoint
SchwabClientCorrelId String Variable Unique identifier value that is attached
to requests and messages that allow
reference to a particular transaction or
event chain.

parameters keys String Variable Symbols in upper case and separated by


commas.

Schwab-standard format:

'.' + '/' + 'root symbol' + 'month code' +


'year code' + 'Call/Put code' + 'Strike
Price'

where month code is:

• F: January
• G: February
• H: March
• J: April
• K: May
• M: June
• N: July
• Q: August
• U: September
• V: October
• X: November
• Z: December

and year code is the last two digits of the


year

e.g.: ./OZCZ23C565

fields String Variable Please see the


LEVELONE_FUTURES_OPTIONS Field
Definition table below

Response Field Definitions


Fields Field Type Field Update Update Notes, Examples
Name Description Regular AM/PM Source
Hours Hours

0 Symbol String Ticker symbol in N/A N/A


upper case.
1 Bid Price double Current Bid Price Yes Yes

2 Ask Price double Current Ask Price Yes Yes

3 Last Price double Price at which the Yes Yes


last trade was
matched

4 Bid Size long Number of Yes Yes


contracts for bid

5 Ask Size long Number of Yes Yes


contracts for ask

6 Bid ID char Exchange with the Yes Yes Currently "?" for
bid unknown as all quotes
are CME

7 Ask ID char Exchange with the Yes Yes Currently "?" for
ask unknown as all quotes
are CME

8 Total long Aggregated Yes Yes


Volume contracts traded
throughout the
day, including
pre/post market
hours.

9 Last Size long Number of Yes Yes


contracts traded
with last trade

10 Quote Time long Trade time of the Yes Yes


last quote in
milliseconds since
epoch

11 Trade Time long Trade time of the Yes Yes


last trade in
milliseconds since
epoch

12 High Price double Day's high trade Yes Yes


price

13 Low Price double Day's low trade Yes Yes


price

14 Close Price double Previous day's N/A N/A


closing price
15 Last ID char Exchange where Yes Yes Currently "?" for
last trade was unknown as all quotes
executed are CME

16 Description String Description of the N/A N/A


product

17 Open Price double Day's Open Price Yes Yes

18 Open double
Interest

19 Mark double Mark-to-Market Yes Yes If lastprice is within


value is calculated spread,
daily using current value = lastprice
prices to else
determine value=(bid+ask)/2
profit/loss

20 Tick double Minimum price N/A N/A Minimum price


movement increment of contract

21 Tick double Minimum amount N/A N/A Tick * multiplier field


Amount that the price of
the market can
change

22 Future double Point value N/A N/A


Multiplier

23 Future double Closing price Yes Yes


Settlement
Price

24 Underlying String Underlying symbol N/A N/A


Symbol

25 Strike Price double Strike Price

26 Future long Expiration date of N/A N/A Milliseconds since epoch


Expiration this contract
Date

27 Expiration String
Style

28 Contract Char
Type
29 Security String Yes Yes Indicates a symbol's
Status current trading status:
Normal, Halted, Closed

30 Exchange char Exchange Yes Yes


character

31 Exchange String Display name of Yes Yes


Name exchange

3.5 LEVELONE_FOREX

Please refer to LEVELONE_EQUITIES for REQUESTS and RESPONSE examples. Replace


LEVELONE_EQUITIES with LEVELONE_FOREX.
Level One Forex Request for Streamer

Streamer Contract Type Length Description


name

service String Variable LEVELONE_FOREX

command String Variable SUBS, UNSUBS, ADD, VIEW

requestid Integer Variable Unique number that will identify this


request.

SchwabClientCustomerId String Variable `schwabClientCustomerId` as found in


GET User Preference endpoint

SchwabClientCorrelId String Variable Unique identifier value that is attached


to requests and messages that allow
reference to a particular transaction or
event chain.

parameters keys String Variable Symbols in upper case and separated by


commas.

e.g.: EUR/USD,USD/JPY,AUD/CAD

fields String Variable Please see the LEVELONE_FOREX Field


Definition table below
Response Field Definitions
Fields Field Type Field Update Update Notes, Examples
Name Description Regular AdoubleM/PM Source
Hours Hours

0 Symbol String Ticker symbol N/A N/A


in upper case.

1 Bid Price double Current Bid Yes Yes


Price

2 Ask Price double Current Ask Yes Yes


Price

3 Last Price double Price at which Yes Yes


the last trade
was matched

4 Bid Size long Number of Yes Yes


currency pairs
for bid

5 Ask Size long Number of Yes Yes


currency pairs
for ask

6 Total long Aggregated Yes Yes


Volume currency pairs
traded
throughout
the day,
including
pre/post
market hours.

7 Last Size long Number of Yes Yes


currency pairs
traded with
last trade

8 Quote long Trade time of Yes Yes


Time the last quote
in milliseconds
since epoch

9 Trade Time long Trade time of Yes Yes


the last trade
in milliseconds
since epoch
10 High Price double Day's high Yes Yes
trade price

11 Low Price double Day's low Yes Yes


trade price

12 Close Price double Previous day's N/A N/A


closing price

13 Exchange char

14 Description String Description of N/A N/A


the product

15 Open Price double Day's Open Yes Yes


Price

16 Net double Current Last- Yes Yes If(close>0)


Change Prev Close change = last – close
else change=0

17 Percent double Current Yes Yes If(close>0)


Change percent pctChange = (last –
change close)/close
else pctChange=0

18 Exchange String Name of N/A N/A


Name exchange

19 Digits Int Valid decimal N/A N/A


points

20 Security String Trading status Yes Yes Indicates a symbols


Status of the symbol current trading status,
Normal, Halted,
Closed

21 Tick double Minimum price N/A N/A Minimum price


movement increment for pair

22 Tick double Minimum N/A N/A Tick * multiplier field


Amount amount that from database
the price of
the market can
change

23 Product String Product name N/A N/A

24 Trading String Trading hours N/A N/A


Hours
25 Is Tradable boolean Flag to N/A N/A
indicate if this
forex is
tradable

26 Market String
Maker

27 52 Week double Higest price Yes Yes


High traded in the
past 12
months, or 52
weeks

28 52 Week double Lowest price Yes Yes


Low traded in the
past 12
months, or 52
weeks

29 Mark double Mark-to- Yes Yes


Market value is
calculated
daily using
current prices
to determine
profit/loss

4 BOOK Services

4.1 Book Common


Book Request for Streamer

Streamer Contract Type Length Description


name

service String Variable NYSE_BOOK, NASDAQ_BOOK,


OPTIONS_BOOK

command String Variable SUBS, UNSUBS, ADD, VIEW

requestid Integer Variable Unique number that will identify this


request.

SchwabClientCustomerId String Variable `schwabClientCustomerId` as found in


GET User Preference endpoint
SchwabClientCorrelId String Variable Unique identifier value that is attached
to requests and messages that allow
reference to a particular transaction or
event chain.

parameters keys String Variable Symbols in upper case and separated by


commas.

e.g.: AAPL,TSLA,IBM

fields String Variable Please see the BOOK Field Definition


table below

Response field definitions


Book Fields for Streamer

Fields Field Name Value Type Description

0 Symbol Ticker symbol in String


upper case.

1 Market Snapshot Milliseconds since long Timestamp for the data


Time Epoch

2 Bid Side Levels Price Levels Array Bid side price levels

3 Ask Side Levels Price Levels Array Ask side price levels

Book Price Levels Sub-Field for Streamer

Price Field Name Type Description


Levels

Field #

0 Price double Price for this level

1 Aggregate Size int Aggregate size for this price level

2 Market Maker Count int Number of Market Makers in this price level

3 Array of Market Array Array of market maker sizes for this price level
Makers
Book Market Makers Sub-Field for Streamer

Market Field Name Type Description


Makers

Field #

0 Market String Market Maker ID


Maker ID

1 Size long Size of the Market Maker for this price level

2 Quote Time long Quote time in milliseconds for this Market Maker's quote

5 CHART Services

5.1 CHART_EQUITY
Chart Equity Request for Streamer

Streamer Contract Type Length Description


name

service String Variable CHART_EQUITY

command String Variable SUBS, UNSUBS, ADD, VIEW

requestid Integer Variable Unique number that will identify this


request.

SchwabClientCustomerId String Variable `schwabClientCustomerId` as found in


GET User Preference endpoint

SchwabClientCorrelId String Variable Unique identifier value that is attached


to requests and messages that allow
reference to a particular transaction or
event chain.

parameters keys String Variable Equities symbols in upper case and


separated by commas.

e.g.: AAPL,TSLA,IBM

fields String Variable Please see the CHART_EQUITY Field


Definition table below
Response field definitions
Fields Field Type Field Description Update Update Notes,
Name Regular AM/PM Examples
Hours Hours Source

0 key String Ticker symbol in upper N/A N/A


case.

1 Open Price double Opening price for the Yes Yes


minute

2 High Price double Highest price for the Yes Yes


minute

3 Low Price double Chart's lowest price for Yes Yes


the minute

4 Close Price double Closing price for the Yes Yes


minute

5 Volume double Total volume for the Yes Yes


minute

6 Sequence long Identifies the candle Yes Yes


minute

7 Chart Time long Milliseconds since Yes Yes


Epoch

8 Chart Day int

5.2 CHART_FUTURES
Chart Futures Request for Streamer

Streamer Contract Type Length Description


name

service String Variable CHART_FUTURES

command String Variable SUBS, UNSUBS, ADD, VIEW

requestid Integer Variable Unique number that will identify this


request.

SchwabClientCustomerId String Variable `schwabClientCustomerId` as found in


GET User Preference endpoint
SchwabClientCorrelId String Variable Unique identifier value that is attached
to requests and messages that allow
reference to a particular transaction or
event chain.

parameters keys String Variable Futures symbols in upper case and


separated by commas.

Schwab-standard format:

'/' + 'root symbol' + 'month code' +


'year code'

where month code is:

• F: January
• G: February
• H: March
• J: April
• K: May
• M: June
• N: July
• Q: August
• U: September
• V: October
• X: November
• Z: December

and year code is the last two digits of the


year

Common roots:

• ES: E-Mini S&P 500


• NQ: E-Mini Nasdaq 100
• CL: Light Sweet Crude Oil
• GC: Gold
• HO: Heating Oil
• BZ: Brent Crude Oil
• YM: Mini Dow Jones Industrial
Average

fields String Variable Please see the CHART_FUTURES Field


Definition table below
Field response definitions
Fields Field Type Field Description Update Update Notes,
Name Regular AM/PM Examples
Hours Hours Source

0 key String Ticker symbol in upper N/A N/A


case.

1 Chart long Milliseconds since Yes Yes


Time Epoch

2 Open double Opening price for the Yes Yes


Price minute

3 High Price double Highest price for the Yes Yes


minute

4 Low Price double Chart's lowest price for Yes Yes


the minute

5 Close double Closing price for the Yes Yes


Price minute

6 Volume double Total volume for the Yes Yes


minute

6 SCREENER services

6.1 Screener Common


Screener Request for Streamer

Streamer Contract Type Length Description


name

service String Variable SCREENER_EQUITY, SCREENER_OPTION

command String Variable SUBS, UNSUBS, ADD, VIEW

requestid Integer Variable Unique number that will identify this


request.

SchwabClientCustomerId String Variable `schwabClientCustomerId` as found in


GET User Preference endpoint

SchwabClientCorrelId String Variable Unique identifier value that is attached


to requests and messages that allow
reference to a particular transaction or
event chain.

parameters keys String Variable Symbols in upper case and separated by


commas.

(PREFIX)_(SORTFIELD)_(FREQUENCY)

where PREFIX is:

• Indices: $COMPX $DJI, $SPX.X,


INDEX_ALL
• Exchanges: NYSE, NASDAQ,
OTCBB, EQUITY_ALL
• Option: OPTION_PUT,
OPTION_CALL, OPTION_ALL

and sortField is:

• VOLUME, TRADES,
PERCENT_CHANGE_UP,
PERCENT_CHANGE_DOWN,
AVERAGE_PERCENT_VOLUME

and frequency is:

• 0, 1, 5, 10, 30 60 minutes (0 is
for all day)

fields String Variable Please see the SCREENER Field Definition


table below

Response field definitions


Index Field Type Description Values

0 symbol String The symbol used to Subscribed or requested symbol


look up either actives,
gainers or losers

1 timestamp long Market snapshot 12345613123


timestamp in
milliseconds since
Epoch
2 sortField String Field to sort on VOLUME, TRADES,
PERCENT_CHANGE_UP, PERCENT_CHANGE_D
OWN, AVERAGE_PERCENT_VOLUME

3 frequency Integer Frequency of data to 0, 1, 5, 10, 30 60 minutes (0 is for all day)


sort

4 Items Array Refer to the field table below

Field Type Description

description String Description of instrument

lastPrice double Last trade price (up to 2 decimal places)

marketShare double Market share percentage of instrument (up to 2 decimal places)

netChange double Net change value (up to 2 decimal places)

netPercentChange double Net percent change value (up to 4 decimal places)

symbol String Stock or Option symbol

totalVolume long Total volume for the day

trades long Number of trades for the frequency requested

volume long Volume for the frequency requested

7 ACCOUNT services

7.1 ACCT_ACTIVITY
Account Activity Request for Streamer

Streamer Contract Type Length Description


name

service String Variable ACCOUNT_ACTIVITY

command String Variable SUBS, UNSUBS

requestid Integer Variable Unique number that will identify this


request.
SchwabClientCustomerId String Variable `schwabClientCustomerId` as found in
GET User Preference endpoint

SchwabClientCorrelId String Variable Unique identifier value that is attached


to requests and messages that allow
reference to a particular transaction or
event chain.

parameters keys String Variable A client-provided string that streamer will


populate updates with. Only first key is
used if multiple are provided.

fields String Variable "0" expected

Example:
{
"requests": [
{
"service": "ACCT_ACTIVITY",
"requestid": "2",
"command": "SUBS",
"SchwabClientCustomerId": "Someone",
"SchwabClientCorrelId": "f308b89-19a7-2d18-4a0a-1c5e7120336",
"parameters": {
"keys": "Account Activity",
"fields": "0,1,2,3"
}
}
]
}

Response:
Fields Field Type Value
Name

"seq" Sequence Integer This field identifies the message number. If client reconnects and
receives the same seq number again, it can choose to ignore the
duplicate.

"key" Key String Passed back to the client from the request to identify a subscription
this response belongs to.

1 Account String Account Number that the activity occurred on.


2 Message String Message Type that dictates the format of the Message Data field.
Type

3 Message String The core data for the message. Either JSON-formatted data
Data describing the update, NULL in some cases, or plain text in case of
ERROR.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy