Scale Ticket OCR API

Turn photographed truck-scale tickets into normalized operational data without maintaining a parser for every facility layout.

Scale Ticket OCR API workflow mapping printed ticket fields to structured JSON

Scale Tickets Are Structured—But Never Quite the Same

Truck scales, transfer stations, grain elevators, and material yards all print gross, tare, and net weight, but the row order, labels, units, and identifiers vary by device and operator. Plain OCR may read the characters while losing the relationship between a vehicle, a load, and its first and second weighing. Rule-based parsing then breaks as soon as a facility changes printer software or ticket layout.

One Scale Ticket Schema for Multiple Facilities

The StructOCR weighbridge ticket OCR engine classifies scale tickets, extracts their operational fields, and returns the same JSON structure across layouts. Each printed weight is preserved alongside a numeric value and normalized kilogram value. Try a real sample in the scale ticket scanner before integrating the API.

Live Demo: Weighbridge Ticket OCR Scanner

No registration required. Upload a file to test the extraction.

1
Upload
2
Results

Drop files here or click to browse

JPG · PNG · WebP  ·  up to 500 files · max 4.5 MB each

No files selected
Need more testing? Create a free account to get 200 free credits (equals 100 Weighbridge Ticket scans).

Practical Workflows

Truck Scale Software

Replace manual ticket entry in dispatch, gate, and yard-management applications.

Multi-Site Operations

Normalize different printer layouts into one downstream data contract.

Load Reconciliation

Match vehicle, material, job, and weight records before posting a transaction.

Exception Queues

Send missing weights or arithmetic mismatches to an operator for review.

Technical Specs

  • Endpoint: POST /v1/weighbridge-ticket
  • Authentication: x-api-key request header
  • Input: Base64 or data URI in JSON; JPG, PNG, WebP, or PDF
  • Maximum decoded size: 4.5MB
  • Cost: 2 credits per successful request
  • Output: Structured JSON with deterministic weight validation

Key Features

  • Layout-aware extraction: Associates labels and values instead of returning a flat block of text.
  • Supported units: Normalizes kilograms, metric tonnes, and pounds to normalized_kg.
  • Ticket classification: Distinguishes supported scale-ticket families from unrelated documents.
  • Review signals: Returns confidence, needs_review, and machine-readable review reasons.

Send a Ticket to the OCR API

The REST endpoint accepts one Base64-encoded JPG, PNG, WebP, or PDF in the JSON img property. Allow a 60-second client timeout and inspect the validation object before accepting a record.

PYTHON EXAMPLE
import base64
import requests

with open("weighbridge-ticket.jpg", "rb") as file:
    image = base64.b64encode(file.read()).decode("ascii")

response = requests.post(
    "https://api.structocr.com/v1/weighbridge-ticket",
    headers={"x-api-key": "YOUR_API_KEY", "Content-Type": "application/json"},
    json={"img": image},
    timeout=60,
)
response.raise_for_status()
result = response.json()
data = result["data"]

print("ticket_number:", data["ticket_number"])
print("vehicle.registration:", data["vehicle"]["registration"])
print("weights:", data["weights"])
print("validation:", data["validation"])

Validated JSON Response

A successful response contains extracted evidence and a separate validation decision for downstream automation.

{
  "success": true,
  "data": {
    "is_weighbridge_ticket": true,
    "document_type": "generic_weighbridge_ticket",
    "ticket_number": "1042",
    "facility": {
      "name": "North Yard Scale",
      "address": null,
      "scale_id": "SCALE-2"
    },
    "parties": {
      "supplier": null,
      "customer": "Example Customer"
    },
    "job": {
      "job_number": "JOB-88",
      "order_number": null
    },
    "vehicle": {
      "registration": "AB12 CDE",
      "trailer_registration": null,
      "fleet_number": null,
      "driver_name": null
    },
    "material": {
      "description": "Recycled aggregate",
      "code": "RA20"
    },
    "weights": {
      "gross": {
        "value": 25330,
        "unit": "kg",
        "raw": "25,330 kg",
        "normalized_kg": 25330
      },
      "tare": {
        "value": 6770,
        "unit": "kg",
        "raw": "6,770 kg",
        "normalized_kg": 6770
      },
      "net": {
        "value": 18560,
        "unit": "kg",
        "raw": "18,560 kg",
        "normalized_kg": 18560
      }
    },
    "confidence": "high",
    "is_valid": true,
    "validation": {
      "calculated_net_kg": 18560,
      "difference_kg": 0,
      "weight_check_passed": true,
      "needs_review": false,
      "review_reasons": []
    }
  }
}

Frequently Asked Questions

Is a scale ticket the same as a weighbridge ticket?

The names are often used interchangeably. The endpoint supports scale tickets, weighbridge tickets, weighment slips, and several operational subtypes through one schema.

Can different facilities use the same integration?

Yes. The endpoint is designed to normalize varying layouts into one response. Your application should still review low-confidence or flagged records.

Which files can I submit?

The endpoint accepts Base64-encoded JPG, PNG, WebP, and PDF content up to 4.5MB. Public URLs and multipart uploads are not currently accepted by the REST endpoint.

How much does one successful request cost?

A successful weighbridge ticket extraction costs 2 credits. New accounts receive 200 free credits, enough for up to 100 initial scans.

When is it safe to accept a ticket automatically?

Define the rule in your own workflow. A conservative starting point is to require is_weighbridge_ticket and is_valid to be true, confidence to meet your threshold, and validation.needs_review to be false. Keep a human review route for all other results.

Should I use the REST API or an SDK?

Use the REST API from any backend that can send Base64 JSON. The official Python and Node.js SDKs are convenient when you want local file validation, Base64 encoding, and consistent request handling without writing that plumbing yourself.

Explore More Weighbridge Ticket OCR Solutions

Technical Comparisons & Integrations

Explore platform integrations and competitive analysis

From tutorial to production in 5 minutes.

You've seen the code. Now get your API key, grab your 200 free credits, and see it work with your own images. No credit card required.

Instant Access Cancel Anytime 99.9% Uptime