ForHosting KIT · OCR & Data Extraction

Get the data behind a chart

Give it a bar, line or pie chart from a report or slide and you get back the axis labels, categories, legend and an estimated value for every bar, point or slice, as a table you can recalculate. Pay per use, no subscription.

● BetaPer request + per image$0.010
Use it from WebAPIEmailTelegramApp 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.

A chart published as a static image locks its numbers away the moment the file is exported, and there is no undo button hidden in a PNG.

When a chart is the only copy of the numbers

Most charts start as real numbers in a spreadsheet, are drawn once and then shared as a flat picture in a report, a slide deck or a scanned annual filing. From then on the values are gone unless someone finds the original file. This tool reverses that last step. It reads bar, line and pie charts, the types that dominate business reporting, identifies the axis labels or category names and the legend if there is one, and returns the value tied to each bar, point or slice as an ordered series rather than a redrawn image.

How exact the values are, and how to help

Reading a value off a picture is an estimate, not a lookup: each value is inferred from where the mark sits against the axis. Charts with clear gridlines, printed data labels or a well-defined scale come back more reliably than a blurry screenshot with no labelled axis, so image quality and chart design both matter. Typical uses are rebuilding a competitor’s published growth chart into a comparable table, recovering a series from an old paper that never shared its data, or turning a budget pie chart into percentages you can check.

The one-way trip most charts take

A chart usually starts life as real numbers in a spreadsheet or analytics tool, gets rendered once, and is then shared as a flattened image in a report, a slide deck or a scanned annual filing. From that point on the underlying values are gone unless someone tracks down the original file.

What kinds of charts it reads

It is built around the chart types that dominate business reporting: bar charts, line charts and pie charts, whether hand-drawn in a slide tool or exported from analytics software. For each one it identifies the axis labels or category names, the legend if present, and the numeric value tied to every bar, point or slice, returning them as a structured series rather than a redrawn picture.

Competitive benchmarking from published reports

A market analyst extracts the yearly revenue figures behind a competitor's bar chart from an investor presentation instead of eyeballing the bars.

Digitizing figures from academic PDFs

A researcher pulls the numeric series from a line chart in an older paper that never published its underlying dataset.

Auditing a pie chart breakdown

A finance reviewer converts a budget-allocation pie chart from a scanned report into percentages they can recompute and cross-check.

Is it free to use?

There's no free tier — free tiers get abused and slow everyone down. No subscription, no tokens, no invented credits, and a failed task is never charged.

Which chart types are supported?

Bar charts, line charts and pie charts are the primary supported types, covering most charts found in business and analytics reporting.

How accurate are the extracted numbers?

Values are estimated from each mark's position relative to the axis, so charts with visible gridlines or printed data labels extract more reliably than low-resolution images with no scale.

What if the chart image is too small or blurry to read?

The system retries up to three times internally, and if the chart still can't be resolved you get a clear error instead of being charged.

Can I process a batch of chart images?

Yes, each chart image is its own asynchronous task, so you can submit many at once and collect each result as it finishes.

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/ocr/chart

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, by email and from Telegram — and soon from our app too.

curl -X POST https://api.kit.forhosting.com/ocr/chart \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"image":"https://ejemplo.com/imagen.jpg"}'
{
  "image": "https://ejemplo.com/imagen.jpg"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "ocr.chart",
  "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.010
Per image$0.0575

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

max_mb25
max_pages10
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.

This endpoint looks at that image and reconstructs the series behind it, giving you back axis labels, categories and values as data you can actually recalculate with.

The one-way trip most charts take

This endpoint reverses that last step by reading the visual chart and recovering the data it was built from.

Where precision comes from and where it doesn't

Charts with clear gridlines, printed data labels or a well-defined scale extract more reliably than a low-resolution screenshot of a chart with no labeled axis at all, so image quality and chart design both matter to the result. Reading values off a rendered image is fundamentally an estimation problem, not a database lookup: the endpoint infers the closest numeric value each mark represents based on its position against the axis.

The mechanics of the call

Post the chart image to POST /ocr/chart and you get a task_id back immediately, since the extraction runs asynchronously. The finished data lands via your signed webhook, or you can pull it from a signed link that remains valid for 24 hours, and a chart that can't be resolved after three internal attempts returns a clear error with no charge attached.

Turning old reports into live data

Analysts use this to rebuild a competitor's published growth chart into a comparable spreadsheet, researchers pull numeric series out of figures in older PDFs that never shipped with a data appendix, and internal tooling pipelines feed scanned quarterly decks through it to recover metrics nobody re-exported before archiving.

Recovering metrics from archived slide decks

An operations team runs old quarterly review slides through the endpoint to rebuild a historical KPI spreadsheet that was never saved.

What does a chart data extraction API actually return?

It returns the axis labels, categories and numeric values behind a bar, line or pie chart image as structured data, not a redrawn image.

What's the price?

$0.010 per request plus $0.0575 per image, and you're only billed for tasks that complete successfully.

How is the result delivered?

Call POST /ocr/chart to receive a task_id right away, then get the structured data via a signed webhook or a signed link valid for 24 hours.

Read the full KIT documentation →