How to Reduce AWS Document Extraction Costs

Jul 13, 2026 8 min read

Most AWS document extraction bills are two to ten times higher than they need to be, and it is almost always the same four mistakes. Here is how to find and fix each one.

// Try it now

PDF, JPG, PNG, BMP, HEIC, TIFF

Upload a document to extract

Last updated July 2026.

The fastest way to cut an AWS document extraction bill is to stop sending every page to the most expensive API you have. Run Textract Detect Document Text at $1.50 per 1,000 pages across everything, use that cheap pass to work out what each document is, and then call an expensive structured API only on the minority of documents that actually need a record. On a realistic 100,000-page-a-month workload that one change takes the bill from about $4,000 to about $550, because the premium services have no volume discount and never get cheaper no matter how much you send them.

AWS gives you several ways to read a document and they differ in price by a factor of forty. Nothing in the console stops you from picking the wrong one, and the wrong one is often the newest one. What follows is the four places the money actually leaks, in the order they are usually worth fixing.

1. Stop paying a generative service to do OCR

This is the biggest and the most common. Amazon Bedrock Data Automation is the newer, more capable service, so people reasonably assume it supersedes Textract. On price it does the opposite.

Getting plain text off a pageRate per 1,000 pages
Textract, Detect Document Text$1.50
Bedrock Data Automation, standard output$10.00

Same job, 6.7 times the price. If any part of your pipeline is calling Bedrock Data Automation standard output to get text, that line of your bill can be cut by 85% today with no loss of capability. Bedrock Data Automation earns its rate when it returns a schema you defined. It earns nothing when it returns text, because Textract returns the same text for a fraction of the money. The rule worth writing on the wall: pay for structure, never pay for text.

2. Route by document instead of processing everything the same way

Most teams pick one API and point their whole corpus at it. That is where the ten-fold overspends come from, because in any real document set the pages that need a structured record are a minority. Contracts get filed. Statements get archived. Only some of it feeds a system.

The pattern that works has three steps:

  1. Cheap pass over everything. Detect Document Text at $1.50 per 1,000 pages. You can afford to run this over every page you own. Now you have searchable text and enough signal to classify each document.
  2. Decide what each document is. Invoice, statement, contract, junk. This is a classification step and it runs on the text you already paid for.
  3. Expensive pass on the subset only. Call the structured API on the documents that will actually feed a system.

Here is that as arithmetic. Take 100,000 pages a month, of which 10,000 genuinely need a structured record.

ApproachMathMonthly cost
Everything through Bedrock Data Automation custom output100,000 pages at $40 per 1,000$4,000
Route: cheap text pass, then structure the 10%(100,000 at $1.50) + (10,000 at $40)$550

That is $150 plus $400. Same structured records at the end, and you also keep searchable text for the other 90,000 pages, which you would not have had otherwise.

The reason this works so well on AWS specifically is that Bedrock Data Automation has no volume discount at any scale. There is no threshold where sending it everything starts to pay off. It charges the same on your ten millionth page as on your first. We walk through this in more detail on Bedrock Data Automation vs Textract.

3. Pick the right Textract API for the question you are asking

Textract is not one price. It is nine, and the spread between them is enormous. Paying for Forms when you needed Queries is a 3.3x overspend that produces the same answer.

Textract APIPer 1,000 pagesUse it when
Detect Document Text$1.50You want the words. Falls to $0.60 above 1M pages.
Queries$15.00You want a handful of specific answers. No volume tier.
Tables$15.00You want the tables and nothing else.
Analyze Expense$10.00Invoices and receipts. A purpose-built model.
Analyze ID$25.00Licenses and passports. Falls to $10 above 100K.
Forms$50.00You need every key and value pair on the page.
Forms + Tables + Queries$70.00You need all three. Consider a blueprint instead.

Two specific savings hide in that table.

If you can name the fields you want, use Queries, not Forms. Forms returns every key and value pair on the page and charges $50 per 1,000 for the privilege, and then you write code to find the four you cared about. Queries lets you ask for exactly those four at $15. Most "we need the form fields" requirements are really "we need these five values", and that distinction is worth 70% of the line.

