Programmatic access to creator installs, usage events, payouts, webhooks, buyer install tokens, and runtime invocation. Cursor-paginated where needed. Standard rate limits per tier.
Mint a key from /dashboard/creator/keys. Pass it as a Bearer token in every request.
curl -H "Authorization: Bearer plat_<your-key>" \ https://<your-platform-host>/api/v1/me
{
"account_id": "acc_3f2a...",
"scopes": ["read:installs", "read:usage"],
"key_id": "key_..."
}Keys are SHA-256 hashed at rest. Plaintext is shown ONCE when minted - save it immediately. Lost keys must be revoked and replaced.
One key per scope set. Combine scopes by minting with multiple checkboxes.
read:installsList installs of your packs.
read:usageRead usage events for your packs.
read:payoutsRead your payout ledger.
write:webhooksCreate or delete webhook subscriptions.
adminFull access. Admin accounts only.
Core endpoints today. Creator keys use `plat_` tokens. Local agent runtime uses buyer install tokens.
{"account_id":"acc_3f2a...","scopes":["read:installs"],"key_id":"key_..."}{"data":[{"install_id":"ins_...","creator":"selr-ai","slug":"voice-graded","status":"active"}]}versionOptional. Defaults to the latest approved version200 application/gzip + x-loup-version + x-content-sha256 headers
qSearch termslimitMax 25, default 12{"results":[{"creator":"selr-ai","slug":"voice-graded-content-writer","name":"...","url":"...","install_command":"npx @louphq/install selr-ai/voice-graded-content-writer --token <your install token>"}]}{"ok":false,"error":{"code":"hosted_runtime_disabled","message":"Hosted running is off. ..."}}{"data":{"skill":{"creator":"selr-ai","slug":"voice-graded","name":"Voice-Graded Content Writer","version":"1.4.2"},"items":[{"type":"version","title":"v1.4.2","body":"Improved grading accuracy for long-form posts."}],"feed":[{"type":"version","title":"v1.4.2","body":"..."}]}}pack_idFilter to one packstatusactive | trialing | canceledcursorFrom a previous pagelimitMax 100, default 50{"data":[{"id":"ins_...","skill_pack_id":"pck_...","status":"active"}],"next_cursor":"eyJpZCI6..."}pack_idOptional filter to one packevent_typeskill.invoked | skill.success | skill.errorfromISO 8601toISO 8601limitMax 1000, default 200{"data":[{"occurred_at":"2026-05-23T...","event_type":"skill.invoked","llm_tokens_used":420}]}Outbound webhooks let your system react to platform events. Configure at /dashboard/creator/webhooks. Every request carries an HMAC-SHA256 signature you verify on receive.
const expected = crypto
.createHmac("sha256", secret)
.update(body)
.digest("hex");
if (req.headers["x-platform-signature"] !== expected) {
throw new Error("invalid signature");
}Per-account, per-hour. Writes capped separately. 429 includes Retry-After + X-RateLimit-Remaining.
HTTP/1.1 429 Too Many Requests
Retry-After: 38
X-RateLimit-Remaining: 0
{
"error": "rate_limit_exceeded",
"retry_after_seconds": 38
}No credit card. Free tier covers 600 reads an hour. Move up when you need to.