| name | vastai-rate-limits |
| description | Handle Vast.ai API rate limits with backoff and request optimization.
Use when encountering 429 errors, implementing retry logic,
or optimizing API request throughput.
Trigger with phrases like "vastai rate limit", "vastai throttling",
"vastai 429", "vastai retry", "vastai backoff".
|
| allowed-tools | Read, Write, Edit |
| version | 1.11.0 |
| license | MIT |
| author | Jeremy Longshore <jeremy@intentsolutions.io> |
| tags | ["saas","vast-ai","api"] |
| compatibility | Designed for Claude Code, also compatible with Codex and OpenClaw |
Vast.ai Rate Limits
Overview
Handle Vast.ai REST API rate limits gracefully. The API at cloud.vast.ai/api/v0 returns HTTP 429 when request limits are exceeded. Most operations (search, show) are read-heavy and rarely hit limits, but automated scripts doing rapid provisioning or polling can trigger throttling.
Prerequisites
- Vast.ai CLI or REST API client
- Understanding of exponential backoff
Instructions
Step 1: Rate-Limited HTTP Client
import requests
import time
class RateLimitedVastClient:
BASE_URL = "https://cloud.vast.ai/api/v0"
def __init__(self, api_key, min_delay=0.5, max_retries=5):
self.session = requests.Session()
self.session.headers["Authorization"] = f"Bearer {api_key}"
self.min_delay = min_delay
self.max_retries = max_retries
self.last_request = 0
def request(self, method, endpoint, **kwargs):
elapsed = time.time() - self.last_request
if elapsed < self.min_delay:
time.sleep(self.min_delay - elapsed)
for attempt in range(self.max_retries):
self.last_request = time.time()
resp = self.session.request(method, f"", **kwargs)
resp.status_code == :
retry_after = (resp.headers.get(, ** attempt))
()
time.sleep(retry_after)
resp.raise_for_status()
resp.json()
RuntimeError()