curl --request GET \
--url https://api.aries.com/v1/options/snapshot/{underlyingAsset}/{optionContract} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.aries.com/v1/options/snapshot/{underlyingAsset}/{optionContract}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.aries.com/v1/options/snapshot/{underlyingAsset}/{optionContract}', 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/snapshot/{underlyingAsset}/{optionContract}",
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/snapshot/{underlyingAsset}/{optionContract}"
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/snapshot/{underlyingAsset}/{optionContract}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aries.com/v1/options/snapshot/{underlyingAsset}/{optionContract}")
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{
"requestId": "6901ccfe43be44e62c437b958758e480",
"results": {
"breakEvenPrice": 260.625,
"day": {
"change": 0,
"changePercent": 0,
"close": 147.62,
"high": 148.41,
"lastUpdated": 1775678400000000000,
"low": 147.62,
"open": 148.41,
"previousClose": 147.62,
"volume": 4,
"vwap": 147.9625
},
"details": {
"contractType": "call",
"exerciseStyle": "american",
"expirationDate": "2026-04-10",
"sharesPerContract": 100,
"strikePrice": 110,
"ticker": "O:AAPL260410C00110000"
},
"fmv": 150.626,
"fmvLastUpdated": 1775764519938981000,
"greeks": {
"delta": 0.9866008816205978,
"gamma": 0.00030351939549158076,
"theta": -2.5708677258514525,
"vega": 0.00384419352968541
},
"impliedVolatility": 9.52866677365293,
"lastQuote": {
"ask": 152.4,
"askExchange": 300,
"askSize": 135,
"bid": 148.85,
"bidExchange": 300,
"bidSize": 136,
"lastUpdated": 1775764799797068500,
"midpoint": 150.625,
"timeframe": "REAL-TIME"
},
"lastTrade": {
"conditions": [
240
],
"exchange": 308,
"price": 147.62,
"sipTimestamp": 1775665726017723100,
"size": 1,
"timeframe": "REAL-TIME"
},
"openInterest": 1,
"underlyingAsset": {
"changeToBreakEven": 0.639,
"lastUpdated": 1775779195495831800,
"price": 259.986,
"ticker": "AAPL",
"timeframe": "DELAYED"
}
},
"status": "OK"
}Option contract snapshot
Retrieve a point-in-time snapshot for a single option contract: metadata, day bar, last quote, last trade, Greeks, and underlying context when available. Responses may be cached for a short period.
Use Case: Display live-style option pricing, Greeks, and NBBO for a specific contract (for example after resolving a symbol from expiry and chain endpoints).
curl --request GET \
--url https://api.aries.com/v1/options/snapshot/{underlyingAsset}/{optionContract} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.aries.com/v1/options/snapshot/{underlyingAsset}/{optionContract}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.aries.com/v1/options/snapshot/{underlyingAsset}/{optionContract}', 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/snapshot/{underlyingAsset}/{optionContract}",
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/snapshot/{underlyingAsset}/{optionContract}"
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/snapshot/{underlyingAsset}/{optionContract}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aries.com/v1/options/snapshot/{underlyingAsset}/{optionContract}")
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{
"requestId": "6901ccfe43be44e62c437b958758e480",
"results": {
"breakEvenPrice": 260.625,
"day": {
"change": 0,
"changePercent": 0,
"close": 147.62,
"high": 148.41,
"lastUpdated": 1775678400000000000,
"low": 147.62,
"open": 148.41,
"previousClose": 147.62,
"volume": 4,
"vwap": 147.9625
},
"details": {
"contractType": "call",
"exerciseStyle": "american",
"expirationDate": "2026-04-10",
"sharesPerContract": 100,
"strikePrice": 110,
"ticker": "O:AAPL260410C00110000"
},
"fmv": 150.626,
"fmvLastUpdated": 1775764519938981000,
"greeks": {
"delta": 0.9866008816205978,
"gamma": 0.00030351939549158076,
"theta": -2.5708677258514525,
"vega": 0.00384419352968541
},
"impliedVolatility": 9.52866677365293,
"lastQuote": {
"ask": 152.4,
"askExchange": 300,
"askSize": 135,
"bid": 148.85,
"bidExchange": 300,
"bidSize": 136,
"lastUpdated": 1775764799797068500,
"midpoint": 150.625,
"timeframe": "REAL-TIME"
},
"lastTrade": {
"conditions": [
240
],
"exchange": 308,
"price": 147.62,
"sipTimestamp": 1775665726017723100,
"size": 1,
"timeframe": "REAL-TIME"
},
"openInterest": 1,
"underlyingAsset": {
"changeToBreakEven": 0.639,
"lastUpdated": 1775779195495831800,
"price": 259.986,
"ticker": "AAPL",
"timeframe": "DELAYED"
}
},
"status": "OK"
}Authorizations
OAuth2 Bearer token: obtain an access token from the token endpoint and send it in the Authorization header.
Path Parameters
Underlying equity symbol (for example AAPL).
"AAPL"
OCC-format options contract identifier (for example O:AAPL240119C00190000).
"O:AAPL260410C00110000"
Response
Option contract snapshot returned successfully.
Single option contract snapshot (OptionContractSnapshotResponse). Responses may be cached for about five minutes.
Pagination URL when applicable; omitted when not used.
Request identifier from upstream data.
One option contract row in a snapshot response (OptionContractSnapshotDataDTO). Optional fields are omitted when absent.
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?