# Changelog of Image to Text OCR API: Extract Text from Images in Bulk (`rowcraft/image-ocr-text-extractor`) Actor

- **URL**: https://apify.com/rowcraft/image-ocr-text-extractor/changelog.md
- **Full Actor documentation**: https://apify.com/rowcraft/image-ocr-text-extractor.md

## Changelog

### 1.0.2 (2026-10-19)

- README: platform usage is included in the price (pay per event); list of Rowcraft actors updated

### 1.0.1 (2026-10-18)

- README: real screenshots of the input form and of a run's results.

### 1.0.0 (2026-10-18)

- First release: the text in images given by link or found on web pages, read with a local OCR engine (Tesseract, WebAssembly build, Apache-2.0) inside the run; no third-party OCR service and no API key.
- One row per image read: address of the image, page it was found on, how it was found (`direct`, `img`, `srcset`, `picture`, `og`), the cleaned text, mean confidence, optional confidence per line (`includeLines`), line, word and character counts, languages, width, height, format, size in bytes, SHA-1, OCR time and the reason when no text was returned.
- 16 languages that can be read together (English, German, French, Spanish, Italian, Portuguese, Dutch, Polish, Romanian, Swedish, Czech, Turkish, Russian, Ukrainian, Chinese simplified, Japanese); formats PNG, JPEG, GIF, WebP, BMP, TIFF read from the file header; five layout settings (`pageSegmentationMode`).
- Charged per image in which text was found (at least three letters or digits and a mean confidence of `minConfidence`, 40 by default). Images without text are delivered as free rows with `textFound = false`; tiny images, files above `maxImageMegabytes` or 40 megapixels, SVG and AVIF, duplicates (same address or same SHA-1), 404, anti-bot pages, robots.txt refusals and OCR failures are listed in `COVERAGE` and never charged.
- E-mail addresses, phone numbers, profile links and contact names next to a cue are masked in the text. No fields that name people.
- Polite fetching: robots.txt first on the page host and on every image host, redirects followed by hand, a pause between requests to the same host (Crawl-delay honoured up to 10 seconds), private addresses refused on the platform, stop after 10 refused addresses in a row.
- The engine worker is replaced after every image above 8 megapixels or when the run uses more than 55 percent of its memory, so large pictures fit in 1,024 MB (two 24-megapixel and two 39-megapixel pictures peaked at about 590 MB in tests); a damaged image restarts the worker and the run goes on.
- Standard Rowcraft automation: only new images (`onlyNew`, `stateName`, remembered by address and content hash, free rows included), end-of-run notification (`notifyUrl`), charge cap respected, stop with the summary saved 90 seconds before the run timeout, `RUN_SUMMARY` and `COVERAGE` records.
