Slack icon

Slack Data API: workspace chat, users and files

SLACK TECHNOLOGIES L.L.C. · Communication

Slack is the workplace messaging app from Slack Technologies — the company co-founded by Stewart Butterfield that launched Slack publicly in 2014 and sold it to Salesforce in 2021 in a deal valued at about $27.7 billion — and it replaces internal email chains with a searchable workspace organized around channels. On Android, a member finds their workspace by email address or company domain and signs in with a password, a magic link or the company's single sign-on (for example Okta over SAML), landing on a Home tab whose sidebar groups starred items, public and private channels and direct messages, each marked with unread dots and mention badges that roll up into the count on the app icon. Conversations scroll back past pinned messages and an "N new messages" banner, replies branch into threads that can also be sent to the channel, a Saved list holds messages to come back to, and the channel-details sheet shows the topic, description and member count. New messages, typing indicators and presence arrive instantly over a live connection that fails over automatically when the network changes. Shared channels, branded Slack Connect, link a workspace with people at partner organizations, and multi-channel and single-channel guests sit alongside full members, admins, owners and bots; tapping an avatar opens a profile card with title, pronouns, local time, an active-or-away presence and a custom status such as "In a huddle", and members can start huddles for quick audio or video calls. The Files tab collects shared documents, images and canvases, the Search tab pivots across messages, files, people and channels with from: and in: filters, and the You tab lets a member set themselves away, pause notifications for a chosen duration with Do Not Disturb and switch between several workspaces from one app, with paid workspaces unlocking extras such as enterprise search. Slack competes in team chat with Microsoft Teams, Google Chat, Zoom Workplace, Discord, Mattermost and Cisco Webex, and its Android app is used by companies and distributed teams across the United States, India, Brazil and beyond to coordinate projects, share announcements and run incident response.

Channel, DM and thread messages come back as timeline records — author_id, text, ts, thread_ts and reply_count per message, a client-generated client_msg_id that de-duplicates optimistic sends, paging through has_more and next_cursor, deleted_ts for removed posts and the conversation's pin_count and unread_count_display on top. A posted message returns the canonical ts and channel_id, and a thread reply records whether it also went to the channel via also_send_to_channel; a live-connection ticket (primary_url, fallback_url, ttl_seconds, region) is what pushes new messages, typing and presence to the client between polls. Around the timelines sit per-conversation counters — has_unreads, mention_count, latest_ts, last_read_ts and a history_stale flag across channels, group DMs and DMs, plus thread and saved-item unread counts and the app_badge total with its fetched_at timestamp.

Before any of that, workspace discovery resolves an email or domain into workspace_id, workspace_name, workspace_url, email_domains, sso_enabled, password_signin_allowed, device_check_required, the sso_providers list and icons, and sign-in mints the session token alongside member_id and member_email. The post-sign-in boot record then carries the signed-in me and workspace, the channels and direct_messages lists, starred items, prefs, the dnd window, plan_features, other_workspaces and an optional rotated_token, all versioned by cache_version and unchanged_channel_ids. Channel records add topic, description, creator_id, created, member_count, unread_count and the is_private, is_archived, is_member, is_shared and is_external flags that separate Slack Connect channels from internal ones. Member profile cards carry handle, full_name, display_name, email, title, phone, pronouns, status, timezone, tz_offset, locale, presence, has_2fa, deactivated, avatar sizes and admin/owner/guest/bot role flags, while the workspace census splits headcount into full members, guests_multi_channel, guests_single_channel, admins, owners, bots, deactivated, invited, online and active. Shared-file listings return id, created, title, name, filetype, mimetype, size, owner_id, channel_ids, comments_count, is_external, download_url and permalink under a paging block with total and pages; search results come back as items with pagination and filter_suggestions for the messages, files, people and channels modules named in module; a manual presence write sets presence; and a Do Not Disturb pause reports paused, ends_at, remaining_seconds and indefinite.

HR and IT teams can keep a staff directory in sync with the census and profile cards without scraping the People tab, and security teams can check each member's has_2fa and role against the workspace's sso_enabled setting. A secondary inbox or on-call bot can poll the unread counters and page a timeline only when history_stale flips, surfacing just the conversations that still have unreads; compliance teams can walk shared files channel by channel to build retention or DLP inventories of documents and canvases keyed by the same file id values the Files tab shows; and postmortem wikis can store incident-keyword search hits — query, items and pagination — to cite exactly what the in-app Search tab returned. openData Studio turns these message, channel, member, file and workspace records into callable open data for those integrations.

