from finance_dev import FinanceDev, models
import os
with FinanceDev(
security=models.Security(
client_id=os.getenv("FINANCE_DEV_CLIENT_ID", ""),
client_secret=os.getenv("FINANCE_DEV_CLIENT_SECRET", ""),
),
) as fd_client:
res = fd_client.options.get_option_quotes(ticker="O:AAPL230120C00150000", timestamp="2024-01-15", timestamp_from="2024-01-01", timestamp_after="2024-01-01", timestamp_to="2024-01-31", timestamp_before="2024-01-31", order=models.GetOptionQuotesOrder.DESC, limit=1000)
while res is not None:
# Handle items
res = res.next()curl --request GET \
--url https://api.aries.com/v1/options/quotes \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.aries.com/v1/options/quotes', 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.aries.com/v1/options/quotes",
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.aries.com/v1/options/quotes"
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.aries.com/v1/options/quotes")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aries.com/v1/options/quotes")
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{
"nextUrl": "https://api.aries.com/v1/options/quotes?next=YXA9NzM2JmFzPSZsaW1pdD0xMDAwJm9yZGVyPWRlc2Mmc29ydD10aW1lc3RhbXAmdGltZXN0YW1wLmx0ZT0yMDIzLTAxLTEzVDIwJTNBNTAlM0EyOC43NjE2MDI4MTZa&ticker=O%3AAAPL230120C00150000",
"requestId": "abdd5e0f749621028802750474bc45cc",
"results": [
{
"askExchange": 312,
"askPrice": 0.01,
"askSize": 448,
"bidExchange": 312,
"bidPrice": 0,
"bidSize": 0,
"sequenceNumber": 397175,
"sipTimestamp": 1674225000502655700
},
{
"askExchange": 322,
"askPrice": 0.03,
"askSize": 605,
"bidExchange": 322,
"bidPrice": 0.02,
"bidSize": 946,
"sequenceNumber": 1456051843,
"sipTimestamp": 1673643028761602800
}
],
"status": "OK"
}Options Quotes
Get quote data for options contracts including bid, ask, and Greeks. Track bid-ask spreads and historical quote changes for options.
Use Case: Build options chains, display bid-ask quotes, and calculate implied volatility from options pricing.
from finance_dev import FinanceDev, models
import os
with FinanceDev(
security=models.Security(
client_id=os.getenv("FINANCE_DEV_CLIENT_ID", ""),
client_secret=os.getenv("FINANCE_DEV_CLIENT_SECRET", ""),
),
) as fd_client:
res = fd_client.options.get_option_quotes(ticker="O:AAPL230120C00150000", timestamp="2024-01-15", timestamp_from="2024-01-01", timestamp_after="2024-01-01", timestamp_to="2024-01-31", timestamp_before="2024-01-31", order=models.GetOptionQuotesOrder.DESC, limit=1000)
while res is not None:
# Handle items
res = res.next()curl --request GET \
--url https://api.aries.com/v1/options/quotes \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.aries.com/v1/options/quotes', 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.aries.com/v1/options/quotes",
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.aries.com/v1/options/quotes"
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.aries.com/v1/options/quotes")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aries.com/v1/options/quotes")
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{
"nextUrl": "https://api.aries.com/v1/options/quotes?next=YXA9NzM2JmFzPSZsaW1pdD0xMDAwJm9yZGVyPWRlc2Mmc29ydD10aW1lc3RhbXAmdGltZXN0YW1wLmx0ZT0yMDIzLTAxLTEzVDIwJTNBNTAlM0EyOC43NjE2MDI4MTZa&ticker=O%3AAAPL230120C00150000",
"requestId": "abdd5e0f749621028802750474bc45cc",
"results": [
{
"askExchange": 312,
"askPrice": 0.01,
"askSize": 448,
"bidExchange": 312,
"bidPrice": 0,
"bidSize": 0,
"sequenceNumber": 397175,
"sipTimestamp": 1674225000502655700
},
{
"askExchange": 322,
"askPrice": 0.03,
"askSize": 605,
"bidExchange": 322,
"bidPrice": 0.02,
"bidSize": 946,
"sequenceNumber": 1456051843,
"sipTimestamp": 1673643028761602800
}
],
"status": "OK"
}Authorizations
OAuth2 Bearer token: obtain an access token from the token endpoint and send it in the Authorization header.
Query Parameters
Options contract ticker symbol. Enter the exact option symbol returned by option search or chain endpoints.
"O:AAPL230120C00150000"
Query by timestamp (YYYY-MM-DD or nanoseconds)
"2024-01-15"
Timestamp start filter. Returns records at or after this timestamp.
"2024-01-01"
Timestamp lower-bound filter. Returns records after this timestamp, excluding the timestamp itself.
"2024-01-01"
Timestamp end filter. Returns records at or before this timestamp.
"2024-01-31"
Timestamp upper-bound filter. Returns records before this timestamp, excluding the timestamp itself.
"2024-01-31"
Sort order for returned records. Use asc for oldest first or desc for newest first when supported. Sort direction for results. Use ascending for oldest or smallest first, descending for newest or largest first.
asc, desc "asc"
Maximum number of results to return. Use smaller values for UI pages and larger values for exports within API limits.
1 <= x <= 500001000
Sort field used for ordering. Massive documents this separately from order, so enter the provider-supported field name in the text box, for example timestamp.
Pagination cursor from the previous response. Omit it on the first request, then send the returned cursor to fetch the next page.
Response
Successful response
Paginated list of historical quotes for an options contract.
URL for next page of results
Unique request ID
Array of options quote objects
Show child attributes
Show child attributes
Status string from the upstream data provider — typically OK for a successful response. Treat any other value as an error indicator alongside the HTTP status code.
Was this page helpful?