🌐International

Proof of Address OCR API

Extract holder name, structured postal address, issuer details, billing dates, and reference numbers from utility bills, bank statements, or official certificates. Automate your KYC, AML, and address verification workflows.

Proof of Address OCR API
Start in Seconds
Sign up to get your API key and start processing your documents
State of the Art Accuracy
We use the most powerful models to ensure the highest accuracy and throughput
GDPR Compliant
We are EU Hosted, GDPR Compliant and follow Zero Data Retention by default
Just pay for what you extract
No monthly commitments or high starting tiers. Volume discounts available.

+100k requests at 4.2s avg latency in 2026

Indemnizame
Sagardobus
Swipoo
Acciona

Try it out

Experience the power of our OCR. Upload a document and see the results instantly.

Drop document or click to upload

Supports PDF, PNG, JPG (max 10MB)

By uploading a document, you agree to our terms. We do not store your data.

JSON Response
{
"success":
true,
"data":{
"document_type":
"UTILITY_BILL",
"document_type_description":
"Monthly electricity bill from British Gas for billing period January 2025",
"utility_bill_type":
"ELECTRICITY",
"holder_name":
"JAMES THOMPSON",
"holder_document_id":
null,
"holder_email":
null,
"issuer_name":
"BRITISH GAS TRADING LIMITED",
"issuer_id":
"03078711",
"issue_date":
"2025-02-05",
"billing_period_start":
"2025-01-01",
"billing_period_end":
"2025-01-31",
"reference_number":
"0012345678",
"invoice_number":
"INV2025-00123456",
"invoice_issue_date":
"2025-02-05",
"invoice_total_amount":
"84.17",
"invoice_currency":
"GBP",
"raw_address":
"42 VICTORIA ROAD FLAT 3 LONDON SW1A 1AA",
"address_line_1":
"42 VICTORIA ROAD",
"address_line_2":
"FLAT 3",
"address_city":
"LONDON",
"address_state":
"GREATER LONDON",
"address_zip_code":
"SW1A 1AA",
"address_country":
"GBR",
"document_verification_id":
null,
"detected_urls":[
"https://www.britishgas.co.uk",
"https://myaccount.britishgas.co.uk"
],
"detected_email_addresses":[
"customerservice@britishgas.co.uk"
]
},
"balance":
14.5,
"cost":
0.045
}
document_typeenum

Classified type of the proof of address document

UTILITY_BILLBANK_STATEMENTCREDIT_CARD_STATEMENTGOVERNMENT_CERTIFICATETAX_DOCUMENTINSURANCE_DOCUMENTMORTGAGE_DOCUMENTRENTAL_AGREEMENTPAYSLIPOFFICIAL_LETTEROTHER
document_type_descriptionstring | null

Free-text description of what the document is (e.g. "Monthly electricity bill from Endesa for billing period January 2025")

utility_bill_typeenum

Sub-type of utility bill. Null if document_type is not UTILITY_BILL

ELECTRICITYGASWATERTELECOMINTERNETCOMBINEDOTHER
holder_namestring | null

Full name of the person the document is addressed to (customer/recipient, not the issuer)

holder_document_idstring | null

Holder's personal identification number if present on the document (e.g. DNI, NIE, passport number)

holder_emailstring | null

Holder's email address if present on the document

issuer_namestring | null

Name of the company or authority that issued the document

issuer_idstring | null

Issuer's company, VAT, or tax registration number if present (e.g. CIF, VAT number, CNPJ)

issue_datestring | null

Date the document was issued or generated (YYYY-MM-DD)

billing_period_startstring | null

Start of the billing period (YYYY-MM-DD). Populated for utility bills and statements only

billing_period_endstring | null

End of the billing period (YYYY-MM-DD). Populated for utility bills and statements only

reference_numberstring | null

Contract number, account number, client number, or official record number

invoice_numberstring | null

Invoice or bill number. Null if the document is not an invoice

invoice_issue_datestring | null

Date the invoice was issued (YYYY-MM-DD). Null if the document is not an invoice

invoice_total_amountstring | null

Total amount of the invoice as a string. Null if the document is not an invoice

invoice_currencystring | null

ISO 4217 currency code of the invoice total (e.g. "EUR", "USD"). Null if the document is not an invoice

raw_addressstring | null

Full holder address as it appears on the document, unparsed

address_line_1string | null

First line of the holder's address (street name and number)

