Changelog
Notable Releases
September 2026
- Async media stops failing you quietly. A video or music job whose only sellers are listed against a host that cannot run that endpoint now returns
404 no_sellers_for_modelup front, instead of being accepted, charged and failed later; those offers are being removed from the marketplace. Both async endpoints now document their full error table, including which failures are retryable. See Video Generations and Music Generations. - One prepaid balance, reported the same everywhere.
GET /v1/buyer/mereportscredit_balance_usdcas your whole spendable prepaid balance — fiat credit plus deposited USDC — the same figure/v1/payments/balancealready returned. Deposited USDC can also fund video and music jobs, which previously saw only fiat credit and could refuse a funded buyer. - OpenAI-backed image edits work. Edits routed to OpenAI were rejected by the provider because we sent the wrong field shape.
POST /v1/images/editsnow works on those models; nothing about the request you send changed. See Image Generations → Image-to-Image. - Unknown image sizes no longer error internally. An unrecognized
sizeused to be able to fail the price estimate outright; it is now handled cleanly. - Latency and uptime on the offers table: expanding a model on the Markets page now shows each offer's provider latency (median time to first token) and uptime over the trailing 24 hours, both sortable.
-means not enough data. See Provider Performance. - Model latency, uptime, cache hit rate and throughput on the catalog list: every row of
GET /api/marketsnow carriesttft_p50_ms, the model's median time to first token over the trailing 24 hours across all of its providers (withttft_samplesbeside it),uptime_pctover the same window,cache_hit_rate_pct, the share of input tokens served from the prompt cache, andtps_p50, the median output tokens per second while streaming. The per-provider performance endpoint gainstps_p50andtps_samplestoo.nullmeans not enough data to measure, never zero. See Market Data. - Per-request cost on your API key: buyer API keys can read the exact settled cost of their own requests, and
/v1/chat/completionsreturns a settlement request id so a streamed request's final cost is retrievable once the stream ends. - Public provider performance and benchmarked discounts: each model's marketplace page shows measured per-provider performance, and every displayed discount is benchmarked against live upstream list prices. See Provider Performance.
- Routing controls: pin a request to a chosen set of providers, and set a per-key minimum-discount floor (replacing the older price ceiling) so a key only routes to offers at or above the saving you require. See Routing Controls and Minimum-Discount Routing.
- Cache and reasoning in usage analytics: usage now breaks out cached input tokens and reasoning tokens per request, so token mix and cost are visible at a glance. See Reasoning Controls.
- Streaming keep-alive: long generations stay connected while a provider is briefly silent, so a slow but valid response no longer times out mid-stream.
- Marketplace filters: the marketplace has buyer-facing filters and a dedicated mobile filter view for narrowing the model list without leaving the page.
August 2026
- Reasoning delivered and billed correctly, end to end: reasoning content is relayed across both the OpenAI and Anthropic wires and in both directions, reasoning tokens are persisted for billing and analytics, and Gemini reasoning survives multi-turn tool calls. See Reasoning Controls.
- No charge for undelivered output: in-band provider stream faults are detected mid-stream, so a request that delivers zero output tokens is not billed.
- Organizations: roles and permissions are explained in-product, with documentation for members, workspaces, wallets, API keys, and organization analytics. See Organizations.
- API-first key management: buyer and seller keys can be created, rotated, and managed entirely over the API. See Buyer Endpoints and Seller Endpoints.
- One active offer per credential, base URL, and model: duplicate seller offers are now rejected across every workspace, so the same credential cannot be listed against the same model twice.
July 2026
- Image-to-image editing: new
POST /v1/images/editsendpoint: edit an existing image with a text prompt using an edit-capable model (e.g.nano-banana-2-edit,qwen-image-2-edit).POST /v1/images/generationsruns the same edit flow when the body carries a source image (image_url,input_images, or adata:URI). Masked/inpaint edits are not supported yet. See Image Generations → Image-to-Image. - Image-to-video:
POST /v1/video/generationsaccepts a start frame (image_url), a transitionend_image_url, and multi-imageinput_images(rolesstart/end/reference). Image-to-video-only models require a source image. See Video Generations → Image-to-Video. - Multi-image inputs: both surfaces accept up to 8 source images via
input_images(strings or{ url, role }objects). On images, the first entry is the base and the rest are reference/edit layers; on video, untagged entries are positional ([start]or[start, end]) and further images take explicit roles. Sources arehttps://URLs ordata:URIs; URLs are passed to the provider as-is and never fetched by the marketplace.
June 2026
- Multi-provider pinning: the
providerhint on/v1/chat/completionsnow accepts an array (an allow-list), e.g."provider": ["zai", "openrouter"], routing to the cheapest healthy offer among the listed providers. A single string still works unchanged. Unrecognized providers are dropped; if every pinned provider is unrecognized the request returns400 unsupported_provider(a supported provider with no offer for the model still returns404 no_sellers_for_model). See Chat Completions → Provider Pinning. - API moved to AWS: the API base host is now
https://api.surplusintelligence.ai. Inference endpoints live under/v1/*(e.g./v1/chat/completions,/v1/models,/v1/prices), markets under/api/markets, and account endpoints under/v1/buyer/*and/v1/seller/*. Update yourbase_urltohttps://api.surplusintelligence.ai/v1. The legacy dedicated fallback-key endpoint was retired; register a catch-all provider withmodel: nullviaPOST /v1/buyer/providersinstead.
April 2026
- Bankr LLM Gateway: 32 models at 0.05x cost, self-sustaining auto top-up loop (PRs #55-57)
- External wallet auth fix: Rainbow, WalletConnect now create inference sessions (PR #60)
- GLM 5.1 added to model registry (PR #59)
- $500/day giveaway launched
March-April 2026
- Model naming unification: single source of truth introduced with 58 models / 8 providers at the time (PRs #19-26). Current live counts are higher; use
/v1/modelsand/api/marketsfor current numbers. - Tool format normalization: Cursor full compatibility (PRs #29, 31)
- x402 + MPP payment rails: agents can pay per-request
- ACP v2 (Virtuals Protocol): agent-to-agent commerce
- Priority Provider (BYOK): use your own key + marketplace overflow
- CSV usage export for buyers
- Payout address feature for sellers
February-March 2026
- Settlement contract deployed on Base
- 187 tests (unit + integration)
- 10 provider integrations with automatic pricing discovery
- Multi-key support: up to 25 keys per wallet