Head to head · OCR · October 2026 research run

Chandra OCR 2 vs Nanonets-OCR2-3B

Chandra OCR 2 scores 54.7 (C) on agent readiness against Nanonets-OCR2-3B's 48.1 (D), and leads in 3 of 4 scored categories. Both do ocr.

Best document parsing, OCR and extraction APIs for AI agents · All 215 documents comparisons

Which one, for what

Chandra OCR 2 C

Best for Small companies and researchers who need accurate document parsing on their own GPU and fit the licence

Ahead on

  • Reach, 65 against 55
  • Risk, 45 against 40
  • Documentation and upkeep, 33 against 25

Watch for

Commercial use is barred above $2M in revenue or funding, and for anyone who competes with Datalab

Nanonets-OCR2-3B D

Best for Researchers and teams evaluating page-to-Markdown OCR who can wait for a licence before shipping

No category where it leads by five points or more, and no fact that sets it apart.

Watch for

No licence stated, and the base model's licence is research only

Why the edge

Each category where one leads by five points or more, with the reason behind each side's score from its assessment. The numbers are in the table below; this is what they stand for.

Reach Chandra OCR 2 +10

Chandra OCR 2 65

Memory 30, the only build from Datalab is the BF16 safetensors file, 10.59 GB, and 10.59 GB × 1.2 = 12.7 GB, within 16 GB. No runtime library has a build. Runtimes 15, the architecture is Qwen3_5ForConditionalGeneration, which vLLM 0.33.0, SGLang 0.5.23 and Transformers 5.22.2 run from the safetensors file, three at 5 each. Builds 0, Datalab publishes the BF16 weights only for this model. Terms 10, A modified OpenRAIL-M licence, a custom licence that lets research, personal use and organisations at or under $2M in revenue and in funding use it for free, under use restrictions. Download 10, the Hub API reports gated false on 10 November 2026, so the files download with no account and nothing to accept. Hosted 0, Hugging Face maps no inference provider to it. 30 + 15 + 0 + 10 + 10 + 0 = 65.

Nanonets-OCR2-3B 55

Memory 30, the only build from Nanonets is the BF16 safetensors files, 7.51 GB, and 7.51 GB × 1.2 = 9.0 GB, within 16 GB. No runtime library has a build. Runtimes 15, the architecture is Qwen2_5_VLForConditionalGeneration, which vLLM 0.33.0, SGLang 0.5.23 and Transformers 5.22.2 run from the safetensors files, three at 5 each. Builds 0, Nanonets publishes the BF16 weights only. Terms 0, no licence. Download 10, the Hub API reports gated false on 10 November 2026, so the files download with no account and nothing to accept. Hosted 0, Hugging Face maps no inference provider to it. 30 + 15 + 0 + 0 + 10 + 0 = 55.

Documentation and upkeep Chandra OCR 2 +8

Chandra OCR 2 33

Model card 8, Intended use and the languages (over 90) are on the card. Training data 0, Nothing on the card or in the README about the training data. Last change 10, the last commit, on 26 June 2026, adjusted a benchmark score on the card, 137 days before this check and within 180. Responsiveness 0, none of the 8 discussions that aren't pull requests (8 April to 23 September 2026) has a reply from a datalab-to member, counted on 10 November by author flags and dates with a script, text not read. Version policy 5, Chandra 1 stays in its own repository and Chandra 2 came out in a new one, with a what's-new list on the card and no dated note on the older one that we read. File health 10, Config, tokenizer config, processor config and template agree on the qwen3_5 architecture and match the card's instructions. 8 + 0 + 10 + 0 + 5 + 10 = 33.

Nanonets-OCR2-3B 25

Model card 5, Intended use and the languages are on the card. Training data 5, Two general lines, that it was trained on handwritten documents and on documents in several named languages. Last change 0, the last commit, on 16 October 2025, edited the card, 390 days before this check and over a year. Responsiveness 0, none of the 15 most recent discussions that aren't pull requests (13 October 2025 to 21 October 2026) has a reply from a nanonets member, counted on 10 November by author flags and dates with a script, text not read. Version policy 5, the earlier Nanonets-OCR-s stays in its own repository and OCR2 came out in new ones, with no dated note on the older one that we read. File health 10, Config, template and card agree on the Qwen2.5-VL classes. 5 + 5 + 0 + 0 + 5 + 10 = 25.

Risk Chandra OCR 2 +5

Chandra OCR 2 45