address_line_2string | null

Second line of the holder's address (apartment, floor, door, suite, etc.)

address_citystring | null

City or town of the holder's address

address_statestring | null

Province, region, or state of the holder's address

address_zip_codestring | null

Postal or ZIP code of the holder's address

address_countrystring | null

Country of the holder's address as ISO 3166-1 alpha-3 code (e.g. 'ESP', 'USA', 'GBR')

document_verification_idstring | null

Electronic verification or secure verification code found on the document (e.g. CSV, código electrónico, verification URL token). Null for invoice documents or if not present

detected_urlsarray

All URLs found in the document (e.g. issuer website, verification links)

detected_email_addressesarray

All email addresses found in the document

Common questions

Quick answers to common questions about our Proof of Address OCR API.

What document types are supported?

Our extractor is designed to handle a wide range of proof of address documents, including utility bills (electricity, water, gas, telecom), bank and credit card statements, government certificates, tax documents, insurance policies, rental agreements, and official letters.

Does it verify the authenticity of the document?

No, this is an OCR-based extraction service. While we extract security features like verification codes (CSV) or URLs when present, you are responsible for validating that the document is authentic and currently valid according to your specific requirements.

What address formats are supported?

The extractor supports most international address formats, automatically parsing them into structured fields like street, city, postal code, and country. If you have a specific or non-standard address format that requires specialized parsing, we can adapt our model to your needs upon request.

Can it identify the specific type of document uploaded?

Yes. The extractor provides both a structured category (e.g., UTILITY_BILL, BANK_STATEMENT) and a detailed free-text description generated by our model, which often includes the issuer name and the specific nature of the document.

Integrate our API in seconds

Start extracting data from your documents in seconds with our ready-to-use OCR API.

Terminal - Local File
curl -X POST "https://api.tiny-idp.com/api/extractors/run/proof-of-address" \
  -H "x-api-key: YOUR_API_KEY" \
  -F "files=@/path/to/your/document.jpg"
Claude CodeCursorChatGPT

Integrate with your coding agent

Copy instructions for Claude Code, Cursor, ChatGPT, and other agents to integrate Tiny IDP.

Ready to build?

Get your free API key and start extracting data from documents in minutes. No credit card required for the free tier.

Common use cases

Discover how businesses are using our OCR API to automate their workflows.

AML address verification

Parse utility bills and bank statements into structured holder name + address fields for CDD/EDD packs in banks, crypto and payment firms.

Mortgage & loan underwriting

Ingest proof-of-address packs from applicants—issuer, period, and postal components ready for credit decisioning and audit trails.

Telco & ISP activations

Confirm service address and account holder from electricity, gas or broadband bills before activating lines or installing routers.

Rental & property screening

Screen tenants and landlords with classified document type, billing period and structured address from leases, bills and official letters.

Simple, Transparent Pricing

No hidden fees. No monthly minimums. Pay only for what you extract.

Pay As You Go

Usage-Based

Simple pay-as-you-go pricing. No monthly commitment.

0 – 1,000 requests/mo
Starting tier
€0.045
/request
1,000+ requests/mo22% off
Automatic discount
€0.035
/request
  • Unlimited extractors
  • Pre-built & custom extractors
  • OCR and AI technology
  • GDPR compliant
  • EU-hosted infrastructure
  • Standard support
Get Started

Enterprise

Custom

Tailored pricing for high-volume scenarios. Get SLA guarantees, on-premise deployment, and dedicated support — reach out and we'll put together a plan that fits your scale.

  • Custom pricing models
  • SLA guarantees
  • On-premise deployment options
  • Custom integration support
  • 24/7 dedicated support
  • Priority feature requests
Contact Sales

All prices exclude VAT. Volume discounts apply automatically.

Enterprise-grade Compliance & Security

We take data privacy seriously. Tiny IDP is built from the ground up to meet the strictest European data protection standards.

Zero Data Retention

We don't store your documents, images, or predictions. Data is processed in-memory and immediately discarded.

GDPR Compliant

Full compliance with European data protection regulations (GDPR) for your peace of mind.

EU-Based Infrastructure

All data is processed and hosted exclusively in secure European data centers.

Visit Trust Center
EU Hosted
Encrypted
No Storage
GDPR

Do you need a custom OCR?

Need custom document extraction? Define your own JSON schema to extract structured data from any document format in seconds.