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
| field | type | notes |
|---|---|---|
decisions | array | 1-200 decisions, newest last |
Each decision:
| field | type | notes |
|---|---|---|
at | string | RFC 3339 timestamp of the decision |
model_id | string or null | null for a cluster-wide decision, such as a guardrail that stopped every model |
sold | boolean | Whether capacity was listed as a result |
reason | string | Operator-facing explanation, at most 500 characters |
tokens | number or null | Tokens the decision covered, when it had a size |
price_per_million | string or null | Decimal 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",
}
]
)