REST API Reference
Automate, extend and combine our platform with other services to create custom solutions.
Our interface aims to be as user friendly as possible, using JSON responses and HTTP codes to indicate errors. To get started, simply generate an API key below and give one of our CURL examples a try.
Please let us know if you have any questions or comments.
How it Works
In a nutshell, our system monitors "Alert Conditions" that users can create and destroy using HTTP requests. When an alert condition becomes true, an alert trigger fires and a message gets sent to the appropriate notification channel (such as a webhook event, a Telegram message or an SMS). To get started, create a free account and request an API token below.Please let us know if you have any questions or comments.
Table of Contents
Your API Tokens
Create an Alert Condition
Get a Specific Alert Condition
Enable/Disable an Alert Condition
Delete an Alert Condition
Errors
Rate limiting
Reacting to an Alert
Create an Alert Condition
Create a Coin Listing Alert
Create a Price Alert
Create a Percent Price Alert
Create a Periodic Price Alert
Create a Bitcoin Mempool Alert
Create a Volume Alert
Create a Wallet Watch Alert
Get all Alert ConditionsCreate a Price Alert
Create a Percent Price Alert
Create a Periodic Price Alert
Create a Bitcoin Mempool Alert
Create a Volume Alert
Create a Wallet Watch Alert
Get a Specific Alert Condition
Enable/Disable an Alert Condition
Delete an Alert Condition
Errors
Rate limiting
Reacting to an Alert
Your API Tokens
Authentication is performed via HTTP Basic Auth, where your API token is the basic auth username (the password is left blank). All API requests require authentication and must be made over HTTPS. For help getting started, try pasting one of our CURL examples below into a command line. Never share your API token.
Token
Status
--
--
POST /v1/alert-conditions
Create an Alert Condition
Attribute
Description
type
An alert condition type.
new_coin|price|percent_price|periodic_price|bitcoin_mempool|wallet
new_coin|price|percent_price|periodic_price|bitcoin_mempool|wallet
currency
A supported cryptocurrency code, such as BTC. View our list of supported coins. We also support ANY for new_coin alert types, which acts as a wildcard.
channel
A supported notification channel. A JSON object with a name of
sms|email|push|phonecall|browser|webhook|slack|telegram|discord
sms|email|push|phonecall|browser|webhook|slack|telegram|discord
exchange
A supported cryptocurrency exchange. View our list of supported exchanges. We also support ANY, which acts as a wildcard.
target_currency
A supported crypto or fiat code to measure the price of the currency attribute with.
USD|BTC|USDT|EUR|GBP|AUD|CAD|JPY|KRW|CNY|NZD
USD|BTC|USDT|EUR|GBP|AUD|CAD|JPY|KRW|CNY|NZD
price
The target price of the currency to be monitored.
threshold
The target value of a currency to cross.
percent
The amount of change required to satisfy a percent_price alert condition.
metric
The metric to monitor the Bitcoin Mempool with.
megabytes|unconfirmedtxns
megabytes|unconfirmedtxns
blockchain
A supported Wallet Watch blockchain: AVAX|BSC|BTC|ETH|MATIC|OP|TRX.
address
A valid Bitcoin or Ethereum address.
direction
The direction to monitor when a threshold is crossed.
For percent_price use up|down. For wallet use increases|decreases|changes.
For percent_price use up|down. For wallet use increases|decreases|changes.
window
Number of minutes to compare a percent_price change. Minimum value is 1. For periodic_price, the minimum value is 5.
run_once
Optional. Once an alert condition fires, it should become disabled. Default: false
cooldown
Number of minutes an alert condition should cooldown or wait to be re-evalauted after firing. Minimum value is 5.
note
An arbitrary string that will be included as part of the notification when the alert condition fires.
Coin Listing Alert Example
{
type: 'new_coin',
currency: 'ANY',
channel: { 'name': 'email' },
exchange: 'Binance'
}
Curl example:type: 'new_coin',
currency: 'ANY',
channel: { 'name': 'email' },
exchange: 'Binance'
}
Price Alert Example
{
type: 'price',
currency: 'ETH',
target_currency: 'USD',
price: '400.00',
direction: 'above',
channel: { 'name': 'telegram' },
exchange: 'Gemini'
}
Curl example:type: 'price',
currency: 'ETH',
target_currency: 'USD',
price: '400.00',
direction: 'above',
channel: { 'name': 'telegram' },
exchange: 'Gemini'
}
Percent Price Alert Example
{
type: 'percent_price',
currency: 'BTC',
percent: '10.5',
direction: 'up',
window: 60,
channel: { 'name': 'slack' },
exchange: 'Binance'
}
Curl example:type: 'percent_price',
currency: 'BTC',
percent: '10.5',
direction: 'up',
window: 60,
channel: { 'name': 'slack' },
exchange: 'Binance'
}
Periodic Price Alert Example
{
type: 'periodic_price',
currency: 'BTC',
target_currency: 'USD',
window: 5,
channel: { 'name': 'slack' },
exchange: 'Binance'
}
Curl example:type: 'periodic_price',
currency: 'BTC',
target_currency: 'USD',
window: 5,
channel: { 'name': 'slack' },
exchange: 'Binance'
}
Bitcoin Mempool Alert Example
{
type: 'bitcoin_mempool',
threshold: '50',
direction: 'above',
metric: 'megabytes',
channel: { 'name': 'sms' }
}
Curl example:type: 'bitcoin_mempool',
threshold: '50',
direction: 'above',
metric: 'megabytes',
channel: { 'name': 'sms' }
}
Volume Alert Example
{
type: 'volume',
currency: 'BTC',
exchange: 'Binance',
window: 5,
threshold: 10,
channel: { 'name': 'webhook' }
}
Curl example:type: 'volume',
currency: 'BTC',
exchange: 'Binance',
window: 5,
threshold: 10,
channel: { 'name': 'webhook' }
}
Wallet Watch Alert Example
{
type: 'wallet',
blockchain: 'ETH',
address: '0x72c930652AcbcAc0ceFeA1e5b8e2D83A48523a9E',
direction: 'changes',
channel: { 'name': 'discord' }
}
Curl example:type: 'wallet',
blockchain: 'ETH',
address: '0x72c930652AcbcAc0ceFeA1e5b8e2D83A48523a9E',
direction: 'changes',
channel: { 'name': 'discord' }
}
Response Structure:
A JSON object is returned, which corresponds with the newly created alert condition. The id field can be used to modify or delete the alert condition in subsequent API calls.
HTTP/1.1 200 OK
{
id: 1,
type: 'new_coin',
currency: 'ANY',
channel: {
'name': 'email',
'confirmed': true
},
exchange: 'Binance'
}
{
id: 1,
type: 'new_coin',
currency: 'ANY',
channel: {
'name': 'email',
'confirmed': true
},
exchange: 'Binance'
}
GET /v1/alert-conditions[?type=<alert_type>]
Get All Alert Conditions
Curl example:
Response Structure:
An array of alert conditions is returned.
HTTP/1.1 200 OK
[
{
id: 1,
type: 'new_coin',
currency: 'ANY',
channel: {
'name': 'email',
'confirmed': true
},
exchange: 'Binance'
},
{
id: 2,
type: 'price',
currency: 'ETH',
target_currency: 'USD',
price: '400.00',
direction: 'above',
channel: {
'name': 'telegram',
'confirmed': true
},
exchange: 'Gemini'
},
...
]
[
{
id: 1,
type: 'new_coin',
currency: 'ANY',
channel: {
'name': 'email',
'confirmed': true
},
exchange: 'Binance'
},
{
id: 2,
type: 'price',
currency: 'ETH',
target_currency: 'USD',
price: '400.00',
direction: 'above',
channel: {
'name': 'telegram',
'confirmed': true
},
exchange: 'Gemini'
},
...
]
GET /v1/alert-conditions/<id>
Get a Specific Alert Condition
Curl example:
Response Structure:
HTTP/1.1 200 OK
{
id: 1,
type: 'new_coin',
currency: 'ANY',
channel: {
'name': 'email',
'confirmed': true
},
exchange: 'Binance'
}
{
id: 1,
type: 'new_coin',
currency: 'ANY',
channel: {
'name': 'email',
'confirmed': true
},
exchange: 'Binance'
}
PUT /v1/alert-conditions/<id>
Enable/Disable an Alert Condition
Request Structure:
{
enabled: false
}
Curl example:enabled: false
}
Response Structure:
HTTP/1.1 200 OK
{
status: "success"
}
{
status: "success"
}
DELETE /v1/alert-conditions/<id>
Delete an Alert Condition
Curl example:
Response Structure:
HTTP/1.1 200 OK
{
status: "success"
}
{
status: "success"
}
Errors
Error Response:
HTTP/1.1 400 Bad Request
{
status: "error"
message: "A description of the error."
}
{
status: "error"
message: "A description of the error."
}
Code
Name
Description
200
OK
A successful response
400
Bad Request
The request was unacceptable, often due to missing a required parameter.
401
Unauthorized
Invalid API Token
403
Quota Reached
Alert condition quota reached
404
Not Found
The requested resource does not exist
420
Too Many Requests
You've made too many requests in a given time window. We recommend an exponential backoff for further requests
Rate Limiting
We will rate limit requests per API token to 2 req/sec. If you go over the rate limit, a 429 response will be returned and you should try again in a few minutes.Reacting to an Alert
Our webhook notifications are generally a good compliment to the REST API. They allow users to programmatically react to an alert as soon as one is triggered. Visit the FAQ to learn more about webhooks, or visit the Webhook Reference to view example JSON objects for each of our alert types.Have a question?