Slack Web API
slack · Company
One way to interact with the Slack platform is its HTTP RPC-based Web API, a collection of methods requiring OAuth 2.0-based user, bot, or workspace tokens blessed with related OAuth scopes.
Authentication
Sample Requests
List approved apps for an org or workspace.
Hover any highlighted part to learn what it does
curl -X GET "https://api.apis.guru/v2/specs/slack.com/1.7.0/admin.apps.approved.list?limit=10&token=YOUR_TOKEN&cursor=example&team_id=example&enterprise_id=example"
import requests
params = {
"limit": "10",
"token": "YOUR_TOKEN",
"cursor": "example",
"team_id": "example",
"enterprise_id": "example"
}
response = requests.get(
"https://api.apis.guru/v2/specs/slack.com/1.7.0/admin.apps.approved.list",
params=params,
)
print(response.json())const url = new URL('https://api.apis.guru/v2/specs/slack.com/1.7.0/admin.apps.approved.list');
url.searchParams.set('limit', '10');
url.searchParams.set('token', 'YOUR_TOKEN');
url.searchParams.set('cursor', 'example');
url.searchParams.set('team_id', 'example');
url.searchParams.set('enterprise_id', 'example');
const response = await fetch(url);
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/slack.com/1.7.0/admin.apps.approved.list")
q := baseURL.Query()
q.Set("limit", "10")
q.Set("token", "YOUR_TOKEN")
q.Set("cursor", "example")
q.Set("team_id", "example")
q.Set("enterprise_id", "example")
baseURL.RawQuery = q.Encode()
targetURL := baseURL.String()
req, _ := http.NewRequest("GET", targetURL, nil)
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/slack.com/1.7.0/admin.apps.approved.list")
uri.query = URI.encode_www_form({
"limit" => "10",
"token" => "YOUR_TOKEN",
"cursor" => "example",
"team_id" => "example",
"enterprise_id" => "example"
})
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Get.new(uri)
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/slack.com/1.7.0/admin.apps.approved.list?" . http_build_query([
"limit" => "10",
"token" => "YOUR_TOKEN",
"cursor" => "example",
"team_id" => "example",
"enterprise_id" => "example"
]);
$opts = ["http" => [
"method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));List app requests for a team/workspace.
Hover any highlighted part to learn what it does
curl -X GET "https://api.apis.guru/v2/specs/slack.com/1.7.0/admin.apps.requests.list?limit=10&token=YOUR_TOKEN&cursor=example&team_id=example"
import requests
params = {
"limit": "10",
"token": "YOUR_TOKEN",
"cursor": "example",
"team_id": "example"
}
response = requests.get(
"https://api.apis.guru/v2/specs/slack.com/1.7.0/admin.apps.requests.list",
params=params,
)
print(response.json())const url = new URL('https://api.apis.guru/v2/specs/slack.com/1.7.0/admin.apps.requests.list');
url.searchParams.set('limit', '10');
url.searchParams.set('token', 'YOUR_TOKEN');
url.searchParams.set('cursor', 'example');
url.searchParams.set('team_id', 'example');
const response = await fetch(url);
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/slack.com/1.7.0/admin.apps.requests.list")
q := baseURL.Query()
q.Set("limit", "10")
q.Set("token", "YOUR_TOKEN")
q.Set("cursor", "example")
q.Set("team_id", "example")
baseURL.RawQuery = q.Encode()
targetURL := baseURL.String()
req, _ := http.NewRequest("GET", targetURL, nil)
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/slack.com/1.7.0/admin.apps.requests.list")
uri.query = URI.encode_www_form({
"limit" => "10",
"token" => "YOUR_TOKEN",
"cursor" => "example",
"team_id" => "example"
})
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Get.new(uri)
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/slack.com/1.7.0/admin.apps.requests.list?" . http_build_query([
"limit" => "10",
"token" => "YOUR_TOKEN",
"cursor" => "example",
"team_id" => "example"
]);
$opts = ["http" => [
"method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));List restricted apps for an org or workspace.
Hover any highlighted part to learn what it does
curl -X GET "https://api.apis.guru/v2/specs/slack.com/1.7.0/admin.apps.restricted.list?limit=10&token=YOUR_TOKEN&cursor=example&team_id=example&enterprise_id=example"
import requests
params = {
"limit": "10",
"token": "YOUR_TOKEN",
"cursor": "example",
"team_id": "example",
"enterprise_id": "example"
}
response = requests.get(
"https://api.apis.guru/v2/specs/slack.com/1.7.0/admin.apps.restricted.list",
params=params,
)
print(response.json())const url = new URL('https://api.apis.guru/v2/specs/slack.com/1.7.0/admin.apps.restricted.list');
url.searchParams.set('limit', '10');
url.searchParams.set('token', 'YOUR_TOKEN');
url.searchParams.set('cursor', 'example');
url.searchParams.set('team_id', 'example');
url.searchParams.set('enterprise_id', 'example');
const response = await fetch(url);
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/slack.com/1.7.0/admin.apps.restricted.list")
q := baseURL.Query()
q.Set("limit", "10")
q.Set("token", "YOUR_TOKEN")
q.Set("cursor", "example")
q.Set("team_id", "example")
q.Set("enterprise_id", "example")
baseURL.RawQuery = q.Encode()
targetURL := baseURL.String()
req, _ := http.NewRequest("GET", targetURL, nil)
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/slack.com/1.7.0/admin.apps.restricted.list")
uri.query = URI.encode_www_form({
"limit" => "10",
"token" => "YOUR_TOKEN",
"cursor" => "example",
"team_id" => "example",
"enterprise_id" => "example"
})
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Get.new(uri)
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/slack.com/1.7.0/admin.apps.restricted.list?" . http_build_query([
"limit" => "10",
"token" => "YOUR_TOKEN",
"cursor" => "example",
"team_id" => "example",
"enterprise_id" => "example"
]);
$opts = ["http" => [
"method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Postman Setup Guide
- See official documentation for authentication and setup.
What can you build with Slack Web API?
Slack Web API is a Company API. Developers commonly use company APIs for:
- enriching CRM records with company firmographics
- building lead-generation and prospecting tools
- verifying business identity and registration details
- monitoring competitors and market intelligence
- powering B2B data enrichment pipelines
No authentication required. This API is open — no signup or key needed. Ideal for quick prototypes and public-facing features. Slack Web API is free to use, making it a low-risk choice to experiment with.
New to APIs? Read our beginner's guide