V2 API and CLI in preview#

Our rewritten CLI and API are now in preview, built on a new mental model for managing compute that adds reselling support. Get started using the docs.

The new CLI and API are separate from the existing legacy API, which will continue to be supported as we continue to iterate.

Resell unused compute to recoup costs#

If you have more compute than you need, you can sell it back. Once your order fills, credits are added to your balance.

# Place a buy order
sf orders create --side buy --capacity my-capacity \
  --nodes 4 --start now --duration 24h \
  --max-rate '$25.00'

# Sell back unused allocation
sf orders create --side sell --capacity my-capacity \
  --nodes 4 --min-rate '$20.00'

CLI Rewrite#

We've rewritten our CLI in Rust for speed. The new CLI uses different command syntax, so some commands from the previous CLI won't work without changes.

If you forget to pass required flags on a command, it'll prompt you for what it needs.

Interactive prompt for # NodesInteractive prompt for Start time

Nodes now attach to Capacities#

Attach a node to a capacity and it runs as long as allocation is available. If there's no allocation yet, it enters an awaiting state and starts automatically when capacity becomes available.

# Create a node
sf nodes create --capacity my-capacity \
  --image ubuntu-22.04.5-cuda-12.7

Automate managing compute with deployments and procurements#

Use deployments to keep a target number of nodes running. Use procurements to buy and sell automatically within price bounds.

# Keep 4 nodes running at all times
sf deployments create --capacity my-capacity \
  --node-template my-template \
  --target-node-count 4

# Scale up
sf deployments set my-deployment --target-node-count 8

# List deployments for a capacity
sf deployments list --capacity my-capacity

# Automatically buy and sell within price bounds
sf procurements create --capacity my-capacity \
  --target 4 --window 1h \
  --max-buy-price '$25.00' \
  --min-sell-price '$20.00'

# Pause a procurement
sf procurements set my-procurement --enabled false

Node Templates#

Node templates let you define an image and startup script once, then reference the template in deployments or when creating nodes.

# Create a template
sf node-templates create --name my-template \
  --image ubuntu-22.04.5-cuda-12.7 \
  --cloud-init ./startup.sh

# List templates
sf node-templates list

Tag nodes and capacities#

Tags are key-value pairs you can use to organize and filter nodes and capacities.

# Add a tag
sf nodes set my-node --tag env=prod

# Filter by tag
sf nodes ls --tag env=prod
  • cli
    Orders now show rates labeled as $/node/hr and display the capacity's zones in the creation preview.
  • cli
    Interactive prompts now validate input inline across most commands.
  • api
    Improved OpenAPI spec annotations.
  • app
    API keys created with "No expiration" now correctly never expire instead of defaulting to 14 days.
  • app
    Onboarding form now correctly surfaces unexpected validation errors.
  • app
    Testimonial company names now display inline with attribution text.
  • app
    Quote requests no longer get presented as suggestions when they're valid orders.
  • cli
    sf nodes ssh now shows a message when no trusted SSH keys are configured.
  • cli
    sf upgrade no longer triggers recursive upgrade calls.
  • cli
    sf nodes create --max-price now rounds to integer cents.
  • cli
    sf nodes create -s/--start validates the value and errors clearly when unparseable.

CLI sf images command#

Uploading and managing custom OS images is now available as a top-level CLI command.

# List available images
sf images list

# View image details and download URI
sf images get <image-id>

# Upload a custom image
sf images upload ./path/to/os.img

Live system status#

The landing page footer now describes real-time system status, including incidents and upcoming maintenance.

All systems normal
Ongoing incidentsOngoing outages

Clicking on the footer navigates to our status page.

Sunsetting Large Scale Inference#

We have sunsetted LSI batch inference to better support the great inference providers running on SFC.

Legacy VMs purchase flow deprecated#

sf buy, sf sell, and sf extend have been removed in CLI v0.30.0. Use the Nodes API and sf nodes commands to explicitly spin up, extend and release specific nodes instead.

Transaction history cutoff beyond June 10, 2025#

For older records, contact us.

