Skip to content
Hoody.com

Hoody’s bare metal marketplace rents physical servers in datacenters worldwide. A listing may carry an estimated setup time, and actual provisioning can take longer than the estimate.

Traditional bare metal: Days to weeks provisioning (typically 1-7 days), manual configuration, long contracts Hoody bare metal: listings may provide setup_time_minutes, an estimate of the time from rental to provisioning; actual setup can take longer

Automatic provisioning is what lets an AI agent manage infrastructure directly: it can rent a server through the API, with no manual configuration step on either side.

  1. Browse the marketplace

    View available servers filtered by location, specs, and price via the Servers API.

  2. Select a server

    Choose based on:

    • Location (datacenter proximity to users)
    • Specifications (CPU, RAM, storage)
    • Pricing tier (duration discounts)
  3. Configure the rental

    • Choose rental duration (available durations vary by offer)
    • Optionally assign to a Pool
    • Review and confirm pricing
  4. Complete payment

    Hoody deducts the server cost from your general balance and processes the payment instantly.

  5. Automatic provisioning

    Watch the progress: Hardware allocated → OS installed → Services initialized → Ready

  6. Deploy containers

    Once the server reports ready, you can create containers on it. Containers have no per-unit cost: they consume only that server’s capacity.

Renting servers uses these endpoints:

Browse Available Servers

  • GET /api/v1/servers/available - List marketplace inventory
  • Filter by location, specs, availability
  • View pricing tiers and duration discounts

Rent Server

  • POST /api/v1/servers/{id}/rent - Provision a server
  • Specify duration and pool assignment
  • Automatic payment and provisioning

Manage Wallet

  • Add funds to general balance
  • View transaction history
  • Download invoices

Hoody keeps ready-to-provision bare metal servers in datacenters worldwide. Browse them with the Servers API.

Server listings include:

  • Datacenter location (country, region, city)
  • Hardware specifications (CPU cores, RAM, storage)
  • Available rental durations
  • Pricing for each duration
  • Current availability status

Filter and sort by:

  • Geographic location
  • Hardware specifications
  • Price range
  • Availability

Server specifications and pricing vary by:

  • Datacenter location
  • Current market availability
  • Rental duration selected
  • Hardware tier

Duration-based discounts:

Servers can be rented for as little as 1 day, and longer rental durations receive automatic discounts.

Available durations vary by server offering. Common options include daily, weekly, and monthly rentals, with best rates for longer commitments.

How billing works:

  • Upfront payment: Full rental period charged when you click “Rent”
  • Auto-deduction: Amount taken from your general balance via Wallet API
  • Invoice generated: Automatic invoice for your records
  • No usage fees: The tier price includes bandwidth and storage, and nothing is metered on top
  • One-time setup fee: Some listings additionally carry a one-time setup fee (pricing.setup_fee_cents), charged once when the rental starts and never on renewal. pricing.price_tiers[rental_days].total_first_payment is the full amount debited on that first payment

Confirming the total: every paid rental must send max_charge_cents, a ceiling in integer cents on the total debit (rental price plus any one-time setup fee). Read it from pricing.price_tiers[rental_days].total_first_payment on the marketplace listing. Omit it and the call returns 409 CHARGE_CONFIRMATION_REQUIRED (or 409 SETUP_FEE_CONFIRMATION_REQUIRED when the server carries a setup fee) and nothing is charged. If the live total has risen above your ceiling you get 409 CHARGE_EXCEEDS_MAX instead. Re-read the listing, show the customer the new total, and retry with a ceiling they confirmed.

Active rental:

  • Server fully operational
  • Deploy unlimited containers
  • Full resource access
  • Monitor usage in dashboard

Approaching expiration:

  • No email reminders exist. Monitor rental_end through the API or dashboard and set your own calendar alerts
  • Option to renew before expiration
  • Manual renewal required

Grace period (hold period):

  • Server remains active briefly after expiration
  • Renew during this time to keep data
  • No additional charges during grace period
  • Length is set per server by hold_days (commonly 1-2 days)
  • Hoody raises an in-app notification roughly 24h before the hold period ends. It is the only warning the platform sends, and it arrives after the rental has already expired

After the grace period:

  • Server deprovisioned
  • All data deleted
  • Cannot be recovered

A marketplace listing may carry setup_time_minutes, an estimate for the phases below rather than a guaranteed completion window.

