On this page
Yes, PaddleOCR is free, including for commercial use. The code is licensed under Apache-2.0.12 All 16 PaddlePaddle model cards we checked on Hugging Face, including PP-OCRv6, PP-OCRv5 and PaddleOCR-VL-1.6, declare Apache-2.0 as well.3 There are no fees or usage limits. If you distribute it, include the license text, keep the copyright notices and mark the files you changed. The license gives you no right to use the PaddleOCR or PaddlePaddle names to promote your product.
What Apache-2.0 lets you do#
Apache-2.0 is a permissive license. Unlike the GPL or AGPL, it doesn't require you to publish your own source code, and it doesn't care whether your product is free or paid. Section by section, in plain English:
| Section | What it says | What it means for you |
|---|---|---|
| §2 Copyright | A "perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable" license to reproduce, modify, display, sublicense and distribute | Use it, change it, ship it in closed-source or paid products. |
| §3 Patents | A matching royalty-free patent license from each contributor, for their contributions | Contributors can't later sue you for patents their code needs. |
| §3 Termination | If you sue anyone claiming the Work infringes your patent, your patent license "shall terminate" | Don't start patent litigation over PaddleOCR while relying on it. |
| §4 Your own terms | You "may provide additional or different license terms" for your modifications | Your changes and your product can be proprietary. |
| §6 Trademarks | No permission to use "trade names, trademarks, service marks, or product names" except to describe the origin | You may say "uses PaddleOCR", but not brand your product as PaddleOCR or imply endorsement. |
| §7–8 Warranty | Provided "AS IS"; contributors aren't liable for damages | If it misreads an invoice, that's your risk, not Baidu's. |
| §9 Support | You may charge for support, warranty or indemnity, on your own behalf | You can sell support or SLAs around it. |
Quotes are from PaddleOCR's own LICENSE file, which is the standard Apache License 2.0 text with the copyright line "Copyright (c) 2016 PaddlePaddle Authors".1
What you must do when you redistribute#
Section 4 sets four conditions on redistribution, meaning when you hand copies of PaddleOCR or a modified version to someone else. That includes a desktop app, an SDK, a Docker image you give to customers, or an appliance.1
Give recipients a copy of the license — §4(a)#
Ship the Apache-2.0 text with your product, for example in a
LICENSES/folder or an "Open-source notices" screen.Mark files you changed — §4(b)#
Modified files must carry "prominent notices stating that You changed the files". A comment at the top of each changed file is the usual way.
Keep existing notices — §4(c)#
Retain "all copyright, patent, trademark, and attribution notices" from the source, such as the license headers at the top of PaddleOCR's Python files.
Pass on NOTICE contents, if there is a NOTICE file — §4(d)#
The PaddleOCR repo has no top-level NOTICE file, so for the main library there is nothing extra to copy. The iOS demo folder does have one (
deploy/ios_demo/NOTICE). If you ship that code, include it.4
If you only run PaddleOCR on your own servers, for example behind an API your customers call, you aren't handing them copies, and these §4 conditions are written for redistribution. Many teams still keep the notices in their internal records and their "third-party software" page. That costs nothing and avoids questions during due diligence.
Model weights: also Apache-2.0#
Code licenses don't automatically cover trained models, so we checked the license field of PaddlePaddle's model cards on Hugging Face. All 16 return apache-2.0:3
| Purpose | Models checked |
|---|---|
| Text detection and recognition | PP-OCRv6_medium_det, PP-OCRv6_medium_rec, PP-OCRv6_small_det, PP-OCRv6_tiny_det, PP-OCRv5_server_det, PP-OCRv5_mobile_rec |
| Document VLM | PaddleOCR-VL, PaddleOCR-VL-1.5, PaddleOCR-VL-1.6 |
| Layout | PP-DocLayoutV3, PP-DocLayout_plus-L |
| Formulas, tables, charts | PP-FormulaNet_plus-L, SLANeXt_wired, PP-Chart2Table |
| Preprocessing | PP-LCNet_x1_0_doc_ori (page orientation), UVDoc (unwarping) |
Two limits to what we verified. First, we didn't check every model PaddleOCR can download, nor the copies served from ModelScope or Baidu's own download servers. Second, PaddleOCR-VL is built on ERNIE-4.5-0.3B, and its card also credits other projects. PaddlePaddle declares Apache-2.0 for the released model, and the 1.6 repo includes the full Apache text, but we did not audit the upstream licenses separately.3 If a model matters to your product, open its card and record the license you saw, with the date.
Parts of the repo under other licenses#
A few files in the PaddleOCR repository come from other projects and keep their own permissive licenses:4
| Component (location) | License | In the pip package? |
|---|---|---|
| latex_dict.py and omml.py paddleocr/_doc2md/math/ | MIT (adapted from dwml via MinerU 3.0.0) | Yes, inside the package |
| tensorRT_Pro deploy/cpp_infer/THIRD_PARTY_LICENSES/ | MIT | No, C++ deployment code |
| Clipper 6.4.2 deploy/ios_demo/ | Boost Software License 1.0 | No, iOS demo |
About 91 files under ppocr/ say "This code is refer from: …", pointing to projects such as mmocr. We haven't audited each one. If you vendor the training code, check those headers.
Other official packages: the browser SDK @paddleocr/paddleocr-js and the @paddleocr/api-sdk TypeScript client are Apache-2.0. The browser SDK depends on onnxruntime-web (MIT), js-yaml (MIT), @techstark/opencv-js (Apache-2.0) and clipper-lib (listed as "BSL" on npm). The paddleocr-mcp package has no license field in its PyPI metadata, although its source files carry Apache-2.0 headers.5
Your dependency tree: what pip actually installs#
PaddleOCR's license doesn't cover the libraries it pulls in, so we checked those too. We followed the declared requirements of a base pip install paddleocr==3.7.0 in our Python 3.13 test environment on October 27, 2026. That comes to 64 distributions including PaddleOCR itself, or 71 with paddlepaddle. Then we read each one's declared license.6
- The core is permissive:
paddleocrandpaddlex(Apache-2.0),paddlepaddle(Apache),onnxruntime(MIT),opencv-contrib-python(Apache 2.0), and most of the rest MIT, BSD or Apache. - Two are LGPL:
python-bidi(required by paddlex) andcrc32c(viabce-python-sdk←aistudio-sdk). - Two involve MPL-2.0:
certifi(via requests) andtqdm(MPL-2.0 AND MIT). pypdfium2declares "BSD-3-Clause, Apache-2.0, dependency licenses" because it bundles the PDFium binary.
LGPL and MPL are weak-copyleft licenses. Their extra obligations mostly concern modifying or redistributing those libraries, for example inside a frozen executable or a Docker image you give to customers. To list licenses in your own environment:
import importlib.metadata as md
def license_of(m):
if m.get("License-Expression"):
return m["License-Expression"]
text = (m.get("License") or "").split("\n")[0]
if text:
return text
return ", ".join(c.split("::")[-1].strip()
for c in (m.get_all("Classifier") or [])
if c.startswith("License ::"))
for d in sorted(md.distributions(), key=lambda d: d.metadata["Name"].lower()):
print(f'{d.metadata["Name"]:28} {d.version:12} {license_of(d.metadata)[:60]}')Run it inside a fresh virtual environment where you installed only what you ship. Extras such as paddleocr[doc-parser] add more packages.
What PaddleOCR costs#
Self-hosted: free#
No license fee and no per-page charge. The library and models run on your own machine.
Hosted API: free quota#
Baidu's AI Studio service allows 3,000 pages per model per day. We found no published price.
Hardware: yours#
CPU is enough for text OCR. PaddleOCR-VL realistically needs a GPU.
Running it yourself. Your costs are compute and the time to operate it. For scale, in our benchmark on a 4-vCPU Xeon with no GPU, PP-OCRv6 small averaged 0.9 s per page and medium 2.9 s, using the ONNX Runtime engine. PaddleOCR's own docs say "CPU inference is not recommended" for PaddleOCR-VL, so budget for a GPU if you need it.8
The official hosted API. paddleocr.com redirects to Baidu AI Studio, which runs PaddleOCR models as a service. According to its quota rules (updated February 10, 2026), each user can parse up to 3,000 pages per model per day, after which the API returns HTTP 429. For files over 100 pages "the API will only parse the first 100 pages", although the async guide says it "supports up to 1000 PDF pages per request". The two documents disagree. Higher volumes go through a questionnaire "to apply for a free quota increase". We could not find any published price.7 The Apache license covers the open-source code, not this service: the service has its own terms, and your files are processed on Baidu's servers. Details in our API guide.
How this compares with other OCR tools#
Licensing is where OCR tools differ most, and the catch is often in the weights rather than the code.9
| Tool | Code | Weights | Commercial catch |
|---|---|---|---|
| PaddleOCR | Apache-2.0 | Apache-2.0 | None beyond the Apache conditions |
| RapidOCR | Apache-2.0 | Apache-2.0 (PaddleOCR-derived) | Same as PaddleOCR |
| Docling | MIT | Per model package | Check each model you enable |
| MinerU | Apache 2.0 + extra terms | 2.5-Pro Apache-2.0; 2.5-2509 AGPL-3.0 | Separate license above 100M MAU or $20M monthly revenue; online services must say they use MinerU |
| Surya / Marker | Apache-2.0 | Modified Open Rail-M | Weights free only for research, personal use and startups under $5M |
| AWS Textract | Proprietary service | n/a | $1.50 per 1,000 pages for basic text (first 1M, US West Oregon) |
The full side-by-side, with benchmarks and languages, is on our OCR comparison page.
Checklist: shipping PaddleOCR in a commercial product#
- Pin what you ship. Record the
paddleocrversion and every model name you load, for example PP-OCRv6_medium_det and PP-OCRv6_medium_rec. - Record each model's license. Save the Hugging Face card URL and the license it showed (apache-2.0 for the 16 we checked), with the date. If you fetch models from somewhere else, check that source.
- Include the Apache-2.0 text in your distribution, §4(a).
- Keep PaddleOCR's copyright and license headers in any source you ship, §4(c).
- Mark modified files if you patched PaddleOCR, §4(b). Keep the patches in version control.
- Add the third-party notices for what you actually ship: MIT for the two
_doc2md/mathfiles, and MIT or Boost if you reuse the C++ or iOS deployment code. - Inventory your Python dependencies with the script above and review the LGPL and MPL packages, especially if you freeze or containerize them for customers.
- Don't use the names as branding. "Powered by PaddleOCR" as a factual credit is fine under §6. A product called "PaddleOCR Pro" or a Baidu logo on your site is not.
- Decide on the hosted API separately. If you call Baidu's API instead of running locally, read its terms and check where your users' documents go.
- Re-check on upgrades. Licenses change: MinerU moved from AGPL-3.0 to a custom license between releases. Re-run your inventory when you bump versions.
Not legal advice. This page explains the license text and what we found in the repository and package metadata on October 27, 2026. It isn't legal advice. For a product launch, an acquisition or anything with real money at stake, have your counsel review the license text and your dependency list.
Questions#
Is PaddleOCR free?
Yes. The software and the model weights we checked are Apache-2.0, so there is no license fee and no per-page charge when you run it yourself. Baidu's hosted PaddleOCR API has a free daily quota (3,000 pages per model) and no published price.
Can I use PaddleOCR for commercial purposes?
Yes. Apache-2.0 grants a royalty-free license to use, modify and distribute the code, including in paid, closed-source products. If you distribute it, include the license text, keep the copyright notices and mark files you changed.
Is PaddleOCR open source?
Yes. The full source, including training code, is public on GitHub under Apache-2.0, a permissive open-source license. The README states "This project is released under the Apache 2.0 license".
Do I have to open-source my own code if I use PaddleOCR?
No. Apache-2.0 has no copyleft clause. §4 lets you put your modifications and your product under any terms you choose, as long as you meet its notice conditions for the PaddleOCR parts.
Are the PaddleOCR models also Apache-2.0?
The 16 PaddlePaddle model cards we checked on Hugging Face, covering PP-OCRv6, PP-OCRv5, PaddleOCR-VL 1.0/1.5/1.6, layout, formula, table and preprocessing models, all declare apache-2.0. We didn't check every model or every mirror.
Do I need to credit PaddleOCR in my app?
If you distribute PaddleOCR, you must include the license and keep its copyright notices, which most apps do on an "open-source licenses" screen. A visible "powered by" credit isn't required by Apache-2.0. That's unlike MinerU's license, which requires online services to say they use MinerU.
Can I call my product PaddleOCR-something?
No. §6 of the license grants no trademark rights beyond describing where the code came from. You can say your product uses PaddleOCR; you shouldn't name or brand it as PaddleOCR, or imply Baidu endorses it.
Sources
- PaddleOCR
LICENSE: "Apache License, Version 2.0, January 2004" (lines 1–3); §2 copyright grant (66–71); §3 patent grant and termination (73–87); §4 redistribution conditions (89–128); §6 trademarks (138–141); §7 warranty disclaimer (143–151); §8 limitation of liability (153–163); §9 (165–174); copyright line "Copyright (c) 2016 PaddlePaddle Authors" (189). Repo checked at commitdab3fe3(2026-09-16): github.com/PaddlePaddle/PaddleOCR/blob/main/LICENSE. - PaddleOCR README: "This project is released under the Apache 2.0 license" (README.md:281). Package metadata:
pyproject.toml:35license = {text = "Apache License 2.0"}; PyPI paddleocr 3.7.0. - Hugging Face model API,
cardData.license, read 2026-10-27 for 16 PaddlePaddle models:https://huggingface.co/api/models/PaddlePaddle/<name>. The PaddleOCR-VL-1.6 repo also contains a LICENSE file with the Apache 2.0 text; its card tags ERNIE4.5: huggingface.co/PaddlePaddle/PaddleOCR-VL-1.6. - Repository tree at commit
dab3fe3: no top-level NOTICE file;deploy/cpp_infer/THIRD_PARTY_LICENSES/tensorRT_Pro/LICENSE(MIT);deploy/ios_demo/NOTICEanddeploy/ios_demo/PaddleOCRDemo/ThirdParty/Clipper1/LICENSE(Boost Software License 1.0);paddleocr/_doc2md/math/latex_dict.pyandomml.py, lines 17–18 (MIT, "Adapted from https://github.com/xiilei/dwml … via MinerU 3.0.0"). - npm registry metadata for PaddleOCR.js dependencies (latest versions, 2026-10-27): clipper-lib BSL, onnxruntime-web MIT, js-yaml MIT, @techstark/opencv-js Apache-2.0.
@paddleocr/paddleocr-jsand@paddleocr/api-sdk: Apache-2.0. PyPIpaddleocr-mcp0.8.5: no license field; its source files carry Apache-2.0 headers (mcp_server/paddleocr_mcp/providers.py:1–13). - Our own check, 2026-10-27: license metadata of every Python distribution pulled in by
paddleocr3.7.0 (base install, no extras),paddlepaddleandonnxruntime, read from installed package metadata on Linux x86-64, Python 3.13. Versions are those our resolver installed that day. - PaddleOCR hosted API quota: "Each user can parse up to 3,000 pages per model per day"; HTTP 429 beyond it; files over 100 pages: "the API will only parse the first 100 pages"; "fill out this questionnaire to apply for a free quota increase" — Baidu AI Studio, "API Quota Rules and Error Code Description", updated 2026-02-10: ai.baidu.com/ai-doc/AISTUDIO/pmjcld5qm. The Async API guide (updated 2026-02-04) says "Supports up to 1000 PDF pages per request": Mml7n69e7. No price was published on any page we could read;
www.paddleocr.comredirects toaistudio.baidu.com/paddleocr. - Our CPU benchmark (PaddleOCR 3.7.0, 4-vCPU Intel Xeon @ 2.10 GHz, no GPU, ONNX Runtime engine): paddleocr.dev/benchmarks. PaddleOCR-VL: "CPU inference is not recommended" (
docs/version3.x/integrations/mcp_server.en.md:261). - Competitor licenses and prices as collected for our comparison page: MinerU LICENSE.md and PyPI history; Hugging Face license fields for MinerU2.5 weights; Surya and Marker READMEs (weights: "modified AI Pubs Open Rail-M license"); Docling README; RapidOCR README; AWS Textract pricing page (US West, Oregon). All fetched 2026-10-27.