Scribase Toolgate

Docs

Quickstart

curl -X POST https://toolgate.scribase.com/v1/auth/signup \
  -H "Content-Type: application/json" \
  -d '{"org_name": "acme"}'
# -> {"ok":true,"data":{"org":{...},"project":{...},"key":"sk-t0-...","key_id":"...","note":"..."}}

curl https://toolgate.scribase.com/v1/tools/knowledge.wikipedia.summary/call \
  -H "Authorization: Bearer sk-t0-..." \
  -H "Content-Type: application/json" \
  -d '{"input": {"title": "Rust (programming language)"}}'

The key works immediately on every free/public tool. A paid tool answers 402 with a topup_url until the project has a Mint balance.

Auth

Every key is a per-org scoped credential: it belongs to exactly one org's one project, created either by self-serve signup above or by POST /v1/keys once you hold an admin-scoped key for that project. It can only see and spend that org's own usage and balance — never another tenant's.

Tool catalog

24 capabilities, 27 tools as of this build (18 free/public, 9 priced) — generated from the same catalog manifests that back every call:

Billing & metering

Every paid call follows the same three-step lifecycle on Mint:

  1. Hold — the quoted price is placed as a hold against the project's Mint balance before the call runs.
  2. Capture — on a successful call, the exact quoted amount is captured to the platform's Mint revenue account.
  3. Release — on failure, the hold is released and nothing is ever billed.

Usage is also reported to Rago as tool_call events for the org's own metering dashboards. Spend caps — project monthly, project daily, per-key daily and per-tool daily — are enforced synchronously in the request path: each check adds spend-so-far plus every other in-flight (not-yet-settled) call's reservation and rejects with 429 cap_exceeded before a hold is ever placed, so concurrent calls cannot race past a limit.