Sapling Logo
Tone API quickstart

Scala Tone Checker

Analyze overall and sentence-level tone from a Scala application across 28 fine-grained categories.

  • HTTPS POST
  • JSON HTTP API
  • Bearer API key
POST Scala logo Scala /api/v1/tone

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.