Extrair dados de gráfico
Essa ferramenta lê um gráfico que virou imagem — print de relatório, slide, página escaneada — e devolve os números por trás dele: rótulos dos eixos, séries e valores organizados em tabela. É para quem precisa refazer uma análise quando só sobrou a figura, sem digitar valor por valor.
Rode online
Rode nos nossos servidores com a sua conta. As ferramentas grátis rodam no seu navegador; esta aqui é descontada do seu saldo do KIT pelo preço acima.
Que tipo de gráfico ela entende
Gráficos de barras, de linhas, de pizza e de área, com legenda ou sem. A leitura interpreta os eixos, associa cada série à sua cor e estima os valores a partir da posição visual dos pontos. Quando o número está escrito em cima da barra ou da fatia, ele é lido diretamente; quando não está, o valor é estimado pela escala do eixo. Cada imagem pode ter até 25 MB, o suficiente para prints em alta resolução e páginas escaneadas de relatório.
O que você recebe de volta
O resultado sai estruturado: título do gráfico, nome de cada série, rótulos das categorias e os valores numéricos correspondentes, prontos para colar numa planilha ou alimentar outro sistema. Se o gráfico usa formato brasileiro de número — ponto de milhar, vírgula decimal, como 1.234,56 — a leitura respeita isso. O objetivo é que você saia com uma tabela utilizável, não com um parágrafo descrevendo a figura.
Sobre a precisão: seja realista
Valor escrito no gráfico é lido com fidelidade alta. Valor estimado pela altura de uma barra carrega a imprecisão de qualquer leitura visual: se a escala vai de 0 a 100.000, uma diferença de poucos pixels muda o resultado. Para decisão que envolve dinheiro ou auditoria, confira os números críticos contra a fonte original. A ferramenta economiza a digitação; a responsabilidade pela validação continua sendo sua.
Quanto custa e como funciona a cobrança
A execução é via API, com preço publicado: US$ 0,010 por chamada mais US$ 0,0575 por imagem processada. Não tem mensalidade nem pacote mínimo — você paga exatamente o que usar. Essa capacidade está em fase beta: já funciona e cobra normalmente, mas o formato do resultado ainda pode ser refinado. Vale enviar primeiro um gráfico típico do seu caso e conferir se a saída atende antes de processar um lote grande.
Casos de uso
Refazer o gráfico que veio da matriz em PDF
A Distribuidora Horizonte Verde S.A. recebe da diretoria um relatório trimestral em PDF com gráficos de vendas por região — e ninguém tem a planilha original. Em vez de pedir os dados e esperar dias, a analista envia as imagens e recupera os valores para montar a apresentação dela.
Aproveitar dados de estudos publicados
Um pesquisador encontra num boletim público um gráfico de série histórica de preços, mas o órgão só publicou a figura, não a tabela. Ele extrai os valores e segue a análise no software estatístico, citando a fonte original.
Transformar print de dashboard em número
O gestor de tráfego recebe do cliente um print do painel de anúncios pelo WhatsApp — sem acesso à conta. Extrai as métricas do print e lança na planilha de acompanhamento mensal sem digitar nada.
Digitalizar gráficos de documentos antigos
Uma consultoria herda relatórios impressos de dez anos atrás, escaneados em PDF. Os gráficos de evolução de faturamento viram dados de novo e entram na base histórica do cliente.
Perguntas frequentes
Funciona com gráfico de pizza e com gráfico empilhado?
Sim. Pizza, barras (inclusive empilhadas), linhas e áreas são os formatos mais bem lidos. Quanto mais limpa a imagem — legenda visível, eixos legíveis — melhor o resultado.
E se eu mandar uma foto de tela em vez de um print?
Foto de tela funciona, mas reflexo, inclinação e desfoque reduzem a precisão. Se puder, tire um print de verdade; se só tiver a foto, enquadre o gráfico inteiro e evite luz estourada.
Os valores extraídos são exatos?
Os que estão escritos na imagem, sim. Os que a ferramenta estima pela posição na escala têm margem de erro visual. Para relatório interno costuma bastar; para auditoria, valide contra a fonte.
Quanto sai para processar 50 gráficos?
Cada imagem custa US$ 0,010 de chamada mais US$ 0,0575 de processamento — 50 gráficos ficam em torno de US$ 3,38. Sem assinatura: acabou o lote, acabou o gasto.
O print que eu envio fica guardado em algum servidor?
A imagem é enviada para processamento — é isso que gera a extração — e é usada só para executar a tarefa que você pediu. Se o gráfico contém dados estratégicos da empresa, trate o envio como trataria qualquer fornecedor sob a LGPD: envie apenas o necessário.
Por que essa ferramenta aparece como beta?
Porque a estrutura da resposta ainda está sendo lapidada com uso real. A extração já funciona e a cobrança é a publicada; apenas o formato de saída pode ganhar campos novos.
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
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"}'const res = await fetch("https://api.kit.forhosting.com/ocr/chart", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"image": "https://ejemplo.com/imagen.jpg"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/ocr/chart",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"image": "https://ejemplo.com/imagen.jpg"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/ocr/chart", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"image":"https://ejemplo.com/imagen.jpg"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"image":"https://ejemplo.com/imagen.jpg"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/ocr/chart", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"image": "https://ejemplo.com/imagen.jpg"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "ocr.chart",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
max_mb | 25 |
max_pages | 10 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
422 | task_failed | A tarefa falhou do nosso lado. Você não paga nada por ela. |