Screenshots

  • Slack screenshot 1
  • Slack screenshot 2
  • Slack screenshot 3
  • Slack screenshot 4
  • Slack screenshot 5
  • Slack screenshot 6
  • Slack screenshot 7
  • Slack screenshot 8

API surface

The endpoints and request/response examples below are reconstructed from the app's interface — illustrative, not a live capture.

  • Look up a workspace by email or domain

    POST /v1/workspaces/lookup osint

    Resolves an email or workspace domain to the workspace id, name, URL and SSO flags the sign-in screen needs before a password, magic-link or SAML handoff.

    Auth: None — public workspace discovery before sign-in. Later calls carry the session token minted at sign-in.

    • workspace_id
    • workspace_name
    • workspace_url
    • email_domains
    • sso_enabled
    • password_signin_allowed
    • device_check_required
    • sso_providers
    • icons
    POST /v1/workspaces/lookup HTTP/1.1
    Content-Type: application/json
    
    {
      "email": "[email protected]"
    }
    {
      "ok": true,
      "workspace_id": "W7Q2K9D",
      "workspace_name": "Example Corp",
      "workspace_url": "https://example-corp.example.com/",
      "email_domains": [
        "example.com"
      ],
      "sso_enabled": true,
      "password_signin_allowed": false,
      "device_check_required": false,
      "sso_providers": [
        {
          "name": "Okta",
          "type": "saml"
        }
      ],
      "icons": {
        "small": "https://cdn.example.com/ws/w7q2k9d_68.png",
        "large": "https://cdn.example.com/ws/w7q2k9d_132.png"
      }
    }
  • Sign in and mint a workspace session token

    POST /v1/workspaces/{workspaceId}/sessions osint

    Authenticates the member against a workspace and returns the session token plus member and workspace ids that every subsequent signed-in call carries.

    Auth: Email + password (or magic-link code). The returned token authorizes every later signed-in call.

    • workspace_id
    • token
    • member_id
    • member_email
    POST /v1/workspaces/W7Q2K9D/sessions HTTP/1.1
    Content-Type: application/json
    
    {
      "email": "[email protected]",
      "password": "<redacted>"
    }
    {
      "ok": true,
      "workspace_id": "W7Q2K9D",
      "token": "sess_example_7f3a9c21",
      "member_id": "M4H8P2L",
      "member_email": "[email protected]"
    }
  • Bootstrap the signed-in client session

    POST /v1/workspaces/{workspaceId}/boot opendata

    Hydrates the Home tab after sign-in: the signed-in member, workspace, DM and channel lists, DND window, user prefs, plan feature flags and an optional rotated session token.

    Auth: Authorization: Bearer <workspace session token> issued by the workspace sign-in call

    • me
    • workspace
    • cache_version
    • direct_messages
    • channels
    • dnd
    • prefs
    • emoji_cache_ts
    • starred
    • plan_features
    • rotated_token
    • other_workspaces
    • unchanged_channel_ids
    POST /v1/workspaces/W7Q2K9D/boot HTTP/1.1
    Authorization: Bearer <session-token>
    Content-Type: application/json
    
    {
      "cache_version": "v12",
      "since": 1759000000
    }
    {
      "ok": true,
      "me": {
        "id": "M4H8P2L",
        "handle": "alex.rivera",
        "full_name": "Alex Rivera",
        "workspace_id": "W7Q2K9D",
        "timezone": "America/Los_Angeles",
        "presence": "active"
      },
      "workspace": {
        "id": "W7Q2K9D",
        "name": "Example Corp",
        "subdomain": "example-corp"
      },
      "cache_version": "v12",
      "direct_messages": [
        {
          "id": "DM91X2",
          "member_id": "M0A1B2C"
        }
      ],
      "channels": [
        {
          "id": "CH55Y7",
          "name": "platform"
        }
      ],
      "dnd": {
        "enabled": false,
        "next_start": 0,
        "next_end": 0
      },
      "prefs": {
        "muted_channels": [],
        "highlight_words": []
      },
      "emoji_cache_ts": 1758900000,
      "starred": [
        "CH55Y7"
      ],
      "plan_features": [
        "enterprise_search"
      ],
      "rotated_token": "sess_example_rotated",
      "other_workspaces": [
        {
          "id": "W7Q2K9D",
          "name": "Example Corp"
        }
      ],
      "unchanged_channel_ids": []
    }
  • Read unread, mention and thread counts

    POST /v1/workspaces/{workspaceId}/badge-counts opendata

    Returns per-channel, group-DM and DM unread/mention counters plus thread and saved-item badges that drive the sidebar dots and the app-icon badge.

    Auth: Authorization: Bearer <workspace session token> issued by the workspace sign-in call

    • channels
    • group_dms
    • direct_messages
    • threads
    • saved
    • app_badge
    • fetched_at
    • has_unreads
    • mention_count
    • latest_ts
    • last_read_ts
    • history_stale
    POST /v1/workspaces/W7Q2K9D/badge-counts HTTP/1.1
    Authorization: Bearer <session-token>
    Content-Type: application/json
    
    {
      "include_threads": true,
      "include_files": true
    }
    {
      "ok": true,
      "channels": [
        {
          "id": "CH55Y7",
          "has_unreads": true,
          "mention_count": 2,
          "latest_ts": "1759000123.000200",
          "last_read_ts": "1758996400.000100",
          "history_stale": false
        }
      ],
      "group_dms": [],
      "direct_messages": [
        {
          "id": "DM91X2",
          "has_unreads": false,
          "mention_count": 0,
          "latest_ts": "1758980000.000050",
          "last_read_ts": "1758980000.000050",
          "history_stale": false
        }
      ],
      "threads": {
        "has_unreads": true,
        "mention_count": 1,
        "unread_count": 4
      },
      "saved": {
        "unread_count": 0
      },
      "app_badge": 3,
      "fetched_at": "1759000400.000000"
    }
  • Issue a live-message socket ticket

    POST /v1/realtime/socket-tickets opendata

    Mints a short-lived websocket URL (plus fallback and TTL) the Android client uses for the real-time message, typing and presence bus.

    Auth: Authorization: Bearer <workspace session token> issued by the workspace sign-in call

    • primary_url
    • fallback_url
    • ttl_seconds
    • region
    POST /v1/realtime/socket-tickets HTTP/1.1
    Authorization: Bearer <session-token>
    Content-Type: application/json
    
    {
      "workspace_id": "W7Q2K9D"
    }
    {
      "ok": true,
      "primary_url": "wss://rt.example.com/socket?ticket=<redacted>",
      "fallback_url": "wss://rt-backup.example.com/socket?ticket=<redacted>",
      "ttl_seconds": 3600,
      "region": "us-east"
    }
  • Page a channel or DM message timeline

    POST /v1/channels/{channelId}/timeline opendata

    Pages the message timeline for a channel, private group or DM (messages, has_more, pin_count, unread_count_display) that the conversation view renders.

    Auth: Authorization: Bearer <workspace session token> issued by the workspace sign-in call

    • messages
    • has_more
    • pin_count
    • oldest_ts
    • latest_ts
    • is_limited
    • unread_count_display
    • deleted_ts
    • next_cursor
    • author_id
    • text
    • ts
    • client_msg_id
    • thread_ts
    • reply_count
    POST /v1/channels/CH55Y7/timeline HTTP/1.1
    Authorization: Bearer <session-token>
    Content-Type: application/json
    
    {
      "limit": 50,
      "before_ts": null,
      "inclusive": true
    }
    {
      "ok": true,
      "messages": [
        {
          "type": "message",
          "author_id": "M4H8P2L",
          "text": "Ship the billing hotfix after standup",
          "ts": "1759000123.000200",
          "client_msg_id": "8c3e1a90-4b11-4d2e-a7c4-0f8e6b1d2a33",
          "thread_ts": null,
          "reply_count": 0
        }
      ],
      "has_more": true,
      "pin_count": 1,
      "oldest_ts": "1758800000.000001",
      "latest_ts": "1759000123.000200",
      "is_limited": false,
      "unread_count_display": 3,
      "deleted_ts": [],
      "next_cursor": "Y3Vyc29yOjE3NTg3OTk5MDA="
    }
  • Load channel metadata for the sidebar

    POST /v1/channels/{channelId}/details opendata

    Returns channel records (id, name, topic, description, membership flags, unread_count, member_count) used to paint channel headers and the sidebar roster.

    Auth: Authorization: Bearer <workspace session token> issued by the workspace sign-in call

    • channel
    • id
    • name
    • created
    • creator_id
    • is_private
    • is_archived
    • is_member
    • is_shared
    • is_external
    • topic
    • description
    • member_count
    • unread_count
    • last_read_ts
    • latest_ts
    • workspace_id
    POST /v1/channels/CH55Y7/details HTTP/1.1
    Authorization: Bearer <session-token>
    Content-Type: application/json
    
    {
      "include_counts": true
    }
    {
      "ok": true,
      "channel": {
        "id": "CH55Y7",
        "name": "platform",
        "created": 1609459200,
        "creator_id": "M4H8P2L",
        "is_private": false,
        "is_archived": false,
        "is_member": true,
        "is_shared": false,
        "is_external": false,
        "topic": {
          "value": "On-call + incidents",
          "set_by": "M4H8P2L",
          "set_at": 1758000000
        },
        "description": {
          "value": "Platform engineering",
          "set_by": "M4H8P2L",
          "set_at": 1609459300
        },
        "member_count": 42,
        "unread_count": 3,
        "last_read_ts": "1758996400.000100",
        "latest_ts": "1759000123.000200",
        "workspace_id": "W7Q2K9D"
      }
    }
  • Post a channel or thread message

    POST /v1/channels/{channelId}/messages opendata

    Sends a composed message (or thread reply) into a channel or DM and returns the canonical ts, channel id and message payload the composer then pins locally.

    Auth: Authorization: Bearer <workspace session token> issued by the workspace sign-in call

    • ts
    • channel_id
    • message
    • text
    • client_msg_id
    • thread_ts
    • also_send_to_channel
    • author_id
    POST /v1/channels/CH55Y7/messages HTTP/1.1
    Authorization: Bearer <session-token>
    Content-Type: application/json
    
    {
      "text": "Ship the billing hotfix after standup",
      "client_msg_id": "8c3e1a90-4b11-4d2e-a7c4-0f8e6b1d2a33",
      "thread_ts": null,
      "also_send_to_channel": false
    }
    {
      "ok": true,
      "ts": "1759000123.000200",
      "channel_id": "CH55Y7",
      "message": {
        "type": "message",
        "author_id": "M4H8P2L",
        "text": "Ship the billing hotfix after standup",
        "ts": "1759000123.000200",
        "client_msg_id": "8c3e1a90-4b11-4d2e-a7c4-0f8e6b1d2a33"
      }
    }
  • Read a member profile card

    POST /v1/members/{memberId}/card osint

    Returns the member record behind a profile card: id, workspace, full name, email, title, phone, pronouns, status, timezone, admin/guest flags and presence.

    Auth: Authorization: Bearer <workspace session token> issued by the workspace sign-in call

    • member
    • id
    • workspace_id
    • handle
    • deactivated
    • full_name
    • display_name
    • email
    • title
    • phone
    • pronouns
    • status
    • timezone
    • tz_offset
    • avatar
    • role
    • presence
    • has_2fa
    • locale
    POST /v1/members/M4H8P2L/card HTTP/1.1
    Authorization: Bearer <session-token>
    Content-Type: application/json
    
    {
      "include_locale": true
    }
    {
      "ok": true,
      "member": {
        "id": "M4H8P2L",
        "workspace_id": "W7Q2K9D",
        "handle": "alex.rivera",
        "deactivated": false,
        "full_name": "Alex Rivera",
        "display_name": "alex",
        "email": "[email protected]",
        "title": "Product Manager",
        "phone": "+14255550123",
        "pronouns": "they/them",
        "status": {
          "text": "In a huddle",
          "emoji": ":headphones:",
          "expires_at": 1759004000
        },
        "timezone": "America/Los_Angeles",
        "tz_offset": -25200,
        "avatar": {
          "small": "https://cdn.example.com/avatars/alex_72.png",
          "large": "https://cdn.example.com/avatars/alex_192.png"
        },
        "role": {
          "is_admin": false,
          "is_owner": false,
          "is_guest": false,
          "is_bot": false
        },
        "presence": "active",
        "has_2fa": true,
        "locale": "en-US"
      }
    }
  • List files shared in a channel

    POST /v1/channels/{channelId}/shared-files opendata

    Pages the Files tab for a channel or workspace (id, title, filetype, mimetype, owner, channels, paging.total) used to render shared documents, images and canvases.

    Auth: Authorization: Bearer <workspace session token> issued by the workspace sign-in call

    • files
    • paging
    • id
    • created
    • title
    • name
    • filetype
    • mimetype
    • owner_id
    • channel_ids
    • size
    • download_url
    • permalink
    • is_external
    • comments_count
    • total
    • pages
    POST /v1/channels/CH55Y7/shared-files HTTP/1.1
    Authorization: Bearer <session-token>
    Content-Type: application/json
    
    {
      "page": 1,
      "per_page": 20,
      "types": "all"
    }
    {
      "ok": true,
      "files": [
        {
          "id": "FL31Z8",
          "created": 1758900123,
          "title": "Q3 billing hotfix.pdf",
          "name": "q3-billing-hotfix.pdf",
          "filetype": "pdf",
          "mimetype": "application/pdf",
          "owner_id": "M4H8P2L",
          "channel_ids": [
            "CH55Y7"
          ],
          "size": 248832,
          "download_url": "https://files.example.com/FL31Z8/q3-billing-hotfix.pdf",
          "permalink": "https://example-corp.example.com/files/FL31Z8",
          "is_external": false,
          "comments_count": 1
        }
      ],
      "paging": {
        "per_page": 20,
        "total": 54,
        "page": 1,
        "pages": 3
      }
    }
  • Search messages, files and people

    POST /v1/workspace-search/{module} opendata

    Runs the in-app search pivots (messages, files, people, channels) and returns query, items, pagination and filter_suggestions for the Search tab.

    Auth: Authorization: Bearer <workspace session token> issued by the workspace sign-in call

    • query
    • module
    • filters
    • items
    • pagination
    • filter_suggestions
    POST /v1/workspace-search/messages HTTP/1.1
    Authorization: Bearer <session-token>
    Content-Type: application/json
    
    {
      "query": "billing hotfix",
      "per_page": 20,
      "page": 1
    }
    {
      "ok": true,
      "query": "billing hotfix",
      "module": "messages",
      "filters": "in:#platform",
      "items": [
        {
          "id": "1759000123.000200",
          "channel": {
            "id": "CH55Y7",
            "name": "platform"
          },
          "author": "alex.rivera",
          "text": "Ship the billing hotfix after standup",
          "ts": "1759000123.000200"
        }
      ],
      "pagination": {
        "total_count": 12,
        "page": 1,
        "per_page": 20,
        "page_count": 1
      },
      "filter_suggestions": {
        "from": [
          "M4H8P2L"
        ],
        "in": [
          "CH55Y7"
        ]
      }
    }
  • Set the member's manual presence

    POST /v1/me/presence opendata

    Writes the signed-in member's manual presence (away or auto) that colleagues see on the profile card and DM header.

    Auth: Authorization: Bearer <workspace session token> issued by the workspace sign-in call

    • ok
    • presence
    POST /v1/me/presence HTTP/1.1
    Authorization: Bearer <session-token>
    Content-Type: application/json
    
    {
      "presence": "away"
    }
    {
      "ok": true,
      "presence": "away"
    }
  • Pause notifications (Do Not Disturb)

    POST /v1/me/notification-pause opendata

    Turns on Do Not Disturb for a number of minutes and returns the paused flag, end time and remaining seconds for the pause-notifications control.

    Auth: Authorization: Bearer <workspace session token> issued by the workspace sign-in call

    • paused
    • ends_at
    • remaining_seconds
    • indefinite
    POST /v1/me/notification-pause HTTP/1.1
    Authorization: Bearer <session-token>
    Content-Type: application/json
    
    {
      "minutes": 60
    }
    {
      "ok": true,
      "paused": true,
      "ends_at": 1759004000,
      "remaining_seconds": 3600,
      "indefinite": false
    }
  • Read workspace member-count breakdown

    POST /v1/workspaces/{workspaceId}/member-census opendata

    Returns the workspace census (full members, multi- and single-channel guests, admins, owners, bots, invited, online, active) used by workspace-directory and admin surfaces.

    Auth: Authorization: Bearer <workspace session token> issued by the workspace sign-in call

    • members
    • full
    • guests_multi_channel
    • guests_single_channel
    • admins
    • owners
    • bots
    • deactivated
    • invited
    • online
    • active
    POST /v1/workspaces/W7Q2K9D/member-census HTTP/1.1
    Authorization: Bearer <session-token>
    Content-Type: application/json
    
    {}
    {
      "ok": true,
      "members": {
        "full": 412,
        "guests_multi_channel": 18,
        "guests_single_channel": 6,
        "admins": 9,
        "owners": 2,
        "bots": 27,
        "deactivated": 41,
        "invited": 5,
        "online": 86,
        "active": 390
      }
    }

Data categories

  • workspace identity
  • session bootstrap
  • unread counts
  • channel metadata
  • messages
  • member profiles
  • files
  • search
  • presence
  • do-not-disturb

Where teams use this data

  • Workspace directory overlay

    Pull /v1/members/{memberId}/card (full_name, email, title, phone, pronouns, timezone) plus /v1/workspaces/{workspaceId}/member-census (full, guests, admins, online, active) to keep an HR or IT directory in sync with the Slack workspace census without scraping the People tab.

  • Channel unread reconciliation

    Poll /v1/workspaces/{workspaceId}/badge-counts for per-channel has_unreads, mention_count, latest_ts and last_read_ts, then page /v1/channels/{channelId}/timeline when history_stale flips, so a secondary inbox or on-call bot surfaces only conversations that still have unreads.

  • Shared-file inventory

    Walk /v1/channels/{channelId}/shared-files (id, title, filetype, mimetype, owner_id, channel_ids, paging.total) per channel to build a retention or DLP inventory of documents and canvases sitting in Slack, keyed by the same file ids the Files tab shows.

  • Search-backed knowledge capture

    Replay /v1/workspace-search/messages against incident keywords and store query, items and pagination so a postmortem wiki can cite the same hits the in-app Search tab returned.

Frequently asked questions

How does the Slack Android app authenticate data calls?

A public lookup at /v1/workspaces/lookup resolves the workspace and its SSO options, then /v1/workspaces/{workspaceId}/sessions returns a session token, member_id and member_email. Every later call — boot, timeline, profile card, files, posting — sends that token as a Bearer credential.

Which data powers unread badges and the Home tab?

/v1/workspaces/{workspaceId}/boot hydrates me, workspace, channels, direct_messages, prefs and dnd after sign-in. /v1/workspaces/{workspaceId}/badge-counts then returns per-channel has_unreads, mention_count, latest_ts and last_read_ts plus thread and saved-item badges; live updates arrive over the socket from /v1/realtime/socket-tickets.

Can I read channel messages, files and member profiles?

Yes. /v1/channels/{channelId}/timeline pages messages with ts, text, author_id and has_more; /v1/channels/{channelId}/shared-files returns file id, title, filetype, mimetype and paging; /v1/members/{memberId}/card returns full_name, email, title, phone, pronouns and presence. All require the signed-in workspace token.

Is this Slack's public Web API?

No. The paths on this page are an illustrative model of the data behind the app's screens — sign-in, Home, channels, profiles, files and search — rather than a copy of any production interface or Slack's documented developer platform.

Apps similar to Slack

  • Microsoft Teams — Microsoft Teams is a team chat app with nested teams and channels plus meetings of up to 300 participants, and Zapier ranks it with Slack as a frontrunner in workplace chat.
  • Google Chat — Google Chat is Google's workplace messenger with direct messages, group messages and spaces, and Zapier compares it directly with Slack for remote teams.
  • Zoom Workplace — Zoom Workplace includes Zoom Chat for messages to contacts, groups and channels, and can start a video meeting from a thread or create a chat channel for each meeting.
  • Discord — Discord is an instant-messaging and VoIP platform with text and always-on voice channels; Zapier notes people compare it with Slack because the layouts and channel-and-call options overlap.
  • Mattermost — Mattermost is a self-hostable team messaging platform for internal company discussion, file sharing and integrations, and is widely described as an alternative to Slack.
  • Cisco Webex — Cisco Webex is a collaboration suite whose products include Webex Messaging alongside meetings and calling, aimed at organizations on Cisco's conferencing stack.

Topics

  • slack data api
  • slack android data model
  • slack channel timeline
  • slack unread badge counts
  • slack member profile card
  • slack shared files inventory
  • slack workspace search
  • slack workspace session token
  • slack do not disturb
  • slack workspace member census

Need this app's data API integrated?

We deliver scoped integrations for any named app — from USD 500 with source-code handoff, or hosted access billed per call. Tell us the data you need.

  • NDA + SOW on every engagement
  • Delivery in 3–7 days
  • Payment only after acceptance
  • Work scoped to authorized use

Get a quote