Skip to content

Call your first Verb

Place one Order through the API, SDK, CLI, or MCP: one name, one JSON input, one test key, and the same Action on every Interface.

Every Verb has one name, Noun.verb, and one JSON input on every Interface. You preview and run Order.place against a test Startup, then read the Action it records.

Prerequisites

  • node 20 or later and a terminal.
  • A Startup in the test environment, such as the one the quickstart creates.

The examples follow quietbooks.app, which sells a month of bookkeeping catch-up for $149 as the Offer offer_1.

Steps

Terminal5 steps
  1. To sign in and store a test key, run login, then check who you are:

    npx startup-builder loginnpx startup-builder whoami
    Worker       human_1 (you)Namespace    quietbooks.appEnvironment  test
  2. To see the input Order.place takes, print its schema:

    npx startup-builder schema Order.place
    {"offer": { "type": "Offer", "required": true },"quantity": { "type": "integer", "default": 1 }}
  3. To preview the call, run it in the try Mode. It checks your Permissions and the input, and stores nothing.

    Text
    Show me what ordering this would do, without placing it.
  4. To place the Order, send the same call without the preview:

    Text
    Place the order.
    {"api": "https://api.sb/quietbooks.app","action": {"$id": "https://api.sb/quietbooks.app/actions/action_1","operation": "Order.place","status": "done"},"order": {"$id": "https://api.sb/quietbooks.app/orders/order_1","$type": "Order","total": { "amount": 149, "currency": "USD" },"status": "placed"},"actions": {"pay": "https://api.sb/quietbooks.app/orders/order_1/pay"}}
  5. To read what happened, fetch the Action:

    npx startup-builder show /actions/action_1

    It names who ran the Verb (by), whom it served (for), its input, its status, and the Event it emitted, Order.placed.

Result

quietbooks.app holds one Order, order_1, in the test environment, and one Action, action_1, with status done. The response lists pay under actions, the Verb you may run next.

Each Interface is a view of the same operation. An sk_live_ key places a real Order, and nothing else in the call changes.

Next steps