Scala tone checker quickstart
Send text to the tone endpoint. The response ranks overall tones and returns a separate probability breakdown for every sentence.
No language-specific SDK is required. The example uses a standard or commonly used HTTP client to call Sapling's JSON API.
Scala
/api/v1/tone
This example uses the HTTP client included with Java 11 and newer.
import java.net.URI
import java.net.http.{HttpClient, HttpRequest, HttpResponse}
object Main {
def main(args: Array[String]): Unit = {
val apiKey = Option(System.getenv("SAPLING_API_KEY"))
.filter(_.nonEmpty)
.getOrElse(throw new IllegalStateException("Set SAPLING_API_KEY first."))
val payload =
"""{
| "text": "Really stoked about this! Will it be ready by next week?"
|}""".stripMargin
val request = HttpRequest.newBuilder()
.uri(URI.create("https://api.sapling.ai/api/v1/tone"))
.header("Authorization", s"Bearer $apiKey")
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(payload))
.build()
val response = HttpClient.newHttpClient().send(
request,
HttpResponse.BodyHandlers.ofString()
)
if (response.statusCode() < 200 || response.statusCode() >= 300) {
throw new IllegalStateException(
s"Sapling API error ${response.statusCode()}: ${response.body()}"
)
}
println(response.body())
}
}
Example response
application/json
{
"overall": [
[0.9247, "curious", "🤓"],
[0.0455, "excited", "😀"],
[0.0057, "confused", "😕"]
],
"results": [
[[0.9937, "excited", "😀"]],
[[0.5469, "confused", "😕"], [0.3993, "curious", "🤓"]]
],
"sents": [
"Really stoked about this!",
"Will it be ready by next week?"
]
}
Probabilities are returned in descending order as probability, tone, and emoji tuples. Use sentence results when a message contains mixed tones.
About Scala
Scala is a programming language designed to run on the JVM, supporting both functional and object-oriented programming patterns. It is designed to be more concise than Java.