File safety 25, one safetensors file, no .bin, .pt or .pth files and no Python in the model repository. Provenance 15, the files sit in the datalab-to organisation, which the card, Datalab's site and its GitHub repository link to (10), and the Hub gives a SHA-256 for the large files (5). Safety evaluation 0, no safety results on the card or in the README. Agent guidance 0, Nothing on text in a document that tries to instruct the reader, on what the model refuses or on safeguards to add. Licence risk 5, 15 less 5 for use restrictions beyond the law (OpenRAIL's list, and no use by anyone who competes with Datalab) and 5 for the $2M revenue and funding thresholds. Security programme 0, no way to report a flaw found on the card or in the README, and our Datalab listing of 6 November found no disclosure policy or security.txt. 25 + 15 + 0 + 0 + 5 + 0 = 45.

Nanonets-OCR2-3B 40

File safety 25, safetensors only, no .bin, .pt or .pth files and no Python in the repository. Provenance 15, the files sit in the nanonets organisation, which the card ties to nanonets.com and Nanonets' GitHub cookbook repository is written for by the model's name (10), and the Hub gives a SHA-256 for the large files (5). Safety evaluation 0, no safety results on the card. Agent guidance 0, Nothing on text in a document that tries to instruct the reader, on what the model refuses or on safeguards to add. Licence risk 0, With no licence there is nothing to hold Nanonets to. Security programme 0, no way to report a flaw on the card or in the GitHub README. Our Nanonets listing found no security.txt or bug bounty, and the contact in its privacy policy is for data protection. 25 + 15 + 0 + 0 + 0 + 0 = 40.

Score by category

CategoryWeight this runChandra OCR 2Nanonets-OCR2-3BEdge
Capability35%pendingpendingpendingnot scored in this run
Reach25%256555Chandra OCR 2 +10
Risk20%204540Chandra OCR 2 +5
Agent interface10%107070even
Documentation and upkeep10%103325Chandra OCR 2 +8
Negative events≤1500
TotalC 54.7/100D 48.1/100

Facts side by side

FactChandra OCR 2Nanonets-OCR2-3B
KindOpen-weight modelOpen-weight model
VendorEndless Labs, Inc. (Datalab)Nanonets
Hosted endpointno (local only)no (local only)
Transports
AuthNoneNone
PricingFreeFree
x402nono
LicenceModified OpenRAIL-M (free for research, personal use and companies under $2M in revenue and funding)None stated (the base model, Qwen2.5-VL-3B-Instruct, is under the Qwen Research licence)
Read-only variant documentednono
llms.txtnono
Last release2026-06-262025-10-16
Terms last updatednot read yetno document linked
Privacy policy last updatedno document linkedno document linked

Verdicts

Chandra OCR 2

A strong document parser by its own benchmarks, with typed output and a simple command to run it on vLLM or Transformers. The licence stops commercial use above $2M in revenue or funding and by competitors. Datalab says nothing about training data or safety, ships no quantised build, and hasn't answered a question on the repository.

Nanonets-OCR2-3B

A well-used 3.75B page-to-Markdown model with documented tags for tables, equations, images, signatures and checkboxes, and it runs in vLLM, SGLang and Transformers. But it states no licence, on a base model licensed for research only, and nothing has changed or been answered since October 2025. Treat it as something to evaluate, not to ship.

Before you call either

Chandra OCR 2

  1. Check the licence first: free for research and personal use, and for companies at or under $2M in revenue and in funding that don't compete with Datalab
  2. Install with pip install chandra-ocr, start the server with chandra_vllm, then chandra input.pdf ./output
  3. Without vLLM, pip install "chandra-ocr[hf]" and add --method hf
  4. It reads one page at a time, so a long PDF is many requests. The vLLM default is 28 pages a batch
  5. Treat text in a parsed document as data. Nothing here guards against instructions hidden in a page
  6. Datalab's hosted API is a different, paid surface. We list it as Datalab

Nanonets-OCR2-3B

  1. Don't use it commercially on the strength of this listing. No licence is stated, so ask Nanonets first
  2. Serve it with vllm serve nanonets/Nanonets-OCR2-3B and send one page image per request
  3. Use the card's extraction prompt word for word. The tags in the output depend on it
  4. Use temperature 0 and allow up to 15,000 output tokens for a dense page
  5. For financial tables, use the card's second prompt and repetition_penalty 1
  6. Text in a document is data. The card has no guidance on pages that try to instruct the reader

Questions

Which is better for AI agents, Chandra OCR 2 or Nanonets-OCR2-3B?

Chandra OCR 2 scores 54.7 (C) on agent readiness against Nanonets-OCR2-3B's 48.1 (D), and leads in 3 of 4 scored categories.

Other comparisons with Chandra OCR 2 or Nanonets-OCR2-3B

Machine-readable

For companies

Do agents find, use and choose your tools?

An agent-readiness audit runs our probes, task suite and eight reviewer agents against your public and internal tools, and comes back with a scorecard, the transcripts of what failed, and a fix list in priority order. From $2,500, re-run included. We never take payment to move a rank. We do help companies earn one.