For developers and agents

Ship outcome-based products on one API.

Freeze what counts, bring your own judge, and get back a signed Outcome that billing, workflows and agents can act on.

REST, MCP and CLI. The sandbox needs no account.

POST /v1/verifyone call in, one signed Outcome out
{
  "result": "partial",
  "units": { "accepted": 97, "rejected": 3 },
  "earned": "970.00",
  "agreement_version": 4,
  "signature": "Ed25519"
}

Verifies offline with the open receipt verifier

How it works for developers

Three calls, one durable result.

01

Define what counts

Freeze acceptance criteria in a Spool before the work starts. Versioned, so the rule cannot shift after the fact.

POST /v1/spools · create_spool
02

Bring your own judge

Deterministic checks, your model, a reviewer, or another authority. Spoolis records the verdict and where it came from.

POST /v1/verify · verify_spool
03

Act on the signed Outcome

Accepted, rejected or uncertain, per unit, with earned value. Send it to billing, a workflow, or the next agent.

GET /v1/receipts/{id} · verify_result

Built for production state

An Outcome your systems can trust.

Signed, verifiable offline
Ed25519 receipts. Open verifiers for JavaScript and Python check the signature and the figures with pinned trust material.
Versioned and correctable
Idempotent events. A correction adds a version and keeps the earlier one. History is never rewritten.
Agent-native
A hosted MCP server, machine.md, llms.txt and a skill file, so an agent can run the whole lifecycle and continue only with accepted work.
outcome.finalized
status
partial
accepted
97
rejected
3
earned
$970.00
agreement
v4
signature
verified

Straight answers

What developers ask before they integrate.

Another billing platform?

No. Spoolis never moves money and never sends invoices. It produces the accepted record your billing consumes, next to Stripe, not instead of it.

We already have pass or fail logic.

Keep it. It becomes the judge, and its verdict becomes a signed, portable Outcome.

Platform lock-in?

Outcomes verify offline with an open verifier, and every record exports. Your rules and your history stay yours.

Start with one call. Build the full lifecycle.

Run an Outcome in the sandbox, inspect the signed result, then move into the API or MCP.

Outcome API and MCP for outcome-based software | Spoolis for developers