If the document is an invoice or a receipt, use Analyze Expense. At $10 per 1,000 pages it is a quarter of what a Bedrock Data Automation blueprint costs for the same document, and it is a trained model rather than a prompt. The prebuilt models exist precisely so you do not have to pay generative prices for a solved problem. The same logic applies to bank statements, which are high volume, highly structured, and a document type where a purpose-built tool almost always beats a general API. If the goal is simply to get the transactions out of a PDF and into something you can reconcile, you can turn the statement into a spreadsheet without standing up an extraction pipeline at all.

4. Watch the two charges that are not per page

The free tier is three months, not forever. Textract's free tier covers a limited number of pages per month for the first three months after you first use the service, and then it stops. A pilot that looked free in month two starts billing in month four, and the bill lands without anything in the code having changed. Diarize that date when you start.

The 30-field cliff on Bedrock Data Automation blueprints. Custom output is $0.040 per page for a blueprint of up to 30 fields. Every field beyond the thirtieth adds $0.0005 per page. Push a blueprint to its 100-field maximum and you are paying $0.075 per page, which is $75.00 per 1,000 pages, nearly double the headline rate and more than Textract's most expensive bundle. AWS is the only one of the three big clouds that charges more for a wider schema. Before you model the cost of a blueprint, count its fields, and ask honestly whether you need field thirty-one. The full math is on our Bedrock Data Automation pricing reference.

Does AWS give a volume discount on document extraction?

On some meters, and it is worth knowing which, because it changes where you should push volume.

  • Detect Document Text drops from $1.50 to $0.60 per 1,000 pages above one million pages a month. That is a 60% cut and it is the strongest reason to concentrate your cheap text pass on one account rather than spreading it across several.
  • Analyze ID drops from $25.00 to $10.00 above 100,000 pages.
  • Analyze Expense drops from $10.00 to $8.00.
  • Queries has no volume tier at all. $15.00 per 1,000 pages at any scale.
  • Bedrock Data Automation has no volume tier at all, on any meter.

The practical read: your cheap layer gets cheaper as you grow and your expensive layer does not. That is exactly backwards from how most people assume cloud pricing works, and it is another argument for doing as much as possible in the cheap layer.

What about the pages you should not be processing at all?

The cheapest page is the one you never send. Before optimizing rates, it is worth auditing what is actually going through the pipe, because in most document sets a meaningful share of it should not be.

Blank pages, scanned separator sheets and fax cover pages get OCRed at full price and return nothing. Duplicate submissions, where the same invoice arrives by email and again in a batch upload, get billed twice. Multi-page appendices that nobody extracts fields from still cost the same per page as the one page that matters. None of this is exotic; it is just the accumulated debris of a real document workflow, and a page count check against what your business actually processes will usually turn up 10% to 30% of pure waste.

Put it together

The four fixes, in the order they usually pay off:

  1. Never call a generative service for plain text. Textract does it for $1.50 per 1,000 pages.
  2. Route by document type. Run cheap over everything, expensive over the subset that earns it.
  3. Match the Textract API to the actual question. Queries at $15 instead of Forms at $50 when you can name the fields; Analyze Expense at $10 for invoices.
  4. Count your blueprint fields, diarize the end of the free tier, and stop sending blank pages.

None of this requires new technology. It requires knowing what the meters are, which AWS does not exactly volunteer.

One last thing worth saying plainly, since it is the number that gets left out of every cost comparison. All of these APIs hand you a JSON response and stop. They do not tell you which fields the model was unsure about, route the doubtful ones to a person, check that the line items sum to the total, or push the result into your ERP. You build that, and on most projects the engineering around the API costs considerably more than the API. A pipeline that costs $550 a month in AWS meters and two engineer-months to build is not a $550 pipeline.

Related reading: AWS Textract pricing in full, Bedrock Data Automation pricing, OCR pricing per 1,000 pages across every vendor, and what it costs to OCR a million pages.

Extract your documents with DocuOCR

Upload a document and get clean, structured data in seconds. No template setup required.

Start free

← Back to all articles

Z tej samej rodziny narzędzi