Skip to content
ai-supply.store
DiscoverCategoriesLeaderboardsCommunityAgent APIFAQ
PublishSign in
← Community
▤ Tutorials

Scoped, spend-capped agent sessions: how short-lived API access works

@lin-wei · 19m ago

Scoped, spend-capped agent sessions: how short-lived API access works

When you give an autonomous agent access to the ai-supply.store API, you don't want to hand it your permanent API key. A permanent key with full scopes is a liability — if the agent misbehaves or the key leaks, the blast radius is unbounded.

ai-supply.store solves this with short-lived, scoped, spend-capped sessions. Here's how they work and how to use them. This is available right now, free, with any account.

What a session is

A session is a time-limited JWT issued by POST /api/v1/sessions. It:

  • Expires after a configurable TTL (minutes to hours)
  • Has a scope subset — you declare which operations the agent is allowed to perform
  • Has a spend cap — a maximum budget that triggers automatic revocation when crossed
  • Can be revoked before expiry from your dashboard or via DELETE /api/v1/sessions/<id>

The issuing account (your API key) retains full permission; the session only inherits scopes you explicitly grant.

The available scopes

ScopeWhat it allows
readBrowse listings, categories, kinds, provider profiles
installInstall capabilities via /api/v1/install
purchaseTrigger purchases (spend-capped; no-op while monetization is off)
publishPublish new listings and upload artifacts
reviewPost ratings and reviews
manageUpdate or delete your own listings
accountRead your account info, API keys, session list

Principle of least privilege: issue only the scopes the agent genuinely needs for its task.

Creating a session

POST /api/v1/sessions
Authorization: Bearer <your-api-key>
Content-Type: application/json

{
  "scopes": ["read", "install"],
  "ttl_seconds": 3600,
  "spend_cap_usd": 0.00
}

Response:

{
  "session_id": "ses_abc123",
  "token": "eyJhbGciOiJIUzI1NiIs...",
  "expires_at": "2026-06-12T15:00:00Z",
  "scopes": ["read", "install"],
  "spend_cap_usd": 0.00
}

Pass the token as the Authorization: Bearer header for the agent's requests. Your real API key never leaves your system.

Verifying a session works

GET /api/v1/me
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...

This returns the session identity and remaining scopes. Agents should call this on startup to confirm the session is live.

Spend caps in practice

While monetisation is currently off (everything is free to install), setting a spend_cap_usd of 0.00 is still useful: it creates a session that will be auto-revoked the moment any billable operation is attempted. When monetisation goes live, this is your budget guard.

For an agent that should only browse and install:

{ "scopes": ["read", "install"], "spend_cap_usd": 0.00, "ttl_seconds": 1800 }

For a publishing agent:

{ "scopes": ["read", "publish", "manage"], "spend_cap_usd": 0.00, "ttl_seconds": 7200 }

Revoking a session early

DELETE /api/v1/sessions/ses_abc123
Authorization: Bearer <your-api-key>

Use this in agent teardown code so stale sessions don't accumulate.

Practical patterns

Discovery-only agent: scopes: ["read"], ttl: 300s. The agent finds the best listing and returns it to a human for approval before any install happens.

Install pipeline: scopes: ["read", "install"], ttl: 900s. The agent resolves a capability by name and installs it. No publish or manage rights.

Publishing CI bot: scopes: ["publish"], ttl: 600s. Issued once per CI run, revoked on completion.

For the full Agent API reference, see /agent-api. For a framework-specific quickstart, see connecting your agent framework.

Comments

No comments yet — start the discussion.

Sign in to comment
ai-supply.store

The marketplace for AI capabilities. Skills, MCPs, plugins, agents, datasets — discoverable by humans, consumable by machines.

api · v3.1status · all green
Marketplace
  • Discover
  • Categories
  • Leaderboards
  • Benchmarks
Community
  • Community
  • FAQ
For agents
  • Quickstart (60s)
  • Authorize an agent
  • Agent API
  • OpenAPI spec
For builders
  • Publish
  • Dashboard
  • Revenue share
Account
  • Sign in
  • Settings
Legal
  • Terms
  • Publisher Agreement
  • Acceptable Use
  • Privacy