Changelog
All notable changes to Spheron AI will be documented in this file.
Track new features, improvements, bug fixes, and breaking changes across all releases. This changelog is automatically updated with each deployment to ensure you always have the latest information about platform updates and enhancements.
v1.29.0 • 2026-09-10
AMD Instinct Arrives on the Marketplace
ExpansionEvery GPU on the marketplace has been NVIDIA until today. Spheron AM is live with AMD Instinct MI300X, 192 GB of HBM3e per GPU, and offers now say which vendor made the silicon you are renting.
- AMD Instinct MI300X, the first AMD silicon in the catalogue. Each GPU carries 192 GB of HBM3e, and the catalogue publishes 1x, 2x and 4x GPU configurations. They sort, filter, and deploy through the same wizard as everything else, so choosing AMD is a choice about the hardware and not about learning a second workflow.
- A new provider: Spheron AM. It appears in Choose Provider alongside the others, with hourly rates in USD. A machine that is out of stock reads as sold out rather than disappearing, so you can set an availability alert instead of wondering where it went.
- A new region in Michigan, United States.
- Offers and instance cards name the silicon vendor. AMD, NVIDIA, and Intel each carry their own mark. A catalogue with more than one vendor in it should not make you infer the manufacturer from a model string, and a part we cannot place keeps a neutral icon rather than wearing the wrong vendor's logo.
- The deploy wizard tells you when the provider sets the minimum runtime. Some machine types are held for a minimum reservation that is longer than the platform's own floor. Where that happens, the wizard names the provider and shows the longer number before you deploy, and that is the same number enforced when you come to terminate.
- Spheron AM machines ship one image, Ubuntu with ROCm. There is no image picker, because the machine type determines what it boots.
- The boot disk comes with the machine type. Its size is shown on the offer rather than being something you set.
- Restart is available. Stopping is not. A Spheron AM instance bills at the full hourly rate until it is destroyed, so there is no stopped state that costs less. An instance you have finished with should be terminated.
- Volumes are not available on Spheron AM. A deployment that asks for one is refused rather than created without it.
- Each machine type carries a minimum reservation, and it is charged in full. Terminating early does not reduce it. The figure is shown in the wizard before you deploy.
- Spheron AM is on-demand only. There is no spot option for these offers.
GET /api/gpu-offers-with-reserved?providers=spheron-amreturns Spheron AM offers. Send an offer'sregionvalue back unchanged asregionon the deployment.POST /api/deploymentsrejectsvolumeIdsfor Spheron AM rather than ignoring it.- Deployments carry
providerMinimumRuntimeMinuteswhen the machine type declares one.GET /api/deployments/:deploymentId/can-terminatereportsminimumRuntimeas whichever is longer, the platform floor or that value, and refuses until it is met. POST /api/deployments/:deploymentId/restartis supported on Spheron AM.POST /api/deployments/:deploymentId/pausereturns an error naming the reason.
v1.28.0 • 2026-09-06
A New Provider: Spheron MS
ExpansionA new GPU provider is live on the marketplace. Spheron MS brings a large catalogue across regions the marketplace has not covered before, with storage you attach at deployment time and a restart you can reach from the instance card.
- Spheron MS appears in Choose Provider. Its offers sit alongside every other provider, sorted and filtered the same way, with hourly rates in USD. A machine that is out of stock shows as sold out rather than disappearing, so you can set a notification instead of wondering where a GPU went.
- New regions. Spheron MS lists GPUs in regions the marketplace has not offered before. Each offer names its region, and the region on the offer is the region you deploy into.
- Bare metal alongside virtual machines. Where an offer is a full physical server it is listed as bare metal and labelled on the card.
- Volumes attach when you deploy. Create a volume in the region you are about to deploy into, then pick it in the deployment wizard. It is mounted before the machine boots, so your data is there the first time you connect.
- Restart from the instance card. A restart reboots the machine in place. Your billing does not change and the instance keeps its status.
- A Spheron MS volume is chosen at deployment time, and only then. There is no attach or detach for a machine that is already running. Terminating the instance releases the volume, and you can then select it for your next deployment.
- One volume per instance on Spheron MS.
- Volume size and name are fixed at creation. Spheron MS volumes cannot be resized or renamed afterwards. Create a new volume at the size you need and copy your data across.
- A volume and its instance must be in the same region. A volume created in one region cannot be attached to an instance in another, and the wizard will not offer it.
- The boot disk comes with the machine type. Each Spheron MS machine type ships a fixed boot disk, so its size is shown on the offer rather than being something you set. Pick a machine type with the disk you need, or attach a volume for the rest.
- Stopping is not available on Spheron MS. Restart is, on virtual machines. Bare metal instances support neither. An instance you have finished with should be terminated.
GET /api/gpu-offers-with-reserved?providers=spheron-msreturns Spheron MS offers. Send an offer'sregionvalue back unchanged asregionon the deployment.POST /api/deploymentsacceptsvolumeIdswith exactly one volume for Spheron MS. The volume's region must equal the offer's region, or the request is rejected before anything is created.POST /api/volumesrequiresregionfor Spheron MS and has no default.PATCH /api/volumes/:volumeIdandPOST /api/volumes/:volumeId/attachreturn an error for Spheron MS volumes.POST /api/deployments/:deploymentId/restartis supported on Spheron MS virtual machines.POST /api/deployments/:deploymentId/pausereturns an error.
v1.27.2 • 2026-09-05
Sold-Out GPUs Stay on the Page
Bug FixesA GPU that is out of stock should read as sold out, not as something the provider never offered. Four ways it could vanish instead.
- A sold-out variant no longer takes its Spot tile with it. On Spheron ES the published floor price for L40S was worked out after the live quote and inside the same guard, so a failed quote lost the fallback and the Spot option disappeared from the L40S page entirely. The floor is applied first now, and only where a price has never been quoted, so a live price is never replaced by it.
- A GPU that is out of stock everywhere keeps its provider listed. A model with no stock anywhere has no cache row to carry forward, so one quiet fetch from an upstream erased that brand from Choose Provider while every other provider still showed it as sold out. Sold-out offers are merged with what is already known and held for 7 days after they were last seen.
- Sold-out offers name the provider by brand. Rows served from the sold-out cache carried raw upstream ids rather than the brand names used everywhere else in the same response.
- The CPU vendor is named on the configuration card. Spheron ES ships L40S on both Intel and AMD hosts and separates them only by a slug you never see, so the host you found after connecting was not necessarily the host you picked.
v1.27.1 • 2026-09-05
Deployment Emails and Interface Repairs
Bug FixesThe deployment ready email printed markup at people and named GPUs that do not exist. Alongside it, a set of repairs to the surfaces this release touched.
- The deployment ready email prints the path, not the markup. The private key placeholder was escaped by hand and then again by the renderer, so the mail showed the escape sequence instead of the placeholder. Its plain text copy was run through the HTML renderer as well.
- The email names the GPU you deployed. The type was read out of the deployment name, which is
<TYPE>-<count>x-<stamp>only when you did not choose a name yourself. Call an instancemy-training-boxand the email announced a GPU calledMY. It uses the stored GPU type now, formatted the way the dashboard formats it, so the mail saysL40S PCIE. - Cards in a grid no longer wear a pale band. The card border is a padded wrapper, so the shortest card in a stretching row left a hairline of it uncovered along the bottom.
- Instance and volume rows use one button. Each action row built its own, so a row could hand off to a confirmation dialog styled like a different product. Both rows use the same button at one height, so labelled buttons and icon triggers cannot drift apart.
- The SSH step gives its space to the fields. The upload zone, the key fields, and the empty volumes state gave their largest blocks of space to their smallest jobs.
v1.27.0 • 2026-09-05
Stop an Instance Without Losing It
New FeaturesStopping an instance used to mean destroying it. Now it parks: the GPU stops billing, the disk and everything on it stays exactly where it was, and you start it again when you want it. Restart arrives alongside, for a machine that needs a reboot rather than a rebuild. Neither is available on every provider, and the two do not line up with each other, so the controls show up only where the upstream can actually honour them.
- Stop and Start, on the card and in the details panel. Stop parks the machine and keeps its disk. Start brings it back with the same disk, the same contents, and the same public IP, so the connection details you saved still work.
- The stop dialog quotes both rates before you commit. It shows what the instance costs running, what it will cost stopped, the saving as a percentage, a monthly figure for leaving it that way, and an itemised list of what is still being charged. Stopped rates are printed to four decimal places, because at two most of them round to $0.00 and read as free.
- Restart, as a reboot. A restart reboots in place. Your billing does not change and the instance keeps its status. It is offered only where the provider has a real reboot operation, which is a different list from the providers that can stop: Spheron AI reboots and Spheron ES does not, so restart is absent on Spheron ES even though stopping works there. It is never synthesised from a stop followed by a start, because that releases the GPU and carries a completely different risk under the same label.
- Controls appear only where the provider can honour them. Stopping is available on Spheron AI and Spheron ES, and nowhere else. On Spheron AI it also depends on the machine type and the region: roughly half of one upstream's catalog cannot hibernate, and one region refuses to shut instances down at all. Verda and Sesterce keep charging in full for a shut down instance, so the control is absent there. The deploy summary and the instance panel say which of the three is the reason, since the remedy differs: another machine type, another region, or another provider.
- A warning where starting again depends on stock. Some providers release the hardware while an instance is stopped, so a start can be refused while that machine is out of stock. The dialog says so before you commit, and how strongly depends on the provider. A refusal is not destructive: the instance and its disk stay as they are and you try again when stock returns.
- A stopped instance is billed for its disk, not its GPU. The stopped rate comes from the provider, read back from the upstream where it publishes one and quoted from the live pricebook where it does not. It covers the retained disk, plus the public IP where the provider charges for one. Any discount on your account applies exactly as it does while running.
- The switch is settled at the rate you were on. Charges run on a five minute cycle, so a stop landing mid-cycle would otherwise bill the whole slice at whichever rate happened to be stored when the cycle fired. Stopping and starting both settle the elapsed time at the outgoing rate first. Usage figures, invoices, and the billing page pick stopped periods up with no change.
- A stop from the provider's side is billed as a stop. When a provider parks your machine, the dashboard says stopped and you are charged the stopped rate. Previously the instance read as running at the full rate for hours and then vanished as a termination while the VM was still alive upstream. Where the stopped rate cannot be determined you are charged nothing rather than guessed at.
- A stopped instance is not cleaned up as an orphan. Several sweeps decided what was alive from a list that meant running or deploying only. A stopped instance would have been destroyed about fifteen minutes in.
- Rebooting is no longer mistaken for a preemption. A reboot looks exactly like a stop from outside, and the existing protection covered dedicated instances only, so restarting a spot instance would have destroyed it. A restart now arms a guard that covers the boot, and the dashboard leaves RESTARTING as soon as the machine reports back rather than waiting out a fixed window.
- A deliberate stop is never stalled out. A machine wedged in a stopped state is closed out after three hours, which is right for a stuck VM and wrong for one you parked yourself. A stop you asked for is exempt. A provider side stop still starts that clock, so nothing can sit there forever.
- A start no longer bounces back to stopped. A freshly started instance can still report as stopped for a cycle or two, which read as the provider having parked it and flipped the instance straight back. The provider is believed only when it reports a settled state, and never in the tail of a start we asked for.
- A stop still in progress is not reported as a failure. Writing a machine's memory to disk routinely outlives the request, so a timeout usually means the work was accepted and is still running. It now says the request went through and to check back.
- Failures say what went wrong. A failed stop or start carries the provider's own words where they are safe to show, for example that a machine type has no hibernation or that an instance has not finished stopping yet. The full cause is logged with the deployment, instance, provider, and region.
- Buttons that would fail are not offered. Stopping and starting take minutes upstream, and the provider refuses the opposite action throughout. The control reads Stopping, Start, or Starting, driven by when the provider confirmed the change settled rather than by a guess, and explains the wait on hover.
- A stopped instance reads as stopped everywhere. The badge is amber, between the running blue and the terminated grey, because a stopped instance is neither working nor gone and still costs something. The card and the details panel each carried their own copy of the rate and status logic and had drifted, so one instance could show its stopped rate on the card and the running rate, nearly ten times higher, in the panel. There is one copy now.
- Sub-dollar rates are legible. The price tile sets dollars large and cents small, which reads well for $1.29 and inverts below a dollar: every significant digit landed in the small text and the one large glyph was a zero. A stopped instance is always sub-dollar, so a paying instance read as free at a glance.
- The public IP is shown while stopped. The address is kept through a stop, so hiding it forced people to start an instance just to read it back. The SSH command stays hidden until the machine is running, since it will not connect otherwise.
- Destroy stays available while stopped. Starting an instance first, purely to earn the right to stop paying for it, would be backwards.
- The stop dialog names the one way stopping can lose an instance. A stopped instance still costs something, and a team that runs out of credit has every instance destroyed, stopped ones included. The dialog says so, and points at destroying the instance instead when you are finished with it.
- Restart asks first. It is a hard reboot on every provider we can verify, so anything held in memory is lost. Restart confirms and says that, where stop leads with the rates because that decision is about money.
POST /api/deployments/{id}/pause,POST /api/deployments/{id}/resumeandPOST /api/deployments/{id}/restartstop, start, and reboot an instance. Asking a provider that cannot do one of them returns a refusal that names the limit rather than a generic failure.GET /api/deployments/{id}/pause-quotereturns the current rate, the stopped rate, and the breakdown behind it, without changing anything.GET /api/deployments/{id}/reboot-statusreports whether a reboot is still in flight.- A stopped instance reports
status: "stopped"and is part of the live set. It is included in?status=active, and?status=stoppednarrows to the stopped ones. The unpaginated listing filtered on an exact status match, so a stopped instance disappeared from the live set without appearing in the terminated one.
v1.26.0 • 2026-08-13
Light Mode
New FeaturesThe whole console can now be read on a light background. Choosing the theme meant walking every page, so a long list of smaller repairs came with it.
- Light mode, with the switch in the sidebar. Sit the console on paper instead of black. Your choice is remembered and applied before the first paint, so a page no longer flashes the wrong theme while it loads. The switch is in the sidebar whether or not you are signed in, and on a phone it sits in the navigation drawer.
- One card for your discount. The Discounts section on Billing stated the same code, percentage, and expiry twice. It is one card now.
- The redeem box is offered only when a code can be redeemed. A team holds one discount at a time, but the form took a code anyway, called it valid, and then failed. While a discount is running, the section names the code and the date you can redeem another.
- Attached volumes and attached instances match. The two lists describe one relationship from opposite ends and were drawn differently. They share a layout now: volume rows gained the status badge they were missing, and instance rows gained the hourly rate.
- Copying confirms itself. Copy buttons in the instance panel wrote to the clipboard silently, so nothing distinguished a copy from a dead button. They confirm the way the volume panel already did.
- vCPU counts are labelled vCPU. The instance panel quoted a vCPU count in cores, which is a different unit.
- Docs reachable before you sign in. The link sat in the navigation bar only once you had an account.
- The copy icon no longer disappears when you point at it. Hovering anywhere on a card turned the icon the colour of the button beneath it.
- Badges no longer react to the pointer. Every status chip lit up on hover as though it could be clicked. None of them can.
- Destroy and delete warnings are readable. The warning panel on those confirmations filled with a strong pink that pulled its own text to an uncomfortable contrast.
- Wizards fit an iPad again. At 1024px the deploy pages split to seat the order summary while the catalog kept the column count it chose for a full window. GPU offer cards, provider cards, and the reserved GPU heading were all squeezed, and the heading broke across four lines.
- Back buttons sized on mobile. Previous in the volume and reserved GPU wizards sat at content width beneath a full width primary button.
- Voltage Park removed from the API reference. The docs listed a provider that is no longer offered, along with the Kubernetes add-on that ran only on it.
v1.25.3 • 2026-08-11
Keep Your Filters
New FeaturesEverything you set in the catalog toolbar survives a refresh and travels in the link.
- Filters persist and can be shared. Your search, sort, providers, and regions are kept in the address bar. Refreshing keeps the view you were looking at, and the link you copy opens the same filtered catalog for a teammate. Only what you changed appears in the link.
- Search matches the name on the card. Any search containing a space came back empty, so searching a full name such as
H100 SXM5found nothing. Search now matches the name shown on the card, so multi word searches work. - Collapse label sized like the rest of the sidebar. The Collapse control at the bottom of the sidebar was set smaller and in a different face from API Docs and Changelog above it, so it read as a heading rather than the third item in the list.
v1.25.2 • 2026-08-11
Deployment Emails, Volume Attach and Detach
Bug FixesDeployment emails reach the people who asked for them, attaching and detaching a volume shows up straight away, and the catalog lists every provider again.
- Deployment emails are sent to everyone who opted in. Users who had turned on deployment notifications were not receiving them. Notification preferences are now honoured when a deployment succeeds or fails.
- Attach and detach show immediately. After attaching a volume to an instance, or detaching it, the volume panel kept showing the previous state until the page was reloaded. It updates as soon as the change completes.
- Instances are named in the attach picker. Choosing an instance to attach a volume to listed entries that were hard to tell apart. Each option now names the instance and what it is.
- All providers listed in the catalog filter. The provider filter could show only Spheron AI while offers from other providers were visible in the catalog behind it. Every provider with live offers is listed again.
- Deployment progress heading readable. The heading on the deployment progress card sat too dark against its own background to read comfortably.
v1.25.1 • 2026-08-10
Monthly Costs and a Tidier Interface
UX ImprovementsThe order summary quotes a month rather than a week, and the instance and volume panels have been evened out.
- Costs quoted per month. The order summary projected spend for a week, which is rarely the unit anyone budgets in. It now quotes a full month, calculated from the hourly rate.
- Usage on one line. Instance usage was spread over several rows in the details panel and now reads as a single compact line.
- Consistent panel typography. Headings and body text in the instance and volume panels were larger than the rest of the interface and did not match each other. Both panels now use the same sizes.
- Square corners throughout. Several panels kept rounded corners that did not match the rest of the interface.
- Cleaner copy. Punctuation in the marketplace text has been made consistent.
- Reservation requests are for bulk capacity. Reserved GPU requests now hold to a minimum quantity, so the form reflects what a reservation is actually for.
v1.25.0 • 2026-08-09
Not Every Job Needs a GPU
New FeaturesSome workloads just need cores. Build steps, data prep, schedulers, API workers, control planes: none of them touch a GPU, and until now you had to rent one anyway. CPU Node has its own page in the sidebar, its own wizard, and prices from $0.09 per hour.
- A Deploy CPU page. CPU Node sits in the sidebar under Compute, next to Deploy GPUs, and opens whether or not you are signed in. There is no catalog to page through and nothing to search for. Every provider's CPU offer collapses onto a single option, so the page selects it for you and goes straight to the configuration.
- Configuration first. Step 1 asks for spot or dedicated, then the provider, then the instance size, then the region and operating system. GPU count, cluster networking, and the deployment type picker are absent, because a CPU node has no answer for any of them. Step 2 is unchanged: the SSH key, startup script, volumes, and order summary are the same ones the GPU wizard uses, so the two flows cannot drift apart.
- Every CPU size in one place. CPU Node collects the CPU instances from Verda, Spheron AI, and Sesterce into a single option rather than one entry per provider. Sizes run from 4 vCPU with 4 GB of memory up to 360 vCPU with 1440 GB, and the wizard shows the lowest available price for each size before you commit.
- Spot pricing on CPU. Verda CPU instances are available at spot rates as well as on demand, currently from $0.09 per hour. The spot and on demand toggle works exactly as it does for GPU offers.
- Regions. CPU Node is available in Finland 1, Finland 2, and Finland 3 on Verda, Norway 1 and Canada 1 on Spheron AI, and Austin, Oslo, and Montreal on Sesterce. Availability varies by size and region, and the wizard only offers sizes that a region can actually serve.
- The GPU catalog lists GPUs only. CPU Node is deployed from its own page, so the catalog asks the server for GPU offers rather than filtering them out after they arrive. The result count and the number of pages are honest again.
- No GPU driver images on a CPU instance. The operating system list for a CPU node offered CUDA and other GPU driver images that cannot be used without a GPU. Only images that make sense on a CPU instance are listed.
- CPU instances state their size. Where a GPU instance names its model, a CPU instance names its vCPU and memory. This applies on the offer card, in the configuration and order summaries, on the instance card, in the details panel, and in the confirmation shown before terminating an instance. GPU count and video memory are left out entirely rather than shown blank.
- Hardware is marked by an icon. Instance cards carry a mark for the hardware they run on, so a CPU node and an accelerator can be told apart at a glance.
- Even specification grid. The machine configuration panel left gaps where a value was missing. It now lays out as a consistent grid.
- Topping up mid deploy brings you back to Deploy CPU. If your balance is short, the configuration you had built is held while you top up and restored when you return, the way it already worked for GPUs.
- Two choices made at once no longer overwrite each other. Every selection in the deploy wizard rewrote the whole configuration from a copy taken earlier in the render, so when two selections landed together one of them was dropped. A step's own default is applied before the page's, which meant the dropped one was reliably yours. Each choice now writes only the field it changed.
- A deliberate choice of Spot is never overridden. Where an offer is sold both ways, a default now fills an empty selection only. Where an offer is sold one way, a selection that cannot be deployed is still corrected for you.
- The signed out wizard no longer flickers. Moving between the GPU and CPU pages while signed out wrote to browser storage in a loop. It settles at once now.
GET /api/gpu-offerslists CPU Node alongside the GPU offers, as a single row withgpuType: "CPU"anddisplayName: "CPU NODE". Narrow the catalog to that row with?search=cpu. Every entry in itsoffersarray reportsgpuCount: 0and carries theofferIda deployment takes, along withvcpus,memory,storage,price,os_options, and the region inclusters.POST /api/deploymentsaccepts CPU offers. SendgpuType: "CPU"withgpuCount: 0. Deployments created this way are stored with the same values, so responses and usage records report a CPU node rather than an unnamed GPU.
v1.24.1 • 2026-07-30
Rates That Track the Provider, Plus Deploy Wizard Fixes
BillingYour hourly rate now follows the provider's price for the whole life of an instance, not just at launch. Deploying a GPU alongside a volume no longer fails with a region you never picked, spot configurations are priced on the rate you actually pay, and the setup you return to after adding balance is re-checked against live offers.
- Rates Track Current Provider Pricing: Your hourly rate now stays in line with the provider's current price for a GPU you are already running. Previously this applied on only some providers, so an instance could hold its launch-day rate for its entire life even after the underlying price moved. Charges are calculated from the point the price changes onward, so usage you have already been billed for is never recalculated, and any discount on your account continues to apply
- Correct Region When Deploying With a Volume: Setting up an instance and a volume in the same region could fail with an error naming a region you never selected, for example reporting an offer in
EU North 1when everything was set toEU West 1. This happened when two regions shared the same price. The wizard now keeps your selected region and the selected configuration in step, on Spheron ES and Verda alike - Cheapest Spot Region Selected by Default: Spot configurations were ranked using the on-demand price rather than the spot price you are billed. The region chosen for you was not always the cheapest, and the region list could appear out of order against the prices shown next to it. Both now use the spot price
- Setup Re-Checked When You Come Back: After adding balance or signing in part-way through setup, the wizard could still show the price and availability from when you started. Your configuration is now re-checked against live offers when you return, so the order summary matches what you are charged. If the provider has withdrawn that configuration in the meantime, you are told directly instead of finding out when the deploy fails
v1.24.0 • 2026-07-14
Reboot-Proof Dedicated GPUs, Earlier Low-Balance Warnings & B300 on Spheron ES
ExpansionA dedicated GPU that reboots on the provider side now stays alive and recovers on its own, instead of being torn down while you are still using it. Low-balance warnings start hours earlier, Spheron ES adds B300 GPUs with visible memory specs, and a malformed SSH key now fails fast with a clear message.
- B300 Now on Spheron ES: Spheron ES offers now include the B300 SXM. It is identified correctly in the deploy wizard, on GPU cards, and in the API, instead of surfacing under an unrecognized name
- GPU Memory on More Offers: Every Spheron ES and Spheron AI offer now shows its per-GPU memory (VRAM) on the GPU cards and in the order summary, matching the other providers. Offers that previously left memory blank now display it
- Dedicated GPUs Survive Provider Reboots: When a dedicated GPU instance reboots on the provider side and briefly reports as stopped or offline, it is no longer terminated automatically. It stays running and recovers on its own once it comes back online, so a routine provider reboot can no longer destroy a machine you are still using. Spot instances keep their existing behavior
- Cleaner Handling of Stuck Spheron ES Instances: On Spheron ES, a dedicated instance that never actually started, or that stays stopped for an extended period, is now cleaned up instead of lingering, while genuine short reboots keep the instance alive
- Steadier Sign-In: Fixed a rare sign-in failure that could hit a brand-new account created from two near-simultaneous requests. Returning to the app after a page refresh is also faster, because it no longer re-runs the full sign-in flow
- Earlier Low-Balance Warnings: Low-balance warnings now begin sooner, at roughly 12, 6, and 3 hours of estimated remaining runtime, on top of the existing 1 hour, 30, 15, and 5 minute alerts. You get more lead time to top up before your instances are affected, and the balance-exhaustion notice is unchanged
- Clear Error for Invalid SSH Keys: Creating a deployment with an
ssh_public_keythat is not a string (for example an object) now returns a400error that names the problem up front, instead of a generic provider failure reported after a dead deployment record was already created. Valid keys are unaffected
v1.23.0 • 2026-06-30
Faster Dashboards, Automatic Deposit Recovery & Consistent Rate Limits
UX ImprovementsYour billing, instances, and volumes pages now load noticeably faster, deposits that get stuck pending are recovered or cleared on their own, and API rate limits are enforced consistently no matter how busy the service is.
- Faster Billing and Dashboard Loads: The billing analytics, instances, and volumes pages now load noticeably faster, especially on repeat visits, so you spend less time waiting on spinners. Data still refreshes in the background, and if a fresh result is ever unavailable the page falls back to live data, so what you see stays accurate
- Automatic Recovery of Stuck Deposits: If a credit deposit you paid for ever gets stuck in a pending state because a confirmation was delayed or missed, it is now detected and credited to your balance automatically, with no need to contact support. Deposits that were genuinely abandoned or expired are cleared from your history instead of lingering as pending forever. Automatic top-ups are unaffected and keep their own retry behavior
- Consistent Rate-Limit Enforcement: API rate limits are now enforced consistently across the entire service. The documented limits hold accurately even under heavy concurrent traffic, so requests above a limit are reliably throttled instead of occasionally slipping through
v1.22.0 • 2026-06-17
Email Notification Controls, Time-Based Low-Balance Alerts & Billing Fixes
New FeaturesYou now decide which marketing emails you receive, while account and billing emails always reach you. Low-balance warnings tell you how much runtime you have left instead of a flat dollar figure, and expired volume discounts correctly drop back to the standard rate.
- Email Notification Preferences: A new Notifications tab in Settings lets you turn marketing emails on or off. You are subscribed by default. Flip the toggle off and you stop receiving product and offer emails, while account and billing emails (deployment status, low-balance warnings, payment receipts) keep coming. Those essential emails are always on and the toggle does not affect them
- One-Click Unsubscribe: Every marketing email now carries an unsubscribe link that opens the Notifications tab directly, along with a short note explaining why you received it
- Time-Based Low-Balance Alerts: Low-balance and balance-exhaustion warnings are now based on how much runtime you have left, not a fixed dollar amount. Spheron estimates your remaining time from your balance and current hourly burn rate, then warns you as you cross roughly 60, 30, 15, and 5 minutes of runtime. The same alert now means the same thing whether you run a single small GPU or a large cluster
- Expired Volume Discounts Revert: When a team's discount expires, volumes now return to their standard hourly rate on the next billing cycle, the same way instances already did. Previously an expired discount could keep applying to a volume's billed rate after it had lapsed
v1.21.6 • 2026-06-04
Out-of-Stock Notify-Me for Spot GPUs & Cleaner GPU Cards
Notify-Me for SpotOut-of-stock notify-me now covers spot GPUs too, so a sold-out spot configuration sends you to the Notify CTA instead of a dead form. The same GPU no longer splits into duplicate cards, and the order summary now shows GPU memory.
- Spot Out-of-Stock Cards: When a spot GPU is fully out of stock, the deploy wizard now hides Region and OS and shows the same Notify CTA you already get for dedicated GPUs, instead of dropping you into a half-configured flow that reported "No OS options available for this region"
- Surfaces Right Away: Spot configurations that had already sold out now show the Notify CTA immediately, with no waiting for the next stock refresh
- No More Duplicate Cards: The same GPU no longer fragments into duplicate cards or shows a doubled form-factor suffix. Listings like "A100 80G SXM4 SXM4", or "A30" and "A30 PCIE" appearing as two separate cards, are now collapsed into one
- Sold-Out Counts Stay Actionable: When a specific GPU count on Verda is out of stock, the wizard keeps the Notify-me CTA reachable and hides the storage selector, instead of dropping you into a dead configuration flow
- GPU Memory on the Order Summary: The order summary now shows each GPU's VRAM next to its name
- Accurate Availability Header: The available and guaranteed header copy now tracks live capacity, so it agrees with the GPU Count and Region sections
v1.21.5 • 2026-06-02
Accurate GPU Pricing & Broader SSH Key Support
Accurate PricingGPU prices in the deploy wizard and the API now reflect the right offer, with no sold-out offer undercutting the best available price. Deploys with ECDSA and FIDO security keys now work on Massed Compute and Verda.
- Correct Spot and Dedicated Counts: Spot and dedicated offers are no longer double-counted against each other, so the lowest spot price, lowest dedicated price, and availability counts are accurate
- Best Available Price Ignores Sold-Out Offers: The best-price figure on a GPU card now comes from in-stock offers only, so a stale out-of-stock price can no longer win and mislead you
- Cleaner Public API:
GET /api/gpu-offersno longer returns internal out-of-stock offers. Existing fields are unchanged, so existing integrations keep working
- ECDSA & FIDO Keys Now Work: Deploying to Massed Compute or Verda with an ECDSA (
ecdsa-sha2-...) or FIDO security key (sk-ssh-ed25519@openssh.com,sk-ecdsa-...) now succeeds. Previously only RSA and Ed25519 keys were accepted and other types failed with "SSH Key does not exist". Spheron AI, Spheron ES, Sesterce, and Voltage Park already accepted every key type
v1.21.4 • 2026-06-02
Billing: Cost-Saving Intelligence & Spend Visibility
Cost-Saving SignalsThe billing page is now an actionable cost dashboard. See where you can save against other providers and the big hyperscalers, spot idle resources, and track spend trends and anomalies at a glance.
- Cross-Provider Price Comparison: Each deployment row shows whether you are on the cheapest provider for that GPU, or how much more you are paying per hour than the cheapest option (
+$X/hr vs <provider>) - Hyperscaler Comparison: A line under each deployment compares your Spheron rate against AWS, GCP, and Azure list prices, with the percentage you are saving
- Long-Running and Idle Flags: An amber chip marks deployments running 7+ days, a callout flags volumes left unattached for 30+ days, and volume rows now show the cost accrued so far
- Daily Spend Trend: A sparkline of daily spend across the selected period, so trends are visible at a glance
- Spend Breakdown: Mini-charts break your spend down by GPU model, by provider, and by spot versus dedicated
- Blended Rate and Month Projection: New cards show your blended cost per GPU per hour and a projected total for the current month
- Top Spenders and Reserved Hint: A top-three deployments-by-spend callout, plus a hint when a GPU type's spend suggests a reserved commitment could save you money
- Discount Savings: A running total of what your active discounts have saved you across the period
- Spend Anomaly Alert: An amber banner when a single day's spend spikes far above your recent average
v1.21.3 • 2026-05-29
Out-of-Stock Notify-Me Cards, Interconnect Display & UX Polish
Out-of-Stock Notify-Me CardsSold-out GPUs now stay on screen as notify-me cards instead of disappearing, the GPU spec strip shows the interconnect bus, and a few rough edges around volume errors and confirmation dialogs are smoothed out.
- Sold-Out GPUs Stay Visible: Across Verda, Massed Compute, Spheron ES, Sesterce, and Voltage Park, out-of-stock GPUs now appear as dimmed "Out of stock" cards with a Notify-me CTA, instead of vanishing from the wizard
- Sold-Out Offers Carry Forward: Offers that briefly disappear upstream are remembered for up to 7 days, so a sold-out GPU still surfaces as a notify-me card rather than dropping off the marketplace entirely
- Bus on the Spec Strip: GPU cards now show the interconnect bus (NVLink, SXM, or PCIe) on the spec strip, so you can pick the interconnect that matches your workload
- Clearer NVLink Labels: NVLink-bridged GPUs are flagged consistently, and NVL models no longer carry a redundant "PCIE" suffix in their title
- RTX PRO 6000 Corrected to Blackwell: The RTX PRO 6000 now reads as Blackwell architecture, so you install the right driver
- Dialogs Behave as Expected: Confirmation dialogs now dismiss the way you expect, closing when you click outside them just like every other modal in the app, so they no longer trap you when you click away. They still stay open while an action is in progress, so you cannot dismiss one mid-operation
v1.21.2 • 2026-05-26
Billing & Volume Reliability
BillingAuto top-up now gets a chance to recover your balance before any instance is terminated for low credit, and a terminated instance's volumes return to Available instead of staying stuck, so you can reattach them.
- Auto Top-Up Recovers Before Termination: When your balance runs low, auto top-up is given time to charge your saved card and restore credit before instances are terminated. A momentary dip no longer costs you a running deployment
- Volumes No Longer Stick to Terminated Instances: When an instance is torn down, its volumes return to Available so you can reattach them right away, instead of staying marked Attached to an instance that no longer exists
v1.21.1 • 2026-05-24
Confidential Compute on Verda RTX PRO 6000
NewVerda's RTX PRO 6000 now offers a Confidential Compute variant that keeps your VM and GPU memory encrypted while in use.
- Confidential Compute Variant: Verda's RTX PRO 6000 now lists a separate Confidential Compute (CC) option alongside the standard card, so you can choose it directly in the deploy wizard
- Confidential Compute Notice: When you select the CC variant, the order summary explains that VM and GPU memory are encrypted in use and isolated from the hypervisor and the cloud provider itself
v1.21.0 • 2026-05-21
Mobile-Responsive Marketplace: Sidebar Drawer, Fluid Layouts, and Polished Wizards
Mobile NavigationThe marketplace is now usable on a phone. The desktop sidebar collapses behind a hamburger drawer on small screens, the deploy wizard reorders so the order summary stays in view above the form, instance and volume detail panels open full-screen on mobile, and every page (billing, API docs, volumes, settings, top nav) has been retuned so cards, headers, and dialogs reflow without horizontal overflow.
- Hamburger Sidebar Drawer: On phones and small tablets the persistent sidebar is replaced by a hamburger button in the top nav. Tapping it slides a full nav drawer in from the left with an overlay dim. Tapping the overlay, hitting a nav item, or navigating away closes it. Background scrolling is locked while the drawer is open
- One Source of Truth for Nav Links: Desktop sidebar and mobile drawer now share the same nav definition, so a route added in one shows up in both
- Resize-Aware: Resizing the window from mobile to desktop closes the drawer, restores the desktop sidebar, and re-applies the layout without a reload
- Order Summary at the Top: On mobile the order summary now stacks above the configuration form (instead of being pinned to the right rail) so the running price and selected GPU stay visible without scrolling back up
- Full-Width Step Buttons: Next, Back, and Deploy buttons go full-width on mobile. The Back/Deploy pair stacks vertically with Deploy on top, so the primary action is always under your thumb
- Truncating GPU Cards: GPU offer cards truncate long titles and the results counter clips its parenthetical detail on narrow screens, so cards no longer push the layout sideways
- Full-Screen on Mobile: Tapping an instance or volume card now opens its detail panel as a full-screen sheet (instead of a fixed-width side drawer that ran off the viewport). The panel reverts to the familiar right-side drawer on tablet and desktop
- Safer Height on iOS: Detail drawer height now accounts for Safari's dynamic address bar, so the bottom of the content is no longer covered
- Billing Page Reflow: Balance cards, deposit packages, and the mini-metrics grid now stack cleanly on small screens, step up to a tighter grid on tablets, and keep the full layout on desktop. The tabs row scrolls horizontally on narrow screens instead of wrapping, and the saved-card section reflows for small viewports
- API Docs Reflow: Endpoint accordions, curl commands, the base URL section, and the quick-test panel all reflow on mobile without horizontal scroll. Long URLs and code blocks now wrap or scroll inside their cards
- Volumes and Instances Pages: Page headers, load-more buttons, attach/detach dialogs, and the create-volume wizard reflow for mobile widths. The load-more button is full-width on mobile and capped to a comfortable size on tablets and up
- Top Nav: Logo, balance display, team switcher, deposit dialog, and user menu all retuned for narrow viewports so the bar stays single-line without overflow
- Feature Announcement Modal: Modal width adapts to the viewport on mobile instead of bleeding off the edge
- Wizard Headers: Pipe separators between header chips are hidden on narrow screens so you no longer see orphaned
│characters - Reserved GPU Wizard, SSH Keys, Team Overview, GPU Alerts, Usage Analytics: All retuned to flow into a single column on mobile with appropriately stacked actions and headers
- Drawer Trigger: The hamburger button now announces whether the drawer is open or closed for screen readers
- Defensive Rendering: The credit-package grid now guards against an empty package list, so an empty config never throws while the page is mid-render
v1.20.0 • 2026-05-15
GPU Availability Alerts, Smarter Stock Signals & Faster Capacity Refresh
New FeaturesNever refresh the marketplace waiting for a GPU again. Subscribe to a sold-out GPU configuration directly from the deploy wizard and Spheron emails you the moment that exact GPU, count, and instance type is back in stock. The wizard now lets you navigate sold-out variants instead of hiding them, Spheron ES regions surface live stock signals before you commit, Spheron AI multi-GPU placements stay hidden while supply is too thin to deploy, and stock-out errors anywhere on the marketplace clear from the catalogue immediately instead of trailing the next user.
- GPU Availability Alerts: Subscribe to a sold-out GPU configuration directly from the configure step in the deploy wizard. You receive an email the moment that exact configuration (GPU type, count, provider brand, spot or dedicated) is back in stock. An optional price ceiling keeps the email scoped to your budget so you only get pinged when the offer is actually affordable
- Alerts Tab in Settings: A new Alerts tab under Settings lists every alert you have ever created. Unsubscribe a pending alert with one click, or Resubscribe a previously notified alert if you missed the window the first time
- Brand-Wide Alert Coverage: An alert scoped to a brand fires when any region under that brand has matching capacity. You do not have to pick a specific region to subscribe; one alert covers the entire brand
- Navigate Sold-Out Configurations in the Wizard: Sold-out GPU configurations now appear in the deploy wizard as dimmed cards instead of being suppressed entirely. Click through to inspect the count, networking, and provider options that are temporarily unavailable, then either subscribe to an alert or pick a live alternative without restarting the flow
- Per-Region Stock Signals on Spheron ES: The region picker in the deploy wizard now shows a tiered stock pill (high, healthy, low, critical) next to each Spheron ES region, so you can see how thin supply is before committing to a region
- Spheron ES Spot Listings Hide Low-Stock Configurations: Spheron ES spot offers with too little stock to deploy reliably are no longer listed. This removes the failure path where a listing claimed availability but the deploy refused to allocate
- Spheron AI Multi-GPU Stock Floor: Spheron AI 4x and 8x configurations are only listed when the region has enough stock to fulfil them. Below the floor the configurations are hidden, so you no longer pick a placement that fails at create time
- Collapsible Sidebar with Persisted State: The navigation sidebar now collapses to an icon rail and remembers its state across reloads. Tooltips appear on hover when collapsed, so you can reclaim horizontal space for the dashboard, instance cards, and the deploy wizard without losing navigation
- Reserved GPU Catalogue Updates: The reserved GPU catalogue now includes R100 and GH200, and the GPU memory field is optional on request submissions
- Faster Capacity Detection on Dedicated Offers: Dedicated GPU availability now refreshes every 5 minutes, so the deploy wizard and dashboard reflect real stock within minutes of an inventory change. When a pending alert exists, the marketplace forces an early refresh so the email lands while capacity is still live
- Cache Refresh on Stock-Out Errors: Deploy failures that signal out-of-stock now invalidate the marketplace's offer cache immediately. The next user no longer sees a just-sold-out GPU listed as available while the cache walks down its TTL
- Availability Alert Emails: Notification emails include a per-region capacity breakdown with brand labels, are tone-shaped for spot vs dedicated copy, and ship in both HTML and plain-text bodies so they render correctly in every client
v1.19.0 • 2026-05-11
Spheron ES (Spheron Extra Supply) Provider Launch, Spot Reliability & Faster Deployment Status
New ProviderMeet Spheron ES (Spheron Extra Supply), a new GPU provider on the marketplace with B200 SXM6, H100 SXM5, H200 SXM5, L40S, and RTX Pro 6000 across Finland, France, Middle East, and the United States. Both on-demand and spot are supported, and persistent volumes ship on day one with multi-instance attach, in-place resize, and a 256 TiB ceiling per volume. Alongside the launch, spot deployments now stay correctly labelled across the dashboard, preempted instances are reaped in seconds instead of minutes, and freshly created deployments flip to "Running" the moment the VM is live.
- Spheron ES (Spheron Extra Supply): A new GPU provider is now live on the marketplace. Inventory currently spans B200 SXM6, H100 SXM5, H200 SXM5, L40S, and RTX Pro 6000
- On-Demand and Spot: Both instance types are available. Spot offers the same GPU configurations at a lower price with no uptime guarantee
- Multiple Regions: Spheron ES regions span Finland (EU North 1), France (EU West 1), Middle East (ME West 1), and the United States (US Central 1). They show up in the deployment and volume wizards, and in regions listings on the API
- Country Filter Picks Up New Regions: The country filter in the deployment wizard correctly groups EU North under Finland, EU West under France, and ME West.
- Tier 3 DC Compliance Badge: Spheron ES is flagged with the same Tier 3 DC compliance badge as the rest of the family
- Volumes on Spheron ES: Spheron ES is a supported volume provider from day one. Create and manage persistent storage from the
/volumesdashboard with the same UX as the existing volume providers - Multi-Instance Attach: A single Spheron ES volume can be attached to multiple instances at once, so a dataset can be fanned out across a cluster without duplication
- Attach at Deploy Time Without Restart: Pick a Spheron ES volume in the deployment wizard and it is wired into the instance before the VM boots. No post-boot mount step, no restart
- Hot-Attach and Hot-Detach Supported: Attach or detach a volume on a running instance from the dashboard or API. The instance briefly stops and restarts to apply the change; data is preserved
- In-Place Resize: Grow a Spheron ES volume after creation without recreating it or migrating data (shrinking is not supported)
- Up to 256 TiB per Volume: Spheron ES volumes can be created up to 256 TiB in a single volume (
sizeInGb: 262144on the API). The size slider in the wizard adapts to match - Volume Rules Dialog for Spheron ES: The "Volume Rules" dialog accessible from the create-volume and attach flows now covers Spheron ES, spelling out the at-deploy attach, restart-on-hot-attach behaviour, multi-attach semantics, resize policy, and the no-rename restriction
- Mount Tag on the Volume Card: Each Spheron ES volume card now shows the mount tag for shared-filesystem volumes with a one-click copy, so you can grab it without opening the detail panel
- Spot Type Preserved End-to-End: Spot deployments created via the API or dashboard are now consistently labelled "Spot" on the instances page and across deployment responses. Previously a spot VM could fall through to "Dedicated" in the dashboard when the client did not pass
instanceType. Commission, billing, and the instance card badge all derive the type from the offer catalog now - Faster Status Flip on New Deployments: Newly created deployments now flip from "Deploying" to "Running" within seconds of the VM coming online, instead of the previous 30-90 second wait. The runtime counter on the dashboard tracks usage accurately from the first second
- Faster Preemption Detection: Spot instances that get preempted are now detected within ~10 seconds (one monitor cycle), down from the previous ~30 seconds. This shrinks the window where you might still be charged for a preempted VM's allocated disk and IP
- Orphan VM Cleanup for Failed Spot Starts: If a spot VM is preempted or fails to ever reach Running (for example when capacity is exhausted mid-create), the upstream VM is now reliably destroyed during cleanup. Previously the deployment was marked terminated on the marketplace side but the VM could linger and continue billing for disk and IP allocation
- Safer Concurrent Volume Operations: Attaching and detaching volumes back-to-back on the same instance is now race-safe. The instance monitor no longer flips a healthy VM to "Terminated" if it observes a transient stopped state during a hot-attach or hot-detach cycle
- New
provider: "spheron-es"Value Accepted:POST /api/volumesandPOST /api/deploymentsnow acceptspheron-esalongside the existing brand values. UseGET /api/gpu-offers?providers=spheron-es(note:providersis plural and comma-separated) to list GPU offers, andGET /api/volumes/regions?provider=spheron-esto discover regions at runtime - Storage Pricing on Spheron ES:
GET /api/volumes/pricing?provider=spheron-esreturns the current hourly rate per GB. The endpoint accepts an optionalregionparameter for forward compatibility, but Spheron ES rates are currently flat across all regions - Multi-Instance Attach on
POST /api/volumes/{volumeId}/attach: Spheron ES volumes can be attached to multiple deployments concurrently. Each successful call adds the deployment toattachedToDeploymentIds; the same volume id can be reused on a different deployment without detaching first volumeIdsWired in at Create: WhenvolumeIdsis passed toPOST /api/deploymentsfor a Spheron ES deployment, the volumes are mounted as part of the create call rather than after the VM reaches Running. The response returns with the volume already marked attached- Volume Size Ceiling for Spheron ES:
POST /api/volumesacceptssizeInGbup to262144on Spheron ES (256 TiB). ReadmaxSizeGbfromGET /api/volumes/regions?provider=spheron-esfor the current cap - Correct
instanceTypeon Deployment Responses:GET /api/deploymentsandGET /api/deployments/{deploymentId}now return the correctinstanceTypefor every deployment even when the client did not pass the field on create. The value is derived from the offer catalog and resolves to one ofSPOT,DEDICATED,BARE_METAL, orCLUSTER. Existing fields are unchanged so existing integrations continue to work
v1.18.0 • 2026-05-07
More Spheron AI GPUs, More Regions, Per-Region Storage Pricing
ExpansionSpheron AI now ships with more GPU choices, more regions, and a larger storage ceiling. The volume wizard adapts size limits and price to the region you pick, region names read clearly across the dashboard, deployment failure messages are easier to act on, and Verda and Voltage Park now show the same post-create rules modal that Sesterce and Spheron AI already had.
- More Spheron AI GPUs: Spheron AI offers now span a wider GPU lineup, including new H100 (SXM5, NVL, PCIE), A100 80GB (NVL, PCIE), A6000, RTX 4090, RTX 5090, L40, and L40S options. They appear in the deployment wizard and on
GET /api/gpu-offersautomatically with no client changes - More Spheron AI Regions: Two new regions are available alongside Canada 1 and Norway 1: Montreal 1 and Oslo 1. They show up in the deployment and volume wizards, and in regions listings on the API
- Larger Volume Ceiling: Spheron AI volumes can now be created up to 50 TB in the new regions (up from 40 TB). The wizard adjusts the size slider's maximum based on the region you pick
- Friendlier Region Names: Region picks across the deployment wizard, volume wizard, instance cards, and volume cards now display as "Canada 1", "Norway 1", "Montreal 1", "Oslo 1" instead of raw region codes
- Country Filter Recognises New Regions: The country filter in the deployment wizard correctly groups the new Montreal region under Canada and Oslo under Norway
- Per-Region Storage Pricing in the Wizard: When you change region in the create-volume wizard, the displayed hourly rate and the size slider's range update to match that region. No more clicking through and getting surprised at checkout
- Volume Created Modal for Verda and Voltage Park: Creating a volume on Verda or Voltage Park now shows the same post-create confirmation modal that Sesterce and Spheron AI already had. Each provider's modal summarises that provider's specific attachment and lifecycle rules and offers a one-click "Deploy GPU" shortcut to jump straight into the deployment wizard
- Cleaner Failure Messages: Deployment failure reasons and error messages across the dashboard, toast notifications, and deployment-failure emails now surface a single clean line instead of dense JSON payloads and status codes. The full original error is still retained internally for support requests
- Clearer Out-of-Stock Errors: When a GPU is sold out in the chosen region, the deployment failure message now says so directly instead of returning a generic provider error
- Friendlier 409 / Conflict Errors: Volume delete and deployment errors that come back as a 409 (the volume is still attached, or it is being released after recent activity) now show an actionable next step instead of a generic conflict message
- Region Switch Updates Size Cap: Switching to a region with a different storage ceiling now resets the size slider correctly. Previously a stale cap could carry over from the previously selected region
- Correct Volume Size Cap Per Region: The create-volume slider now reads the maximum size of the region you actually picked. Previously the slider showed the brand's widest possible cap (50 TB) on every region, including regions that only support up to 40 TB
- Consistent Provider Label in Errors: Volume and deployment error toasts always show the Spheron AI label, including in a handful of rarer error paths where the wording previously slipped
- Custom Deployment Names No Longer Fail at Create Time: Deployments created via the API with a custom
name(containing spaces, dots, emoji, or anything beyond letters and digits) no longer fail with a name-validation error at deploy time. Yournameis preserved exactly as you sent it onGET /api/deploymentsand on the dashboard. See the API note below for details
- Per-Region Size and Pricing on
GET /api/volumes/regions: Each region entry now includesminSizeGb,maxSizeGb, andhourlyRatePerGb. If you are already listing regions, you no longer need a second call toGET /api/volumes/pricingto render a complete picker. Existing fields (id,name,country_code,types,hasGpuOffers) are unchanged - Region-Aware Pricing on
GET /api/volumes/pricing: The pricing endpoint now accepts an optionalregionparameter. Spheron AI rates can vary by region, so pass the region you intend to use for an accurate rate. Calls withoutregionkeep returning the provider's default rate, so existing integrations continue to work - New Spheron AI Region IDs Accepted:
POST /api/volumesandPOST /api/deploymentsnow acceptMON1(Montreal 1) andOSL1(Oslo 1) asregionvalues, alongside the existingCANADA-1andNORWAY-1. UseGET /api/volumes/regions?provider=spheron-aito discover the full list at runtime - Higher
sizeInGbCeiling:POST /api/volumesacceptssizeInGbup to 51200 on Spheron AI's Montreal and Oslo regions (40960 on Canada and Norway). ReadmaxSizeGbfromGET /api/volumes/regionsfor the per-region cap - Cleaner
errorBodies: Error responses across deployment, volume, SSH key, and Kubernetes endpoints now return a short, human-readable message instead of a dense JSON envelope. Existing fields are unchanged; only the message text is tidier - Cleaner
failureDetailson Deployments:failureDetailsonGET /api/deploymentsandGET /api/deployments/{deploymentId}is now a single readable line on failed deployments. The classification infailureReason(e.g. out-of-stock, 409 conflict) is also more specific so retries and backoffs can branch on it - Deployment
nameis Now Display-Only: Thenameyou pass toPOST /api/deploymentsis treated as a display label only. It is stored verbatim and returned unchanged onGET /api/deployments,GET /api/deployments/{deploymentId}, and the dashboard. There is no longer any character or length restriction enforced at create time, so names with spaces, dots, slashes, emoji, or longer than 63 characters are accepted. Your existing integrations keep working: there are no request changes required, and existing names continue to be returned exactly as stored
v1.17.2 • 2026-05-04
Deployment Response: First-Class gpuType and offerId Fields
APIDeployment responses now return the canonical GPU type and the source offer ID as their own fields, so you no longer need to parse the legacy
gpuModelIdcomposite to render GPU details or correlate a deployment back to a GPU offer.
- New
gpuTypefield on deployments:POST /api/deployments,GET /api/deployments, andGET /api/deployments/{deploymentId}responses now include agpuTypefield with the canonical GPU type (for examplertx-4090,h100). Prefer this over splittinggpuModelIdwhen rendering the GPU label. The existinggpuModelIdfield is unchanged so existing integrations continue to work. - New
offerIdfield on deployments: The same three endpoints now also return theofferIdused at create time, so you can correlate a deployment back to the entry fromGET /api/gpu-offersdirectly. Existing fields are unchanged. - No request changes required. Both additions are response-only fields. Clients can opt in when ready and existing consumers keep working as-is.
v1.17.1 • 2026-04-28
API Reference & Referrals Page Refresh
Design & UX RefreshThe API reference and referrals pages have been rebuilt to match the v1.17.0 design refresh, the deployment, volume, and reserved GPU wizards have picked up another round of polish, and Spheron AI spot offers now stay fresher in the marketplace.
- New API Reference Page: Endpoints are now grouped by category, with short descriptions, cleaner endpoint cards, refreshed request and response examples, and a tighter quick-test panel for easier scanning and testing
- Refreshed Referrals Page: Stats, the share link, share buttons, and the "how it works" section have been rebuilt with clearer hierarchy, step cards, and reward callouts, so it is easier to see your rewards and pass on your link
- More Wizard Polish: The deployment, volume, and reserved GPU wizards have picked up another round of spacing and typography tweaks across cards, selections, and order summaries
- Fresher Spheron AI Spot Pricing: Spheron AI spot offers now refresh on the same fast cadence as other spot providers, so spot availability and pricing stay current without a manual reload
v1.17.0 • 2026-04-27
Marketplace Design Refresh, Volume Discounts & NVLink GPU Flagging
Design & UX RefreshA top-to-bottom visual refresh across billing, teams, volumes, API keys, SSH keys, deployment, and reserved GPU pages. Discounts now apply to volumes the same way they apply to deployments, the reserved GPU contact form captures more useful detail, and Spheron AI NVLink GPUs are clearly flagged in the marketplace.
- Unified Visual Language: Billing, teams, volumes, API keys, SSH keys, deployment wizard, and reserved GPU wizard have all been redesigned around a shared header, card, and table style for a calmer, more consistent look
- New Team Switcher: The team menu has been consolidated into a single switcher in the top navigation. Create, switch, and manage teams from one place instead of several disconnected dialogs
- Refreshed Billing Page: Balance, deposit history, usage analytics, discount overview, and the add-credits flow (custom amount, saved card, billing details) have all been rebuilt with clearer hierarchy and tighter spacing
- Smoother Wizards: Deployment, volume, and reserved GPU wizards share a common header treatment and improved step layouts. The order summary sidebar now stays put when dropdowns or dialogs open, so it no longer disappears mid-configuration
- API Keys & SSH Keys: Empty states, generation dialogs, the whitelist-required state, the quick reference, and the documentation card have all been updated to match the new style
- Volume Cards & Sidebar: Volume cards, the volume details sidebar, the resize dialog, and the create-volume order summary have been refreshed to read more clearly at a glance
- Volume Discounts: Active team discounts now apply to volume hourly rates at creation and at resize time, the same way they already apply to deployments. The discounted rate is locked in when the volume is created. If a team's discount later expires or is revoked, the volume automatically reverts to its standard rate on the next billing cycle
- Spheron AI NVLink GPUs Flagged: Spheron AI GPU offers that are NVLink-bridged variants (for example
H100 NVL) are now clearly marked in the marketplace so you can pick the interconnect that matches your workload - Richer Reserved GPU Contact Form: The reserved GPU request form now captures phone country and country code separately (with a country picker), preferred GPU model, requested GPU quantity, and an optional marketing consent, so the team can route inquiries faster
- Discount Preview No Longer Fails Silently: The discount-code preview used in billing, the deposit flow, and the deployment and volume wizards now handles non-JSON error responses gracefully instead of failing in the background. Users see a clear error state instead of a stuck preview
- Create Team Dialog Stays Open Until Done: The create team dialog now stays open and shows its loading state until the team is actually created, matching the behavior of the invite member and add SSH key dialogs
- Data Crunch Cleanup Safety: The background cleanup that removes orphaned Data Crunch volumes now has additional safeguards so marketplace-tracked, idle, and shared user-owned volumes are never eligible. Only true orphans can be removed
- Runtime Display: Reserved runtime hours now display as
N/Ainstead ofN.Awhen no expiry is set
-
Volume Hourly Rate (all clients): Volumes created or resized while a team has an active discount now bill at the discounted rate. The volume response from
GET /api/volumesandGET /api/volumes/:volumeIdreflects the locked-in discounted rate; the pre-discount rate is also returned for reference. If the team's discount later expires, the rate automatically reverts on the next billing cycle. No request changes are required for clients to benefit from this; pricing endpoints continue to return public list rates. -
Spheron AI GPU Offers: GPU offers from Spheron AI now include an
nvlink: trueflag in their metadata when the GPU model is an NVLink-bridged variant (for exampleH100 NVL,A100 NVL). Non-NVLink offers do not include the flag. Existing fields are unchanged, so existing integrations continue to work and can opt in to the new flag when ready.
v1.16.0 • 2026-04-24
Spheron AI Persistent Volumes & Provider Rules Dialogs
New FeaturesPersistent storage, now on Spheron AI. Create a volume, attach it to a GPU instance at deploy time or while it's running, and move it between instances without losing data. Every volume provider now has a dedicated rules dialog so you know exactly how attachment and lifecycle work before you commit.
- Spheron AI Volumes: Spheron AI is now a supported volume provider. Create and manage persistent storage from the
/volumesdashboard, backed by Cloud-SSD storage - Attach at Deploy Time or Later: Pick a Spheron AI volume in the deployment wizard, or attach one to an already-running instance from the volume or instance sidebar. No need to tear down and redeploy to add storage
- Hot-Detach Supported: Detach a volume from a running instance and reattach it to a different instance without terminating either one. Your data moves with it
- Up to 10 Volumes per Instance: A single Spheron AI instance can have up to 10 volumes attached at once. The UI and API enforce the limit automatically so attach requests fail fast instead of in the middle of a deploy
- Single-Attach Volumes: Each Spheron AI volume can only be attached to one instance at a time. The dashboard hides incompatible volumes in the deploy wizard and shows a clear error if you try to double-attach
- Persistent After Termination: Volumes survive instance termination by default. Delete them explicitly from the dashboard when you're done
- Large Storage Ceiling: Create volumes from 1 GB up to 40 TB in a single volume
- Data Crunch Multi-Volume Support: Data Crunch instances can now attach up to 10 shared volumes at a time, up from a single volume in v1.14.1. Each Data Crunch volume can still be mounted on multiple instances concurrently, so you can fan out shared data and mix storage pools on the same instance
- Provider Rules Dialogs: Every volume provider (Spheron AI, Data Crunch, Sesterce, Voltage Park) now has its own "Volume Rules" dialog accessible from the create-volume and attach flows. Each dialog spells out per-provider limits: attach timing, concurrent-attach rules, resize policy, and lifecycle behavior, so you know what you're getting before you create a volume
- Volume Created Success Modal: After a Spheron AI volume is created, a confirmation modal summarizes the rules and offers a one-click "Deploy GPU" shortcut to go straight into the deployment wizard with the new volume pre-selected
- GPU Offer Availability Warning: The create-volume wizard now checks whether the selected provider and region actually have live GPU offers. If there's nothing to attach the volume to, a warning surfaces in the order summary before you confirm
- Smarter Volume Matching in Deploy Wizard: The attach step in the deployment wizard now respects per-provider constraints. Incompatible volumes are filtered, limit warnings appear when you hit the cap, and single-attach volumes already bound elsewhere are shown as blocked with an explanation
- Smarter Region Default on Create Volume: The create volume wizard now auto-selects the first region that actually has live GPU offers instead of blindly picking the alphabetical first. Regions without GPU offers are clearly labeled "No GPU offer present" in the Sesterce, Data Crunch, and Spheron AI dropdowns so you can see which ones to avoid before selecting. The Data Crunch dropdown is also cleaner, with decorative flag graphics removed
- Consistent Region Name Formatting: Massed Compute regions (for example
us-central-3) now display as "Us Central 3" in the deployment wizard, order summary, and instance cards, matching the style used for Sesterce and Spheron AI
- No In-Place Resize (Enforced): Spheron AI volumes cannot be resized once created. The API now returns a clear error on resize attempts instead of silently succeeding. To grow storage, create a new larger volume and migrate your data
- Accurate Region Codes in UI: The dashboard now shows clean region codes (for example
CANADA-1) regardless of the provider's internal naming - Stale Deployments No Longer Lock Volumes: If a previous instance terminated without a clean detach, single-attach volumes are no longer permanently locked. Attach attempts skip terminated, failed, stopped, and deleted deployments when checking occupancy, so you can always reclaim the volume onto a new instance. Applies to both Spheron AI and Voltage Park volumes
- Cleaner Single-Attach Error Messages: When a single attach volume is genuinely in use, the error message now lists only the live conflicting instances instead of every instance the volume has ever been attached to. Terminated and failed deployments no longer clutter the list
- Voltage Park Single-Attach Enforced Server-Side: Voltage Park's one-volume-per-instance and one-instance-per-volume rules are now enforced by the API, not just the UI. Double-attach attempts are rejected even when the request bypasses the dashboard
Creating and using a Spheron AI volume involves three steps:
-
Fetch available regions:
GET /api/volumes/regions?provider=spheron-aireturns aregionsarray. Each entry has anid(the region code to pass at creation time) and aname. Each region now also includes ahasGpuOffersboolean so you can check availability before creating a volume in a dead region. -
Create the volume:
POST /api/volumeswithprovider: "spheron-ai",region: "<region id from step 1>",name(max 50 characters), andsizeInGb(1–40960). The response includes the volumeidyou will use for all subsequent operations. -
Attach to an instance: two options depending on your workflow:
- At deploy time: include
volumeIds: ["<volumeId>"]in yourPOST /api/deploymentsrequest - After the instance is running:
POST /api/volumes/{volumeId}/attachwith{ "deploymentId": "<id>" }
- At deploy time: include
Detaching and re-attaching: POST /api/volumes/{volumeId}/detach with { "deploymentId": "<id>" } frees the volume to be attached elsewhere. Data is preserved. Detach and re-attach are supported without instance downtime.
Limits: Each Spheron AI instance supports up to 10 attached volumes. Each volume can be attached to only one instance at a time. Resize is not supported. Rename is not supported, so pick the name you want at creation.
Pricing: GET /api/volumes/pricing?provider=spheron-ai returns the current hourly rate per GB so you can estimate cost before creating a volume.
Data Crunch limits (updated): Each Data Crunch instance now supports up to 10 attached volumes (was 1 in v1.14.1). Multi-instance attach is unchanged. A single Data Crunch volume can still be mounted on many instances at the same time.
API Docs correction: The API reference now uses CLUSTER as the instanceType for multi-node deployments, matching the v1.10.0 rename. Any request examples that still showed BARE_METAL have been updated.
v1.15.0 • 2026-04-04
Sesterce Persistent Volume Support
New FeaturesPersistent storage is now available on Sesterce. Create volumes, pick your cloud provider and region, and attach them to instances at deploy time. Your data outlives any single session.
- Sesterce Volumes: Sesterce is now a supported volume provider. Create and manage persistent storage volumes from the
/volumesdashboard - Cloud Provider + Region Picker: When creating a Sesterce volume, choose your cloud provider and region from a dynamic dropdown so volumes are always deployed where your compute is
- Deploy-time Attachment: Select a compatible Sesterce volume in the deployment wizard. It attaches automatically when the instance starts, no extra steps needed
- Automatic Compatibility Filtering: The deployment wizard only shows volumes that match the region and cloud provider of your selected GPU offer. No risk of picking an incompatible volume
- Volume Deletion: Delete a Sesterce volume from the dashboard once the instance it was attached to has been terminated
Creating and using a Sesterce volume involves three steps:
-
Fetch available cloud providers and regions:
GET /api/volumes/regions?provider=sestercereturns aregionsarray where each entry has anid(the region code), aname, acloudId, and acloudName. You need bothidandcloudIdwhen creating the volume. They must match the cloud provider and region of the instance you plan to deploy. -
Create the volume:
POST /api/volumeswithprovider: "sesterce",region: "<id from step 1>",cloudId: "<cloudId from step 1>",name, andsizeInGb. The response includes the volumeidyou will use when deploying. -
Attach at deploy time: include
volumeIds: ["<volumeId>"]in yourPOST /api/deploymentsrequest. The volume attaches when the instance is created. Post-creation attach and detach are not supported for Sesterce. The volume is bound at launch.
Compatibility: the cloudId and region of your volume must match the cloud provider and region of your GPU offer. Use GET /api/gpu-offers to find offers and cross-reference the region before creating a volume.
Pricing: GET /api/volumes/pricing?provider=sesterce with optional cloudId and region query params returns the current hourly rate per GB for that specific location.
v1.14.6 • 2026-03-17
Spheron AI: Open All Inbound Ports by Default
ImprovementsAll ports are open out of the box. Spheron AI provider VMs now have full inbound access (TCP/UDP/ICMP, ports 1–65535, IPv4 and IPv6) applied automatically at creation time, with no manual firewall configuration required.
- Security rules at creation: Six inbound rules (TCP 1–65535, UDP 1–65535, and ICMP for both IPv4 and IPv6) are now passed directly in the VM creation payload via the
security_rulesfield, replacing the previous post-creation polling approach - Removed background firewall task: Eliminated the
enableSSHFirewallWhenActivepolling loop (up to 10-minute wait) and the separateenableSSHFirewallmethod that made individualPOST /sg-rulescalls after the VM reached ACTIVE state - No more
sshFirewallErrortracking: Removed thesshFirewallErrorMap, thesshFirewallErrorfield onVMInstance, and all related error-surface logic. Firewall setup is now atomic with VM creation
v1.14.5 • 2026-03-16
GPU Count Validation Hardening
Bug FixesStricter GPU count validation. Deployment requests with a mismatched GPU count are now rejected reliably regardless of whether the value arrives as a string or a number, and validation errors are propagated correctly through the error-handling pipeline.
- Type-safe GPU count comparison: The GPU count check now coerces both the requested value and the offer config value to
Numberbefore comparing, preventing false validation failures caused by string/number type mismatches (e.g.,"2"vs2) - GpuValidationError class: Introduced a dedicated
GpuValidationErrorsubclass so that GPU validation errors are identified withinstanceofrather than fragileerror.message.startsWith(...)string matching, eliminating the risk of silently swallowing errors or misclassifying HTTP status codes if the message text changes - Route-level fix:
deployment.routes.tsnow usesinstanceof GpuValidationErrorto classify the error as an HTTP 400, replacing the previouserror.message.includes('Invalid GPU count:')check
v1.14.4 • 2026-03-15
Feature Announcement Modal & Sidebar Changelog Link
New FeaturesStay up to date without leaving the dashboard. A new in-app feature announcement modal greets users with what's new since their last visit, and the sidebar now links directly to the changelog.
- Feature Announcement Modal: Automatically shows authenticated users any features released since their last visit. Slides through announcements newest-first with story-style progress bars, smooth slide transitions, and a 25-second auto-advance timer
- Per-User Tracking: Last-seen feature is persisted. The modal only re-appears when genuinely new features have shipped
- Learn More Links: Each announcement card links directly to the relevant docs or changelog section
- Changelog Sidebar Link: A compact "Changelog" entry with a "New" badge now lives in the sidebar bottom dock alongside the API Docs link, opening
docs.spheron.network/changelogin a new tab
v1.14.3 • 2026-03-14
Sesterce Deployment Reliability Fix
Bug FixesSesterce deployments no longer fail on name collisions. A
409 Conflicterror that occurred when instance names clashed is now handled automatically with a unique suffix and retry logic.
- 409 Name Collision: Sesterce's
/gpu-cloud/instancesAPI rejects duplicate instance names with a 409. Deployment names are now suffixed with a random 6-character hex string (crypto.randomBytes(3).toString('hex')) to prevent collisions - Retry Logic: If a 409 still occurs (e.g. extremely unlikely suffix collision), the deployment automatically retries with a freshly generated name, up to 3 attempts before failing
- Status Code on Errors:
makeAuthenticatedRequestnow attachesstatusCodeto thrown errors, enabling reliable detection of 409 vs other failure types - SSH Key Cleanup: If all retry attempts are exhausted, any provisioned temporary SSH key is deleted to prevent resource leaks
v1.14.2 • 2026-03-14
TensorDock Deployment Fix & Improved Error Reporting
Bug FixesTensorDock deployments now work reliably. A
400 Bad Requesterror that blocked all TensorDock deployments has been fixed, and deployment failures now show human-readable error messages in the dashboard.
- TensorDock 400 Error: Removed an incorrect JSON wrapper (
data.attributes) that was wrapping the request payload. TensorDock's API v2 expects a flat JSON body - Field Name Casing: Renamed
useDedicatedIp(camelCase) →use_dedicated_ip(snake_case) to match TensorDock's API contract - Cloud-Init Format: Converted
cloud_initfrom a JSON object to a YAML string, consistent with how other providers (e.g. Spheron AI provider) handle startup scripts
- Human-Readable Failure Reasons: TensorDock JSON error responses are now parsed and classified into user-friendly categories (e.g. "Insufficient resources", "Invalid configuration") stored as
failureReasonon the deployment - Failure Details in Sidebar:
InstanceDetailsSidebarnow surfacesfailureReasonandfailureDetailsso users can see exactly why a deployment failed without digging through logs
v1.14.1 • 2026-03-04
Data Crunch Shared Volume Support
New Provider SupportShared NFS volumes on Data Crunch. Create persistent NFS-backed volumes, attach them to multiple instances simultaneously, and keep your data safe after instance termination.
- Data Crunch Volumes: Data Crunch is now a supported volume provider. Create and manage shared NFS volumes from the dashboard or via the API
- Multi-Instance Attachment: A single Data Crunch volume can be attached to multiple GPU instances at the same time, unlike Voltage Park which restricts each volume to one instance
- Region Selection: Deploy volumes into FIN-01 (Finland 1), FIN-02 (Finland 2), or FIN-03 (Finland 3). Each volume is pinned to the region you pick at creation time
- Persistent Volumes: Data Crunch volumes survive instance termination by default. Only deleted on explicit user action
- One Volume Per Instance: Each Data Crunch instance supports at most one shared volume at a time, though that same volume can be attached to unlimited instances concurrently
Creating and using a Data Crunch volume involves three steps:
-
Fetch available regions:
GET /api/volumes/regions?provider=datacrunchreturns aregionsarray where each entry has anid(the region code to pass at creation time), a human-readablename, and acountry_code. Use theidvalue as theregionfield when creating the volume. -
Create the volume:
POST /api/volumeswithprovider: "datacrunch",region: "<region id from step 1>",name, andsizeInGb. The response includes the volumeidyou will use for all subsequent operations. -
Attach to an instance: two options depending on your workflow:
- At deploy time: include
volumeIds: ["<volumeId>"]in yourPOST /api/deploymentsrequest - After the instance is running:
POST /api/volumes/{volumeId}/attachwith{ "deploymentId": "<id>" }
- At deploy time: include
After attachment, GET /api/volumes/{volumeId} returns the NFS mount command and mount path in the response. Copy these directly into your instance to mount the volume.
Detaching and re-attaching: POST /api/volumes/{volumeId}/detach with { "deploymentId": "<id>" } frees the volume to be attached elsewhere. Data is preserved.
Pricing: GET /api/volumes/pricing?provider=datacrunch returns the current hourly rate per GB so you can estimate cost before creating a volume.
v1.14.0 • 2026-03-03
New GPU Provider: Europe & North America Regions
New GPU InventoryMore GPUs, more regions. A new provider is now available on the Spheron AI marketplace, adding H200, H100, A100, L40S, A6000, and A4000 inventory across Canada, Norway, and the US.
- GPU Models: H200 SXM, H100 SXM5 / NVL / PCIe, A100 SXM4 / NVL / PCIe, L40S, L40, A6000, RTX Pro 6000, A4000
- Regions: Canada (Montreal), Norway (Bergen), United States
- On-Demand & Spot: Both instance types are available. Spot instances offer the same GPU configurations at a lower price with no uptime guarantee
- Startup Scripts: Cloud-init startup scripts are supported. Packages, run commands, and file writes all work on this provider the same as others
- OS Options: 11 OS images to choose from, including Ubuntu 22.04/24.04, AlmaLinux 9, Debian 12, and CUDA-enabled variants (R535, R550, R570). Defaults to Ubuntu Server 22.04 LTS with CUDA 12.8 and Docker
- SSH Access: Port 22 is automatically opened on every new instance. No manual firewall configuration needed
v1.13.1 • 2026-02-27
Password Complexity Enforcement on Signup
Bug FixesStronger account security. Signup now enforces password complexity rules before any Firebase call, giving users immediate, clear feedback.
- Weak Password Allowed: The signup form previously accepted any non-empty string as a password, including the user's own email address. This is now blocked
- No Complexity Checks: Passwords with no uppercase, no lowercase, or no digits were accepted without warning. All three are now required
- Minimum 8 characters
- Cannot be identical to your full email address (case-insensitive)
- Cannot be identical to the local part of your email (the portion before
@) - Must contain at least one uppercase letter
- Must contain at least one lowercase letter
- Must contain at least one digit
- Inline Error Messages: Validation failures are shown immediately below the password field with a specific explanation. No generic Firebase errors
- Live Clearing: The error clears on every keystroke in the password field, and also when the email field is changed (prevents a stuck form if a "password too similar to email" error was triggered and the user updates their email instead)
- Gated Submit: The sign-up button stays disabled while a password validation error is active
v1.13.0 • 2026-02-27
Auto Top-Up Credits via Stripe
Saved Card ManagementNever run out of credits. Configure a balance threshold and Spheron automatically charges your saved card to keep your deployments running.
- Save a Card: Add a payment card via Stripe's hosted setup flow (no card numbers stored; only a Stripe PaymentMethod ID)
- Card Details: Saved card brand, last 4 digits, and expiry are shown in the billing page at all times
- Remove Card: Detach your saved card from Stripe entirely. This automatically disables auto top-up if it was enabled
- Role-Gated Access: Only team owners and admins can save or remove cards; members see card info in read-only mode
- Enable / Disable Toggle: Turn auto top-up on or off from the billing page
- Threshold Setting: Set the balance level (min $5, max $500) that triggers an automatic charge
- Top-Up Amount: Choose how much to charge each time (min $15, max $5,000)
- Immediate Check: Enabling auto top-up immediately checks your balance and triggers a charge if already below threshold
- Failure Banner: A warning banner appears on the billing page if auto top-up was disabled due to a declined charge
- Balance-Triggered Charge: After each credit deduction cycle, if your team balance falls below the configured threshold, a Stripe off-session PaymentIntent is created and charged automatically
- 5-Minute Cooldown: A distributed lock prevents double-charging. Top-ups cannot fire more than once every 5 minutes per team
- Race Condition Safe: Balance is re-fetched inside the lock before charging to prevent concurrent monitor cycles from triggering duplicate charges
- Instant Credit: Team balance is credited immediately on successful charge without waiting for a webhook
payment_intent.succeeded: Idempotent safety net. Credits the team if the service layer missed it (e.g. network failure mid-request)payment_intent.payment_failed: Automatically disables auto top-up and recordslastFailedAtwhen a card is declined
- Auto top-up charges appear in Deposit History labeled "Auto Top-Up" with a distinct badge, clearly separated from manual credit purchases
- Success Email: Confirms the charge amount and shows the new account balance
- Failure Email: Notifies the configuring user that their card was declined and auto top-up has been disabled, with a direct link to re-enable
v1.12.2 • 2026-02-27
Mandatory Phone Number on Reserved GPU Form
Bug FixesRequired contact info. Phone number is now enforced end-to-end so reserved GPU requests always include reachable contact details.
- Mandatory Phone Field: Phone number is now a required field on the Reserved GPU request form. The label, frontend validation, and server-side validation all enforce it
- Format Validation: Phone input is validated against a format check (supports
+, digits, spaces, dashes, parentheses, e.g.+1 555-123-4567or(555) 123-4567) with a minimum of 7 digits, on both client and server - Review Step Gate: If contact info (including phone) is incomplete when the user reaches the review step, the wizard redirects back to the contact form with a clear "Contact Info Required" toast notification
- Backwards Compatibility: Existing reservations without a phone number are unaffected. The schema change is non-breaking for legacy documents
v1.12.1 • 2026-02-23
Zero-Downtime Deployment & Faster Container Restarts
Deployment ScriptsInstant restarts, no build delays. App builds are now baked into the Docker image so containers spin up in seconds instead of minutes.
- Zero-Downtime Deploy: New
script/deploy.shfor all the apps. Builds the new image while the current container keeps serving traffic, then hot-swaps to the new container with no manual downtime - Health-Gated Rollout: The deploy script waits for Docker's health check to pass (up to 120s) before declaring success, ensuring the new container is fully ready before traffic is handed off
- Build at Image Time:
npm run buildnow runs duringdocker build(image layer) instead of at container startup. Containers start in seconds rather than waiting for a full compile - Health Checks Added: All app's Dockerfiles now include
HEALTHCHECKdirectives with 10s intervals and 30s start periods so Docker and the deploy script can reliably detect readiness
v1.12.0 • 2026-02-23
Volume Management UI for Voltage Park
New PagesFull persistent storage experience. Create, browse, attach, detach, resize, and monitor volumes directly from the dashboard.
- Volumes Page (
/volumes): Dedicated page to view and manage all your persistent storage volumes in one place, with status badges, provider/region info, hourly rates, and quick actions - Create Volume Page (
/create-volume): Step-by-step wizard to create a new volume. Select a provider, configure name, size, region, and lifecycle settings before reviewing the cost summary
- Volume Cards: Each volume displays its name, size, provider, region, status (available, attached, creating, deleting, error), and current cost, with one-click copy for Volume ID
- Volume Details Sidebar: Click any volume to open a detailed side panel showing overview, configuration, storage usage metrics, and attached instances
- Attach to Deployment: During the deployment wizard, an "Attach Volumes" step surfaces compatible volumes (same provider and region) and lets you select one to attach before launch
- Voltage Park instances support 1 volume per instance. The UI enforces this limit automatically
- Detach Volume: Detach a volume from a running instance directly from the instance detail sidebar or the volumes page, without losing data
- Resize Volume: Expand a volume's storage size on-demand from the volumes page (shrinking is not supported)
- Delete Volume: Delete a volume (must be detached first) with a confirmation dialog
- New Attached Volumes card visible on each running instance showing all volumes currently mounted, their size, hourly cost, and a detach action
- Volumes and Create Volume entries added to the sidebar for quick access
- Volume selection resets automatically when you switch providers or networking type in the deployment wizard
- Volume size input clamps to the provider's supported min/max range and rounds to a whole number
- Region matching is normalized so minor formatting differences (e.g.
us-east-1vsUS East 1) don't prevent valid volumes from appearing - Provider pricing is validated before allowing volume creation. A clear error is shown if pricing is unavailable for the selected provider/region
- Hourly and monthly cost estimates shown in real-time while configuring volume size
- Order summary in the create wizard shows total hourly cost and projected 30-day cost before confirming
GET /api/volumes: list volumes (filterable by team, status, provider)POST /api/volumes: create volumeGET /api/volumes/:volumeId: volume details with live usage dataPATCH /api/volumes/:volumeId: rename, resize, or update lifecycle settingsDELETE /api/volumes/:volumeId: delete volumePOST /api/volumes/:volumeId/attach: attach to a deploymentPOST /api/volumes/:volumeId/detach: detach from a deploymentGET /api/volumes/pricing: storage pricing by provider
v1.11.1 • 2026-02-13
Kubernetes Add-on for Voltage Park
New FeaturesManaged Kubernetes clusters on bare-metal GPU instances with automatic provisioning, kubeconfig access, and health monitoring.
- Kubernetes Cluster Deployment: Deploy fully managed Kubernetes clusters on Voltage Park bare-metal GPU instances
- Version Selection: Choose from multiple Kubernetes versions (1.35, 1.34, 1.33, 1.32) with automatic validation
- Automatic Provisioning: Kubernetes clusters are automatically provisioned and configured during instance deployment
- Kubeconfig Access: Download kubeconfig files directly from deployments for immediate kubectl access
- Cluster Health Monitoring: Real-time health tracking for control plane nodes, worker nodes, and network components
- Grafana Integration: Built-in Grafana monitoring links for cluster observability and metrics
- Custom Authentication: Optional support for custom Kubernetes AuthenticationConfiguration YAML
- Persistent Cluster State: Cluster configurations persist independently from instance lifecycle
- Provider Validation: Automatic validation ensures Kubernetes add-ons are only used with Voltage Park bare-metal instances
- Version Validation: Server-side version checking against provider-supported Kubernetes releases
- Base64 Encoding: Secure transmission of authentication configurations via base64 encoding
- Monitoring Service: Background service updates cluster health and configuration data automatically
GET /api/kubernetes/versions?provider=voltage-park: List available Kubernetes versionsGET /api/kubernetes/:clusterId/health: Get cluster health status with node and network component metricsPOST /api/deploymentswithkubernetesAddonobject: Create deployment with Kubernetes cluster
- Provider: Voltage Park only (other providers not yet supported)
- Instance Type: CLUSTER deployments only for H100 SXM5
- Operating System: Compatible with TensorML and other Voltage Park OS images
v1.11.0 • 2026-02-07
Persistent Storage Volumes
New FeaturesPersistent storage for GPU instances with flexible volume management and deployment attachment.
- Volume Management: Create, update, and delete persistent storage volumes independent of GPU instances
- Flexible Attachment: Attach and detach volumes to/from running deployments without losing data
- Multi-Provider Support: Volume storage available across supported providers (Voltage Park, etc.)
- Size Flexibility: Configure volumes from 1GB to 10TB with dynamic expansion support
- Automatic Billing: Hourly billing based on storage size with transparent pricing per GB
- Usage Tracking: Real-time monitoring of used capacity and storage metrics
- Smart Lifecycle Management: Choose whether volumes persist after instance termination or delete automatically
- Credit Validation: Automatic validation ensures sufficient credits before volume creation (24-hour minimum)
- Independent Lifecycle: Volumes persist independently from GPU instances by default
- Cross-Instance Sharing: Attach a single volume to multiple instances (provider-dependent)
- Capacity Expansion: Expand volume size on-demand (shrinking not supported for data safety)
- Name Validation: Alphanumeric naming with hyphens/underscores (max 60 characters)
- Status Tracking: Real-time status monitoring (available, attached, deleting, deleted)
- Automatic Cleanup: Orphaned volume references automatically cleaned from deployments
GET /api/volumes: List all volumes for a team with pagination and filteringPOST /api/volumes: Create new persistent storage volumeGET /api/volumes/:volumeId: Get volume details with fresh usage dataPATCH /api/volumes/:volumeId: Update volume name, size, or lifecycle settingsDELETE /api/volumes/:volumeId: Delete volume (must be detached first)POST /api/volumes/:volumeId/attach: Attach volume to a deploymentPOST /api/volumes/:volumeId/detach: Detach volume from deploymentGET /api/volumes/pricing: Get storage pricing by provider
- Provider Consistency: Volumes and deployments must be from the same provider for attachment
- Atomic Operations: Provider updates happen before database updates to maintain consistency
- Graceful Cleanup: Automatic cleanup of volume references when deployments are deleted
- Audit Logging: Complete audit trail for all volume lifecycle events
v1.10.1 • 2026-01-14
Reserved Instance Management
New FeaturesDedicated GPU leasing for users who have contacted the team and secured reserved GPU nodes.
- Reserved Instance Display: Users who have leased GPU nodes directly with Spheron AI can now view their reserved instances in the marketplace
- Direct Leasing Support: Seamless integration for customers who have contacted the team for bulk GPU reservations
- Dedicated Node Access: Reserved instances provide exclusive access to pre-allocated GPU nodes with guaranteed availability
- Custom Configurations: Support for custom GPU configurations negotiated directly with the Spheron AI team
- Enhanced Visibility: Reserved instances are clearly labeled and distinguished from on-demand offerings
- Better Management: Improved interface for tracking and managing leased GPU resources
- Streamlined Experience: Integrated workflow for users with both reserved and on-demand instances
v1.10.0 • 2026-01-08
Cluster Deployments & Baremetal GPU Offers
New FeaturesMulti-node cluster support with enhanced baremetal GPU offerings and clearer deployment terminology.
- Cluster Deployment Support: Multi-node GPU clusters are now clearly labeled and supported throughout the platform
- Baremetal GPU Offers: New baremetal GPU configurations added to the marketplace for dedicated hardware performance
- Improved Nomenclature: Voltage Park's H100 SXM5 offerings now accurately labeled as "H100 SXM5 Cluster" instead of "Baremetal" for better clarity
- Better GPU Classification: Enhanced distinction between single-node baremetal instances and multi-node cluster deployments
- Clearer Labels: Deployment types are now more accurately labeled to help users understand exactly what they're deploying
- Enhanced Discovery: Cluster and baremetal options are now easier to find and understand in the GPU marketplace
- Consistent Terminology: Standardized naming conventions across all providers for better user experience
v1.9.7 • 2026-01-06
Intercom Live Chat Support
New FeaturesGet instant help with integrated Intercom messenger for real-time customer support and assistance.
- Live Chat Widget: Intercom messenger widget integrated throughout the platform for instant support access
- Identity Verification: Secure user authentication with HMAC-SHA256 hash-based identity verification to prevent user impersonation
- User Context: Automatic user data synchronization (name, email, account creation date) for personalized support experience
- Anonymous Visitor Support: Non-authenticated visitors can still access support through anonymous chat sessions
- Smart Session Management: Automatic session handling when users log in, log out, or switch accounts
- Seamless Integration: Support chat available on all pages without disrupting your workflow
v1.9.6 • 2025-12-30
Deployment Termination Controls
Breaking ChangesCritical Fix: Strict termination controls prevent premature instance termination and ensure proper billing accuracy.
- Status-Based Termination: Only instances with
runningstatus can now be terminated manuallydeployinginstances cannot be terminated (must wait until running or automatic failure)failed,terminated, andterminated-providerinstances are already in final states
- Minimum Runtime Enforcement: Running instances must meet the 20-minute minimum runtime requirement before termination
- Fixed incorrect status semantics: Deployments that never started running are now marked as
failedinstead ofterminated - Fixed API key users being able to bypass minimum runtime checks by terminating during
deployingstatus - Fixed deployments showing "terminated" with N/A runtime and $0.00 cost (now correctly marked as
failed) - Added proper error messages for termination attempts on non-running instances
- Improved Error Messages: Status-specific error messages guide users on correct actions
- Clear explanations for why termination is blocked
- Helpful guidance on what to do next
- Frontend Error Handling: Enhanced UI feedback for termination failures
- Status-specific toast messages
- Better user experience during edge cases
- Updated GET
/api/deployments/:id/can-terminateendpoint with status validation - Updated DELETE
/api/deployments/:idendpoint with strict pre-termination checks
v1.9.5 • 2025-12-30
Flexible Storage Options for Data Crunch
New FeaturesChoose your storage size when deploying Data Crunch dedicated instances with new 500GB and 1TB options.
- Storage Size Selection: Data Crunch dedicated instances now offer two storage options:
- 500GB Standard: Default option with $0.137/hr storage pricing
- 1TB Extended: Expanded storage option with $0.274/hr storage pricing
- Clear Pricing Display: Storage costs are shown separately in the deployment wizard for transparent pricing
- Smart Defaults: 500GB storage is automatically selected when configuring Data Crunch dedicated instances
- Flexible Configuration: Easily switch between storage sizes to match your workload requirements
- Storage property is now included in GPU offer configurations for Data Crunch dedicated instances
- Pricing calculations properly account for storage costs in commission-adjusted totals
v1.9.4 • 2025-12-25
OTP Verification for Reserved GPU Requests
New FeaturesEnhanced security for bulk GPU reservations with email-based OTP verification.
- OTP Verification Flow: Reserved GPU requests now require email verification via one-time password (OTP) for added security
- Email OTP Delivery: Receive a verification code via email when submitting a reserved GPU request
- OTP Resend Option: Didn't receive the code? Request a new OTP to be sent to your email
- Session Management: OTP verification sessions are securely managed with automatic expiration
- Rate Limiting: OTP requests are rate-limited to prevent abuse and ensure system stability
v1.9.3 • 2025-12-25
API Access Control & Runtime Policies
New FeaturesControlled API access with whitelist-based key generation and enforced minimum runtime for deployments.
- API Key Whitelisting: API key generation is now controlled through a whitelist system. Contact support to request API access
- Whitelist Status Visibility: Users can now see their API access status clearly in the settings interface
- Minimum Runtime Enforcement: Deployments now require a 20-minute minimum runtime before termination to prevent accidental early shutdowns
- Runtime Protection: Destroy action is automatically disabled during the minimum runtime period with a helpful countdown timer
- System Configuration API: New endpoint (
GET /api/config/system) exposes system configuration including minimum runtime requirements - Termination Validation: New endpoint (
GET /api/deployments/:id/can-terminate) checks if an instance can be safely terminated
- Enhanced Rate Limiting: Deployment creation now limited to 5 deployments per hour per user for better platform stability and abuse prevention
- Better API Key Handling: Improved handling of empty or undefined API keys in the UI
- Deployment Wizard Updates: SSH key step now displays minimum runtime requirements upfront
- Clear User Feedback: Disabled actions now include tooltips explaining why they're unavailable and when they'll be enabled
GET /api/config/system: Returns system configuration including minimum runtime settingsGET /api/deployments/:id/can-terminate: Validates if deployment can be terminatedDELETE /api/deployments/:id: Enforces minimum runtime checks before allowing terminationPOST /api/deployments: Enhanced with rate limiting
v1.9.2 • 2025-12-22
Christmas Promo & Active Discount Display
New FeaturesTime-limited promotional discounts with automatic activation and clear discount visibility.
- Christmas Promo: Special time-limited discount offers appear automatically to eligible users with easy one-click activation
- Active Discount Display: Your current discount percentage and expiration date are now prominently shown on the billing page
- Clear Savings: See exactly how much you're saving with active discounts applied to your usage
v1.9.1 • 2025-12-20
Reserved GPU Offers
Reserved GPU OffersSmarter GPU reservation options with detailed specifications.
- Two Display Modes: Reserved GPU offers now support two presentation styles:
- Tiers Mode: Compare multiple pricing tiers (up to 3) with flexible commitment options, perfect for understanding pricing at different commitment levels
- Specs Mode: View detailed technical specifications including vCPUs, RAM, storage, connectivity type, and deployment method (Bare Metal or VM), ideal for understanding exact hardware configurations
- Regional Availability: GPU offers now display available regions, making it easier to choose deployments close to your users
- Better Descriptions: Hover over offer descriptions to see full details without cluttering the interface
- Improved Reservation Flow: When clicking "Reserve" on an offer, relevant details (specs, regions, pricing) are now pre-filled in the reservation form for faster booking
v1.9.0 • 2025-12-18
Major Frontend Refactor
Routing & LayoutComplete codebase modernization with modular components, centralized hooks, and improved UX.
- Introduce new routing and layout components
- Split PublicLayout and Sidebar into components/shared
- Refactor AddCreditsTab into modular components
- Powered by new usePayment hook and usePaymentCallback
- Move deposit dialog to TopNavBar subcomponents
- Break ApiDocumentation into composable sections and utils/types
- Modularize Card and Sidebar into subcomponents
- Rebuild pages/instances.tsx using new grid/header/empty/error components with infinite loading
- Extract Sidebar and TopNavBar for reusability
- Normalize toast hook path (useToast)
- All modals now wait for API completion before closing
- Fixed React Hooks violations with proper hook ordering
- Team switcher dropdown now works correctly
- Better loading states and error handling throughout
v1.8.2 • 2025-12-17
Higher Deposit Limits & New Credit Packages
New FeaturesDeposit up to $5,000 with new bulk credit packages for larger workloads.
- Increased Deposit Limits: Maximum deposit raised from $1,000 to $5,000 for teams with larger GPU requirements
- New Credit Packages: Added $500, $1,000, and $5,000 quick purchase options for bulk credits
- Clear Limit Display: Deposit limits are now prominently displayed in the UI for transparency
- Package Validation: UI automatically prevents purchases outside allowed limits with helpful error messages
- Better Formatting: Large numbers now display with proper comma formatting for easier reading
- Dynamic Configuration: Deposit limits and referral rewards are now centrally managed for consistency
- Referral Page Updates: Referral reward amounts and minimum deposit requirements are now displayed accurately throughout
- Enhanced UX: Improved handling of edge cases when selecting credit packages
v1.8.1 • 2025-12-17
Search Improvements
ImprovementsEnhanced GPU search with better filtering and improved reliability.
- Reserved GPU Search: Search now properly filters reserved GPU offers. When you search for "H100", only H100 models will appear in results
- More Accurate Results: Improved search matching ensures you see only relevant GPU configurations
- Better Performance: Enhanced search processing for faster and more reliable results
- Consistent Experience: Search behavior is now unified across all GPU offer types
v1.8.0 • 2025-12-16
Referral Program Launch
New FeaturesEarn rewards by referring friends! Get $5 credit when your referral deposits $100.
- Referral Dashboard: Access your unique referral link and track your referrals
- Shareable Links: Easy sharing via Twitter, LinkedIn, and direct link copying
- Automatic Tracking: Referrals are automatically tracked when someone signs up using your link
- Instant Rewards: Credits are automatically added to your account when referrals make qualifying deposits
- Discount Codes: New ability to validate and apply discount codes to your account
- Enhanced Transaction History: Referral bonus deposits are now clearly labeled in your transaction history
v1.7.0 • 2025-11-20
Email Notifications & Credit Monitoring
New FeaturesStay informed with professional email notifications and proactive balance alerts.
- Enhanced Email Notifications: Improved email design for welcome messages, deployment updates, and account alerts
- Smart Low Balance Alerts: Receive notifications when your balance reaches $50, $20, $10, or $5 to avoid service interruption
- Balance Exhaustion Alerts: Get notified when your balance reaches $0 and deployments are automatically stopped
- Rate-Limited Notifications: Smart notification system prevents email spam with 6-hour intervals between similar alerts
- Priority Notification Delivery: Account owners and admins receive critical balance alerts first
v1.6.0 • 2025-10-29
Transaction Receipts & Improved Navigation
New FeaturesDownload payment receipts and enjoy faster page loading with improved pagination.
- Receipt Downloads: Download official receipts for all completed deposits (Stripe & CopperX payments)
- Deposit History: Renamed transaction view to "Deposit History" for better clarity
- Paginated Views: Faster loading with pagination across deployment history and usage analytics
- Load More Button: Browse through your instances with easy "Load More" functionality
- Documentation Access: Quick access to API documentation directly from the navigation menu
- Loading States: Better visual feedback with loading skeletons while data loads
- Error Handling: Improved error messages and handling throughout billing and instances pages
- Performance: Faster page loads with optimized data fetching
v1.5.0 • 2025-10-18
Complete UI Redesign
Visual OverhaulModern dark theme with sleek blue gradients and enhanced user experience throughout the platform.
- Modern Dark Theme: New dark interface with blue gradient accents and improved contrast
- Redesigned Cards: Sleek card designs with unique clipped borders for a futuristic look
- Enhanced Buttons: Modern call-to-action buttons with hover effects and smooth transitions
- Improved Typography: Updated fonts and text hierarchy for better readability
- Billing Dashboard: Completely redesigned with clear balance overview, streamlined deposit flow, and organized transaction history
- Instance Management: Improved instance cards with better status indicators and enhanced SSH key management
- Settings Interface: Modern tabbed navigation with refreshed profile, SSH key, and API key management sections
- Deployment Wizard: Enhanced GPU browsing experience with improved provider, region, and configuration selection
- Reserved GPU Portal: New design for bulk GPU reservation requests with better quote workflow
- Faster Loading: Optimized loading and redirect screens
- Better Navigation: Improved top navigation and sidebar with clearer menu organization
- Enhanced Dialogs: Modern confirmation dialogs with better visual feedback
- Consistent Design: Unified design language across all pages and components
v1.4.0 • 2025-09-28
Reserved GPU Pricing & Compliance
New Features- Reserved GPU Pricing: Special pricing model for long-term GPU reservations
- Provider Compliance Status: View compliance and certification status for each provider during deployment
- Flexible SSH Key Options: Enhanced SSH key support for programmatic deployments
- Better Pricing Display: Improved GPU offer pricing calculations and display
- Enhanced Security: Stronger SSH key validation and processing
- System Stability: Improved reward processing reliability
v1.3.0 • 2025-09-02
Onboarding & Discounts
New Features- Welcome Onboarding: New user onboarding flow to help you get started quickly
- Discount Codes: Support for promotional and discount codes
- Reserved GPU Marketplace: New page for requesting bulk GPU reservations from our provider network
- Accurate Billing: Fixed credit deduction and monitoring for precise billing
- Better Calculations: Improved accuracy in usage cost calculations
v1.2.0 • 2025-08-12
API Access & New Provider
New Features- API Key Management: Create and manage deployments programmatically using API keys
- Massed Compute Provider: New provider option for more GPU choices and competitive pricing
- Multi-Node Deployments: Deploy multiple GPU nodes simultaneously with Voltage Park for larger workloads
v1.1.0 • 2025-07-25
Startup Scripts & Discounts
New Features- Startup Scripts: Add custom initialization scripts that run automatically when your instance starts
- Usage Discounts: Discount system for reduced pricing on GPU usage
- Real-Time Pricing: Fixed spot pricing updates for accurate availability and costs
- Accurate GPU Selection: Improved pricing calculations during GPU selection
v1.0.0 • 2025-07-04
Initial Release
Welcome to Spheron AI GPU Marketplace!The easiest way to rent high-performance GPUs on-demand from multiple providers.
Core Features- Multiple GPU Providers: Access GPUs from Voltage Park, Data Crunch, Sesterce, and TensorDock
- Simple Authentication: Sign in with Google, GitHub, or email
- Team Management: Create and manage teams for collaborative work
- Flexible Billing: Pay with crypto or credit card
- Usage Analytics: Track your GPU usage and spending in real-time
- Transaction History: Complete history of all your deposits and usage charges