{"id":13907051,"url":"https://github.com/slackapi/java-slack-sdk","last_synced_at":"2026-01-11T17:01:46.446Z","repository":{"id":37089483,"uuid":"62449869","full_name":"slackapi/java-slack-sdk","owner":"slackapi","description":"Slack Developer Kit (including Bolt for Java) for any JVM language","archived":false,"fork":false,"pushed_at":"2025-12-18T21:27:00.000Z","size":18210,"stargazers_count":596,"open_issues_count":36,"forks_count":227,"subscribers_count":28,"default_branch":"main","last_synced_at":"2025-12-21T21:12:38.295Z","etag":null,"topics":["bolt","chatbot","java","jvm-languages","kotlin","slack","slack-api","slack-app","slack-bot","socket-mode","websocket","websocket-client","websockets"],"latest_commit_sha":null,"homepage":"https://docs.slack.dev/tools/java-slack-sdk/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/slackapi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/contributing.md","funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2016-07-02T12:29:59.000Z","updated_at":"2025-12-18T21:27:02.000Z","dependencies_parsed_at":"2022-07-08T07:39:57.811Z","dependency_job_id":"e0778a0e-8785-4e2a-9782-43278f843c1b","html_url":"https://github.com/slackapi/java-slack-sdk","commit_stats":null,"previous_names":["seratch/jslack"],"tags_count":238,"template":false,"template_full_name":null,"purl":"pkg:github/slackapi/java-slack-sdk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slackapi%2Fjava-slack-sdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slackapi%2Fjava-slack-sdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slackapi%2Fjava-slack-sdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slackapi%2Fjava-slack-sdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/slackapi","download_url":"https://codeload.github.com/slackapi/java-slack-sdk/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slackapi%2Fjava-slack-sdk/sbom","scorecard":{"id":811925,"data":{"date":"2025-08-11","repo":{"name":"github.com/slackapi/java-slack-sdk","commit":"238d8155c3eb4157e430b66980b8fb4e6164daeb"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.6,"checks":[{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Maintained","score":10,"reason":"15 commit(s) and 5 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":10,"reason":"all changesets reviewed","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":8,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Info: jobLevel 'contents' permission set to 'read': .github/workflows/unit-tests-jdk-14.yml:17","Info: jobLevel 'contents' permission set to 'read': .github/workflows/unit-tests-jdk-17.yml:17","Info: jobLevel 'contents' permission set to 'read': .github/workflows/unit-tests-jdk-8.yml:17","Warn: no topLevel permission defined: .github/workflows/triage-issues.yml:1","Warn: no topLevel permission defined: .github/workflows/unit-tests-jdk-14.yml:1","Warn: no topLevel permission defined: .github/workflows/unit-tests-jdk-17.yml:1","Warn: no topLevel permission defined: .github/workflows/unit-tests-jdk-8.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Binary-Artifacts","score":6,"reason":"binaries present in source code","details":["Warn: binary detected: .mvn/wrapper/maven-wrapper.jar:1","Warn: binary detected: bolt-docker-examples/echo-command-app/gradle/wrapper/gradle-wrapper.jar:1","Warn: binary detected: bolt-spring-boot-examples/spring-boot-2/gradle/wrapper/gradle-wrapper.jar:1","Warn: binary detected: bolt-spring-boot-examples/spring-boot-3/gradle/wrapper/gradle-wrapper.jar:1"],"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Pinned-Dependencies","score":5,"reason":"dependency not pinned by hash detected -- score normalized to 5","details":["Warn: containerImage not pinned by hash: bolt-docker-examples/echo-command-app/Dockerfile:1","Warn: containerImage not pinned by hash: bolt-docker-examples/echo-command-app/Dockerfile:6: pin your Docker image by updating gcr.io/distroless/java:11 to gcr.io/distroless/java:11@sha256:629d4fdc17eec821242d45497abcb88cc0442c47fd5748baa79d88dde7da3e2d","Info:   7 out of   7 GitHub-owned GitHubAction dependencies pinned","Info:   1 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   2 containerImage dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Vulnerabilities","score":0,"reason":"11 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-h46c-h94j-95f3","Warn: Project is vulnerable to: GHSA-wf8f-6423-gfxg","Warn: Project is vulnerable to: GHSA-4jrv-ppp4-jm57","Warn: Project is vulnerable to: GHSA-5mg8-w23w-74h3","Warn: Project is vulnerable to: GHSA-7g45-4rm6-3mm3","Warn: Project is vulnerable to: GHSA-hw42-3568-wj87","Warn: Project is vulnerable to: GHSA-4gg5-vx3j-xwc7","Warn: Project is vulnerable to: GHSA-735f-pc8j-v9w8","Warn: Project is vulnerable to: GHSA-g5ww-5jh7-63cx","Warn: Project is vulnerable to: GHSA-h4h5-3hr4-j3g2","Warn: Project is vulnerable to: GHSA-j288-q9x7-2f5v"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-23T13:23:44.634Z","repository_id":37089483,"created_at":"2025-08-23T13:23:44.634Z","updated_at":"2025-08-23T13:23:44.634Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28314260,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-11T14:58:17.114Z","status":"ssl_error","status_checked_at":"2026-01-11T14:55:53.580Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bolt","chatbot","java","jvm-languages","kotlin","slack","slack-api","slack-app","slack-bot","socket-mode","websocket","websocket-client","websockets"],"created_at":"2024-08-06T23:01:46.888Z","updated_at":"2026-01-11T17:01:46.438Z","avatar_url":"https://github.com/slackapi.png","language":"Java","readme":"## Slack SDK for Java\n\n[![Maven Central](https://img.shields.io/maven-central/v/com.slack.api/slack-api-client.svg?label=Maven%20Central)](http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22com.slack.api%22%20a%3A%22slack-api-client%22) [![codecov](https://codecov.io/gh/slackapi/java-slack-sdk/branch/main/graph/badge.svg)](https://codecov.io/gh/slackapi/java-slack-sdk)\n\n**Slack SDK for Java** supports the Slack platform in a Java idiomatic way. The SDK written in Java so developers can use it in any JVM language including Kotlin, Groovy, and Scala.\n\nWithin the SDK, there are two different modules:\n\n* [**Bolt for Java**](https://docs.slack.dev/tools/java-slack-sdk/guides/getting-started-with-bolt), which is a framework with a simple API that makes it easy to write modern Slack apps in Java.\n* [**Slack API Client**](https://docs.slack.dev/tools/java-slack-sdk/guides/web-api-basics), for when you need a more customized approach to building a Slack app in Java.\n\nIf what you want to do is call Slack APIs in your existing services, we recommend using only the **Slack API Client**. If instead, you’re developing a new modern and interactive Slack app, we recommend **Bolt** for it. The framework enables developers to focus on the essential parts of their apps without being bothered by trifles.\n\n## Bolt for Java\n\n**Bolt for Java** is a framework on the JVM that offers an abstraction layer to build Slack apps quickly using modern platform features. Refer to [Getting Started with Bolt](https://docs.slack.dev/tools/java-slack-sdk/guides/getting-started-with-bolt) for detailed instructions.\n\n```java\npackage hello;\n\nimport com.slack.api.bolt.App;\nimport com.slack.api.bolt.jetty.SlackAppServer;\n\npublic class MyApp {\n  public static void main(String[] args) throws Exception {\n    // App expects env variables (SLACK_BOT_TOKEN, SLACK_SIGNING_SECRET)\n    App app = new App();\n\n    app.command(\"/hello\", (req, ctx) -\u003e {\n      return ctx.ack(\":wave: Hello!\");\n    });\n\n    SlackAppServer server = new SlackAppServer(app);\n    server.start(); // http://localhost:3000/slack/events\n  }\n}\n```\n\nFor Socket Mode enabled apps, [Getting Started with Bolt (Socket Mode)](https://docs.slack.dev/tools/java-slack-sdk/guides/getting-started-with-bolt-socket-mode) is available.\n\n```java\npackage hello;\n\nimport com.slack.api.bolt.App;\nimport com.slack.api.bolt.socket_mode.SocketModeApp;\n\npublic class MyApp {\n  public static void main(String[] args) throws Exception {\n    // App expects an env variable: SLACK_BOT_TOKEN\n    App app = new App();\n\n    app.command(\"/hello\", (req, ctx) -\u003e {\n      return ctx.ack(\":wave: Hello!\");\n    });\n\n    // SocketModeApp expects an env variable: SLACK_APP_TOKEN\n    new SocketModeApp(app).start();\n  }\n}\n```\n\n## Slack API Client\n\n**slack-api-client** contains simple, easy-to-use, and flexibly configurable HTTP clients for making requests to Slack APIs. Refer to [API Client Basics](https://docs.slack.dev/tools/java-slack-sdk/guides/web-api-basics) for details.\n\n```java\nimport com.slack.api.Slack;\nimport com.slack.api.methods.response.chat.ChatPostMessageResponse;\n\nSlack slack = Slack.getInstance();\nString token = System.getenv(\"SLACK_TOKEN\");\n\nChatPostMessageResponse response = slack.methods(token).chatPostMessage(req -\u003e req\n  .channel(\"C1234567\") // Channel ID\n  .text(\":wave: Hi from a bot written in Java!\"));\n```\n\n## Modules\n\nThe table below shows all the available modules in the Slack Java SDK. All of them have the same latest version as we release all at the same time, even in the case that some don't have any changes apart from updates on their dependency side.\n\nAll released versions are available on the Maven Central repositories. The latest version is: [![Maven Central](https://img.shields.io/maven-central/v/com.slack.api/slack-api-client.svg?label=Maven%20Central)](http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22com.slack.api%22%20a%3A%22slack-api-client%22)\n\n#### Bolt \u0026 Built-in Extensions\n\n| groupId:artifactId                                                                                                                       | Description                                                                                                                                                          |\n|------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| [**com.slack.api:bolt**](https://search.maven.org/search?q=g:com.slack.api%20AND%20a:bolt)                                               | Bolt is a framework that offers an abstraction layer to build Slack apps safely and quickly. The most commonly used Servlet environment is supported out-of-the-box. |\n| [**com.slack.api:bolt-socket-mode**](https://search.maven.org/search?q=g:com.slack.api%20AND%20a:bolt-socket-mode)                       | This module offers a handy way to run Bolt apps through [Socket Mode](/apis/events-api/using-socket-mode) connections.                                                           |\n| [**com.slack.api:bolt-jetty**](https://search.maven.org/search?q=g:com.slack.api%20AND%20a:bolt-jetty)                                   | This module offers a handy way to run Bolt apps on the [Java EE compatible Jetty HTTP server (9.x)](https://www.eclipse.org/jetty/).                                 |\n| [**com.slack.api:bolt-jakarta-jetty**](https://search.maven.org/search?q=g:com.slack.api%20AND%20a:bolt-jakarta-jetty)                   | This module offers a handy way to run Bolt apps on the [Jakarta EE compatible Jetty HTTP server](https://www.eclipse.org/jetty/).                                    |\n| [**com.slack.api:bolt-aws-lambda**](https://search.maven.org/search?q=g:com.slack.api%20AND%20a:bolt-aws-lambda)                         | This module offers a handy way to run Bolt apps on AWS [API Gateway](https://aws.amazon.com/api-gateway/) + [Lambda](https://aws.amazon.com/lambda/).                |\n| [**com.slack.api:bolt-google-cloud-functions**](https://search.maven.org/search?q=g:com.slack.api%20AND%20a:bolt-google-cloud-functions) | This module offers a handy way to run Bolt apps on [Google Cloud Functions](https://cloud.google.com/functions).                                                     |\n| [**com.slack.api:bolt-micronaut**](https://search.maven.org/search?q=g:com.slack.api%20AND%20a:bolt-micronaut)                           | This is an adapter for [Micronaut](https://micronaut.io/) to run Bolt apps on top of it.                                                                             |\n| [**com.slack.api:bolt-helidon**](https://search.maven.org/search?q=g:com.slack.api%20AND%20a:bolt-helidon)                               | This is an adapter for [Helidon SE](https://helidon.io/docs/latest/) to run Bolt apps on top of it.                                                                  |\n| [**com.slack.api:bolt-http4k**](https://search.maven.org/search?q=g:com.slack.api%20AND%20a:bolt-http4k)                                 | This is an adapter for [http4k](https://http4k.org/) to run Bolt apps on top of any of the multiple server backends that the library supports.                       |\n| [**com.slack.api:bolt-ktor**](https://search.maven.org/search?q=g:com.slack.api%20AND%20a:bolt-ktor)                                     | This is an adapter for [Ktor](https://ktor.io/) to run Bolt apps on top of it.                                                                                       |\n\n#### Foundation Modules\n\n|groupId:artifactId|Description|\n|---|---|\n|[**com.slack.api:slack-api-model**](https://search.maven.org/search?q=g:com.slack.api%20AND%20a:slack-api-model)|This is a collection of the classes representing the [Slack core objects](/reference/objects) such as conversations, messages, users, blocks, and surfaces. As this is an essential part of the SDK, all other modules depend on this.|\n|[**com.slack.api:slack-api-model-kotlin-extension**](https://search.maven.org/search?q=g:com.slack.api%20AND%20a:slack-api-model-kotlin-extension)|This contains the Block Kit Kotlin DSL builder, which allows you to define block kit structures via a Kotlin-native DSL.|\n|[**com.slack.api:slack-api-client**](https://search.maven.org/search?q=g:com.slack.api%20AND%20a:slack-api-client)|This is a collection of the Slack API clients. The supported are Basic API Methods, Socket Mode, RTM (Real Time Messaging) API, SCIM API, Audit Logs API, and Status API.|\n|[**com.slack.api:slack-api-client-kotlin-extension**](https://search.maven.org/search?q=g:com.slack.api%20AND%20a:slack-api-client-kotlin-extension)|This contains extension methods for various slack client message builders so you can seamlessly use the Block Kit Kotlin DSL directly on the Java message builders.|\n|[**com.slack.api:slack-app-backend**](https://search.maven.org/search?q=g:com.slack.api%20AND%20a:slack-app-backend)|This module is a set of Slack app server-side handlers and data classes for Events API, Interactive Components, Slash Commands, Actions, and OAuth flow. These are used by Bolt framework as the foundation of it in primitive layers.|\n\n## Requirements\n\nThe SDK supports **OpenJDK 8 and higher LTS versions**.\n\nUsers can expect every single patch release has been done after verifying functionality by running [the basic CI builds with all LTS versions](https://github.com/slackapi/java-slack-sdk/tree/main/.github/workflows) and all the unit tests have passed at least on the latest LTS version. We don't run comprehensive verifications with all OpenJDK distributions but it should be working with all of them.\n\n## Getting Help\n\nIf you get stuck, we’re here to help. The following are the best ways to get assistance working through your issue:\n\n* Use our [GitHub Issue Tracker](https://github.com/slackapi/java-slack-sdk/issues) for reporting bugs or requesting features\n* Visit the [Slack Developer Community](https://slackcommunity.com/) for getting help using **Slack SDK for Java** or just generally bond with your fellow Slack developers.\n\n## Important Notice for jSlack users\n\nThe [jSlack](https://search.maven.org/artifact/com.github.seratch/jslack) project has been transferred to [@slackapi](http://github.com/slackapi). The jSlack maintenance releases for security issues or major bugfixes will be continued at https://github.com/seratch/jslack-maintenance-releases .\n\n### Contributing\n\nWe welcome contributions from everyone! Please check out our [Contributor's Guide](.github/contributing.md) for how to contribute in a helpful and collaborative way.\n","funding_links":[],"categories":["HarmonyOS",":hammer_and_wrench: \u0026nbsp; Libraries and SDKs"],"sub_categories":["Windows Manager","Java"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fslackapi%2Fjava-slack-sdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fslackapi%2Fjava-slack-sdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fslackapi%2Fjava-slack-sdk/lists"}