CuteMarkets Docs

API Reference

Everything you need to integrate market data, build faster, and scale.

Docs

Tip: open /docs/agents.md directly for raw markdown (easy copy/paste into an LLM).

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
  • 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
  • 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.

  1. List or create an account:
bash
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"}'
  1. Submit a stock order:
bash
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"
  }'
  1. Submit a single-leg option order:
bash
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"
  }'
  1. Poll state after each decision:
bash
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"
  1. Cancel an open order:
bash
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 next URL 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.

Terminology

Terms to keep straight on this page

Market-data APIs use similar words for different objects. These links keep the docs page connected to the precise CuteMarkets workflow and related reference material.

Next steps

Move from the docs into the product workflow

If you are evaluating the API rather than implementing a specific endpoint right now, the product pages map live and historical workflows for stocks, options, and WebSockets.