curl --request GET \
--url https://api.openworklabs.com/v1/mcp-connections/{connectionId}/slack-assistant \
--header 'x-api-key: <api-key>'import requests
url = "https://api.openworklabs.com/v1/mcp-connections/{connectionId}/slack-assistant"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.openworklabs.com/v1/mcp-connections/{connectionId}/slack-assistant', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.openworklabs.com/v1/mcp-connections/{connectionId}/slack-assistant",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.openworklabs.com/v1/mcp-connections/{connectionId}/slack-assistant"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.openworklabs.com/v1/mcp-connections/{connectionId}/slack-assistant")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.openworklabs.com/v1/mcp-connections/{connectionId}/slack-assistant")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"enabled": true,
"installed": true,
"teamId": "<string>",
"hasSigningSecret": true,
"eligible": true,
"runnerAvailable": true,
"channelIds": [
"<string>"
],
"shadowMode": true,
"dailyLimit": 0,
"model": "<string>",
"defaultModel": "<string>",
"progressUpdates": true,
"models": [
{
"id": "<string>",
"name": "<string>"
}
],
"metrics": {
"completed": 0,
"failed": 0,
"active": 0,
"awaitingConnection": 0,
"helpful": 0,
"needsWork": 0,
"firstTextMedianMs": 123,
"finalMedianMs": 123,
"sampledEvents": 0
},
"manifest": {},
"modelManagedByOrganization": true
}{
"error": "invalid_request",
"details": [
{
"message": "<string>",
"path": [
"<string>"
]
}
],
"message": "<string>",
"capability": "<string>"
}{
"error": "unauthorized"
}{
"error": "forbidden",
"reason": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}Read Slack assistant setup
Read connector configuration, organization eligibility, recent activity metrics, and the Slack app manifest. Requires the View all connections permission; stored credentials are never returned.
curl --request GET \
--url https://api.openworklabs.com/v1/mcp-connections/{connectionId}/slack-assistant \
--header 'x-api-key: <api-key>'import requests
url = "https://api.openworklabs.com/v1/mcp-connections/{connectionId}/slack-assistant"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.openworklabs.com/v1/mcp-connections/{connectionId}/slack-assistant', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.openworklabs.com/v1/mcp-connections/{connectionId}/slack-assistant",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.openworklabs.com/v1/mcp-connections/{connectionId}/slack-assistant"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.openworklabs.com/v1/mcp-connections/{connectionId}/slack-assistant")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.openworklabs.com/v1/mcp-connections/{connectionId}/slack-assistant")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"enabled": true,
"installed": true,
"teamId": "<string>",
"hasSigningSecret": true,
"eligible": true,
"runnerAvailable": true,
"channelIds": [
"<string>"
],
"shadowMode": true,
"dailyLimit": 0,
"model": "<string>",
"defaultModel": "<string>",
"progressUpdates": true,
"models": [
{
"id": "<string>",
"name": "<string>"
}
],
"metrics": {
"completed": 0,
"failed": 0,
"active": 0,
"awaitingConnection": 0,
"helpful": 0,
"needsWork": 0,
"firstTextMedianMs": 123,
"finalMedianMs": 123,
"sampledEvents": 0
},
"manifest": {},
"modelManagedByOrganization": true
}{
"error": "invalid_request",
"details": [
{
"message": "<string>",
"path": [
"<string>"
]
}
],
"message": "<string>",
"capability": "<string>"
}{
"error": "unauthorized"
}{
"error": "forbidden",
"reason": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}Authorizations
Organization API key passed as the x-api-key header. The raw key is the header value; do not prefix it with Bearer.
Path Parameters
Den TypeID with 'emc_' prefix and a 26-character base32 suffix.
30Response
Slack assistant setup.
Whether this deployment has the headless runner Slack replies run on. Without it the assistant can't be enabled.
-9007199254740991 <= x <= 9007199254740991Model chosen for Slack runs, or null for the runner default.
The headless runner's default model, when the runner is available.
Whether Slack shows steps and notes while a task works, or only its working status.
Models the headless runner can use; empty when the runner is unavailable.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Slack app manifest to import when configuring the bot.
Show child attributes
Show child attributes
The organization's default model (Manage › Workbot) is used instead of a model chosen here; model is that model.
Was this page helpful?