Skip to main content
GET
JavaScript
A synced tool set discovers its tools in the background. There is no sync endpoint to call and no status field to poll. This event log is how you know a sync ran and how it went.
Events come back newest first. The most recent sync is the first row.

Three event types

The event is a discriminated union: type names the variant, and the key matching type carries the payload. A sync is a syncStarted followed by exactly one syncCompleted or syncFailed. To block a setup script until the tools exist, poll this log after creating the set and stop on the first terminal event newer than your create.

syncCompleted does not mean every tool synced

This is the part to handle. A syncCompleted carries a message when some tools failed even though the sync as a whole succeeded. toolsSynced counts what landed; the message lists what did not.
So a green syncCompleted is not proof the whole provider synced. Read toolsSynced against the count you expect, and read message when they differ:

Reading a failure

syncFailed carries three fields. message is the human-readable summary, errorType is a machine tag for grouping, and error holds the underlying detail:
The common causes are a provider your workspace cannot reach, an MCP server that is down, an OpenAPI URL that returns something other than a spec, or a bad credential in an adapter header. A failed sync leaves the previously synced tools in place; the set does not empty itself because a refresh failed.

Cadence

You do not trigger a sync. Cadenya syncs when you create or update the adapter, and on its own cycle after that. An OpenAPI adapter fetched by URL re-syncs hourly, which is visible here as a syncStarted roughly every hour. info.lastSync on the tool set gives you the timestamp of the most recent successful sync without walking the log. It is omitted until a sync completes, so a set whose only syncs have failed has no lastSync. sortOrder, limit, and cursor page the history the usual way; the SDK iterator follows the cursor for you.

Create a tool set

What a sync discovers, and the filters it applies each time.

List tools

The tools a completed sync wrote.

List tool sets

info.lastSync and the live tool count.

Connect an MCP server

The hands-on path, from URL to a synced tool.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

workspaceId
string
required

Workspace ID.

Example:

"workspace_01HXKD2E5NQM3T9AYWCF133E3Q"

toolSetId
string
required

Tool set ID. Accepts the canonical ts_… form or the external_id: form.

Example:

"toolset_01HXKD2E5NQM3T9AYWCFNRMN74"

Query Parameters

limit
integer<int32>

Maximum number of results to return

cursor
string

Pagination cursor from previous response

sortOrder
string

Sort order for results (asc or desc by creation time)

includeInfo
boolean

When set to true you may use more of your alloted API rate-limit

labels
string

Filters by metadata labels. Comma-separated key=value pairs, e.g. "env=prod,team=ai". A resource matches only if every pair matches exactly (AND semantics).

Response

OK

items
object[]
pagination
object

Page carries cursor-based pagination state. There is no total: the cursor walks the result set without ever counting it, and a count would cost a second query on every list.