Hoody selects a physical server from the available pool in your chosen datacenter and reserves its resources for you alone.

Custom Hoody OS deployed to bare metal:

  • Optimized container runtime
  • Security hardening
  • Network configuration
  • Storage setup

Platform services activated:

  • Container management
  • Monitoring agents
  • API endpoints
  • Health verification

Server status: READY
You receive:

  • Dashboard update
  • API webhook (if configured)

You can create containers as soon as the status is READY.

Latency: Place servers closest to users

Users primarily in Americas → Choose US datacenters
Users primarily in Europe → Choose EU datacenters
Global user base → Consider multiple regional servers

Data residency: Compliance requirements

  • GDPR compliance → EU datacenters required
  • Regional regulations → Choose appropriate datacenter
  • Custom requirements → Contact support

Development servers: Place development servers as close as possible to your own location. Latency shows up directly in the interactive services:

  • hoody-display - Desktop environments need low latency for smooth interaction
  • hoody-terminal - Command execution feels local when server is nearby
  • hoody-agent - AI agent responsiveness improves with proximity
  • hoody-code - VS Code instances work best with minimal network delay

Production servers should be near users. Development servers should be near developers.

Container capacity varies by:

  • Container resource requirements (light vs. heavy workloads)
  • Server hardware specifications (check marketplace)
  • Operating system overhead
  • Resource sharing efficiency

General guidance:

  • Lightweight containers (APIs, scripts) pack densely
  • Resource-intensive containers (databases, AI) require more headroom
  • Production workloads need 20-30% overhead for stability
  • Monitor actual usage and adjust as needed

Start small:

  • Begin with lower-tier server to test requirements
  • Monitor actual usage during first rental period
  • Upgrade only when consistently hitting resource limits

Scale deliberately:

  • One well-utilized server beats multiple idle servers
  • Consolidate low-usage containers
  • Use snapshots instead of duplicate containers
  • Check marketplace for best duration pricing

Every server belongs to a Pool. When renting, you can specify which Pool the server joins:

  • Default Pool: If no pool is specified, the server is assigned to your personal default pool
  • Team Pool: Shared access for collaborators
  • Client Pool: Isolated per-client servers (agencies)
  • Environment Pool: Group by dev/staging/prod

Specify pool during rental:

{
"pool_id": "507f1f77bcf86cd799439011",
"rental_days": 30,
"max_charge_cents": 27500
}

Or omit for default pool:

{
"rental_days": 30,
"max_charge_cents": 27500
}
// Automatically assigned to your default pool

max_charge_cents is the confirmed ceiling on the total debit. Take it from pricing.price_tiers["30"].total_first_payment on the listing you picked ("275.00" becomes 27500). pool_id must name a pool you own.

The server is immediately accessible to every pool member, subject to their role.

Solo developer experimenting

  • Rent: 1 server, short duration
  • Use: Test Hoody, experiment with containers
  • Benefit: Low-risk trial with flexible rental periods

Startup building an MVP

  • Rent: 1 mid-tier server for longer duration
  • Use: Dev, staging, prod all on one server
  • Benefit: Professional infrastructure, cost-effective scaling

Agency with multiple clients

  • Rent: Multiple servers (one per major client)
  • Use: Client isolation via dedicated servers
  • Benefit: Client data separation, transparent billing

Enterprise team deploying globally

  • Rent: 10+ servers distributed globally
  • Use: Geographic redundancy, large container deployments
  • Benefit: High availability, compliance, worldwide performance
Terminal window
# Browse marketplace for available servers, and read the quote you are about to confirm:
# pricing.price_tiers["30"].total_first_payment -> "275.00" -> 27500 cents
hoody servers marketplace -o json
# Rent a server (positional server ID; prompts for confirmation before charging)
hoody servers rent $SERVER_ID --rental-days 30 --max-charge-cents 27500
# Non-interactive (agents, CI): -y skips the prompt. The ceiling is still required.
hoody servers rent $SERVER_ID --rental-days 30 --max-charge-cents 27500 -y
# Check your rental status
hoody servers list

Browse marketplace:

GET Browse marketplace for available servers
/api/v1/servers/available
Click "Run" to execute the request

The response lists available servers with their specs and pricing.

Rent selected server:

POST Rent a server from the marketplace
/api/v1/servers/{id}/rent
Click "Run" to execute the request

