We publish official SDKs for the common languages that handle HMAC signing, retry logic and idempotency-key management for you. The API contract (OpenAPI 3.1) is language-agnostic: you can also write your own client just fine.
PHP
// composer require kernelhost/reseller-api-php (in development)
use KernelHost\ResellerApi\Client;
$kh = new Client(getenv('KH_KEY'), getenv('KH_SECRET'));
$products = $kh->get('/products');
$order = $kh->post('/orders', ['product_id' => 42, 'billing_cycle' => 'monthly']);
Node.js
// npm install @kernelhost/reseller-api (in development)
import { Client } from '@kernelhost/reseller-api';
const kh = new Client({ key: process.env.KH_KEY, secret: process.env.KH_SECRET });
const products = await kh.get('/products');
const order = await kh.post('/orders', { product_id: 42, billing_cycle: 'monthly' });
Python
# pip install kernelhost-reseller-api (in development)
from kernelhost_reseller_api import Client
kh = Client(key=os.environ['KH_KEY'], secret=os.environ['KH_SECRET'])
products = kh.get('/products')
order = kh.post('/orders', product_id=42, billing_cycle='monthly')
Go
// go get github.com/kernelhost/reseller-api-go (in development)
import "github.com/kernelhost/reseller-api-go"
kh := resellerapi.New(os.Getenv("KH_KEY"), os.Getenv("KH_SECRET"))
products, _ := kh.Get("/products")
order, _ := kh.Post("/orders", map[string]any{"product_id": 42, "billing_cycle": "monthly"})
Your environment language not listed? The API follows open OpenAPI 3.1 and a ~20-line cURL example in plain shell is enough for every endpoint. See the authentication page for the signing logic.

