Skip to content

The API

An API on StartupBuilder is a published promise of Verbs on Nouns, compiled from one definition, with StartupBuilder built from the same parts.

An API on StartupBuilder is a published promise: these Verbs on these Nouns, for these callers, on these terms. Every part compiles from one definition, and StartupBuilder keeps the same promise to its own callers.

Seven parts, one definition

PartThe question it answersWhere it comes from
ContractWhat can be called, with what input and outputNouns and Verbs
AddressWhere each Interface answersA Domain and a path per Interface
CallerWho calls, and for whomKeys from Identity and Roles
TermsWhat a call costs and how far it goesOffers, Meters and Limits
ExecutionWhat runs a callThe Function behind each Verb
ChangeHow the contract grows without breaking callersChanges and Versions
HistoryWhat happenedActions and Events

A Startup authors the Nouns, Verbs and Offers. The rest derives: routes, OpenAPI, the SDK, the CLI, the MCP server, errors, docs, the key screen, the usage screen and the changelog. Every record behind it lives in the Database.

Two kinds of caller

Every Startup's API serves two kinds of caller. Its Workers run the business: they publish Offers, answer Conversations and close Periods. Its Customers use the Product: they look up opening hours or reschedule an appointment.

Both reach the same records through the same Verbs. They differ in address, scope and brand.

Workers and testsCustomers
Addresshttps://api.sb/openhours.devhttps://api.openhours.dev
ScopeEvery Verb their Role grants, across the StartupTheir own Tenant, and the Verbs their Role grants
NamesStartupBuilder's SDK, CLI and MCP serverThe Startup's own packages, docs, status page and error pages

Customers never see api.sb. No address, package, header or error page they meet names the platform.

StartupBuilder is built the same way

StartupBuilder is the Product of a Studio, startups.studio, which runs as a Startup like any other. Its API at api.sb, its reference, SDK, CLI and MCP server compile through the same projection as every Startup's.

Every tool StartupBuilder gives founders, each Startup gives its Customers:

StartupBuilder givesEach Startup gives its Customers
Keys with a test twin and rotationThe same keys, in the Startup's Portal
Usage against their LimitsUsage against each Limit of their Offer
A request log with the checks each call passedTheir own requests, with the same checks
A version pin and a changelogA pin on the Startup's versions, and its changelog
The startup-builder SDK, CLI and MCP serverAn SDK, a CLI and an MCP server named for the Startup

No route is written by hand. A need the generic routes cannot meet changes the abstraction for every Startup, and a tool the platform keeps for itself is a defect.

What stays a choice

Three things stay open per Verb:

  • Who does the work. The Function can be code, a model, an Agent or a credentialed Human, and callers see no difference.
  • When it ships. A Verb can be published before any Function exists. It answers with a quote, and each call counts toward the decision to build it.
  • Which shape it speaks. An Interface can conform to an outside Standard, such as SCIM, with no hand-written route.