Set max_charge_cents to the total you actually confirmed: pricing.price_tiers[rental_days].total_first_payment from the marketplace response above, in integer cents. Without it the call returns 409 CHARGE_CONFIRMATION_REQUIRED and nothing is rented.

Response includes:

  • Rental details (id, server_id, rental_start, rental_end, hold_days, actual_usage_days, status)
  • Transaction details (id, amount, currency)

Monitor provisioning:

Poll server status until ready, then deploy containers via Container API.

Before renting:

  • Estimate container needs (multiply by 1.5 for headroom)
  • Choose location closest to users
  • Verify sufficient balance in wallet
  • Decide on pool assignment

During the rental:

  • Monitor resource usage weekly
  • Delete unused containers promptly
  • Document what’s running on each server
  • Set renewal reminders

Renewal strategy:

  • Set calendar reminders for expiration dates
  • Review usage before renewing
  • Consider switching tiers if consistently over/under-utilized
  • Plan ahead instead of waiting until the last day

Cost optimization:

  • Longer rentals = better rates (30-day vs 1-day)
  • Consolidate containers to fewer servers
  • Use snapshots instead of keeping idle containers
  • Delete experiments promptly

Security:

  • Different servers for different security zones
  • Production servers in dedicated pools
  • Regular security audits via server commands
  • Enable appropriate firewall rules

How quickly can I get a bare metal server?

A marketplace listing may provide setup_time_minutes, its estimate of provisioning time; in-stock machines can take longer than that estimate. Check server status while provisioning and follow the troubleshooting guidance below if it runs long. Traditional bare metal providers manually provision, which typically takes 1-7 days.

What if the server I want is unavailable?

Check nearby datacenters or different tiers. High demand in one location doesn’t affect others. If you need specific specs not in marketplace, contact support for custom provisioning (longer lead time).

Can I upgrade a server after renting?

Not directly; a server is a fixed specification. You can rent a higher-tier server, copy your containers over using container copy/sync, then let the original rental lapse (there is no cancellation, and no refund for unused time). This is usually completed the same day.

What happens if I run out of balance mid-rental?

Your active rental continues because it is already paid. You cannot rent additional servers or renew expiring ones until you add funds to your wallet.

Can I cancel early or get a refund?

No. There is no cancellation endpoint. A rental runs to its rental_end, enters the hold period, and is then deprovisioned unless you renew. There are no refunds for unused rental time (standard hosting practice); the server and resources were reserved for you. Plan rental duration carefully, and start with shorter periods if you are uncertain.

Do rentals auto-renew?

No, rentals do not auto-renew. Servers expire at end of rental period unless you manually renew. Hoody sends no reminder emails, so set your own calendar alerts for critical servers to avoid accidental expiration.

What’s included in the rental price?

The tier price covers hardware, bandwidth, storage, platform services, monitoring, and support, and nothing is metered on top. Some listings additionally carry a one-time setup fee (pricing.setup_fee_cents) charged once when the rental starts; pricing.price_tiers[days].total_first_payment is the full first payment. Beyond that, the only additional costs are optional services like extra storage shares or premium support packages.

Payment fails during rental

Cause: Insufficient balance or payment method issue

Solution: Add funds to general balance via Wallet API. Ensure payment method is valid. Once the balance is sufficient, retry the rental; your server selection remains available.

Provisioning stuck at “Hardware Allocation”

Cause: High demand in that specific datacenter

Solution: Wait 2-3 more minutes, since allocation sometimes retries. After 10 minutes, try a different datacenter or tier. Contact support if the issue persists.

Server shows “Ready” but containers won’t deploy

Cause: Post-provisioning services still initializing

Solution: Wait 1-2 more minutes for complete startup. Check server logs in dashboard. Verify you have permission to deploy to this server (pool role). If the issue continues, contact support.

Rented server does not appear in the dashboard

Cause: Browser cache or sync delay

Solution: Hard refresh (Ctrl+F5). Verify the transaction in Wallet history. If the payment processed but the server is still missing after 15 minutes, contact support.

Server was allowed to expire

Cause: Missed renewal deadline

Solution: If the server is still in its grace period, renew immediately to restore access. If it is already deprovisioned, the data is gone: rent a new server and redeploy from backups or snapshots. To prevent it, set multiple calendar reminders and monitor expiration dates closely.

After the server is ready:

Team collaboration:

Manage your infrastructure: