curl --request GET \
--url https://api.whop.com/api/v1/channels \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.whop.com/api/v1/channels"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.whop.com/api/v1/channels', 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.whop.com/api/v1/channels",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.whop.com/api/v1/channels"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.whop.com/api/v1/channels")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.whop.com/api/v1/channels")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"account_id": null,
"created_at": "2026-01-01T12:00:00.000Z",
"experience_id": null,
"icon": {
"blurhash": null,
"content_type": "application/pdf",
"created_at": "2026-01-01T12:00:00.000Z",
"duration_seconds": null,
"filename": "evidence.pdf",
"height": null,
"id": "file_xxxxxxxxxxxxxx",
"object": "file",
"removed_by_moderation": false,
"size": 9670,
"upload_status": "pending",
"url": "https://whop-assets-example.s3.amazonaws.com/uploads/audio/2026-01-01/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"visibility": "private",
"waveform_url": null,
"width": null,
"multipart_chunk_size": 5242880,
"multipart_upload_id": "upload-id",
"multipart_upload_urls": [
{
"part_number": 1,
"url": "https://whop-assets-example.s3.amazonaws.com/uploads/2026-01-01/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/application.pdf"
}
],
"upload_headers": {},
"upload_url": "https://whop-assets-example.s3.amazonaws.com/uploads/2026-01-01/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/application.pdf"
},
"id": "feed_xxxxxxxxxxxxxxxxxxxxxx",
"kind": "private",
"last_message_at": "2026-01-01T12:00:00.000Z",
"last_message_id": "post_xxxxxxxxxxxxxxxxxxxxxx",
"membership": {
"channel_id": "feed_xxxxxxxxxxxxxxxxxxxxxx",
"created_at": "2026-01-01T12:00:00.000Z",
"id": "memb_1_xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"inbox_status": "accepted",
"last_viewed_at": "2026-01-01T12:00:00.000Z",
"notification_preference": "all",
"pinned_position": null,
"unread": false,
"updated_at": "2026-01-01T12:00:00.000Z",
"user": {
"id": "user_xxxxxxxxxxxxxx",
"name": "Dana Whitfield",
"profile_picture": {
"url": "https://ui-avatars.com/api/"
},
"username": "danawhitfield"
},
"user_id": "user_xxxxxxxxxxxxxx"
},
"moderation": {
"ban_media": true,
"ban_urls": true,
"banned_words": [
"<string>"
],
"user_posts_cooldown_seconds": 123,
"who_can_post": "everyone",
"who_can_react": "everyone"
},
"name": null,
"notifications_enabled": true,
"support": {
"awaiting_reply": false,
"customer_user_id": "user_xxxxxxxxxxxxxx",
"last_message_by": "customer",
"resolved_at": "2026-01-01T12:00:00.000Z",
"status": "resolved"
},
"updated_at": "2026-01-01T12:00:00.000Z",
"last_message": {
"attachments": [
{
"blurhash": null,
"content_type": "application/pdf",
"created_at": "2026-01-01T12:00:00.000Z",
"duration_seconds": null,
"filename": "evidence.pdf",
"height": null,
"id": "file_xxxxxxxxxxxxxx",
"object": "file",
"removed_by_moderation": false,
"size": 9670,
"upload_status": "pending",
"url": "https://whop-assets-example.s3.amazonaws.com/uploads/audio/2026-01-01/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"visibility": "private",
"waveform_url": null,
"width": null,
"multipart_chunk_size": 5242880,
"multipart_upload_id": "upload-id",
"multipart_upload_urls": [
{
"part_number": 1,
"url": "https://whop-assets-example.s3.amazonaws.com/uploads/2026-01-01/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/application.pdf"
}
],
"upload_headers": {},
"upload_url": "https://whop-assets-example.s3.amazonaws.com/uploads/2026-01-01/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/application.pdf"
}
],
"author": {
"id": "user_xxxxxxxxxxxxxx",
"name": "Dana Whitfield",
"profile_picture": {
"url": "https://ui-avatars.com/api/"
},
"username": "danawhitfield"
},
"author_is_team_member": false,
"author_user_id": "user_xxxxxxxxxxxxxx",
"channel_id": "feed_xxxxxxxxxxxxxxxxxxxxxx",
"content": "Content 1",
"created_at": "2026-01-01T12:00:00.000Z",
"custom_author": {
"display_name": "<string>",
"profile_picture": {
"blurhash": null,
"content_type": "application/pdf",
"created_at": "2026-01-01T12:00:00.000Z",
"duration_seconds": null,
"filename": "evidence.pdf",
"height": null,
"id": "file_xxxxxxxxxxxxxx",
"object": "file",
"removed_by_moderation": false,
"size": 9670,
"upload_status": "pending",
"url": "https://whop-assets-example.s3.amazonaws.com/uploads/audio/2026-01-01/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"visibility": "private",
"waveform_url": null,
"width": null,
"multipart_chunk_size": 5242880,
"multipart_upload_id": "upload-id",
"multipart_upload_urls": [
{
"part_number": 1,
"url": "https://whop-assets-example.s3.amazonaws.com/uploads/2026-01-01/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/application.pdf"
}
],
"upload_headers": {},
"upload_url": "https://whop-assets-example.s3.amazonaws.com/uploads/2026-01-01/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/application.pdf"
}
},
"deleted_at": null,
"edited": false,
"embeds": [
{
"color": 123,
"description": "<string>",
"fields": [
{
"inline": true,
"name": "<string>",
"value": "<string>"
}
],
"footer": {
"icon": {
"blurhash": "<string>",
"height": 123,
"url": "<string>",
"width": 123
},
"text": "<string>"
},
"image": {
"blurhash": "<string>",
"height": 123,
"url": "<string>",
"width": 123
},
"thumbnail": {
"blurhash": "<string>",
"height": 123,
"url": "<string>",
"width": 123
},
"timestamp_at": "<string>",
"title": "<string>",
"url": "<string>"
}
],
"gifs": [
{
"height": 123,
"original_url": "<string>",
"preview_url": "<string>",
"slug": "<string>",
"title": "<string>",
"url": "<string>",
"width": 123
}
],
"id": "post_xxxxxxxxxxxxxxxxxxxxxx",
"link_previews": [
{
"description": "<string>",
"favicon_url": "<string>",
"footer": {
"description": "<string>",
"icon_url": "<string>",
"title": "<string>"
},
"image_url": "<string>",
"processing": true,
"title": "<string>",
"url": "<string>"
}
],
"mentioned_user_ids": [
"<string>"
],
"message_type": "regular",
"pinned": false,
"plain_content": "Content 1",
"poll": {
"options": [
{
"id": "1",
"text": "A",
"vote_count": 0,
"voted": false
}
]
},
"reaction_counts": [
{
"kind": "emoji",
"reacted": true,
"total_score": 1,
"user_count": 1,
"value": "❤️"
}
],
"replying_to_message_id": null,
"replying_to_user_id": null,
"updated_at": "2026-01-01T12:00:00.000Z",
"view_count": null
},
"members": [
{
"channel_id": "feed_xxxxxxxxxxxxxxxxxxxxxx",
"created_at": "2026-01-01T12:00:00.000Z",
"id": "memb_1_xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"inbox_status": "accepted",
"last_viewed_at": "2026-01-01T12:00:00.000Z",
"notification_preference": "all",
"pinned_position": null,
"unread": false,
"updated_at": "2026-01-01T12:00:00.000Z",
"user": {
"id": "user_xxxxxxxxxxxxxx",
"name": "Dana Whitfield",
"profile_picture": {
"url": "https://ui-avatars.com/api/"
},
"username": "danawhitfield"
},
"user_id": "user_xxxxxxxxxxxxxx"
}
]
}
],
"page_info": {
"end_cursor": null,
"has_next_page": false,
"has_previous_page": false,
"start_cursor": "WyJjdXJzb3IiLDFd",
"total_count": 123,
"total_count_capped": true
}
}{
"error": {
"message": "account_id is required",
"type": "bad_request",
"code": "<string>"
}
}List Channels
List channels you can access.
curl --request GET \
--url https://api.whop.com/api/v1/channels \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.whop.com/api/v1/channels"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.whop.com/api/v1/channels', 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.whop.com/api/v1/channels",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.whop.com/api/v1/channels"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.whop.com/api/v1/channels")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.whop.com/api/v1/channels")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"account_id": null,
"created_at": "2026-01-01T12:00:00.000Z",
"experience_id": null,
"icon": {
"blurhash": null,
"content_type": "application/pdf",
"created_at": "2026-01-01T12:00:00.000Z",
"duration_seconds": null,
"filename": "evidence.pdf",
"height": null,
"id": "file_xxxxxxxxxxxxxx",
"object": "file",
"removed_by_moderation": false,
"size": 9670,
"upload_status": "pending",
"url": "https://whop-assets-example.s3.amazonaws.com/uploads/audio/2026-01-01/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"visibility": "private",
"waveform_url": null,
"width": null,
"multipart_chunk_size": 5242880,
"multipart_upload_id": "upload-id",
"multipart_upload_urls": [
{
"part_number": 1,
"url": "https://whop-assets-example.s3.amazonaws.com/uploads/2026-01-01/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/application.pdf"
}
],
"upload_headers": {},
"upload_url": "https://whop-assets-example.s3.amazonaws.com/uploads/2026-01-01/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/application.pdf"
},
"id": "feed_xxxxxxxxxxxxxxxxxxxxxx",
"kind": "private",
"last_message_at": "2026-01-01T12:00:00.000Z",
"last_message_id": "post_xxxxxxxxxxxxxxxxxxxxxx",
"membership": {
"channel_id": "feed_xxxxxxxxxxxxxxxxxxxxxx",
"created_at": "2026-01-01T12:00:00.000Z",
"id": "memb_1_xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"inbox_status": "accepted",
"last_viewed_at": "2026-01-01T12:00:00.000Z",
"notification_preference": "all",
"pinned_position": null,
"unread": false,
"updated_at": "2026-01-01T12:00:00.000Z",
"user": {
"id": "user_xxxxxxxxxxxxxx",
"name": "Dana Whitfield",
"profile_picture": {
"url": "https://ui-avatars.com/api/"
},
"username": "danawhitfield"
},
"user_id": "user_xxxxxxxxxxxxxx"
},
"moderation": {
"ban_media": true,
"ban_urls": true,
"banned_words": [
"<string>"
],
"user_posts_cooldown_seconds": 123,
"who_can_post": "everyone",
"who_can_react": "everyone"
},
"name": null,
"notifications_enabled": true,
"support": {
"awaiting_reply": false,
"customer_user_id": "user_xxxxxxxxxxxxxx",
"last_message_by": "customer",
"resolved_at": "2026-01-01T12:00:00.000Z",
"status": "resolved"
},
"updated_at": "2026-01-01T12:00:00.000Z",
"last_message": {
"attachments": [
{
"blurhash": null,
"content_type": "application/pdf",
"created_at": "2026-01-01T12:00:00.000Z",
"duration_seconds": null,
"filename": "evidence.pdf",
"height": null,
"id": "file_xxxxxxxxxxxxxx",
"object": "file",
"removed_by_moderation": false,
"size": 9670,
"upload_status": "pending",
"url": "https://whop-assets-example.s3.amazonaws.com/uploads/audio/2026-01-01/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"visibility": "private",
"waveform_url": null,
"width": null,
"multipart_chunk_size": 5242880,
"multipart_upload_id": "upload-id",
"multipart_upload_urls": [
{
"part_number": 1,
"url": "https://whop-assets-example.s3.amazonaws.com/uploads/2026-01-01/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/application.pdf"
}
],
"upload_headers": {},
"upload_url": "https://whop-assets-example.s3.amazonaws.com/uploads/2026-01-01/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/application.pdf"
}
],
"author": {
"id": "user_xxxxxxxxxxxxxx",
"name": "Dana Whitfield",
"profile_picture": {
"url": "https://ui-avatars.com/api/"
},
"username": "danawhitfield"
},
"author_is_team_member": false,
"author_user_id": "user_xxxxxxxxxxxxxx",
"channel_id": "feed_xxxxxxxxxxxxxxxxxxxxxx",
"content": "Content 1",
"created_at": "2026-01-01T12:00:00.000Z",
"custom_author": {
"display_name": "<string>",
"profile_picture": {
"blurhash": null,
"content_type": "application/pdf",
"created_at": "2026-01-01T12:00:00.000Z",
"duration_seconds": null,
"filename": "evidence.pdf",
"height": null,
"id": "file_xxxxxxxxxxxxxx",
"object": "file",
"removed_by_moderation": false,
"size": 9670,
"upload_status": "pending",
"url": "https://whop-assets-example.s3.amazonaws.com/uploads/audio/2026-01-01/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"visibility": "private",
"waveform_url": null,
"width": null,
"multipart_chunk_size": 5242880,
"multipart_upload_id": "upload-id",
"multipart_upload_urls": [
{
"part_number": 1,
"url": "https://whop-assets-example.s3.amazonaws.com/uploads/2026-01-01/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/application.pdf"
}
],
"upload_headers": {},
"upload_url": "https://whop-assets-example.s3.amazonaws.com/uploads/2026-01-01/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/application.pdf"
}
},
"deleted_at": null,
"edited": false,
"embeds": [
{
"color": 123,
"description": "<string>",
"fields": [
{
"inline": true,
"name": "<string>",
"value": "<string>"
}
],
"footer": {
"icon": {
"blurhash": "<string>",
"height": 123,
"url": "<string>",
"width": 123
},
"text": "<string>"
},
"image": {
"blurhash": "<string>",
"height": 123,
"url": "<string>",
"width": 123
},
"thumbnail": {
"blurhash": "<string>",
"height": 123,
"url": "<string>",
"width": 123
},
"timestamp_at": "<string>",
"title": "<string>",
"url": "<string>"
}
],
"gifs": [
{
"height": 123,
"original_url": "<string>",
"preview_url": "<string>",
"slug": "<string>",
"title": "<string>",
"url": "<string>",
"width": 123
}
],
"id": "post_xxxxxxxxxxxxxxxxxxxxxx",
"link_previews": [
{
"description": "<string>",
"favicon_url": "<string>",
"footer": {
"description": "<string>",
"icon_url": "<string>",
"title": "<string>"
},
"image_url": "<string>",
"processing": true,
"title": "<string>",
"url": "<string>"
}
],
"mentioned_user_ids": [
"<string>"
],
"message_type": "regular",
"pinned": false,
"plain_content": "Content 1",
"poll": {
"options": [
{
"id": "1",
"text": "A",
"vote_count": 0,
"voted": false
}
]
},
"reaction_counts": [
{
"kind": "emoji",
"reacted": true,
"total_score": 1,
"user_count": 1,
"value": "❤️"
}
],
"replying_to_message_id": null,
"replying_to_user_id": null,
"updated_at": "2026-01-01T12:00:00.000Z",
"view_count": null
},
"members": [
{
"channel_id": "feed_xxxxxxxxxxxxxxxxxxxxxx",
"created_at": "2026-01-01T12:00:00.000Z",
"id": "memb_1_xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"inbox_status": "accepted",
"last_viewed_at": "2026-01-01T12:00:00.000Z",
"notification_preference": "all",
"pinned_position": null,
"unread": false,
"updated_at": "2026-01-01T12:00:00.000Z",
"user": {
"id": "user_xxxxxxxxxxxxxx",
"name": "Dana Whitfield",
"profile_picture": {
"url": "https://ui-avatars.com/api/"
},
"username": "danawhitfield"
},
"user_id": "user_xxxxxxxxxxxxxx"
}
]
}
],
"page_info": {
"end_cursor": null,
"has_next_page": false,
"has_previous_page": false,
"start_cursor": "WyJjdXJzb3IiLDFd",
"total_count": 123,
"total_count_capped": true
}
}{
"error": {
"message": "account_id is required",
"type": "bad_request",
"code": "<string>"
}
}Authorizations
An Account API key, an App API key, an account access token, or an account-scoped user token. Prepend the key or token with Bearer, for example Bearer ***************************. See Auth & API keys for how to get each one.
Headers
Pins the request to a dated API version.
"2026-11-07"
Query Parameters
Number of results to return from the start of the range.
x <= 100Return results after this cursor. Use page_info.end_cursor from the previous response to fetch the next page.
Number of results to return from the end of the range.
x <= 100Return results before this cursor. Use page_info.start_cursor from the previous response to fetch the previous page.
Set to true to return the number of matching results in page_info.total_count. Send first=0 as well to return the count without any results.
Channel kinds to return. Combine private and support, or pass community alone. private includes one-to-one and group direct messages.
private, community, support Which support channels to return. customer returns support chats you opened, including when account_id is set. staff returns the support inbox of the account in account_id, and requires permission to read that account's support chats. Applies only to support channels.
customer, staff Filter channels by their owning account, prefixed biz_. Applies to private, community and support channels.
Return only channels whose name contains this text. Private and support channels also match a member's username or name. % and _ match literally.
Return only support channels with this resolution. Requires kind to be support alone.
unresolved, resolved true returns unresolved support channels whose last message came from the customer; false returns the other support channels. Other channel kinds are returned either way.
true returns channels with messages you have not read; false returns the rest. Requires authenticating as a user.
true returns private and support channels you have pinned; false returns those you have not. Requires authenticating as a user.
true returns community channels you have opened; false returns those you never have. Requires authenticating as a user.
true returns your pending direct-message requests; false returns your accepted private channels. Requires private in kind and authenticating as a user. With support also in kind, false keeps support channels and true returns only pending requests.
The field to sort by. Defaults to last_viewed_at for community channels and last_message_at for private and support channels. Ties sort in a stable order.
created_at, last_message_at, last_viewed_at Include the current members of private and support channels, including you, with their public profiles.
Include the most recent message you can see, with its author.
The sort direction. Defaults to desc.
asc, desc Return only channels created before this ISO 8601 timestamp.
Return only channels created after this ISO 8601 timestamp.

