BYTETOOLS

text-processing.com Sentiment API

Free sentiment analysis API with no key: POST a block of text, get back a positive, negative or neutral label with probabilities for each class. Tested example included.

No API key requiredHTTPSFree tier

Endpoint tested and returned HTTP 200 on 2026-08-21

What is the text-processing.com Sentiment API?

text-processing.com exposes a free sentiment classifier that needs no API key. POST text as a form field and it returns a `label` of `pos`, `neg` or `neutral`, together with the probability it assigned to each of the three classes.

Free sentiment endpoints that do not want a key are close to extinct, which is why this one — built on NLTK by the author of the Python text-processing books — is still in circulation years after it appeared. It is a classical Naive Bayes classifier rather than a transformer, and knowing that shapes what you should expect: fast, cheap, entirely deterministic, and easily fooled by sarcasm, distant negation and domain jargon.

The probabilities are the part worth using. A `label` on its own hides how close the call was, whereas the captured sample shows 0.92 positive against 0.08 negative — a confident classification. When the top two probabilities sit near each other, the sensible move is to treat the result as unclassified rather than accepting a coin flip. One quirk to plan for: the response declares `text/html` in its Content-Type header while the body is genuine JSON, so a strict client that trusts the header will refuse to parse a perfectly good response.

Quick facts

Base URL
https://text-processing.com/api
Authentication
No API key and no account. An unpublished per-day request cap applies per IP address.
Rate limit
An unpublished daily cap applies per IP. Batch where you can and cache results for identical text.
Pricing
Free.
CORS
Not enabled — call it from your server
Official docs
Read the docs

How to use the text-processing.com Sentiment API

Every request below was executed against the live API on 2026-08-21, and the response shown is the real body it returned — not an illustration.

1. Classify the sentiment of a sentence

POST https://text-processing.com/api/sentiment/

curl
curl -X POST 'https://text-processing.com/api/sentiment/' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -d 'text=great+movie+loved+it'
JavaScript (fetch)
const res = await fetch("https://text-processing.com/api/sentiment/", {
  method: "POST",
  headers: {
    "Content-Type": "application/x-www-form-urlencoded",
  },
  body: JSON.stringify(text=great+movie+loved+it),
});
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);
Python (requests)
import requests

headers = {
    "Content-Type": "application/x-www-form-urlencoded",
}

payload = text=great+movie+loved+it

res = requests.post("https://text-processing.com/api/sentiment/", headers=headers, json=payload, timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200
{
  "label": "pos",
  "probability": {
    "neg": 0.08046427245907817,
    "pos": 0.9195357275409218,
    "neutral": 0.0025818434561060725
  }
}

Parameters

ParameterTypeRequiredDescription
textform fieldRequiredThe text to classify, sent as `application/x-www-form-urlencoded` in the POST body. There is no GET form. great movie loved it
languageform fieldOptionalLanguage of the text. English is the default and by far the best supported. english

Response fields

labelstring
The winning class: `pos`, `neg` or `neutral`.
probability.posfloat
Probability the text is positive, 0 to 1.
probability.negfloat
Probability the text is negative.
probability.neutralfloat
Probability the text carries no strong polarity. This is scored separately, so the three values do not neatly sum to 1.

What you can build with the text-processing.com Sentiment API

  • Score inbound support tickets so angry ones surface first
  • Flag negative product reviews for manual follow-up
  • Add a rough mood indicator to a feedback dashboard
  • Teach text classification without provisioning API keys for a class

Common errors and how to fix them

Client refuses to parse the response

The Content-Type header says `text/html` although the body is JSON.

Fix: Parse the body as JSON explicitly rather than letting your HTTP client decide from the header.

405 Method Not Allowed

The request was sent as GET.

Fix: This endpoint is POST-only, with the text as a urlencoded form field — not JSON, and not a query string.

Confidently wrong on sarcasm

It is a bag-of-words Naive Bayes classifier with no understanding of context.

Fix: Use the probabilities: treat near-ties as unclassified, and do not put it in charge of anything consequential on its own.

Requests start failing

You have hit the unpublished daily cap for your IP.

Fix: Cache by text hash, deduplicate before sending, and spread bulk jobs across days.

text-processing.com Sentiment API — frequently asked questions

Is this sentiment API really free with no key?

Yes. There is no key and no account, though an unpublished daily cap applies per IP, so it is not suited to bulk classification.

Why does the response say text/html?

The service sets that header even though the body is valid JSON. Parse the body explicitly rather than trusting the declared content type.

How accurate is it?

It is a classical Naive Bayes classifier trained on general text. On plain, clearly worded opinions it does well; sarcasm, negation and domain jargon defeat it regularly. The per-class probabilities are your guide to when to trust a call.

Can I send a batch of texts?

No. One text per request. Deduplicate and cache aggressively, because the daily cap makes repeated calls for identical text expensive.

Tools that pair with this API

text-processing.com Sentiment is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-21; always check the official documentation before relying on this API in production, as terms and limits can change.