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>",
"rolloutEnabled": true,
"hasSigningSecret": true,
"eligible": true,
"webAccess": 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": {}
}{
"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. Only workspace admins can read setup; 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>",
"rolloutEnabled": true,
"hasSigningSecret": true,
"eligible": true,
"webAccess": 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": {}
}{
"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 the platform admin enabled Slack Assistant for this organization.
-9007199254740991 <= x <= 9007199254740991Model chosen for headless runs, or null for the runner default.
The headless runner's default model, when this workspace uses it.
Whether Slack shows steps and notes while a task works, or only its working status.
Models the headless runner can use; empty when the workspace doesn't use the headless runner.
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
Was this page helpful?