1VPS Developer Portal

The 1VPS provider dataset, guide index, and workload recommendations are published as a public, read-only JSON API. No API key, no signup, no quota form — just fetch it. Everything below is versioned 2026-02-06.

Quickstart

# Every provider we review, with pricing and plans
curl -s https://1vps.com/api/providers.json

# One provider
curl -s https://1vps.com/api/providers/hostinger.json

# The machine-readable contract
curl -s https://1vps.com/openapi.json

# Any article as raw markdown
curl -s -H 'Accept: text/markdown' https://1vps.com/

Endpoints

OperationEndpointReturns
getApiIndexGET /api/index.jsonDiscovery document listing every endpoint, the spec, and the rate limit.
listProvidersGET /api/providers.jsonAll reviewed VPS providers with ratings, entry pricing, plans, and verdicts.
getProviderGET /api/providers/{providerId}.jsonOne provider by stable id. Returns 404 with a JSON error envelope if unknown.
listGuidesGET /api/guides.jsonIndex of every published guide, with both HTML and raw-markdown URLs.
listUseCasesGET /api/use-cases.jsonWorkload profiles with minimum specs and recommended providers.

Provider ids currently served: hostinger, digitalocean, vultr, hetzner, linode, contabo, ovh, racknerd. Pricing last verified 2026-02-06.

Authentication

There is none. Every endpoint is public, unauthenticated, and served as a static document from the edge. Send no credentials; we will never ask for any. CORS is open (Access-Control-Allow-Origin: *), so browser-side agents can call it directly.

Rate limits

600 requests per 60 seconds per client. Every response carries the RFC 9331 headers so you can self-throttle without guessing:

  • RateLimit-Limit — quota for the window
  • RateLimit-Remaining — requests left
  • RateLimit-Reset — seconds until reset
  • RateLimit-Policy — e.g. 600;w=60
  • Retry-After — sent with every 429

Errors

Failures under /api/ always return JSON, never an HTML error page. The envelope is stable: a machine-readable code, a human message, the status, and a resolution telling you what to do next.

404
{
  "error": {
    "code": "not_found",
    "message": "No API resource matches /api/providers/nope.json.",
    "status": 404,
    "resolution": "List available endpoints at https://1vps.com/api/index.json.",
    "documentation": "https://1vps.com/developers/"
  }
}

MCP server

The same dataset is exposed over the Model Context Protocol at https://1vps.com/mcp, Streamable HTTP transport, no authentication. Point Claude, ChatGPT, or any MCP client at it and the tools below become callable. The server card carries the full manifest.

mcp.json
{
  "mcpServers": {
    "1vps": {
      "type": "http",
      "url": "https://1vps.com/mcp"
    }
  }
}
ToolReturns
list_vps_providersEvery reviewed provider with rating, entry price, and plan matrix.
get_vps_providerOne provider by stable id, with verdict, plans, and review URL.
find_vps_plansPlans meeting a RAM, disk, and budget constraint, cheapest first.
recommend_vps_for_workloadMinimum and recommended spec for a workload, plus who to buy it from.
search_guidesFull-text search across every published guide and review.
get_guideThe full text of one guide as markdown, by slug.

Conventions

Versioning & deprecation

Responses carry an `X-API-Version` header and a `version` field holding the dataset date. The URL scheme is unversioned because the API is additive-only: new fields may appear, existing fields never change meaning or type. If a field must ever be withdrawn it will be announced here and kept serving for at least 180 days, with a `Deprecation` and `Sunset` header on the affected responses in the meantime.

Pagination

None of the collections paginate. Every list endpoint returns its complete result set with a `count` field, because the largest — the guide index — is a few hundred entries. If a collection ever outgrows a single response it will gain a cursor-based `next` link rather than page numbers, so existing callers keep working.

Idempotency

Every operation is a GET and therefore naturally idempotent: repeating a request has no effect beyond returning the same document. There are no writes, so there is no `Idempotency-Key` header to send — retry freely after a network failure or a 429.

Sandbox & testing

Production is the sandbox. The API is read-only, unauthenticated, and free, so there is no separate test host, no test credentials, and no way to mutate anything by calling it. Point integration tests straight at https://1vps.com and stay inside the rate limit.

Terms

The dataset is published under CC BY 4.0— use it, redistribute it, build on it, but credit 1VPS.com. Prices and specs are verified by hand and change often; treat lastUpdated as authoritative and re-fetch rather than caching indefinitely. Affiliate URLs in the dataset are tracked links that earn 1VPS a commission, disclosed in our disclaimer. Questions, corrections, or a provider you want added:[email protected].