English
Node catalog
Routes are relative to <PUBLIC_BASE_URL>; request and response bodies are JSON unless stated otherwise. Authentication, scopes, pagination and the error format are described in the REST API guides.
GET /api/v1/nodes
List the node types I may use
The node types allowed for the caller, after the organisation policy and the role: a node restricted to administrators disappears for an ordinary member. The catalogue itself ships with the client.
Access — Member session or API key with scope workflows:read.
Responses
200 — The allowed types.
| Field | Type | Required |
|---|---|---|
types | string[] | yes |
JSON Schema
json
{
"type": "object",
"properties": { "types": { "type": "array", "items": { "type": "string" } } },
"required": [ "types" ],
"additionalProperties": false
}401 — No valid session or API key (auth.unauthenticated).
403 — Refused: insufficient role (auth.forbidden), missing scope (api_key.scope_missing, details.required names it) or a route closed to API keys (api_key.session_required).
429 — The API key exceeded its rate limit (api_key.rate_limited); Retry-After says when to retry.
GET /api/v1/nodes/resources/{resource}
Enumerate the values of a node resource
One route for every resourceLocator of the catalog (mail folders, signatures, members, Drive folders…), paginated by cursor and searchable with q. Some resources need a context: mailboxId or credentialId, else 400 resource.context_required; a context that is not the member’s is 404 resource.context_not_found. A remote provider that fails is 502 resource.unavailable, a temporary state worth retrying.
Access — Member session or API key with scope workflows:read.
Parameters
| Name | In | Type | Required |
|---|---|---|---|
resource | path | string | yes |
q | query | string | no |
cursor | query | string | no |
limit | query | integer | no |
mailboxId | query | string | no |
credentialId | query | string | no |
parentId | query | string | no |
parentIds | query | string | string[] | no |
Responses
200 — A page of values.
| Field | Type | Required |
|---|---|---|
items | object[] | yes |
nextCursor | string | null | yes |
JSON Schema
json
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": { "type": "string", "minLength": 1 },
"label": { "type": "string" },
"description": { "type": "string" }
},
"required": [ "id", "label" ],
"additionalProperties": false
}
},
"nextCursor": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }
},
"required": [ "items", "nextCursor" ],
"additionalProperties": false
}400 — The request does not match its schema.
401 — No valid session or API key (auth.unauthenticated).
403 — Refused: insufficient role (auth.forbidden), missing scope (api_key.scope_missing, details.required names it) or a route closed to API keys (api_key.session_required).
429 — The API key exceeded its rate limit (api_key.rate_limited); Retry-After says when to retry.
Error codes — request.bad_request, resource.unknown, resource.context_required, resource.context_not_found, resource.unavailable. The common codes (request.bad_request, auth.unauthenticated, api_key.scope_missing, api_key.rate_limited…) apply to every route; see Errors.