# agvps > Servers for AI agents, rented by the month: a Linux server (Ubuntu 24.04) with root access and a public IPv4 address, in Germany or Finland. Each call is paid in stablecoins: x402 on Base, Polygon and Solana or MPP on Base. No API keys, accounts or subscriptions. ## How a call is paid - POST the JSON body to the endpoint with no payment. The 402 answer carries the quote for exactly what you asked, in the `PAYMENT-REQUIRED` header (x402) and in a `WWW-Authenticate: Payment` challenge (MPP). Sign one and POST the same body again with `PAYMENT-SIGNATURE` (x402) or `Authorization: Payment` (MPP). Every endpoint answers on `/x402/` and on `/mpp/`; both protocols are accepted on both. - The payment settles only after the call is accepted. A call that cannot be served (sold out, a renewal of an unknown server) is not charged. Retrying with the same payment returns the stored answer. - Errors the service itself produces are JSON: `{"error": code, "message": text}`. A request body over 64 KiB is refused (413). ## Rent a server - POST `/x402/vps-small` (1 vCPU, 1 GB RAM, 10 GB NVMe) or `/x402/vps-medium` (2 vCPU, 2 GB RAM, 25 GB NVMe), or the same under `/mpp/`, with `{"location":"de","hostname":"my-server"}`. Both fields are optional: `location` is `de` (Germany, the default) or `fi` (Finland); `hostname` is 1 to 40 lowercase letters, digits or dashes. The server runs Ubuntu 24.04 and has its own IPv4 address. - The answer is a JSON array with one record: `id`, `secret`, `plan`, `specs`, `os`, `location`, `hostname`, `status` (`queued`), `status_url` and `next`. Keep the id and the secret: the secret is shown only in this answer and is the login for the server's page. - The server is made after the payment has settled and is ready about 5 to 10 minutes later. Poll `GET /v1/vps` on this site with the id and the secret as HTTP Basic credentials (`curl -u ID:SECRET ORIGIN/v1/vps`). `status` goes `queued`, `provisioning`, `active`. The first answer with `ssh_ready: true` carries `host`, `port`, `user`, `command` and the root `password`, shown once; if you miss it, `POST /v1/vps/reset-password` makes a new one (once every 30 seconds). `POST /v1/vps/reboot` restarts the server. - A server is paid for one month. `expires_at` in the status says when it stops. Do not wait for it: renew before. ## Renew a server - POST `/x402/vps-small-renew` or `/x402/vps-medium-renew` (use the one of the server's plan), or the same under `/mpp/`, with `{"id":"vps_0123456789abcdef","months":1}`. `months` is 1 to 6 (default 1); the quote is the plan's monthly price times `months`. A server cannot be paid more than 12 months ahead. - The answer is a JSON array with one record: `id`, `months`, `status` (`queued`). The extension is applied once the payment has settled (about a minute); `GET /v1/vps` shows the new `expires_at`. Anyone who knows the id can pay for a renewal; only the secret gives access. - A server that is not renewed stops at its expiry date and is removed soon after, with its data. ## Limits - When the service is at its capacity, or its supplier cannot take an order, the quote answer carries a plain reason (sold out right now) instead of a price you should sign, and a payment sent anyway is refused before it settles; try again later. Nothing is charged for a refused call. - Use the servers within the supplier's rules: no spam, malware, botnets, attacks on other networks or mass scanning. Servers used that way are shut down without a refund. ## Try also agdata - Need data for your agent: pages as Markdown, search, social, maps, news and jobs? agdata does that, paid the same way. Site: https://agdata.shveik.dev, docs: https://agdata.shveik.dev/llms.txt ## Endpoints - [POST /x402/vps-small](https://agvps.shveik.dev/x402/vps-small): Server, 1 vCPU 1 GB RAM. Example body: `{"hostname":"my-server","location":"de"}` - [POST /x402/vps-small-renew](https://agvps.shveik.dev/x402/vps-small-renew): Renew a small server. Example body: `{"id":"vps_0123456789abcdef","months":1}` - [POST /x402/vps-medium](https://agvps.shveik.dev/x402/vps-medium): Server, 2 vCPU 2 GB RAM. Example body: `{"hostname":"my-server","location":"de"}` - [POST /x402/vps-medium-renew](https://agvps.shveik.dev/x402/vps-medium-renew): Renew a medium server. Example body: `{"id":"vps_0123456789abcdef","months":1}` ## Machine-readable - [OpenAPI 3.1](https://agvps.shveik.dev/openapi.json): full request schemas and x-payment-info - [x402 manifest](https://agvps.shveik.dev/.well-known/x402) - [MCP server](https://agvps.shveik.dev/mcp): one tool per endpoint, payments with x402 inside the tool call - [Health](https://agvps.shveik.dev/health) ## Feedback - Free, no payment: POST `https://agvps.shveik.dev/feedback` (or the MCP tool `feedback`) with `{"message":"what you want to tell us","kind":"bug|idea|praise|other","route":"optional route name","contact":"optional"}`. `message` is required (2000 characters at most); `route` is one of the routes above. A person reads it. Please say what worked, what failed (the route, what you sent, what came back) and what you miss; send no secrets or private data. Limited to a few messages an hour per caller.