Sapling Logo
AI detector quickstart

Haskell AI Detector

Analyze text from a Haskell application and receive document- and sentence-level AI detection scores.

  • HTTPS POST
  • HTTP API
  • API key required
POST Haskell logo Haskell /api/v1/aidetect

Haskell AI detector quickstart

Send at least 150 characters for a more reliable signal. The response score ranges from 0 (more likely human-written) to 1 (more likely AI-generated); use it as evidence, not proof.

No language-specific SDK is required. The example uses a standard or commonly used HTTP client to call Sapling's JSON API.
Haskell /api/v1/aidetect

This example uses http-conduit and aeson.

{-# LANGUAGE OverloadedStrings #-}

import Data.Aeson (Value, object, (.=))
import qualified Data.ByteString.Char8 as B8
import Network.HTTP.Simple
import System.Environment (getEnv)

main :: IO ()
main = do
  apiKey <- getEnv "SAPLING_API_KEY"
  initialRequest <- parseRequest "https://api.sapling.ai/api/v1/aidetect"

  let payload = object
        [ "text" .= (
            "I am an artificial intelligence system designed to help people solve complex problems. " ++
            "My capabilities include natural language processing, machine learning, and predictive analytics."
          )
        , "sent_scores" .= True
        ]
      request =
        setRequestMethod "POST" $
        setRequestHeader "Authorization" [B8.pack ("Bearer " ++ apiKey)] $
        setRequestBodyJSON payload initialRequest

  response <- httpJSON request :: IO (Response Value)
  print (getResponseBody response)
Example response application/json
{
  "score": 0.9989,
  "sentence_scores": [
    {
      "score": 0.9764,
      "sentence": "I am an artificial intelligence system designed to help people solve complex problems."
    },
    {
      "score": 0.9812,
      "sentence": "My capabilities include natural language processing, machine learning, and predictive analytics."
    }
  ],
  "text": "I am an artificial intelligence system designed to help people solve complex problems. My capabilities include natural language processing, machine learning, and predictive analytics."
}

The overall score and sentence scores use different methods and may not match exactly. Choose thresholds based on the false-positive and false-negative costs of your use case.

About Haskell

Haskell is a popular programming language in industry and academia. It is purely functional, declarative, and statically typed.