PDF OCR Convert API
Send the URL of a scanned PDF and get back the same document with a text layer, so its words can be selected, copied and found. Made for archives and paper intake.
- Free plan
- No credit card
Request
curl -X POST https://apdf.io/api/pdf/ocr/convert \
-H "Authorization: Bearer TOKEN" \
-d file="FILE_URL"
const data = new FormData();
data.append('file', 'FILE_URL');
fetch('https://apdf.io/api/pdf/ocr/convert', {
headers: {'Authorization': 'Bearer TOKEN'},
method: 'POST',
body: data
})
.then(response => response.json())
.then(json => console.log(json));
use GuzzleHttp\Client;
$client = new Client();
$response = $client->post(
'https://apdf.io/api/pdf/ocr/convert', [
'headers' => [
'Authorization' => 'Bearer TOKEN'
],
'form_params' => [
'file' => 'FILE_URL'
]
]);
$body = $response->getBody();
echo json_encode($body->getContents());
require 'rest-client'
response = RestClient.post(
'https://apdf.io/api/pdf/ocr/convert',
{
'file' => 'FILE_URL'
},
{
Authorization: "Bearer TOKEN"
}
)
puts response.body
import requests
response = requests.post(
'https://apdf.io/api/pdf/ocr/convert',
headers = {
'Authorization': 'Bearer TOKEN'
},
data = {
'file': 'FILE_URL'
}
)
print(response.text)
import (
"fmt"
"github.com/go-resty/resty/v2"
)
func main() {
client := resty.New()
data := map[string]string{
"file": "FILE_URL"
}
resp, _ := client.R().
SetFormData(data).
SetHeader("Authorization", "Bearer TOKEN").
Post("https://apdf.io/api/pdf/ocr/convert")
fmt.Println(resp.String())
}
import okhttp3.*;
class Pdf {
public static void main(String[] args) throws Exception {
OkHttpClient client = new OkHttpClient();
FormBody formBody = new FormBody.Builder()
.add("file", "FILE_URL")
.build();
Request request = new Request.Builder()
.url("https://apdf.io/api/pdf/ocr/convert")
.addHeader("Authorization", "Bearer TOKEN")
.post(formBody)
.build();
Response response = client.newCall(request).execute();
System.out.println(response.body().string());
}
}
Same scan.
Now with text.
Each scanned page gets recognized text laid over its image.
Viewers can select, copy and search it like any other PDF.
- Scanned pages
- Get an invisible text layer from OCR
- Text already in the file
- Stays as it is
- An older OCR layer
- Is replaced with a fresh one
- Page images
- Kept, not straightened or rotated
- The new PDF
- A download URL, valid for 60 minutes
Paper in, search out.
A scanned page is only a picture of text. OCR turns it into a document your tools and your users can search.
Digitized archives
Make years of scanned contracts and letters searchable in your document system, without retyping a single word.
Scanner and mailbox intake
Run every PDF from the office scanner or a shared mailbox through OCR before it is filed, so none lands as a picture.
Phone scans from users
Turn the paperwork your customers photograph and upload into PDFs whose text can be selected and copied.
Ready for the next step
Hand later steps a PDF with real text, so search, text extraction and copy and paste work on scans too.
Run OCR from anywhere.
Make scans searchable wherever they come in.
One account and one monthly allowance behind every route.
One authenticated POST from any language. Copy-paste samples in cURL, Node.js, Python and more.
POST /api/pdf/ocr/convert
Pick the action in any Zap and map files from earlier steps. No code and no servers to run.
Make PDF Searchable With OCR
Add the Apdf node to any workflow, on n8n Cloud or self-hosted, and chain it with your automation.
Convert PDF with OCR
Let Claude, ChatGPT, Gemini or your own agent run it through the MCP server, on any paid plan.
convert-pdf-with-ocr
1,000 OCR conversions
a month. Free.
Start on the free plan and move up only when your volume does — up to 1,000,000 operations a month on Business.
- One call is one operation, however many pages.
- Only calls that do the work are counted.
- Hard limits, so no surprise overage charges.
OCR conversion, answered
OCR tutorials
Turn Scanned Invoices into Structured Data with an Agent
OCR reads tabular scans in scrambled order — the wall every regex parser dies against, and exactly where the agent shines: it reassembles vendor, number, date and line items from the mess, cross-checks the sums against each stated total, and flags mismatches for human eyes instead of your books.
OCR Scanned PDFs by Asking Claude
That folder of scans — old leases, signed contracts, photographed paperwork — becomes searchable conversationally: Claude checks the text layer, runs the OCR job through the Apdf MCP tools, and answers questions from the recovered text with page-level receipts.
Extract Text from Scanned Invoices for Automated Data Entry
Automate data entry from scanned invoices and receipts using Node.js and the Apdf OCR Read API. Extract vendor names, invoice numbers, and totals from image-based PDFs and feed them directly into your accounting system.
Your code made the PDF.
Then it went dark.
Opened, read, signed or ignored — you never see any of it. Send the PDFs you generate as personal links, and every open, page read, comment and signature comes back to your software as a webhook. Need it signed? Same link. Same account, same API key, one more call.
API · Webhook · MCP