Google Lens OCR Scraper
Pricing
from $3.00 / 1,000 image reads
Google Lens OCR Scraper
Extract text from any image with Google Lens OCR. Get full text, detected language, line and word bounding boxes in pixels. Export to CSV, Excel, JSON or XML.
Pricing
from $3.00 / 1,000 image reads
Rating
0.0
(0)
Developer
ParseForge
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share

๐ Google Lens OCR Scraper
๐ Turn any image into text in seconds. Google Lens read 12 lines and 95 words from a test sheet in 815 ms, with a pixel box for every word.
The Google Lens OCR Scraper sends your image URLs to the same text-recognition service that powers Google Lens in Chrome and returns everything it sees: the full text, the detected language, and each paragraph, line and word with its position, size and rotation in pixels of the original image. No browser is rendered and no proxy is needed, so a batch of 5 images finishes in about 3 seconds.
Every run delivers one row per image with 15 fields. The service reads printed and stylized text in any script it knows (Latin, Chinese, Korean, Cyrillic, Arabic and more), keeps reading direction and line rotation, and returns LaTeX for formulas when it recognizes one.
| ๐ฏ Target Audience | ๐ก Primary Use Cases |
|---|---|
| Developers building OCR pipelines | Extract text from screenshots, scans, receipts and product photos |
| Data teams and analysts | Index image archives and social media screenshots by their text |
| E-commerce and marketplace operators | Read labels, packaging and price tags at scale |
| Researchers and archivists | Digitize signs, posters and historical documents with coordinates |
๐ What the Google Lens OCR Scraper does
Give it a list of public image URLs (or base64 data URLs) and it returns, for each image:
- ๐ The full text, paragraphs separated by blank lines
- ๐ The detected language as an ISO code and a readable name
- ๐ Every line with
x,y,width,heightandrotationin degrees - ๐ค Every word inside each line with its own box (switch off when you only need lines)
- ยถ Every paragraph with its writing direction and box
- ๐ข Line, word and character counts plus the original image size
๐ก Why it matters: most OCR tools give you text or boxes, rarely both, and almost never rotation. With word-level coordinates you can highlight matches on the image, redact fields, crop regions or feed structured layout into an LLM. Failed images are reported as error rows and are never charged.
๐ฌ Full Demo (๐ง Coming soon)
๐ Output
| Field | Description |
|---|---|
๐ผ imageUrl | The image that was read |
๐ text | Full recognized text, paragraphs separated by blank lines |
๐ language | Detected language code, e.g. en, fr, zh-Hans |
๐ฃ languageName | Readable language name, e.g. Simplified Chinese |
๐ค hasText | Yes or No |
ยถ paragraphCount | Number of paragraphs found |
๐ lineCount | Number of lines found |
๐ข wordCount | Number of words found |
๐ charCount | Characters without whitespace |
โ imageWidth | Original image width in pixels |
โ imageHeight | Original image height in pixels |
ยถ paragraphs | Array of { index, text, writingDirection, lineCount, x, y, width, height, rotation } |
๐ lines | Array of { paragraph, text, x, y, width, height, rotation, wordCount, words[] } |
๐ scrapedAt | ISO timestamp of the read |
โ error | null on success, otherwise the reason the image failed |
Three real records from a run (word arrays shortened):
{"imageUrl": "https://raw.githubusercontent.com/JaidedAI/EasyOCR/master/examples/english.png","text": "Reduce your risk of coronavirus infection:\n\nClean hands with soap and water\nor alcohol-based hand rub\n\nCover nose and mouth when coughing and\nsneezing with tissue or flexed elbow","language": "en","languageName": "English","hasText": "Yes","paragraphCount": 7,"lineCount": 12,"wordCount": 61,"charCount": 294,"imageWidth": 905,"imageHeight": 480,"paragraphs": [{ "index": 1, "text": "Reduce your risk of coronavirus infection:", "writingDirection": "Left to right", "lineCount": 1, "x": 235, "y": 37, "width": 431, "height": 24, "rotation": 0 }],"lines": [{"paragraph": 1,"text": "Reduce your risk of coronavirus infection:","x": 235, "y": 37, "width": 431, "height": 24, "rotation": 0,"wordCount": 7,"words": [{ "text": "Reduce", "x": 235, "y": 37, "width": 74, "height": 24, "rotation": 0 },{ "text": "your", "x": 314, "y": 37, "width": 49, "height": 23, "rotation": 0 },{ "text": "risk", "x": 370, "y": 37, "width": 36, "height": 23, "rotation": 0 }]}],"scrapedAt": "2026-09-02T22:04:55.648Z","error": null}
{"imageUrl": "https://raw.githubusercontent.com/JaidedAI/EasyOCR/master/examples/chinese.jpg","text": "่ฅฟ\n\n315\n\nๆๅญ่ทฏ\n\nไธ\n\n309\n\nW\n\nYuyuan Rd.\n\nE","language": "zh-Hans","languageName": "Simplified Chinese","hasText": "Yes","paragraphCount": 8,"lineCount": 8,"wordCount": 11,"charCount": 22,"imageWidth": 640,"imageHeight": 339,"lines": [{ "paragraph": 3, "text": "ๆๅญ่ทฏ", "x": 191, "y": 85, "width": 265, "height": 67, "rotation": 0, "wordCount": 3 }],"scrapedAt": "2026-09-02T22:04:54.370Z","error": null}
{"imageUrl": "https://raw.githubusercontent.com/JaidedAI/EasyOCR/master/examples/french.jpg","text": "โ\n\nMairie du lor\n\nPalais du LOUVRE\n\nLES ARTS DรCORATIFS\n\nMusรฉe du LOUVRE","language": "fr","languageName": "French","hasText": "Yes","paragraphCount": 6,"lineCount": 7,"wordCount": 18,"charCount": 77,"imageWidth": 692,"imageHeight": 1024,"paragraphs": [{ "index": 1, "text": "โ", "writingDirection": "Top to bottom", "lineCount": 1, "x": 71, "y": 247, "width": 29, "height": 35, "rotation": -90.6 },{ "index": 2, "text": "Mairie du lor", "writingDirection": "Left to right", "lineCount": 1, "x": 217, "y": 228, "width": 150, "height": 29, "rotation": -6.3 }],"scrapedAt": "2026-09-02T22:04:55.430Z","error": null}
โจ Why choose this Actor
- ๐งญ Word-level boxes with rotation. Every word carries
x,y,width,heightandrotationin degrees, mapped back to the original image size. - ๐ Any script, auto-detected. English, French, Portuguese, Simplified Chinese and Korean came back correctly labeled in the verification run, with no language hint required.
- โก No browser, no proxy. The Actor talks to the Lens recognition API directly, so a typical image takes 0.8 to 2.5 seconds and a run costs almost nothing in compute.
- ๐งฑ Robust image fetching. Images are downloaded by the Actor with browser headers and sent as bytes, so hosts that refuse Google's own fetcher still work. Base64
data:imageinputs are accepted. - ๐ธ No start fee and no charge for failures. You pay per image successfully read, nothing per run.
๐ How it compares to alternatives
| Feature | Google Lens OCR Scraper | Typical Lens OCR actors | Cloud vision APIs |
|---|---|---|---|
| Word boxes with rotation | โ | โ ๏ธ Lines or words, rarely rotation | โ |
| Paragraph writing direction | โ | โ | โ ๏ธ |
| Language name in plain English | โ | โ | โ |
| Base64 input | โ | โ ๏ธ | โ |
| Start fee per run | โ None | $0.002 to $0.01 | n/a |
| Visual matches / reverse image search | โ Text only | โ ๏ธ Some | โ |
๐ How to use
- Create a free Apify account and get $5 of monthly credit.
- Open the Google Lens OCR Scraper and paste your image URLs into Image URLs, one per line.
- Set Max Items if you want to read only the first N images.
- Leave Include word boxes on for per-word coordinates, or switch it off for smaller rows.
- Click Start. When the run finishes, open the Dataset tab and export to CSV, Excel, JSON or XML.
Example input:
{"imageUrls": ["https://raw.githubusercontent.com/tesseract-ocr/tessdoc/main/images/eurotext.png","https://raw.githubusercontent.com/JaidedAI/EasyOCR/master/examples/english.png"],"maxItems": 10,"includeWords": true}
๐ผ Business use cases
๐งพ Receipts, invoices and forms
Read scanned documents and use the line coordinates to map each value to its label, then push the structured result into your accounting or CRM system.
๐ Product and shelf photos
Extract brand names, ingredient lists and price tags from marketplace listings or store photos, and compare them against your catalog.
๐ฑ Social media and ad monitoring
Screenshots of posts, stories and ads become searchable text. Track competitor claims, promo codes and disclaimers across thousands of images.
๐ Archive digitization
Convert posters, signs and historical scans into text with positions, keep the writing direction and rotation, and build a searchable index with highlights.
๐ Automating Google Lens OCR Scraper
- Make / Zapier: trigger a run whenever a new image lands in Google Drive, Dropbox or an S3 bucket and write the text back to a sheet.
- Slack: post the recognized text of every image shared in a channel.
- Airbyte: sync the dataset into your warehouse on a schedule.
- GitHub Actions: run OCR on images committed to a repo and fail the build when required text is missing.
- Google Drive: batch-process a folder of scans and store the JSON next to each file.
Every run is also available through the Apify API and the Apify client libraries for JavaScript and Python.
๐ Beyond business use cases
- ๐ฌ Research: build multilingual OCR datasets with ground-truth positions.
- ๐ Personal: turn photos of recipes, whiteboards and book pages into notes.
- ๐ค Non-profit: make image-only flyers and announcements accessible as text.
- ๐งช Experimentation: feed word coordinates into layout-aware LLM prompts and compare against other OCR engines.
๐ค Ask an AI assistant about this scraper
Paste this into ChatGPT, Claude or Gemini: "I have a dataset from the Apify Google Lens OCR Scraper with fields text, language, lines and words with x, y, width, height and rotation. Write code that draws the word boxes over the original image."
โ Frequently Asked Questions
๐ผ Which image formats are supported?
JPEG, PNG, WebP, GIF, BMP and TIFF, up to 20 MB per image. Images are downscaled to 1000 px on the long side before recognition; coordinates are mapped back to the original size.
๐ Can I send base64 images instead of URLs?
Yes. Put a data:image/png;base64,... string in the Image URLs list and it is read like any other image.
๐ Do I need to tell it the language?
No. The language is detected automatically and returned as both a code and a name.
๐ What does rotation mean?
The tilt of the text line in degrees, counter-clockwise positive. A vertical line reads as about 90 or -90.
๐ Does it return visual matches or similar images?
No. This Actor is text recognition only. Google serves the visual-match results page only to interactive browser sessions, so this Actor focuses on what the Lens recognition API returns reliably: text, layout and language.
๐ Does it read handwriting?
Clear handwriting is often recognized, but accuracy is best on printed text with good contrast.
๐งฎ What about formulas?
When Google recognizes a formula, the word carries an extra latex field.
๐ต Am I charged for images that fail?
No. Failed images produce an error row and are never charged.
๐ฆ Is there a rate limit?
None was hit at 5 parallel images. You can raise Concurrency up to 20; lower it if you see API errors.
๐ก Do I need a proxy?
No. The recognition API is open. A proxy option exists in case your own network is restricted.
๐ฆ How do I get the results?
Open the run, click Dataset and export CSV, Excel, JSON or XML, or fetch them through the API.
๐ Integrate with any app
The dataset is available through the Apify API, webhooks and integrations with Make, Zapier, Slack, Airbyte, Google Drive, GitHub and more.
๐ Recommended Actors
๐ก Pro Tip: browse the complete ParseForge collection.
๐ Need Help? Open our contact form
โ ๏ธ Disclaimer: This is an independent tool and is not affiliated with, endorsed by, or connected to Google. It only processes images you provide and uses publicly reachable services.