Documentation v1 · UPDATED 21 AUG 2026
Get an API key
On this page

POST /sell/api/v1/decisions

Record why your automation did or did not list capacity. Informational: it never creates offers and never changes the book.

Auth: X-Seller-API-Key.

The focused Seller API derives seller identity from the credential. Advanced Market clients can use the equivalent raw POST /v1/sellers/{id}/decisions beneath the /market/api base when they need seller-id addressing.

Spot keeps the newest 200 decisions per seller and shows them on the seller dashboard. It is an operator-facing log, not an audit record: your daemon keeps the durable copy.

Spot Autopilot reports every tick's decisions here automatically, and a failure to report never stops it selling.

See rate limits and errors.

Request

fieldtypenotes
decisionsarray1-200 decisions, newest last

Each decision:

fieldtypenotes
atstringRFC 3339 timestamp of the decision
model_idstring or nullnull for a cluster-wide decision, such as a guardrail that stopped every model
soldbooleanWhether capacity was listed as a result
reasonstringOperator-facing explanation, at most 500 characters
tokensnumber or nullTokens the decision covered, when it had a size
price_per_millionstring or nullDecimal price per one million tokens, when it had one

A model_id you no longer serve is accepted: dropping it would hide the very tick you came to read.

Response

seller_id and recorded, the number of decisions stored.

Errors

invalid_decisions (empty or oversized batch), invalid_reason (over 500 characters), unauthorized, forbidden. Status codes on Errors.

curl -s https://aispotmarket.com/sell/api/v1/decisions \
  -H "X-Seller-API-Key: sk-seller" \
  -H "Content-Type: application/json" \
  -d '{"decisions":[{"at":"2026-08-29T03:00:00Z","model_id":"gpt-4","sold":false,"reason":"queue depth 4 exceeds max_queue_depth 0"}]}'
from token_gateway import SellerAuth, SellerTokenGateway

gw = SellerTokenGateway("https://aispotmarket.com/sell/api", seller=SellerAuth("sk-seller"))
gw.report_decisions(
    decisions=[
        {
            "at": "2026-08-29T03:00:00Z",
            "model_id": "gpt-4",
            "sold": False,
            "reason": "queue depth 4 exceeds max_queue_depth 0",
        }
    ]
)