Clients

Plug

A one-way HTTP client from your app to an external API. Auth, retry, pagination, typed vars, and lifecycle hooks — built for serverless.

your app
authed
stripe api

Install

$ npx khotan add plug
// Bearer token ─────────────────────────────────────────────────────
import { plug, bearer } from "@/lib/khotan/plugs/plug";
export const stripe = plug({
baseUrl: "https://api.stripe.com/v1",
auth: bearer(process.env.STRIPE_SECRET_KEY!),
});
const customers = await stripe.get<{ data: Customer[] }>("/customers");
// API key ──────────────────────────────────────────────────────────
import { plug, apiKey } from "@/lib/khotan/plugs/plug";
export const cin7 = plug({
baseUrl: "https://api.cin7.com/api/v1",
auth: apiKey("Authorization", process.env.CIN7_API_KEY!),
retry: { attempts: 3, backoff: 1000 },
timeout: 30000,
});
// Basic auth ───────────────────────────────────────────────────────
import { plug, basic } from "@/lib/khotan/plugs/plug";
export const jira = plug({
baseUrl: "https://myorg.atlassian.net/rest/api/3",
auth: basic(process.env.JIRA_EMAIL!, process.env.JIRA_TOKEN!),
});

Documentation

See the full integration guide — schema, generated files, helper API, and configuration — in the Plug docs.