Skip to content
← Reselling

Reseller API · v1

Reseller API

REST with Bearer token. Only entitled product families — request more via ticket anytime.

https://new.nexorahost.com/api/v1/reseller Understand access

Access & entitlements

Not every reseller gets every product family. Entitlements are granted deliberately — at application, via ticket, or later in admin.

1

Start

Pick only the families you need in the application — or we enable them manually on your customer account.

2

Extend later

Request more families (e.g. dedicated or domains) via ticket. We enable them after review.

3

API enforces

Without entitlement: 403 RESELLER_FAMILY_FORBIDDEN. GET /me lists your active families.

Code Product Note
plesk Webspace / Plesk-Reseller Plesk-Reseller-Accounts und Webspaces für Endkunden.
vps V-Server Virtualisierte Server (VPS) zum Weiterverkauf.
root Root-Server Root-Server / leistungsstarke VPS-Varianten.
dedicated Dedicated Server Bare-Metal: HosterAPI-Marktplatz + FameSystems-Outlet — Reseller → NexoraHost → Upstream nach Zahlung.
domains Domains Domain-Registrierung, Transfer und Verlängerung.

Relay model

You only talk to NexoraHost. HosterAPI, FameSystems Outlet and domain providers are never called directly — we relay after payment.

Your system

HTTPS + Bearer nxr_…

NexoraHost API

/api/v1/reseller

  • dedicated.market.{id} → HosterAPI (nach Zahlung)
  • dedicated.outlet.{sku} → FameSystems Outlet (nach Zahlung + Trust)
  • Plesk / VPS / Root / Domains → internal provisioning

Authentication

Every request needs a valid reseller API key.

Authorization: Bearer nxr_************************

# Alternative:
X-Reseller-Token: nxr_************************

Create keys in the customer portal after approval. The plaintext is shown only once.

Quickstart

  1. Reseller access enabled (application or admin)
  2. Create an API key in the customer portal
  3. GET /me — check entitled families
  4. GET /catalog/{family} — load products
  5. POST /orders/quotePOST /orders — quote, then order
Base URLhttps://new.nexorahost.com/api/v1/reseller
Content-Typeapplication/json
MoneyInteger cents · 1499 = 14,99 EUR
Success{ "data": … }
Error{ "error": { "code", "message" } }

Endpoints

Click an endpoint for details and a curl example.

Profile + entitled product families.

curl -s https://new.nexorahost.com/api/v1/reseller/me -H "Authorization: Bearer $TOKEN" | jq
{
  "data": {
    "slug": "acme-hosting",
    "status": "active",
    "product_families": ["vps", "domains"],
    "discount_percent": 0,
    "rate_limit_per_minute": 120
  }
}

Catalog for entitled families only.

curl -s https://new.nexorahost.com/api/v1/reseller/catalog -H "Authorization: Bearer $TOKEN" | jq '.data.families'

Families: plesk, vps, root, dedicated, domains. Without entitlement: 403 RESELLER_FAMILY_FORBIDDEN

curl -s https://new.nexorahost.com/api/v1/reseller/catalog/vps -H "Authorization: Bearer $TOKEN" | jq '.data.products[0]'

OS templates for HosterAPI dedicated (relay).

curl -s https://new.nexorahost.com/api/v1/reseller/dedicated/templates -H "Authorization: Bearer $TOKEN" | jq '.data.templates'

Non-binding price check — no upstream cost.

curl -s https://new.nexorahost.com/api/v1/reseller/orders/quote \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"family":"vps","product_code":"vps.m","configuration":{"hostname":"vps-01","os":"debian-12"}}'

Create order (awaiting_payment). Provisioning only after payment.

curl -s https://new.nexorahost.com/api/v1/reseller/orders \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"family":"domains","product_code":"domain.tld.de","configuration":{"fqdn":"beispielkunde.de","years":1},"idempotency_key":"ord-1"}'

Your quotes/orders. Query: ?limit=20

curl -s "https://new.nexorahost.com/api/v1/reseller/orders?limit=20" -H "Authorization: Bearer $TOKEN" | jq '.data.items'
curl -s https://new.nexorahost.com/api/v1/reseller/orders/018f… -H "Authorization: Bearer $TOKEN" | jq

Availability check (read-only). domains family required.

curl -s https://new.nexorahost.com/api/v1/reseller/domains/check \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"fqdn":"mein-shop.de"}'

Payload examples

Plesk

{
  "family": "plesk",
  "product_code": "plesk.webspace.business",
  "configuration": { "domain": "kunde.example", "plan": "business" }
}

VPS / Root

{
  "family": "vps",
  "product_code": "vps.m",
  "configuration": { "hostname": "vps-01", "os": "debian-12" }
}

Dedicated · Markt

{
  "family": "dedicated",
  "product_code": "dedicated.market.545",
  "configuration": { "hostname": "dedi-01", "template": "Debian 12" }
}

Dedicated · Outlet

{
  "family": "dedicated",
  "product_code": "dedicated.outlet.SRV110",
  "configuration": { "hostname": "dedi-01", "template": "Debian 12" }
}

Domains

{
  "family": "domains",
  "product_code": "domain.tld.com",
  "configuration": { "fqdn": "shop.example.com", "years": 1 }
}

Order lifecycle

  1. quoted — non-binding quote
  2. awaiting_payment — order created
  3. provisioning — after payment, relay runs
  4. active — service ready
  5. failed / cancelled

Quote/order do not register domains or open dedicated tickets — only after payment.

Default rate limit: 120 req/min per key.

Errors

  • 401 RESELLER_UNAUTHORIZED — token / IP / account
  • 403 RESELLER_FAMILY_FORBIDDEN — family not entitled → ticket
  • 404 RESELLER_ORDER_NOT_FOUND
  • 422 RESELLER_ORDER_INVALID / RESELLER_QUOTE_FAILED
  • 503 RESELLER_DISABLED

No access yet?

Apply with the families you need — or ask us to enable access on your existing customer account. Extend later via ticket.