Drop a business card, poster or screenshot
or click to browse — one image at a timeor press Ctrl+V to paste
Language
Add an image to pull out its contact details

Extract Phone Numbers, Emails and Links from Images

Read phone numbers, email addresses and links from a business card, poster or screenshot with OCR. Review the recognized contacts before copying them.

What This Tool Does

Finds phone numbers without picking up order numbers

Any document is full of digits — invoice numbers, dates, prices, reference codes. A naive search would return all of them. This one only accepts numbers that actually look like phone numbers: an international prefix, a bracketed area code, a service number, or a known mobile range.

Email addresses, including the awkward ones

Addresses with plus tags, dots, underscores, subdomains and country suffixes are all read correctly, and the punctuation that often sits right next to them is left out.

Web links with their query strings

Full URLs and bare www addresses both come through, query strings included. Trailing punctuation is trimmed so a link at the end of a sentence does not arrive with a full stop attached.

The full text stays available

Extraction is by nature lossy, so the complete recognised text sits right below the results. If something is missing you can see immediately whether the image never had it or the extraction skipped it.

Copy a group or everything

Take just the phone numbers, just the emails, or the whole lot at once. Each group is separate so you can paste straight into wherever it belongs.

How to Get Contact Details out of a Picture

1

Add the image

Drag in a photo or screenshot, or click to browse. JPG, PNG, WebP, GIF and BMP all work, up to 50MB.

2

Pick the language

Choose the language of the text in the picture. Phone numbers and emails are language-independent, but getting this right helps the surrounding text read correctly.

3

Copy what you need

Results arrive grouped by type. Copy a single group or all of it, and expand the full text if you want to check nothing was missed.

Real examples

Extract Phone Numbers, Emails and Links from Images · Example 1

These files were processed with this tool or its shared processing code. Compare the source, settings and downloadable results.

Getting Reliable Results

Crop to the part that matters

A photo of a card usually includes the table, a hand and half the room. Cropping to the card alone gives the engine far less to trip over.

Even lighting beats bright lighting

A shadow across half the card does more damage than the picture being slightly dark overall.

Hold it straight

Text running at an angle is read noticeably worse. A few seconds spent squaring up the shot pays for itself.

Use the original, not a forwarded copy

A photo passed through several messaging apps has been recompressed each time. That damage falls hardest on links, which have no dictionary to fall back on.

Double-check shortened links

Something like bit.ly/3xKp9Lm is a random string — one wrong character and it leads nowhere, and nothing can catch that. Ordinary domain names made of real words are far more reliable.

Check the full text if something is missing

Expand the recognised text below the results. It tells you straight away whether the detail was never read or simply not recognised as a contact.

Real examples

Extract Phone Numbers, Emails and Links from Images · More examples

These files were processed with this tool or its shared processing code. Compare the source, settings and downloadable results.

Questions About Extracting Contacts

On a clear photo or screenshot our own tests read phone numbers, emails and links all correctly. On a small, heavily compressed image — the kind that has been forwarded through several chat apps — phone numbers still came through but roughly a third of the links did not. Numbers are the most robust of the three.
That is exactly the problem this was built to avoid, and it is why plain digit strings are rejected outright. A number is only accepted if it carries a real telephone signature: an international prefix like +86, a bracketed area code, a 400 or 800 service number, or a recognised mobile range. In testing, invoice numbers, ID numbers, dates, IP addresses, prices, page numbers and version strings were all correctly left out.
Because a link like bit.ly/3xKp9Lm is a random string. When recognition is unsure about a character in an ordinary word, the language model can steer it back; with random characters there is nothing to steer towards. Ordinary domain names made of real words are much more reliable. Always check a shortened link before trusting it.
No. The recognition engine is downloaded into your browser and runs there. The image is read directly from your device and never sent anywhere. This matters more here than for most tools, because a business card contains someone else's personal information.
No, and deliberately so. Those are sensitive identifiers, and a tool that scrapes them out of photographs invites misuse. Only phone numbers, email addresses and web links are extracted.
The first time you use it, your browser downloads the recognition engine and language data — about 6MB in total. After that it is cached, and later runs start immediately.
You will see a message saying so, and the full recognised text is expanded automatically. That way you can tell at a glance whether the image simply had no contact details, or whether they were read but not recognised as such.
Yes. Numbers with an international prefix are recognised regardless of country, and both bracketed area codes and dash-separated formats work. One known gap: a bare ten-digit number with no separators or prefix at all is skipped, because accepting that pattern would mean accepting every ten-digit invoice number too.
Not here — this tool takes one image at a time, since the usual case is a single card or poster. If you need the raw text out of many images, the Image to Text tool handles batches and multi-page PDFs.