curl --request GET \
--url https://api.unusualwhales.com/api/market/{sector}/sector-tide \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.unusualwhales.com/api/market/{sector}/sector-tide"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.unusualwhales.com/api/market/{sector}/sector-tide', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.unusualwhales.com/api/market/{sector}/sector-tide",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.unusualwhales.com/api/market/{sector}/sector-tide"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.unusualwhales.com/api/market/{sector}/sector-tide")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.unusualwhales.com/api/market/{sector}/sector-tide")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"date": "2023-09-08T00:00:00.000Z",
"net_call_premium": "660338.0000",
"net_put_premium": "-547564.0000",
"net_volume": 23558,
"timestamp": "2023-09-08T13:30:00.000Z"
},
{
"date": "2023-09-08T00:00:00.000Z",
"net_call_premium": "4907138.0000",
"net_put_premium": "-1709539.0000",
"net_volume": 64312,
"timestamp": "2023-09-08T13:31:00.000Z"
},
{
"date": "2023-09-08T00:00:00.000Z",
"net_call_premium": "4839265.0000",
"net_put_premium": "-2731793.0000",
"net_volume": 80029,
"timestamp": "2023-09-08T13:32:00.000Z"
}
]
}{
"code": "authentication_required",
"documentation_url": "https://api.unusualwhales.com/docs",
"expected_format": "uuid",
"message": "The API token provided is not in the expected format. Unusual Whales API tokens are UUIDs, such as 123e4567-e89b-12d3-a456-426614174000.",
"reason": "malformed_token",
"request_id": "GNI_YTC1CRnw2LACGBvE",
"retryable": false,
"support_email": "[email protected]",
"token_url": "https://unusualwhales.com/dashboard/api"
}{
"code": "missing_access",
"documentation_url": "https://api.unusualwhales.com/docs",
"message": "The API token provided is valid but is not permitted to access this route.",
"reason": "route_not_permitted",
"request_id": "GNI_YTC1CRnw2LACGBvE",
"retryable": false,
"support_email": "[email protected]",
"token_url": "https://unusualwhales.com/dashboard/api"
}{
"msg": "Invalid path input: MSFT12 (valid example: AAPL) - Invalid query input(s): date=2023-02-140 (valid example: date=2024-01-18)",
"path": "/api/darkpool/MSFT12",
"query": "date=2023-02-140",
"url": "localhost:4000/api/darkpool/MSFT12?date=2023-02-140"
}"Something went wrong"Sector Tide
The Sector tide is similar to the Market Tide. While the market tide is based on options activity of the whole market the sector tide is only based on the options activity of companies which are in that specific sector
curl --request GET \
--url https://api.unusualwhales.com/api/market/{sector}/sector-tide \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.unusualwhales.com/api/market/{sector}/sector-tide"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.unusualwhales.com/api/market/{sector}/sector-tide', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.unusualwhales.com/api/market/{sector}/sector-tide",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.unusualwhales.com/api/market/{sector}/sector-tide"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.unusualwhales.com/api/market/{sector}/sector-tide")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.unusualwhales.com/api/market/{sector}/sector-tide")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"date": "2023-09-08T00:00:00.000Z",
"net_call_premium": "660338.0000",
"net_put_premium": "-547564.0000",
"net_volume": 23558,
"timestamp": "2023-09-08T13:30:00.000Z"
},
{
"date": "2023-09-08T00:00:00.000Z",
"net_call_premium": "4907138.0000",
"net_put_premium": "-1709539.0000",
"net_volume": 64312,
"timestamp": "2023-09-08T13:31:00.000Z"
},
{
"date": "2023-09-08T00:00:00.000Z",
"net_call_premium": "4839265.0000",
"net_put_premium": "-2731793.0000",
"net_volume": 80029,
"timestamp": "2023-09-08T13:32:00.000Z"
}
]
}{
"code": "authentication_required",
"documentation_url": "https://api.unusualwhales.com/docs",
"expected_format": "uuid",
"message": "The API token provided is not in the expected format. Unusual Whales API tokens are UUIDs, such as 123e4567-e89b-12d3-a456-426614174000.",
"reason": "malformed_token",
"request_id": "GNI_YTC1CRnw2LACGBvE",
"retryable": false,
"support_email": "[email protected]",
"token_url": "https://unusualwhales.com/dashboard/api"
}{
"code": "missing_access",
"documentation_url": "https://api.unusualwhales.com/docs",
"message": "The API token provided is valid but is not permitted to access this route.",
"reason": "route_not_permitted",
"request_id": "GNI_YTC1CRnw2LACGBvE",
"retryable": false,
"support_email": "[email protected]",
"token_url": "https://unusualwhales.com/dashboard/api"
}{
"msg": "Invalid path input: MSFT12 (valid example: AAPL) - Invalid query input(s): date=2023-02-140 (valid example: date=2024-01-18)",
"path": "/api/darkpool/MSFT12",
"query": "date=2023-02-140",
"url": "localhost:4000/api/darkpool/MSFT12?date=2023-02-140"
}"Something went wrong"Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
A singular sector.
Basic Materials, Communication Services, Consumer Cyclical, Consumer Defensive, Energy, Financial Services, Healthcare, Industrials, Real Estate, Technology, Utilities "Real Estate"
Query Parameters
A trading date in the format of YYYY-MM-DD. This is optional and by default the last trading date.
"2024-01-18T00:00:00.000Z"
Response
Defined as (call premium ask side) - (call premium bid side).
"-29138464"
Defined as (put premium ask side) - (put premium bid side).
"23924325"
Defined as (call volume ask side) - (call volume bid side) - ((put volume ask side) - (put volume bid side)).
64312
The start time of the tick as a timestamp with timezone.
"2023-09-07T13:30:00.000Z"
Was this page helpful?
