Search actions
Full-text search over action titles, descriptions and pack names, ranked for agents. Returns references you can pass to describe and call. The same results back the `actions_search` MCP tool.
GET
/v1/actions/search
Full-text search over action titles, descriptions and pack names, ranked for agents. Returns references you
can pass to describe and call. The same results back the `actions_search` MCP tool.
Authentication
Bearer Token (b3os_sk_ API key or b3os_pat_ token) API Key (cookie: __Host-b3os_session)
Query Parameters
q
string
required
query
What the action should do, in words.
Example:
"create a github issue"pack
string
optional
query
Only actions of this pack (`io.b3os/github`).
effects
string
optional
query
Only actions with this effect class.
limit
integer
optional
query
Results to return, from 1 to 50.
Responses
200
Matching actions, best first.
application/jsonobject
string
REQUIRED
Enum:
listdata
object[]
REQUIRED
Array of:
ref
string
REQUIRED
Exact reference with the resolved version.
pack
string
REQUIRED
key
string
REQUIRED
title
string
REQUIRED
description
string
REQUIRED
effects
string
REQUIRED
`pure` computes from input only; `read` reads from the world; `write` changes it; `irreversible` changes it
and cannot be undone (never retried automatically). Drives MCP annotations and retries.
Enum:
pure, read, write, irreversibleconnections
string[]
REQUIRED
Connection keys the action needs.
Array of:
string
mcp_name
string
REQUIRED
The action's MCP tool name.
score
number
Search relevance from 0 to 1 (search results only).
next_cursor
string | null
REQUIRED
400
The request failed validation (`invalid_request`, `invalid_url`).
401
Missing, malformed, expired or revoked credentials (`unauthorized`).
403
Authenticated but not allowed (`forbidden`, `egress_denied`).
429
A rate, concurrency or quota limit applies (`rate_limited`, `concurrency_limited`, `quota_exceeded`).
500
Something failed inside B3OS (`internal`). Retry with backoff.
503
The node or the product is not available right now (`node_unavailable`, `product_unavailable`, `capacity_unavailable`).
curl -X GET 'https://beta-api.b3os.org/v1/actions/search?q=create%20a%20github%20issue' \ -H 'Authorization: Bearer YOUR_API_TOKEN'
const response = await fetch('https://beta-api.b3os.org/v1/actions/search?q=create%20a%20github%20issue', { method: 'GET', headers: { "Authorization": "Bearer YOUR_API_TOKEN" }});const data = await response.json();console.log(data);
import requestsheaders = { 'Authorization': 'Bearer YOUR_API_TOKEN'}response = requests.get('https://beta-api.b3os.org/v1/actions/search?q=create%20a%20github%20issue', headers=headers)print(response.json())
200
Response
{ "object": "list", "data": [ { "ref": "io.b3os/github/create-issue@1.2.0", "pack": "io.b3os/github", "key": "create-issue", "title": "Create an issue", "description": "Open an issue in a repository. Returns the issue number and URL.", "effects": "write", "connections": [ "api" ], "mcp_name": "github__create-issue", "score": 0.92 } ], "next_cursor": null}
API Playground
Try this endpoint
GET
/v1/actions/search