ForHosting KIT · Text & AI

Extract claims

An opinion piece, a press release or a debate transcript is a mix of framing, opinion and a handful of concrete assertions that are actually true or false — and separating that handful from everything around it is usually the slowest part of fact-checking. This claim extraction endpoint reads an argument and returns only the discrete, checkable statements it makes, stripped of the rhetoric wrapped around them.

● BetaPer request + per 1,000 words$0.003
Use it from WebAPIEmailApp soonTelegram soon

Run this on our servers with your account. Free tools run in your browser; this one bills your KIT balance per the price above.

What we mean by a claim

Not every sentence in an argumentative text is a claim in the useful sense — 'this is deeply concerning' is opinion, while 'unemployment rose by two points last quarter' is a claim, because it asserts something specific enough that it could, in principle, be checked against evidence. This endpoint is built to separate the two, returning statements that carry a verifiable assertion and leaving aside the framing, tone and rhetorical questions that surround them.

Who spends hours doing this by hand today

Fact-checkers building a queue of statements to verify from a politician's speech, journalists preparing to source-check a press release before publishing, researchers coding argumentative structure in persuasive writing, and PR or comms teams auditing their own draft statements for anything that could be challenged all currently do this manually — reading line by line and pulling out anything that sounds like an assertion of fact.

How the extraction reads an argument

POST /text/extract-claims returns each claim as a standalone statement, phrased close to the original wording so the extracted version can still be attributed accurately to the source text. Where a sentence bundles a claim together with an opinion — 'predictably, the report shows revenue fell 12 percent' — the extraction isolates the checkable part, the revenue figure, without also asserting the framing word 'predictably' as if it were a fact.

A brief note on claim versus opinion

The distinction between fact and opinion has been a working concern of argumentation theory and journalism ethics for a long time, well before automated tools existed to help with it, precisely because the two get blended constantly in persuasive writing — sometimes deliberately, to lend the weight of fact to a subjective judgment. Reading for that boundary consistently, across a large volume of text, is the specific job this endpoint does.

Where it fits into a verification or editorial pipeline

The call is asynchronous: submit an article or transcript, get a task_id immediately, and receive the extracted claims by signed webhook once processing finishes, or via a signed link held for 24 hours. Pricing runs per request plus a per-word rate, so a short press release costs a fraction of a long transcript, and a task that fails after its retries is never charged — you only pay for claims actually delivered.

Building a fact-check queue from a speech

Extract every checkable claim from a political speech transcript to build a prioritized list of statements a fact-checking team should verify first.

Pre-publication source review

Pull the discrete claims out of a press release before publishing so an editor can confirm each one has a supporting source on file.

Argumentative structure analysis

Separate claims from opinion and framing in a corpus of opinion columns as part of a research project studying persuasive writing techniques.

Internal comms risk review

Scan a draft public statement for factual claims that could be challenged or misquoted before it goes out under the company's name.

How does the claim extraction API work?

Send text to POST /text/extract-claims, receive a task_id immediately, and get the list of extracted claims by webhook or a signed link once the task completes.

How is a claim different from an opinion in this context?

A claim asserts something specific enough to be checked against evidence, like a statistic or an event; an opinion expresses a judgment that can't be verified the same way, and the endpoint is built to separate the two rather than extract every sentence indiscriminately.

Does it fact-check the claims it finds?

No, it isolates and returns the checkable statements themselves; verifying whether each claim is true is a separate step left to the fact-checker or researcher using the output.

Is there a free tier for testing this out?

There's no free tier — free tiers get abused and slow everyone down. Access runs on a prepaid ForHosting KIT balance: top up from $10.00 (it never expires) and each request is charged at its published price, so a call with no balance returns HTTP 402. No subscription, no tokens, no invented credits, and a failed task is never charged.

What does claim extraction cost?

It's $0.003 per request plus $0.0135 per 1,000 words of input, and billing applies only to tasks that complete — a failed task after retries is never charged.

Can I run this on a large batch of articles at once?

Yes, each document is submitted as an independent asynchronous task, so you can process many articles or transcripts in parallel and collect results as each webhook arrives.

Does it preserve the original wording of each claim?

Extracted claims stay close to the original phrasing rather than being rewritten, which keeps them attributable back to the exact statement in the source text.

What happens with sentences that mix a claim and an opinion?

The extraction isolates the checkable portion of the sentence and leaves the opinion or framing language aside, rather than returning the whole sentence as if all of it were verifiable.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/text/extract-claims

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, and soon from our app, email and Telegram.

curl -X POST https://api.kit.forhosting.com/text/extract-claims \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"…"}'
{
  "text": "…"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "text.extract_claims",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.003
Per 1,000 words$0.0135

Published price — no tokens, no invented credits. A failed task is never charged.

max_tokens20000
HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.
422task_failedThe task failed after 3 retries. You are never charged for it.

Read the full KIT documentation →