−50% on all plans · starting at €2.48/mo · Blog·Docs·Sales

Developers

REST API, Terraform provider, Go CLI, and SDKs in Go, Python, JS, Ruby. Everything in the dashboard is also scriptable. Webhooks for fleet automation.

Built for the command line

FranceVPS exposes a clean REST API, a first-class Terraform provider, and a CLI written in Go. Anything you can do in the dashboard, you can script. Anything you can script, you can put in a CI pipeline. We don't gate functionality behind "enterprise" tiers — the API is the same for a €2.48 Starter as for a €4,000/mo dedicated cluster.

REST API

Versioned at /v6/, JSON in/out, OAuth 2.0 with PKCE for CLI flows, simple bearer tokens for server-side. Rate limited at 1000 requests/minute per token, with burst allowance. Pagination via cursor (no offset weirdness). Webhooks for every state-changing operation.

A complete example

# Provision a Cloud VPS
curl -X POST https://api.fra-vps.com/v6/instances \
  -H "Authorization: Bearer $FRANCEVPS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "plan": "cloud-hp-2",
    "image": "ubuntu-24.04",
    "region": "fr-par-1",
    "ssh_keys": ["ssh-key-abc123"],
    "hostname": "web-01"
  }'

Terraform provider

Published as francevps/francevps on the Terraform Registry. Resources cover VPS instances, SSH keys, snapshots, floating IPs, private networks, load balancers, and DNS records. Data sources let you look up images, plans, and regions dynamically.

terraform {
  required_providers {
    francevps = {
      source  = "francevps/francevps"
      version = "~> 1.0"
    }
  }
}

resource "francevps_vps" "web" {
  count    = 3
  plan     = "cloud-hp-2"
  image    = "ubuntu-24.04"
  region   = "fr-par-1"
  hostname = "web-${count.index + 1}"
  ssh_keys = [francevps_ssh_key.deploy.id]
}

CLI

Single binary, written in Go, distributed via Homebrew, apt, dnf, and as a static binary on GitHub releases. Authentication via francevps auth login (browser-based OAuth) or token. The CLI's commands mirror the API exactly — if you know one, you know the other.

Webhooks

Subscribe to lifecycle events: instance.created, instance.started, instance.stopped, instance.destroyed, snapshot.created, billing.invoice.paid, and a dozen more. Webhooks are signed with HMAC-SHA256, retried with exponential backoff up to 24 hours, and observable in the dashboard for debugging.

SDKs

First-party SDKs in Go, Python, JavaScript/TypeScript, and Ruby. Community SDKs (which we link to but don't maintain) for PHP, Rust, and Elixir. All SDKs are auto-generated from our OpenAPI spec, so they stay current with new endpoints.

Open source

Our Terraform provider, all SDKs, and the marketplace deploy templates are open source under MIT or Apache 2.0. We accept PRs — particularly for SDK improvements and additional cloud-init templates. See github.com/francevps.