actionsL4 automation

Third-party APIs, without the glue code.

A pack describes a service's actions and triggers in one b3pack.json: request templates, response mapping and the hosts it may reach. Your credentials stay in the vault and are added at the egress proxy, so pack code never sees them.

API
/v1/actions
CLI
b3os action search · b3os action run
MCP tools
actions_*

[01/03] What it does

Search, describe, call

Find an action, read its input schema, call it. Every action is also a valid MCP tool.

GET /v1/actions/search · POST /v1/actions/call

Your credentials

API keys, basic auth, bearer and OAuth tokens that belong to you, bound to the exact hosts the pack declares.

/v1/vault/connections

Triggers for routines

Webhook, polling and schedule triggers start routines when something happens in another service.

GET /v1/actions/triggers

Verified packs

Nodes check each pack's content hash and publisher signature against the registry before loading it.

GET /v1/actions/packs

Where your credential goes
  1. Call

    An agent or routine calls io.b3os/github/create-issue@1 with a connection id.

  2. Template

    The pack's request template is filled and validated against its schema.

  3. Egress proxy

    The token is added here, only for the host the pack declares.

  4. api.github.com

    The response is mapped back through the pack's CEL expressions.

# Find an action
curl -sS "https://beta-api.b3os.org/v1/actions/search?q=create%20github%20issue" \
  -H "Authorization: Bearer $B3OS_API_KEY"

# Call it with a stored connection
curl -sS https://beta-api.b3os.org/v1/actions/call \
  -H "Authorization: Bearer $B3OS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"ref":"io.b3os/github/create-issue@1","input":{"owner":"acme","repo":"web","title":"Checkout button misaligned on mobile"},"connections":{"api":"conn_01m5t6cbgdjs1ketgcqwa2sne8"}}'
  • Every pack in the catalog runs on your own credentials or a keyless public API. B3 does not pay for upstream keys, and packs neither route through residential proxies nor sign wallet transactions.

[02/03] Measured

What we measure for actions

Values appear here only from published benchmark runs, each with its raw data. A row that says measuring has no published run yet.

Declarative action overhead

Time added by the action runtime, upstream excluded, for responses up to 16 KB.

Measuringp50, server side

Input validation

JSON Schema validation of an action's input.

Measuringp50, server side

JavaScript action overhead

Warm overhead of a first-party JavaScript action.

Measuringp50, server side

T0 call total minus upstream, per MiB of upstream response, for responses over 16 KB

Measuringp50, server side
How we measure, and what others publish

[03/03] Beta limits

Free during the beta, with caps

Caps per organization

Action calls per minute
300

Metered units

Action calls
actions.call
Pricing details