Get a block's fields, conditions, operations, tool schemas, and triggers. Unversioned types resolve to the newest visible version; the returned id identifies that version. Hidden or missing blocks return 404.
OAuth scope: api:read.
/api/v2/blocks/{blockId}Your Sim API key, personal or workspace-scoped. Generate one under Settings, then API Keys. Operations that reject workspace keys say so in their own description.
In: header
Path Parameters
Block type identifier. An unversioned base type resolves to the newest version, and the response echoes the resolved id.
1 <= length <= 255Query Parameters
Workspace whose integration allowlist, revealed preview blocks, and deployed custom blocks decide what this catalog contains.
1 <= length <= 128Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://www.sim.ai/api/v2/blocks/string?workspaceId=string" \ -H "X-API-Key: YOUR_API_KEY"{
"data": {
"id": "slack",
"name": "Slack",
"description": "Send messages and read channels in Slack.",
"category": "tools",
"integrationType": "communication",
"source": "builtin",
"authMode": "oauth",
"triggerAllowed": true,
"triggerCapable": true,
"triggerIds": [
"slack_webhook"
],
"toolIds": [
"slack_message",
"slack_canvas_read"
],
"operationIds": [
"send",
"read"
],
"preview": false,
"docsLink": "https://docs.sim.ai/tools/slack",
"tags": [
"messaging"
],
"inputSchema": [
{
"id": "operation",
"type": "dropdown",
"title": "Operation",
"required": true,
"options": [
{
"id": "send",
"label": "Send message"
},
{
"id": "read",
"label": "Read messages"
}
]
}
],
"operationInputSchema": {
"send": [
{
"id": "text",
"type": "long-input",
"title": "Message",
"required": true
}
]
},
"inputDefinitions": {
"channel": {
"type": "string",
"description": "Channel to post into."
}
},
"operations": {
"send": {
"toolId": "slack_message",
"toolName": "Slack Send Message",
"description": "Send a message to a Slack channel.",
"inputs": {
"text": {
"type": "string",
"required": true,
"description": "Message body."
}
},
"outputs": {
"ts": {
"type": "string",
"description": "Message timestamp."
}
},
"inputSchema": [
{
"id": "text",
"type": "long-input",
"title": "Message",
"required": true
}
]
}
},
"tools": [
{
"id": "slack_message",
"name": "Slack Send Message",
"description": "Send a message to a Slack channel.",
"version": "1.0.0",
"hostedApiKey": "none",
"oauth": {
"required": true,
"provider": "slack",
"requiredScopes": [
"chat:write"
]
},
"params": {
"text": {
"type": "string",
"required": true,
"description": "Message body."
}
},
"outputs": {
"ts": {
"type": "string",
"description": "Message timestamp."
}
}
}
],
"triggers": [
{
"id": "slack_webhook",
"outputs": {
"text": {
"type": "string",
"description": "Message text."
}
},
"configFields": {
"channels": {
"type": "short-input",
"required": false,
"title": "Channels"
}
}
}
],
"outputs": {
"ts": {
"type": "string",
"description": "Message timestamp."
}
}
}
}{
"error": {
"code": "BAD_REQUEST",
"message": "Invalid request"
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "Authentication required"
}
}{
"error": {
"code": "FORBIDDEN",
"message": "Insufficient workspace permissions",
"details": {
"code": "INSUFFICIENT_WORKSPACE_ROLE"
}
}
}{
"error": {
"code": "NOT_FOUND",
"message": "Not found"
}
}{
"error": {
"code": "RATE_LIMITED",
"message": "API rate limit exceeded",
"details": {
"retryAfter": "2026-01-01T00:00:30.000Z"
}
}
}{
"error": {
"code": "INTERNAL_ERROR",
"message": "Internal server error"
}
}{
"error": {
"code": "SERVICE_UNAVAILABLE",
"message": "Service temporarily unavailable"
}
}