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 onlyList 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.