This page provides a condensed, easily copyable reference of our API endpoints for AI agents and LLMs. Copy all the text below and paste it directly into your AI assistant or agent framework to give it full context of the CuteMarkets API!
For human review, pair this condensed agent prompt with OpenAPI, Authentication, Rate Limits and Plans, Error Handling, Options Chain Scanner Architecture, and Paper Trading Bot Data Stack.
Global Context
- Base URL:
https://api.cutemarkets.com/v1/ - Authentication: Pass the API key in the generic Authorization header.
- Example:
Authorization: Bearer YOUR_API_KEY
- Example:
- Response Format: JSON
- OpenAPI:
https://cutemarkets.com/openapi.json
Endpoints
1. Options Market Data
Our core options data allows you to pull entire chains or query specific contracts.
An agent should keep Option Chain docs, Contracts, Quotes, Trades, and Option Quote and Trade Conditions separate in its tool plan. Chains discover candidates; quotes provide bid/ask context; trades provide print context; condition codes explain whether a row needs a label, downgrade, or reject reason.
-
Option Chain (
GET https://api.cutemarkets.com/v1/options/chain/{ticker}/)- Purpose: Get the full options chain for a given underlying asset.
- Example:
GET https://api.cutemarkets.com/v1/options/chain/NFLX/?limit=10 - Read More
-
Contract Snapshot (
GET https://api.cutemarkets.com/v1/options/snapshot/{contract_symbol}/)- Purpose: Real-time snapshot of an options contract (prices, greeks, implied volatility).
- Read More
-
Contracts List (
GET https://api.cutemarkets.com/v1/options/contracts/)- Purpose: Search and filter active options contracts. Use query params like
underlying_ticker. - Read More
- Purpose: Search and filter active options contracts. Use query params like
-
Trades (
GET https://api.cutemarkets.com/v1/options/trades/{contract_symbol}/)- Purpose: Fetch historical or real-time trades.
- Read More
-
Quotes (
GET https://api.cutemarkets.com/v1/options/quotes/{contract_symbol}/)- Purpose: Fetch historical or real-time NBBO quotes.
- Read More
-
Aggregates (OHLC) (
GET https://api.cutemarkets.com/v1/options/aggs/{ticker}/)- Purpose: Get minute, hour, or daily bars for options or the underlying ticker.
- Read More
2. Technical Indicators
Fetch calculated technical indicators for any underlying asset.
- SMA:
GET https://api.cutemarkets.com/v1/indicators/sma/{ticker}/ - EMA:
GET https://api.cutemarkets.com/v1/indicators/ema/{ticker}/ - MACD:
GET https://api.cutemarkets.com/v1/indicators/macd/{ticker}/ - RSI:
GET https://api.cutemarkets.com/v1/indicators/rsi/{ticker}/
3. Reference Data
Helper endpoints for lookup tasks.
- Ticker Search (
GET https://api.cutemarkets.com/v1/reference/tickers/)- Purpose: General ticker lookup for equities and indices.
- Read More
- Expirations (
GET https://api.cutemarkets.com/v1/reference/expirations/{ticker}/)- Purpose: Available expiration dates for an underlying ticker.
- Read More
4. Paper Trading Quick Start
Use a Paper Trading API key. Paper trading is local to CuteMarkets; orders are Alpaca-shaped but are not routed to Alpaca.
- List or create an account:
curl https://api.cutemarkets.com/v1/paper/accounts/ \
-H "Authorization: Bearer YOUR_PAPER_API_KEY"
curl https://api.cutemarkets.com/v1/paper/accounts/ \
-X POST \
-H "Authorization: Bearer YOUR_PAPER_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"agent-sandbox","initial_cash":"100000"}'
- Submit a stock order:
curl https://api.cutemarkets.com/v1/paper/accounts/{account_id}/orders/ \
-X POST \
-H "Authorization: Bearer YOUR_PAPER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"symbol": "AAPL",
"qty": "1",
"side": "buy",
"type": "market",
"time_in_force": "day",
"client_order_id": "agent-aapl-001"
}'
- Submit a single-leg option order:
curl https://api.cutemarkets.com/v1/paper/accounts/{account_id}/orders/ \
-X POST \
-H "Authorization: Bearer YOUR_PAPER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"symbol": "O:SPY260620C00500000",
"qty": "1",
"side": "buy",
"type": "limit",
"limit_price": "4.25",
"time_in_force": "day",
"position_intent": "buy_to_open",
"client_order_id": "agent-spy-call-001"
}'
- Poll state after each decision:
curl https://api.cutemarkets.com/v1/paper/accounts/{account_id}/orders/ \
-H "Authorization: Bearer YOUR_PAPER_API_KEY"
curl https://api.cutemarkets.com/v1/paper/accounts/{account_id}/positions/ \
-H "Authorization: Bearer YOUR_PAPER_API_KEY"
curl https://api.cutemarkets.com/v1/paper/accounts/{account_id}/portfolio/history/ \
-H "Authorization: Bearer YOUR_PAPER_API_KEY"
- Cancel an open order:
curl https://api.cutemarkets.com/v1/paper/accounts/{account_id}/orders/{order_id}/ \
-X DELETE \
-H "Authorization: Bearer YOUR_PAPER_API_KEY"
Agent rules: use stable client_order_id values, do not reuse them within an account generation, inspect positions before sells, cancel open new, accepted, or partially_filled orders with DELETE, and reset only when intentionally starting a new run. Closed-market orders stay accepted until the next regular market session unless canceled first.
General Agent Tip: When paginating through requests, always look out for a
nextURL in the JSON response payload. See Error Handling for information on 4XX errors.
Agent implementation notes
An agent prompt needs stricter boundaries than a human quickstart. Give the agent a small set of endpoint families and force it to name the next request before it acts. For options work, that means Expirations or Contracts before Option Chain, then Quotes or Trades only after the exact OCC option ticker exists.
Keep the agent state explicit. Store the API key class, product scope, selected endpoint, query parameters, page cursor, request id, timestamp window, contract ticker, and reject reason in the agent memory or tool result. An LLM that sees only "SPY call" can easily mix a chain row, a quote row, and a paper order. An LLM that sees the full contract symbol, quote timestamp, bid, ask, and order intent has a much smaller error surface.
Additional implementation review
Review the agent-run paper trading workflow as a sequence of named data objects, not as a single helper call. The implementation should preserve endpoint order, API key class, pagination cursor, request id, contract ticker, paper account id, client order id, and reject reason. Those fields make support tickets, CI fixtures, and replay notebooks easier to compare because every step can point to the exact request and response that created the displayed value.
The main failure mode is that an agent can confuse a market-data lookup with a simulated order or reuse stale state from a previous account generation. Before promoting the workflow, run one concrete example through discovery, retrieval, display, logging, and error handling. Keep the resulting artifact beside the code path so future changes can prove they still use the same terminology and the same market-data assumptions.