Skip to main content
POST
/
v1
/
rentals
/
:id
/
stop
curl -X POST https://gpuoutlet.ai/v1/rentals/rent_01H.../stop \
  --cookie "sid=$SID"
{
  "id": "rent_01H...",
  "status": "stopping",
  "finalChargedCents": 2178,
  "refundedCents": 0
}
id
string
required
Rental id (rent_…).
id
string
status
string
stopping initially → stopped once acked.
finalChargedCents
number
Final settled amount.
refundedCents
number
Non-zero only if the pod ran <60s and we auto-refunded.
curl -X POST https://gpuoutlet.ai/v1/rentals/rent_01H.../stop \
  --cookie "sid=$SID"
{
  "id": "rent_01H...",
  "status": "stopping",
  "finalChargedCents": 2178,
  "refundedCents": 0
}

What happens server-side

  1. Mark rental.status='stopping', record stoppedAt=now
  2. Send terminate signal to the upstream provider (fire-and-forget)
  3. Compute final partial second, debit wallet
  4. Move reserved amount back to available
  5. Return 200
The provider-side termination usually completes within 5 seconds. We don’t wait for it — once we’ve sent the signal and settled billing, you’re done. A background worker reconciles status='stopping'status='stopped' when the provider confirms.

Auto-stop conditions

The server itself can stop a rental:
  • Wallet hit $0 — automatic. We send a courtesy email afterward.
  • autoStopAfterHours reached — if you set it when creating.
  • Provider reports the pod crashed — flips to failed and refunds.
In all three cases, the API response shape is identical to a manual stop.