This endpoint retrieves a single exact option contract by its full contract name. It returns the same core contract-level fields as /v1/options/chain, but scoped to a single instrument.
Use it when the user has already selected a contract, and you need a clean, direct lookup for contract details, pricing, liquidity, implied volatility, and related metadata without loading the full chain.
Asset Type Compatibility
This endpoint is applicable to listed option contracts for supported underlying assets.
- Stocks and ETFs: Supported when the stock has listed options coverage in the provider
- Mutual funds: Generally not applicable.
If a ticker is valid but has no options coverage, the response can return an empty items array.
When to Use This Endpoint
- Open a contract detail panel after a user clicks a specific call or put in the chain table.
- Confirm the selected contract before adding it to a watchlist, strategy builder, or trade idea flow.
- Refresh a single contract snapshot without reloading the entire options chain.
- Support detail drawers, side panels, modals, or confirmation steps in options UI flows.
- Enable deep-link or saved-state flows where the UI stores only the contract_name.
- Feed pricing, AI, or strategy workflows that operate on a single already-identified contract.
Request Parameters
v1/options/contracts
Full option contract identifier.
curl --location "https://api.finimpulse.com/v1/options/contracts" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer <API_TOKEN>" \
-d '{
"contract_name": "NVDA260311C00155000"
}'
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
var client = new HttpClient();
var url = "https://api.finimpulse.com/v1/options/contracts";
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", "<API_TOKEN>");
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var json = @"{
""contract_name"": ""NVDA260311C00155000""
}";
var content = new StringContent(json, Encoding.UTF8, "application/json");
var response = await client.PostAsync(url, content);
var result = await response.Content.ReadAsStringAsync();
Console.WriteLine(result);
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.finimpulse.com/v1/options/contracts",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"Authorization: Bearer <API_TOKEN>"
],
CURLOPT_POSTFIELDS => json_encode(
[
"contract_name" => "NVDA260311C00155000"
]
)
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import urllib.request
import json
url = "https://api.finimpulse.com/v1/options/contracts"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer <API_TOKEN>"
}
data = {
"contract_name": "NVDA260311C00155000"
}
req = urllib.request.Request(url,
data=json.dumps(data).encode("utf-8"),
headers=headers,
method="POST")
with urllib.request.urlopen(req) as response:
result = json.loads(response.read().decode("utf-8"))
print(result)
const https = require('https');
const data = JSON.stringify({
"contract_name": "NVDA260311C00155000"
});
const options = {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer <API_TOKEN>',
'Content-Length': Buffer.byteLength(data)
}
};
const req = https.request('https://api.finimpulse.com/v1/options/contracts', options, (res) => {
let body = '';
res.on('data', chunk => body += chunk);
res.on('end', () => console.log(JSON.stringify(JSON.parse(body), null, 2)));
});
req.on('error', (e) => console.error(e));
req.write(data);
req.end();
Response
The response returns a single contract snapshot for the requested option identifier.
Asset identifier (ticker symbol).
Current/reference price of the asset associated with the contract snapshot.
Contract expiration date (YYYY-MM-DD).
Full option contract identifier.
Contract side. Expected values – call/put.
Strike price of the contract.
Pricing currency.
Last traded contract price.
Absolute change in contract price versus prior reference.
Percentage change in contract price (returned as fraction).
Traded contract volume.
Open interest for the contract.
Current bid price.
Current ask price.
Contract size classification (e.g., REGULAR).
Timestamp of the last recorded trade for the contract.
Implied volatility (returned as fraction).
Indicates whether the contract is currently in the money based on the underlying/reference price.
Array of greeks (e.g., delta, gamma, theta, vega, rho). Returns null if values are not available.
{
"task_id": "4785c224-8286-4ff4-965a-64fb4de47a4f",
"status_code": 20000,
"status_message": "OK",
"cost": 0.0004,
"data": {
"contract_name": "NVDA260311C00155000"
},
"result": {
"symbol": "NVDA",
"underlying_price": 182.65,
"expiration_date": "2026-03-11",
"contract_name": "NVDA260311C00155000",
"option_type": "call",
"strike": 155,
"currency": "USD",
"last_price": 24.6,
"change": -1.559999,
"percent_change": -5.9633,
"volume": 20,
"open_interest": 108,
"bid": 25.1,
"ask": 29.3,
"contract_size": "REGULAR",
"last_trade_date": "2026-03-09 15:51:46",
"implied_volatility": -3444640.17943362,
"in_the_money": true,
"greeks": {
"delta": 0,
"gamma": -0,
"theta": -0.02,
"vega": 0,
"rho": 0
}
}
}Notes
- The contract must be requested by the exact contract_name. If the identifier is missing or malformed, the contract cannot be resolved.
- For contract discovery, use /v1/options/expirations/{symbol} and /v1/options/chain first, then use /v1/options/contracts for exact contract lookup.