Transaction history
  • app
    Simplified and improved reliability for account and org management logic.
  • app
    Optimized dashboard balance polling and data fetching for faster load times.
  • cli
    sf nodes ls column headers now show your local timezone abbreviation (e.g., PST) for start and end times.
  • docs
    Corrected cluster technical specifications in documentation.
  • api
    Max node name length increased from 128 to 256 characters.
  • app
    Improved how empty zone capacity is displayed.
  • app
    Optimized zones capacity display on small screens.
  • app
    Fixed a bug where extending multiple nodes showed 10× the correct price.
  • cli
    Fixed zones table header incorrectly wrapping to new line.
  • cli
    Fixed sf nodes create incorrectly marking local time as UTC instead of converting it.
  • api
    OpenAPI spec now properly disambiguates error schemas for improved SDK generation.
  • api
    Improved performance and reliability for balance and transaction queries.

Custom images for Nodes#

  • Pre-configure Nodes with your own software and dependencies
  • Supports any UEFI bootable x86_64 raw image
# Upload a custom image
sf nodes images upload ./path/to/os.img

# Create a node with the custom image
sf nodes create -n 1 --image <image-id> --zone landsend --max-price 30

Read the custom images documentation for more info.

Large Scale Inference (LSI) dashboard improvements#

Jobs and usage are now in a single tab, with a reworked job details view.

Jobs and usage

Create API keys in the dashboard#

API keys support custom expiration (e.g., 1d, 30d, 60d) and descriptions.

API keys

View, manage and create API keys via the dashboard here.

Zone availability summary#

The dashboard and CLI now show an availability summary for each zone, giving you a clearer picture of capacity at a glance.

Zone availability dashboardZone availability CLI

 

Calling sf zones ls without --all in the CLI will only show zones with current and upcoming availability.

  • api
    Numerous LSI batch processing stability and behavior improvements.
  • app
    Human-readable zone names (e.g., "Fisherman's Wharf", "Lands End") are now correctly formatted.
  • api
    Faster balance queries speed up dashboard and CLI load times.
  • cli
    CLI ported from Deno to Node.js, improving UX stability.
  • app
    Zone capacity graph no longer shows "0" for the current hour when GPUs are available.
  • app
    Batch inference dashboard no longer crashes when viewing models tab.
  • docs
    API docs now show prices in cents instead of centicents.
  • app
    Removed broken pricing components from landing page.

B200 and B300 GPUs now available#

We've added NVIDIA B200 and B300 GPUs to our fleet. Contact us to learn more.

Large Scale Inference (LSI) dashboard released#

The LSI batch inference dashboard is now generally available.

  • Usage: Batch usage and billing data with day/week/month views
  • Jobs: Paginated list with request counts and statuses
  • Models: Available models and their pricing
  • API keys: Create, view, and revoke API keys

Access LSI via the dashboard.

Reworked zones page#

The zones page now shows more detailed capacity availability information, with clearer hour boundaries for planning your workloads.

Zones page

Dashboard creates Nodes instead of legacy VMs#

When you launch a node through the dashboard, it will now create a Node and not a legacy VM.

This means you can use the sf nodes CLI commands to explicitly manage your compute.

We're continuing to deprecate legacy VMs across the platform in the coming weeks. Please migrate your workloads to Nodes as soon as possible.

Automatically select the cheapest zone#

You can now create Nodes in the cheapest zone that meets hardware requirements.

In the API, add the any_zone parameter to your Node creation request. See the API documentation for request parameters.

The --any-zone flag has been added to the CLI to allow Nodes to be created in the cheapest zone that meets hardware requirements.

# Create Nodes with automatic zone selection
sf nodes create my-node-name --any-zone -d 1d -p 10.00

# Zone information shown in CLI output
sf nodes ls
sf nodes ls --verbose

Nodes created with --any-zone show "Any matching" in sf nodes ls until they are assigned to a specific zone. Reserved Nodes show the assigned zone immediately.

  • app
    Improved billing with saved payment methods.
  • api
    Fixed bug where transaction view would show pricing in cents instead of dollars.
  • app
    Fixed bug where transaction view would show incorrect GPU type.
  • api
    Improved balance checks and ledger reliability.
  • app
    Fixed waitlist handling for users joining organizations.