Skip to main content
Getting startedSeller quickstart

Seller Quickstart

Monetize your unused API capacity. Set your price, get paid per token in USDC.

1. Sign In

Go to surplusintelligence.ai and sign in. Navigate to the Sell page.

2. Add an Offer

One active offer per credential, base URL and model
key-A · api.venice.ai · claude-opus-4.6active
key-A · api.venice.ai · gpt-5.6-lunaactive - same key, different model
key-A · api.venice.ai · claude-opus-4.6refused - duplicate triple
The uniqueness key is the TRIPLE. The same credential can serve many models, and the same model can be served by many credentials - but not the same combination twice.

Click "Add Offer" and fill in:

  • Provider - select from the dropdown (Venice, OpenRouter, Together, etc.)
  • API Key - paste a dedicated provider API key. It is encrypted at rest with AES-256-GCM under AWS KMS envelope encryption (ciphertext stored in a private S3 bucket); use provider-side caps/scopes where available and revoke the provider key if you remove an offer.
  • Base URL - auto-filled based on provider (e.g. https://api.venice.ai/api/v1)
  • Price - set a cost_multiplier (e.g. 0.5 = 50% of the reference price). Per-token pricing is retired for text models and now returns 400 per_token_pricing_retired
  • Cap - optional daily spending limit (cap_daily_usd) in USD

Or click "Discover Models" - paste your API key and the marketplace auto-detects available models and pricing from your provider.

3. Start Earning

Once your offer is live, buyers are automatically routed to you when you're the cheapest healthy seller. Your earnings accrue in USDC as each response completes, and are paid out to your wallet (or a custom payout address) in batches once a payout group reaches its threshold or age trigger. See the settlement and payout lifecycle for how earning differs from being paid.

Key Points

  • Your endpoint must be OpenAI-compatible - standard /v1/chat/completions format in and out
  • Earnings accrue per request; payouts are batched. You earn USDC as each response completes, and payouts are grouped by recipient and sent automatically once a group reaches 5 USDC or its oldest earning reaches 72 hours. A per-request CSV row can stay accrued after it has been paid in a batch, so confirm payment from your payout history and its Base transaction hash
  • Health is passive - no uptime pings burning your quota. If a request fails, you're temporarily marked unhealthy and traffic routes to the next seller
  • One offer per key, per model, per base URL. The same API key can back as many different models as you like - that is the normal case. What you cannot do is list the same model twice on the same key and base URL; a second attempt returns 409 duplicate_offer_for_credential. To list a model twice, use a different provider key.
  • Payout address - optionally direct settlement to a different wallet (e.g. Bankr wallet for auto top-up)

Programmatic Setup (CLI / Agents)

No browser needed - get a seller API key with just a wallet.

bash
# 1. Get SIWE challenge
curl $SURPLUS_BASE_URL/seller/auth/challenge?address=0xYourWallet

# 2. Sign the message and get a seller API key
curl -X POST $SURPLUS_BASE_URL/seller/auth/keys \
  -H "Content-Type: application/json" \
  -d '{"message": "<SIWE message>", "signature": "0x..."}'
# Returns si_seller_xxx — save it, shown only once

# 3. Create an offer
curl -X POST $SURPLUS_BASE_URL/seller/offers \
  -H "Authorization: Bearer si_seller_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-opus-4.6",
    "api_key": "your-provider-key",
    "seller_base_url": "https://api.venice.ai/api/v1",
    "pricing_mode": "cost_multiplier",
    "cost_multiplier": 0.50
  }'

Works from any environment: scripts, AI agents (OpenClaw, Bankr), MCP tools, CLI.

Manage Offers

bash
# Create offer
curl -X POST .../v1/seller/offers \
  -H "Authorization: Bearer si_seller_xxx" \
  -d '{ "model": "claude-opus-4.6", "api_key": "***", 
    "seller_base_url": "https://api.venice.ai/api/v1",
    "pricing_mode": "cost_multiplier", "cost_multiplier": 0.50 }'

# List my offers
curl .../v1/seller/offers -H "Authorization: Bearer si_seller_xxx"

# Update price
curl -X PATCH .../v1/seller/offers/{id} \
  -H "Authorization: Bearer si_seller_xxx" \
  -d '{ "cost_multiplier": 0.45 }'

# View earnings
curl .../v1/seller/earnings -H "Authorization: Bearer si_seller_xxx"

# Check health log
curl .../v1/seller/health-log -H "Authorization: Bearer si_seller_xxx"