NODED.CLOUD/Developers/Reseller API

Build your own hosting brand on our network: Reseller API.

A machine-first partner programme for developers and small platforms. Resell KVM VPS, streaming VPS and dedicated servers under your own name, or provision servers for your own SaaS users, through a white-label VPS API. You buy at wholesale and set your own prices. Your customers never deal with us and never get a login on our platform.

HMACSHA-256 signed writescustomer-boundAPI keyswholesalevolume tiers1level · no sub-resellers
your panel ⇄ /api/v1/reseller
1→ POST /orders externalOrderId=ORD-1042
2← order.paid ORD-1042
3← service.provisioned ORD-1042
4→ POST /services/{id}/console-cast 200
5→ POST /services/{id}/suspend dunning
6← service.suspended ORD-0977
HMACwebhookswhite-label
01 · How it works

Your brand in front. Our servers underneath.

One level: you buy at wholesale and sell at whatever price you choose.
  1. 01

    Register

    Open a normal client account at my.noded.cloud.

  2. 02

    Apply

    Open Reseller programme in the client panel and apply. A person reviews every application; nothing is approved automatically.

  3. 03

    Get the Reseller section

    Once approved: a dashboard, the catalogue with your wholesale prices, orders, services, customers and API settings. Ordinary checkout in the panel charges you wholesale too.

  4. 04

    Sell under your name

    Set your own prices and sell through your own panel, storefront or product, driven by the Reseller API.

02 · Signed requests

Every write is signed.

HMAC-SHA256 on every POST, PUT and DELETE. The signing guide ships worked test vectors plus PHP, Node.js and Python examples, so you can prove your signer before the first real order.

Authorization: Bearer rsk_… identifies your key. Two more headers prove the request came from you:

X-Reseller-Timestamp: the request time, Unix seconds.

X-Reseller-Signature: hmac-sha256=<hex>, where the hex is HMAC-SHA256 with your secret over the timestamp, a dot, and the raw request body.

Sign the exact bytes you send. Re-encoding the JSON after signing is the classic bug, and the test vectors catch it.

Idempotent by your own id. Put your order id in externalOrderId. A retried create returns the original order instead of charging twice. Attach your own externalCustomerId too.

BODY='{"productId":"<product id>","billingCycle":"monthly","externalOrderId":"ORD-1042","externalCustomerId":"cus_77"}'
TS=$(date +%s)
SIG=$(printf '%s.%s' "$TS" "$BODY" \
  | openssl dgst -sha256 -hmac "$RESELLER_SECRET" | awk '{print $NF}')

curl -s https://my.noded.cloud/api/v1/reseller/orders \
  -H "Authorization: Bearer rsk_…" \
  -H "Content-Type: application/json" \
  -H "X-Reseller-Timestamp: $TS" \
  -H "X-Reseller-Signature: hmac-sha256=$SIG" \
  --data-raw "$BODY"
03 · Built for your panel

Render a whole service page from three calls.

The API is shaped around the panel you are building: ask what a server can do, fetch everything it is, and hand your customer a console.
GET/services/{id}/capabilities

Ask before you draw a button

Tells your UI which controls a service supports, so your panel never offers an action the server cannot do.

GET/services/{id}/document

The whole service page, one read

Hardware, location, IPs, OS, add-ons and upgrade paths at your wholesale price, ready to render in your own panel.

POST/services/{id}/console-cast

A console with no account

Returns an expiring, revocable URL that is the console page. Iframe it or put it behind a button. Prefer your own VNC viewer? Use console-session.

04 · Webhooks, customers, keys

Know what happened without polling.

