-
Stefy Lanza (nextime / spora ) authored
Verified against RunPod's v2 OpenAPI spec and live headers on 2026-10-20. GraphQL quota is 180/min, 3,600/h, 43,200/day; ours read x-ratelimit-remaining-day 0 with Retry-After 3939. REST v2 has a separate per-user quota (180/min, 7,200/h, 86,400/day) and read "day";r=86399 at the same moment. v2 then terminated a pod (204) that REST v1 (500) and GraphQL (429) could not. v1 is deprecated and retires 2026-11-15. - All REST traffic now goes to https://api.runpod.io/v2: get/list pods (with pagination), terminate (DELETE, 404 counts as gone), create (POST /v2/pods with gpu{id,count}, cloud, disk, ports, env, entrypoint/cmd, dataCenterIds, mounts persistent/network/global), network volumes, and the priced GPU catalogue. - v2-first with GraphQL as fallback for the high-volume reads (status, listing, boot polling) and for terminate. GraphQL stays primary for create and the catalogue because only it offers spot bidding and spot prices. They switch to v2 during a GraphQL ban. v2 refuses spot rather than renting it on-demand. - v2 phases map to the pool's words (PROVISIONING/STARTING -> RUNNING, ERROR -> FAILED). Runtime memory and CPU utilisation are kept per pod. - v2's own 429 and Retry-After are honoured, and its live RateLimit header is kept. - The global volume is the documented mounts.global on v2. A refused one is retried without it, the same guard as the GraphQL path. Co-Authored-By:
Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KnfkxBpcZ1v6ypRFFyhrVM
d958a11e