Skip to content
Start freeGPT-5 · Claude · DeepSeek V4 · Qwen3 — in ₹One OpenAI-compatible endpointBilled in rupeesGST invoiceNo international cardGet started →Start freeGPT-5 · Claude · DeepSeek V4 · Qwen3 — in ₹One OpenAI-compatible endpointBilled in rupeesGST invoiceNo international cardGet started →
Blog

DeepSeek-OCR is live on unoblox: turn document images into usable text

DeepSeek-OCR is now on unoblox. Turn document images into text or Markdown with an India-hosted model and rupee-native token pricing.

Your next AI feature might be stuck inside a screenshot.

A scanned page looks readable to a person. To your application, it can still be a rectangle of pixels. Before you can search it, index it or pass its contents to another model, you need the text.

DeepSeek-OCR is now available on unoblox. Send document images and receive text or Markdown through the same platform you use for your other AI calls. The model is self-hosted in India.

Explore DeepSeek-OCR

Images, bills, receipts, invoices — and handwritten notes

Bring your images, bills, receipts and invoices into the same image-to-text workflow. Try handwritten notes too: legibility and scan quality affect the result, so check the extraction against the original.

Turn the resulting text into searchable records, feed it into a retrieval pipeline, or pass it to your application for further processing.

DeepSeek-OCR gives developers the recognition step. Your application decides what happens next: index the extracted text, ask another model a question about it, or send it into an existing workflow.

For agencies, this means an OCR model to evaluate for client applications without hosting the model yourselves. For product teams, it is another capability available through unoblox.

What is available today

CapabilityCurrent catalogue listing
Model IDdeepseek-ai/deepseek-ocr
InputText and images
OutputText / Markdown
Context window8,192 tokens
DeploymentSelf-hosted in India
Displayed input rate₹1.00 per million tokens
Displayed output rate₹1.00 per million tokens

Prices are the public model-page rates checked on 28 September 2026. Token pricing is not a fixed per-page quote. Document size and generated output affect usage; consult the live model page and billing documentation for current rates, platform fees and billing details.

Start with one document you keep retyping

Choose a representative document image. Use a non-sensitive sample for your first evaluation, and keep a manually checked version of the text beside it.

  1. Open the model page and copy deepseek-ai/deepseek-ocr.
  2. Follow the unoblox API reference to send an image with your OCR instruction. The API base URL is https://api.unoblox.ai/v1.
  3. Compare the extraction against the original, particularly names, numbers, punctuation and reading order.
  4. Check latency and billed usage before extending the test to more pages.

If your source is a scanned PDF, prepare page images for this image-input workflow. The listing does not establish direct PDF upload support. Tables, poor scans and complex layouts deserve their own evaluation before you automate downstream actions.

Try an image with cURL

Create an API key in your unoblox dashboard, then replace YOUR_UNOBLOX_API_KEY in the command below. Keep the key private. The example below uses a local PNG image, Python 3 and cURL. For a JPEG, change both the filename and MIME type to image/jpeg.

python3 - document.png image/png > ocr-request.json <<'PY'
import base64
import json
import pathlib
import sys

image = base64.b64encode(pathlib.Path(sys.argv[1]).read_bytes()).decode()
json.dump({
    "model": "deepseek-ai/deepseek-ocr",
    "messages": [{
        "role": "user",
        "content": [
            {"type": "text", "text": "Convert this document to Markdown."},
            {"type": "image_url", "image_url": {
                "url": f"data:{sys.argv[2]};base64,{image}"
            }}
        ]
    }],
    "temperature": 0,
    "max_tokens": 2048,
    "stream": False
}, sys.stdout)
PY

curl --fail-with-body https://api.unoblox.ai/v1/chat/completions \
  -H "Authorization: Bearer YOUR_UNOBLOX_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-binary @ocr-request.json \
  --output ocr-response.json

python3 -c 'import json; r=json.load(open("ocr-response.json")); print(r["choices"][0]["message"]["content"])'

This uses the OpenAI-compatible image message format. It is an integration example, not a published accuracy benchmark. Inspect the response and finish_reason; a length finish can mean the output limit needs increasing within the model's context allowance. Local request files contain your encoded image, so handle them as you would the original document.

Starting from a PDF

For a scanned PDF, render a page to PNG first using Poppler's pdftoppm, then use the same cURL request above. This workflow sends a page image; it does not assume direct PDF upload support.

# Requires Poppler. Render the first page of document.pdf to document.png.
pdftoppm -f 1 -l 1 -r 150 -png -singlefile document.pdf document

# Now run the image example above with document.png.

For a multi-page document, render and process each page separately, retaining page order. Start with one page to check quality and usage before processing the rest. The sample needs to be validated on your own documents and account.

A useful building block for your next feature

The opportunity is bigger than copying text out of a picture. Once a document becomes usable text, your application can make it searchable and bring it into a wider AI workflow.

DeepSeek-OCR is the model capability. unoblox provides access. You build the experience around it.

Try one document your team keeps retyping.

Get started with DeepSeek-OCR on unoblox

References

DeepSeek-OCROCRDocument AIAPILaunch
ShareLinkedInWhatsAppTelegram

Start building in rupees

Call every major model through one OpenAI-compatible endpoint, billed in ₹ on a GST invoice.