Signed events for orders and the service lifecycle, customer records for attribution, and keys you can pin to a single customer.
Webhooks
Signed with the same secret as your requests. Failed deliveries are retried automatically; dedupe on X-Webhook-Id
Customers
Create, update and delete your end-customer records for attribution. They are records, not logins
Keys
Up to 20 active keys, each with an optional expiry and label
Scopes
read, orders, services, destructive, customers, account
Customer-bound
Bind a key to one of your customers and it sees and orders only for that customer
# webhook event types
order.paid
order.invoiced
order.payment_failed
service.provisioned
service.provisioning_failed
service.suspended
service.unsuspended
service.terminated
webhook.test
05 · Service control

Everything behind the buttons.

The controls your customers expect, including your own dunning. The full reference is in the Reseller API docs.
All paths are relative to https://my.noded.cloud/api/v1/reseller
Power & state
POST
/services/{id}/power
Power actions.
POST
/services/{id}/suspend
Suspend for non-payment. Your dunning, your rules.
POST
/services/{id}/unsuspend
Back online once they pay.
POST
/services/{id}/change-package
Move the service to another package.
DELETE
/services/{id}
Terminate.
Rebuild & recover
POST
/services/{id}/reinstall
OS reinstall, with the template list from /os-templates.
POST
/services/{id}/password
Root password reset.
POST
/services/{id}/rescue
Boot into rescue mode. /unrescue brings it back.
POST
/services/{id}/capture
Capture a custom image from the service.
Network, keys & add-ons
GET
/services/{id}/traffic
Traffic. Stats, health and network details sit alongside.
POST
/services/{id}/ssh-keys
Per-service SSH keys.
PUT
/services/{id}/options
Set the add-on list. Additions are charged at wholesale.
06 · Commercials

Wholesale in, your price out.

You set the retail price. The rest is below, without small print.
Catalogue
20 products: KVM VPS (hourly or monthly), streaming and high-bandwidth VPS, dedicated servers. No game servers
Pricing
Wholesale per product and billing cycle, with volume tiers based on your monthly sales. Your rates are shown in the client panel
Add-ons
Also sold at wholesale
VAT
All prices are VAT-exclusive
Payment
Your saved card or PayPal is charged at order time. Hourly orders are drawn from your credit balance
WHMCS
A ready-made WHMCS 8.x provisioning module is available on request: create, suspend, unsuspend, terminate, change package, client-area power buttons and status sync
07 · Straight answers

What we don’t have, said up front.

  • There is no sandbox. Integration testing places real orders. Test with an hourly VPS and terminate it when you are done.
  • No invoice endpoints and no invoice or renewal webhooks. Webhooks cover orders and the service lifecycle; billing your customers stays in your own system.
  • No official SDKs. The OpenAPI contract at /reseller/openapi.json suits code generators and AI agents, and the Markdown guide is written to be read by both.
Not reselling?

Only automating your own servers?

The Customer API is the one you want: project-bound keys, Idempotency-Key orders and cloud-init at order time, for your own account.

See the Customer API
08 · FAQ

Things people ask.

Quick answers to the questions we get most. Need more? Talk to us.
Q.01
Do I need a company or a VAT number to apply?
No. Company name and VAT id are not required. Register a normal client account, open Reseller programme in the client panel and apply; a person reviews every application.
Q.02
Can I use it to provision servers for my own SaaS users rather than resell them?
Yes. The same API places orders for your product’s users: tag each order with your own externalOrderId and externalCustomerId, and bind a key to one of your customers if a part of your stack should only ever see and order for that customer.
Q.03
Do my customers ever deal with NODED.CLOUD?
No. Your customers never deal with us and never get a login on our platform. The customer records you create through the API are for your own attribution, not accounts, and console-cast gives your panel a console URL, so even the console needs no account with us.
Q.04
What are the rate limits?
An hourly window per key and per reseller, 1,000 requests per hour by default, reported in X-RateLimit-* headers.
Partner programme

Apply, get approved, ship your own brand.

Register a client account, open Reseller programme in the panel and apply. A person reviews every application.

Reference

Docs/api/v1/reseller/docs
OpenAPI/api/v1/reseller/openapi.json
Guide/api/v1/reseller/guide.md