TensorSave

API & MCP documentation

Everything on TensorSave is available programmatically: REST API v1 and an MCP endpoint for LLM agents. Web, REST and MCP share the same service layer, permissions and rate limits.

Authentication

Write operations accept a Bearer API key (create at /me/api-keys — the full key is shown once) or your browser session.

Authorization: Bearer bfl_YOUR_KEY   # create at https://tensorsave.com/me/api-keys

REST API v1

Base URL and endpoints:

GET    https://tensorsave.com/api/v1/offers?type=LLM&sort=smart&page=1
GET    https://tensorsave.com/api/v1/offers/{slug}
POST   https://tensorsave.com/api/v1/offers                      # submit (moderated)
PATCH  https://tensorsave.com/api/v1/offers/{slug}               # edit own
DELETE https://tensorsave.com/api/v1/offers/{slug}               # delete own
POST   https://tensorsave.com/api/v1/offers/{slug}/vote          # {"value": 1|-1}
POST   https://tensorsave.com/api/v1/offers/{slug}/rating        # {"value": 1..5} (0 clears)
POST   https://tensorsave.com/api/v1/offers/{slug}/bookmark      # {"bookmarked": true}
POST   https://tensorsave.com/api/v1/offers/{slug}/report        # {"type":"ENDED|FAKE|MISMATCH|OTHER","message":"..."}
GET    https://tensorsave.com/api/v1/offers/{slug}/comments
POST   https://tensorsave.com/api/v1/offers/{slug}/comments      # {"body","parentId"?}
POST   https://tensorsave.com/api/v1/comments/{id}/like          # toggle
PATCH  https://tensorsave.com/api/v1/comments/{id}               # {"body"} author only
GET    https://tensorsave.com/api/v1/me        PATCH /me        GET /me/offers
GET    https://tensorsave.com/api/v1/me/notifications            POST → mark all read
GET    https://tensorsave.com/api/v1/me/api-keys                 POST {"name"} → key shown once
DELETE https://tensorsave.com/api/v1/me/api-keys/{id}
POST   https://tensorsave.com/api/v1/admin/offer-action          # admin only

List query params (shareable URLs use the same params):

q, type=DOMAIN|VPS|DEDICATED|LLM, sort=smart|newest|top|ending|comments,
validity=ACTIVE|EXPIRED, minPrice, maxPrice, period, gw (multi), verified,
minRam, minCores, minBw, region, gpu, virt, model, minTokens, maxMult, page, pageSize

MCP (Model Context Protocol)

Point any MCP client (Claude Desktop, Zed, Cursor…) at the endpoint:

endpoint: https://tensorsave.com/api/mcp
transport: Streamable HTTP, stateless, JSON-RPC 2.0
protocol:  2025-03-26

Client configuration example:

{ "mcpServers": { "blackfridaylist": {
    "url": "https://tensorsave.com/api/mcp",
    "headers": { "Authorization": "Bearer bfl_YOUR_KEY" } } } }

Tools:

search_offers(query?, type?, sort?, minRamGb?, minFreeTokens?, page?)   public
get_offer(slug)                                                        public
submit_offer(offer)                                        auth · moderated
rate_offer(slug, value 0..5 · 0 clears)                                auth
bookmark_offer(slug, bookmarked)                                       auth
my_offers()                                                            auth
get_me()                                                               auth

Quick test:

curl -X POST https://tensorsave.com/api/mcp \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer bfl_YOUR_KEY' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
       "params":{"name":"search_offers","arguments":{"type":"VPS","minRamGb":4}}}'

llms.txt (for LLM agents)

Machine-readable site documentation for LLM agents (tools, endpoints, policies):

https://tensorsave.com/llms.txt

Rules & limits

  • validUntil is required and at most 12 months ahead; submissions enter human moderation.
  • Rate limits: 5 offers/hour, 10 comments/10min, 60 votes/min, 10 reports/hour.
  • Merchant outbound links automatically append our referral params (never overrides the merchant's own).
  • One rating per user per offer (cancellable); one vote; likes are toggles.