TextAPI

Your text-processing
Swiss Army knife.

Extract article text from any URL, tag named entities, score sentiment, and answer questions — four NLP capabilities behind one clean, language-agnostic API.

Metered billing through the APIDirectory storefront — pay per request, no plans, cancel anytime.

Live demo — entities & sentiment

AppleORG is thrilled to be buying a promising U.K.GPE startup for $1 billionMONEY

Positive compound 0.68 · pos 0.34 · neu 0.66 · neg 0.00

Runs against the real API at use.textapi.com — no key needed for this demo.

One key, four capabilities

GET /text

Extract text from webpages

Point it at a URL and get back the clean, readable article body — no boilerplate, no ads, no markup.

Try it in the docs →
GET /ner

Identify important entities

Submit plain text and get named entities back with their labels and exact character positions.

See a live response →
GET /sentiment

Gauge sentiment

Instant insight into how the authors of reviews, tickets, and comments actually feel.

See a live response →
GET /qa

Ask questions of any text

Supply context — or just a URL — plus a question, and get an extractive answer with its confidence score.

Try it in the docs →
GET /ner/display

Visualize entities instantly

Render highlighted entity tags as SVG or HTML — bring your own spans or let the API find them.

See a live render →
POST /*

Prototype fast, graduate later

Ship your product on TextAPI from any language, then move to spaCy — the library underneath — when you outgrow it.

Browse all endpoints →

Works from any language

If it can make an HTTP request, it can use TextAPI.

curl "https://use.textapi.com/ner?text=Apple+is+buying+a+U.K.+startup"

{"spans": [{"text": "Apple", "start": 0, "end": 5, "label": "ORG"},
           {"text": "U.K.", "start": 19, "end": 23, "label": "GPE"}]}
import requests

r = requests.get("https://use.textapi.com/ner",
                 params={"text": "Apple is buying a U.K. startup"})
print(r.json()["spans"])
const res = await fetch("https://use.textapi.com/ner?text=" +
  encodeURIComponent("Apple is buying a U.K. startup"));
const { spans } = await res.json();

Metered keys route through the APIDirectory gateway — your endpoint and code samples are on the storefront.

Guides & how-tos

Short, specific walkthroughs built around code you can paste into a project today.

Sentiment analysis for customer reviews, and where it quietly fails

Score reviews in one call, read the four numbers correctly, and recognise the sentences this approach scores as neutral when a human wouldn't.

Read the guide →

Ask questions about a web page in one API call

Point the QA endpoint at a URL and a question, get an extracted answer with a confidence score — plus the two mistakes that make extractive QA go wrong.

Read the guide →

Named entity recognition without training a model

Pull people, companies, money, and dates out of raw text with one HTTP call — including the character offsets you need to highlight them.

Read the guide →

All articles →

Simple, metered pricing

Keys are issued instantly through our storefront on APIDirectory. You pay per request with monthly metered billing — no tiers to pick, no minimum commitment, cancel any month.

See pricing & get a key →

Prefer one key across many APIs? TextAPI also sells through the APIDirectory registry gateway.

Questions, answered

How is TextAPI billed?

Through our storefront on APIDirectory, backed by Stripe. Billing is metered: every request counts, you get one invoice a month for exactly what you used, and you can cancel any month. No tiers, no seats, no minimums.

How do I get an API key?

Instantly — subscribe on the storefront and your key is issued and emailed the moment checkout completes.

Can I try it before subscribing?

Yes. The demo at the top of this page runs against the real API, the feature cards link to live responses, and every endpoint can be exercised from the interactive docs.

What counts as a request?

Each API call made with your key counts as one metered request, whichever endpoint it hits.