For developers

A finance-grade API your platform team will respect

Typed SDKs in four languages. Idempotent writes with deterministic keys. Signed webhooks. A sandbox you do not have to ask for. Audit events verifiable with a single ed25519 public key.

SDKs

TS · Py · Go · Java

Generated from OpenAPI 3.1

Webhook events

84

Signed, replayable, at-least-once

Idempotency

Required

No retries without a key

Sandbox

Self-serve

Token live in 60 seconds

Pacer policy in 12 lines

import { ADmetric } from "@admetric/sdk";

const ad = new ADmetric({ token: process.env.ADMETRIC_TOKEN! });

await ad.policies.set("pacing/daily-cap.yaml", {
  scope: { costCenter: "brand-emea" },
  mode: "even",
  caps: { daily: 1.08, weekly: 1.02 },
  quietHours: { start: "22:00", end: "06:00", capDaily: 1.00 },
  approvers: { quorum: "2-of-3", roles: ["cfo", "risk", "brand"] }
}, { idempotencyKey: "pol-2026-03-04-brand-emea-v33" });

Verify a signed webhook

import nacl from "tweetnacl";

export function verify(body: string, signatureB64: string, pubkeyB64: string) {
  const ok = nacl.sign.detached.verify(
    new TextEncoder().encode(body),
    Buffer.from(signatureB64, "base64"),
    Buffer.from(pubkeyB64, "base64"),
  );
  if (!ok) throw new Error("invalid signature");
}

// Public key rotates on a published schedule (/key-rotation).
// JWKS endpoint: https://api.admetric.ai/v2.4/.well-known/jwks.json

Idempotent by default

Every write requires an Idempotency-Key. We deduplicate for 7 days; replays return the original response with the same status code.

Pagination you can trust

Cursor-based pagination since v2.4; cursors are opaque, signed, and stable across deployments. No offset, no skipped rows.

Sandbox parity

The sandbox runs the same code path as production with synthetic platform responses. Pacer decisions, payouts, and webhooks all fire — without moving real money.

Backwards compatibility

Minimum 12 months from deprecation to sunset. Every change logged on /api-stability with kind: Additive, Behavior, or Breaking.

Audit trail you can verify

Every event is hashed into a Merkle chain; root is published on /trust-ledger. Verify membership locally with a single ed25519 public key.

Errors that mean something

RFC 9457 problem details. Every error includes a stable type, a human title, and a request ID you can quote on support.

Where to start

  • Read /docs — the same docs our engineers use, no marketing version.
  • Generate a sandbox token in /api-keys; it’s live in under a minute.
  • Subscribe to webhook events on /webhook-deliveries; replay any event from the dashboard.
  • Pin the SDK version; bump on a schedule that matches /api-stability.