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
- Reseller access enabled (application or admin)
- Create an API key in the customer portal
GET /me— check entitled familiesGET /catalog/{family}— load productsPOST /orders/quote→POST /orders— quote, then order
| Base URL | https://new.nexorahost.com/api/v1/reseller |
| Content-Type | application/json |
| Money | Integer 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
quoted— non-binding quoteawaiting_payment— order createdprovisioning— after payment, relay runsactive— service readyfailed/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 / account403 RESELLER_FAMILY_FORBIDDEN— family not entitled → ticket404 RESELLER_ORDER_NOT_FOUND422 RESELLER_ORDER_INVALID/RESELLER_QUOTE_FAILED503 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.