Classification
Sentiment
Perform line by line sentiment analysis on any text with detailed emotion detection.
POST
/
v1
/
ai
/
sentiment
import { JigsawStack } from "jigsawstack";
const jigsaw = JigsawStack({ apiKey: "your-api-key" });
const response = await jigsaw.sentiment({
"text": "I love this product! It's amazing but the delivery was a bit late."
})
from jigsawstack import JigsawStack
jigsaw = JigsawStack(api_key="your-api-key")
response = jigsaw.sentiment({
"text": "I love this product! It's amazing but the delivery was a bit late."
})
curl https://api.jigsawstack.com/v1/ai/sentiment \
-X POST \
-H 'Content-Type: application/json' \
-H 'x-api-key: your-api-key' \
-d '{"text":"I love this product! It\'s amazing but the delivery was a bit late."}'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.jigsawstack.com/v1/ai/sentiment');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
'x-api-key: your-api-key',
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"text":"I love this product! It\\s');
$response = curl_exec($ch);
curl_close($ch);
require 'net/http'
uri = URI('https://api.jigsawstack.com/v1/ai/sentiment')
req = Net::HTTP::Post.new(uri)
req.content_type = 'application/json'
req['x-api-key'] = 'your-api-key'
req.body = '{"text":"I love this product! It\\s'
req_options = {
use_ssl: uri.scheme == 'https'
}
res = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
http.request(req)
end
package main
import (
"fmt"
"io"
"log"
"net/http"
"strings"
)
func main() {
client := &http.Client{}
var data = strings.NewReader(`{"text":"I love this product! It\s`)
req, err := http.NewRequest("POST", "https://api.jigsawstack.com/v1/ai/sentiment", data)
if err != nil {
log.Fatal(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("x-api-key", "your-api-key")
resp, err := client.Do(req)
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
bodyText, err := io.ReadAll(resp.Body)
if err != nil {
log.Fatal(err)
}
fmt.Printf("%s\n", bodyText)
}
import java.io.IOException;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpRequest.BodyPublishers;
import java.net.http.HttpResponse;
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.jigsawstack.com/v1/ai/sentiment"))
.POST(BodyPublishers.ofString("{\"text\":\"I love this product! It\\s"))
.setHeader("Content-Type", "application/json")
.setHeader("x-api-key", "your-api-key")
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
import Foundation
let url = URL(string: "https://api.jigsawstack.com/v1/ai/sentiment")!
let headers = [
"Content-Type": "application/json",
"x-api-key": "your-api-key"
]
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = "{\"text\":\"I love this product! It\\s".data(using: .utf8)
let task = URLSession.shared.dataTask(with: request) { (data, response, error) in
if let error = error {
print(error)
} else if let data = data {
let str = String(data: data, encoding: .utf8)
print(str ?? "")
}
}
task.resume()
import 'package:http/http.dart' as http;
void main() async {
final headers = {
'Content-Type': 'application/json',
'x-api-key': 'your-api-key',
};
final data = '{"text":"I love this product! It\\s';
final url = Uri.parse('https://api.jigsawstack.com/v1/ai/sentiment');
final res = await http.post(url, headers: headers, body: data);
final status = res.statusCode;
if (status != 200) throw Exception('http.post error: statusCode= $status');
print(res.body);
}
import java.io.IOException
import okhttp3.MediaType.Companion.toMediaType
import okhttp3.OkHttpClient
import okhttp3.Request
import okhttp3.RequestBody.Companion.toRequestBody
val client = OkHttpClient()
val MEDIA_TYPE = "application/json".toMediaType()
val requestBody = "{\"text\":\"I love this product! It\\s"
val request = Request.Builder()
.url("https://api.jigsawstack.com/v1/ai/sentiment")
.post(requestBody.toRequestBody(MEDIA_TYPE))
.header("Content-Type", "application/json")
.header("x-api-key", "your-api-key")
.build()
client.newCall(request).execute().use { response ->
if (!response.isSuccessful) throw IOException("Unexpected code $response")
response.body!!.string()
}
using System.Net.Http.Headers;
using System.Net.Http.Json;
HttpClient client = new HttpClient();
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "https://api.jigsawstack.com/v1/ai/sentiment");
request.Headers.Add("x-api-key", "your-api-key");
request.Content = JsonContent.Create(new
{
text = "I love this product! It's amazing but the delivery was a bit late."
});
request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
HttpResponseMessage response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
{
"success": true,
"sentiment": {
"emotion": "love",
"sentiment": "positive",
"score": 0.85,
"sentences": [
{
"text": "I love this product!",
"emotion": "love",
"sentiment": "positive",
"score": 0.9
},
{
"text": "It's amazing but the delivery was a bit late.",
"emotion": "satisfaction",
"sentiment": "positive",
"score": 0.8
}
]
},
"_usage": {
"input_tokens": 20,
"output_tokens": 75,
"inference_time_tokens": 2594,
"total_tokens": 2689
}
}
Request Parameters
Body
string
required
The text content to analyze for sentiment and emotion.
Header
string
required
Your JigsawStack API key
Response Structure
boolean
Indicates whether the call was successful.
object
string
A unique identifier for the request
object
Contains the sentiment analysis results.
Hide Sentiment Object Structure
Hide Sentiment Object Structure
string
The overall emotional tone of the text.
string
The overall sentiment classification, typically “positive”, “negative”, or
“neutral”.
number
Numerical score representing the sentiment intensity, typically on a scale
from 0 to 1, where higher values indicate more positive sentiment.
import { JigsawStack } from "jigsawstack";
const jigsaw = JigsawStack({ apiKey: "your-api-key" });
const response = await jigsaw.sentiment({
"text": "I love this product! It's amazing but the delivery was a bit late."
})
from jigsawstack import JigsawStack
jigsaw = JigsawStack(api_key="your-api-key")
response = jigsaw.sentiment({
"text": "I love this product! It's amazing but the delivery was a bit late."
})
curl https://api.jigsawstack.com/v1/ai/sentiment \
-X POST \
-H 'Content-Type: application/json' \
-H 'x-api-key: your-api-key' \
-d '{"text":"I love this product! It\'s amazing but the delivery was a bit late."}'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.jigsawstack.com/v1/ai/sentiment');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
'x-api-key: your-api-key',
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"text":"I love this product! It\\s');
$response = curl_exec($ch);
curl_close($ch);
require 'net/http'
uri = URI('https://api.jigsawstack.com/v1/ai/sentiment')
req = Net::HTTP::Post.new(uri)
req.content_type = 'application/json'
req['x-api-key'] = 'your-api-key'
req.body = '{"text":"I love this product! It\\s'
req_options = {
use_ssl: uri.scheme == 'https'
}
res = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
http.request(req)
end
package main
import (
"fmt"
"io"
"log"
"net/http"
"strings"
)
func main() {
client := &http.Client{}
var data = strings.NewReader(`{"text":"I love this product! It\s`)
req, err := http.NewRequest("POST", "https://api.jigsawstack.com/v1/ai/sentiment", data)
if err != nil {
log.Fatal(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("x-api-key", "your-api-key")
resp, err := client.Do(req)
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
bodyText, err := io.ReadAll(resp.Body)
if err != nil {
log.Fatal(err)
}
fmt.Printf("%s\n", bodyText)
}
import java.io.IOException;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpRequest.BodyPublishers;
import java.net.http.HttpResponse;
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.jigsawstack.com/v1/ai/sentiment"))
.POST(BodyPublishers.ofString("{\"text\":\"I love this product! It\\s"))
.setHeader("Content-Type", "application/json")
.setHeader("x-api-key", "your-api-key")
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
import Foundation
let url = URL(string: "https://api.jigsawstack.com/v1/ai/sentiment")!
let headers = [
"Content-Type": "application/json",
"x-api-key": "your-api-key"
]
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = "{\"text\":\"I love this product! It\\s".data(using: .utf8)
let task = URLSession.shared.dataTask(with: request) { (data, response, error) in
if let error = error {
print(error)
} else if let data = data {
let str = String(data: data, encoding: .utf8)
print(str ?? "")
}
}
task.resume()
import 'package:http/http.dart' as http;
void main() async {
final headers = {
'Content-Type': 'application/json',
'x-api-key': 'your-api-key',
};
final data = '{"text":"I love this product! It\\s';
final url = Uri.parse('https://api.jigsawstack.com/v1/ai/sentiment');
final res = await http.post(url, headers: headers, body: data);
final status = res.statusCode;
if (status != 200) throw Exception('http.post error: statusCode= $status');
print(res.body);
}
import java.io.IOException
import okhttp3.MediaType.Companion.toMediaType
import okhttp3.OkHttpClient
import okhttp3.Request
import okhttp3.RequestBody.Companion.toRequestBody
val client = OkHttpClient()
val MEDIA_TYPE = "application/json".toMediaType()
val requestBody = "{\"text\":\"I love this product! It\\s"
val request = Request.Builder()
.url("https://api.jigsawstack.com/v1/ai/sentiment")
.post(requestBody.toRequestBody(MEDIA_TYPE))
.header("Content-Type", "application/json")
.header("x-api-key", "your-api-key")
.build()
client.newCall(request).execute().use { response ->
if (!response.isSuccessful) throw IOException("Unexpected code $response")
response.body!!.string()
}
using System.Net.Http.Headers;
using System.Net.Http.Json;
HttpClient client = new HttpClient();
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "https://api.jigsawstack.com/v1/ai/sentiment");
request.Headers.Add("x-api-key", "your-api-key");
request.Content = JsonContent.Create(new
{
text = "I love this product! It's amazing but the delivery was a bit late."
});
request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
HttpResponseMessage response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
{
"success": true,
"sentiment": {
"emotion": "love",
"sentiment": "positive",
"score": 0.85,
"sentences": [
{
"text": "I love this product!",
"emotion": "love",
"sentiment": "positive",
"score": 0.9
},
{
"text": "It's amazing but the delivery was a bit late.",
"emotion": "satisfaction",
"sentiment": "positive",
"score": 0.8
}
]
},
"_usage": {
"input_tokens": 20,
"output_tokens": 75,
"inference_time_tokens": 2594,
"total_tokens": 2689
}
}
Was this page helpful?
⌘I
import { JigsawStack } from "jigsawstack";
const jigsaw = JigsawStack({ apiKey: "your-api-key" });
const response = await jigsaw.sentiment({
"text": "I love this product! It's amazing but the delivery was a bit late."
})
from jigsawstack import JigsawStack
jigsaw = JigsawStack(api_key="your-api-key")
response = jigsaw.sentiment({
"text": "I love this product! It's amazing but the delivery was a bit late."
})
curl https://api.jigsawstack.com/v1/ai/sentiment \
-X POST \
-H 'Content-Type: application/json' \
-H 'x-api-key: your-api-key' \
-d '{"text":"I love this product! It\'s amazing but the delivery was a bit late."}'
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.jigsawstack.com/v1/ai/sentiment');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
'x-api-key: your-api-key',
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"text":"I love this product! It\\s');
$response = curl_exec($ch);
curl_close($ch);
require 'net/http'
uri = URI('https://api.jigsawstack.com/v1/ai/sentiment')
req = Net::HTTP::Post.new(uri)
req.content_type = 'application/json'
req['x-api-key'] = 'your-api-key'
req.body = '{"text":"I love this product! It\\s'
req_options = {
use_ssl: uri.scheme == 'https'
}
res = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
http.request(req)
end
package main
import (
"fmt"
"io"
"log"
"net/http"
"strings"
)
func main() {
client := &http.Client{}
var data = strings.NewReader(`{"text":"I love this product! It\s`)
req, err := http.NewRequest("POST", "https://api.jigsawstack.com/v1/ai/sentiment", data)
if err != nil {
log.Fatal(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("x-api-key", "your-api-key")
resp, err := client.Do(req)
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
bodyText, err := io.ReadAll(resp.Body)
if err != nil {
log.Fatal(err)
}
fmt.Printf("%s\n", bodyText)
}
import java.io.IOException;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpRequest.BodyPublishers;
import java.net.http.HttpResponse;
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.jigsawstack.com/v1/ai/sentiment"))
.POST(BodyPublishers.ofString("{\"text\":\"I love this product! It\\s"))
.setHeader("Content-Type", "application/json")
.setHeader("x-api-key", "your-api-key")
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
import Foundation
let url = URL(string: "https://api.jigsawstack.com/v1/ai/sentiment")!
let headers = [
"Content-Type": "application/json",
"x-api-key": "your-api-key"
]
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = "{\"text\":\"I love this product! It\\s".data(using: .utf8)
let task = URLSession.shared.dataTask(with: request) { (data, response, error) in
if let error = error {
print(error)
} else if let data = data {
let str = String(data: data, encoding: .utf8)
print(str ?? "")
}
}
task.resume()
import 'package:http/http.dart' as http;
void main() async {
final headers = {
'Content-Type': 'application/json',
'x-api-key': 'your-api-key',
};
final data = '{"text":"I love this product! It\\s';
final url = Uri.parse('https://api.jigsawstack.com/v1/ai/sentiment');
final res = await http.post(url, headers: headers, body: data);
final status = res.statusCode;
if (status != 200) throw Exception('http.post error: statusCode= $status');
print(res.body);
}
import java.io.IOException
import okhttp3.MediaType.Companion.toMediaType
import okhttp3.OkHttpClient
import okhttp3.Request
import okhttp3.RequestBody.Companion.toRequestBody
val client = OkHttpClient()
val MEDIA_TYPE = "application/json".toMediaType()
val requestBody = "{\"text\":\"I love this product! It\\s"
val request = Request.Builder()
.url("https://api.jigsawstack.com/v1/ai/sentiment")
.post(requestBody.toRequestBody(MEDIA_TYPE))
.header("Content-Type", "application/json")
.header("x-api-key", "your-api-key")
.build()
client.newCall(request).execute().use { response ->
if (!response.isSuccessful) throw IOException("Unexpected code $response")
response.body!!.string()
}
using System.Net.Http.Headers;
using System.Net.Http.Json;
HttpClient client = new HttpClient();
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "https://api.jigsawstack.com/v1/ai/sentiment");
request.Headers.Add("x-api-key", "your-api-key");
request.Content = JsonContent.Create(new
{
text = "I love this product! It's amazing but the delivery was a bit late."
});
request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
HttpResponseMessage response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
{
"success": true,
"sentiment": {
"emotion": "love",
"sentiment": "positive",
"score": 0.85,
"sentences": [
{
"text": "I love this product!",
"emotion": "love",
"sentiment": "positive",
"score": 0.9
},
{
"text": "It's amazing but the delivery was a bit late.",
"emotion": "satisfaction",
"sentiment": "positive",
"score": 0.8
}
]
},
"_usage": {
"input_tokens": 20,
"output_tokens": 75,
"inference_time_tokens": 2594,
"total_tokens": 2689
}
}