AWS Textract Analyze Expense Pricing: $10 per 1,000 Invoice Pages

Sep 3, 2026

Try it now: upload an invoice and get the data in Excel or CSV

PDF, JPG, PNG, BMP, HEIC, TIFF

Upload your invoices

Short answer: AWS Textract AnalyzeExpense costs $10.00 per 1,000 pages for the first one million pages a month, then $8.00 per 1,000 above that. Synchronous and asynchronous calls are priced identically, so there is no batch discount. It is by a wide margin the cheapest Textract path for invoices: pulling the same invoice apart with AnalyzeDocument using Forms, Queries and Tables costs $70.00 per 1,000 pages, seven times as much, and returns less invoice structure.

Those figures come from the AWS Price List API for us-east-1, document version 20260831092230, published 31 August 2026. That detour is necessary rather than clever: the public Textract pricing page no longer renders its own numbers reliably, which is also why several widely cited comparison articles quote $8.00 as the AnalyzeExpense rate. It is not. The $8.00 tier only begins above one million pages a month, and almost no accounts payable department gets there.

What AnalyzeExpense actually costs

AnalyzeExpense is the operation AWS built specifically for invoices and receipts. It is billed per page, with one volume break.

VolumeRate per pagePer 1,000 pages
First 1,000,000 pages per month$0.010$10.00
Above 1,000,000 pages per month$0.008$8.00

To put that in AP terms: a team processing 2,000 supplier invoices a month, most of them one or two pages, spends roughly $20 to $40 a month on the extraction call itself. That is genuinely cheap, and it is the reason so many teams start here. The cost that hurts arrives later, and it is not on this table.

Why does my Textract bill say $70 per 1,000 pages?

Because you almost certainly called the wrong API. Textract is not one price, it is sixteen, and the rate is decided by the FeatureTypes array you pass in the request. AnalyzeExpense is a separate operation. AnalyzeDocument with FORMS and TABLES is the general purpose extractor, and it is the intuitive thing to reach for when you want key values and a line item table out of an invoice. It is also the single most expensive way to do it.

Textract featureFirst 1M pagesAbove 1M
Detect Document Text$1.50$0.60
Signatures$3.50$1.40
Layout$4.00$3.00
Analyze Expense (invoices)$10.00$8.00
Tables$15.00$10.00
Queries$15.00$10.00
Queries and Tables$20.00$15.00
Custom Queries$25.00$15.00
Analyze ID$25.00$10.00
Custom Queries and Tables$30.00$20.00
Forms$50.00$40.00
Forms and Queries$55.00$45.00
Forms and Custom Queries$65.00$50.00
Forms, Queries and Tables$70.00$55.00
Analyze Lending$70.00$55.00
Forms, Custom Queries and Tables$80.00$60.00

Read the gap between rows four and fourteen. Same invoice, same account, same region. One call returns typed invoice fields for $10 per 1,000 pages. The other returns untyped key value pairs and table cells that you have to work out the meaning of yourself, for $70. If you inherited a Textract pipeline built by someone who left, checking which operation it calls is the highest value ten minutes available to you. On a 50,000 page a month workload, that one change is the difference between $500 and $3,500 a month, which is the kind of line that only surfaces when somebody finally goes looking through the metered cloud spend for anomalies.

Is there a batch discount on Textract?

No. This surprises people who assume asynchronous processing is cheaper, because that is how Mistral, OpenAI and Anthropic all price their batch endpoints at half rate. On Textract the asynchronous meters are priced exactly the same as the synchronous ones at every single feature level. StartExpenseAnalysis and AnalyzeExpense cost the same $0.01 per page.

Asynchronous processing on Textract is about capacity and document size, not price. Use it because you are processing multi page PDFs from S3 and do not want to hold a connection open, not because you expect a saving. There is no overnight discount to schedule around.

What about the free tier?

New AWS customers get a three month free tier. For AnalyzeExpense that is 100 pages per month. Detect Document Text gets 1,000 pages per month over the same period. One hundred pages is enough to evaluate whether the field extraction works on your vendors, and nothing more. It is not a runway, and it expires on a calendar, not on usage, so a proof of concept that stretches over a quarter will start billing before you finish.

What does AnalyzeExpense actually give you for the money?

This is where the $10 rate earns its premium over the $1.50 plain text call. AnalyzeExpense returns two structures. SummaryFields carries the header level values, vendor name, invoice date, invoice number, due date, subtotal, tax and total, each with a normalized type label and a confidence score. LineItemGroups carries the table rows, each item with its description, quantity, unit price and amount.

Crucially, you do not define that schema. Textract knows what an invoice is. With the Forms API you would get back a pile of key value pairs where "Total Due" and "Amount Payable" and "Balance" are three unrelated keys, and normalizing them into one canonical total field is your problem. That normalization work is the actual reason the invoice specific API is worth paying more for, and it is why paying seven times as much for the general one is such a poor trade.

What you still do not get is anything an accountant can post. AnalyzeExpense hands a developer JSON. Between that JSON and a row in your accounting system sits a real backlog: confirming line items sum to the invoice total, handling credit notes and negative amounts, normalizing vendor names so the same supplier does not arrive three different ways, deciding what happens when confidence drops below your threshold, and writing the export to xlsx, csv or QBO. Line item handling in particular is where most in house builds stall, because reassembling continuation tables across page breaks is much harder than reading a single header field.

Is $10 per 1,000 pages actually a good price?

Against the rest of the Textract card, yes, decisively. Against the wider market it is mid table. Mistral OCR 4.1 reads a page for $4.00 per 1,000, or $2.00 through its Batch API, though it returns markdown rather than typed invoice fields, which is the trade explored in full in this Mistral OCR and AWS Textract comparison. Azure Document Intelligence charges the same $10.00 per 1,000 pages for its prebuilt invoice model. Google's Document AI Invoice Parser bills per document rather than per page, which works out at $100.00 per 1,000 single page invoices.

So AnalyzeExpense is priced sensibly for what it is. The honest caveat is that the API bill is rarely the number that decides these projects. At 2,000 invoices a month you are arguing about $20 versus $8 in API spend while a developer spends three weeks building the pipeline around it, and then keeps maintaining it every time a vendor changes their layout. Compared with an engineer's time, the entire extraction meter is a rounding error.

When AnalyzeExpense is the right call

Use it if you have engineering capacity, your documents must stay inside your own AWS account and region for compliance reasons, and you want to own the pipeline end to end. That last condition is a real advantage and not everyone can get it elsewhere. If you already hold an AWS Business Associate Addendum, or your contracts specify a named region, staying inside the account you have already cleared through security review is worth a great deal.

It is the wrong call if what you actually want is invoices arriving as clean rows. Textract is a component, not a product. If nobody on your team is going to write and maintain the validation, normalization and export layer, you will end up paying $10 per 1,000 pages for JSON that then sits there. For a full picture of the Textract meters and where they sit against the alternatives, the complete AWS Textract pricing breakdown covers every feature and the volume tiers. If you would rather skip the build entirely, the extractor at the top of this page returns finished spreadsheet rows, line items included, with no AWS account and no per page meter.

Rates verified 3 September 2026 against the AWS Price List API for us-east-1, document version 20260831092230.