Official SDKs in 3 languages.
TypeScript-first design with types generated straight from OpenAPI. Python + PHP cover the same API surface with the same guarantees. Get to your first request in minutes.
import { Karum } from "@karum/sdk"
const karum = new Karum({
apiKey: process.env.KARUM_KEY!,
env: "production",
})
const { items, nextCursor } = await karum.products.list({
filter: { inStock: true, status: "ACTIVE" },
limit: 50,
})
for (const product of items) {
console.log(product.title, product.price)
}Pick your language, start without uploading.
Every SDK covers the same endpoint surface and ships under the same version number. New API endpoints land in all three languages the day they're released.
TypeScript / Node.js
Recommended@karum/sdkEdge runtime compatible, RSC + server actions friendly, fully type-safe.
$ pnpm add @karum/sdkimport { Karum } from "@karum/sdk"
const karum = new Karum({
apiKey: process.env.KARUM_KEY!,
env: "production",
})
const { items, nextCursor } = await karum.products.list({
filter: { inStock: true, status: "ACTIVE" },
limit: 50,
})
for (const product of items) {
console.log(product.title, product.price)
}Python
Asynckarumasync / await native, Pydantic models, FastAPI + Django compatible.
$ pip install karumfrom karum import Karum
karum = Karum(api_key=os.environ["KARUM_KEY"])
orders = await karum.orders.list(
status="paid",
created_after="2026-05-01",
limit=100,
)
for order in orders.items:
print(order.id, order.total, order.currency)PHP
Stablekarum/php-sdkPHP 8.2+ support, Laravel + Symfony adapters, PSR-18 HTTP client.
$ composer require karum/php-sdkuse Karum\Client;
use Karum\Inventory\AdjustRequest;
$client = new Client(getenv("KARUM_KEY"));
$result = $client->inventory()->adjust(new AdjustRequest(
sku: "TSHIRT-M-BLACK",
delta: -1,
reason: "order:ord_3Axx",
));
echo $result->newQuantity;Every SDK passes the same quality bar.
Full type safety
Auto-generated from the OpenAPI 3.1 schema — compile errors, IDE auto-complete, no runtime surprises.
Smart retry
Exponential backoff for network and 5xx, idempotency-key applied automatically. No double-charge worries.
Observability
Every request carries a request-id header, OpenTelemetry spans flow into Sentry / Datadog automatically.
Semantic versioning
Breaking changes only in major versions. Minor + patch releases stay backward compatible.
Your first sale this week. Setup in 5 minutes.
Our onboarding team runs the process. Data migration, product mapping, and channel connection included — first sale on average in 3–7 days.