Weight Ticket Data Extraction
Capture the operational fields behind every load—not just the three printed weights—and send clean records to your ERP or transport system.

Manual Entry Loses More Than Time
A weight ticket connects a physical load to a business transaction. Ticket number, vehicle registration, customer, supplier, job, material, timestamps, fees, and weights may all be required downstream. Keying only net weight leaves reconciliation gaps; keying the entire ticket is slow and introduces transcription errors, especially when staff handle photographed, faded, or multilingual slips from multiple locations.
Extract a Complete Operational Record
StructOCR returns nested JSON for facility, parties, job, vehicle, material, weights, timestamps, fees, and validation. Missing text remains null rather than being guessed. Use weighbridge slip to JSON conversion to feed a database or queue, then use the response schema to map only the fields your workflow needs.
Live Demo: Weighbridge Ticket OCR Scanner
No registration required. Upload a file to test the extraction.
Drop files here or click to browse
JPG · PNG · WebP · up to 500 files · max 4.5 MB each
Practical Workflows
ERP Intake
Create a draft receipt, shipment, or material movement from the extracted ticket record.
Fleet Reconciliation
Join vehicle and trailer registrations to dispatch and delivery records.
Material Reporting
Aggregate material codes and normalized net weight across sites.
Document Backlogs
Process scanned tickets into reviewable structured records instead of spreadsheets.
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
- Operational hierarchy: Keeps facility, parties, job, vehicle, material, weight, and fee data grouped.
- Null-safe output: Missing or unreadable fields return null instead of invented content.
- Raw value preservation: Retains printed weight strings for audit and troubleshooting.
- Validation metadata: Separates extraction from deterministic calculation checks.
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.
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("facility:", data["facility"])
print("parties:", data["parties"])
print("job:", data["job"])
print("vehicle:", data["vehicle"])
print("material:", data["material"])
print("weights:", data["weights"])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
Which fields can be extracted from a weight ticket?
The schema covers ticket, facility, supplier, customer, job, order, vehicle, trailer, fleet, driver, material, gross, tare, net, timestamps, fee, operator, notes, confidence, and validation.
What happens when a field is not printed?
It returns null. StructOCR does not infer a customer, vehicle, material, or weight value that is not visible on the document.
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
Dump Ticket OCR API
Extract dump and disposal ticket fields including facility, vehicle, material, gross, tare, net weight, fee, and timestamps into validated JSON.
Gross, Tare & Net Weight Extraction
Extract gross, tare, and net weight from tickets, normalize kg, tonnes, and pounds, and validate printed net against gross minus tare.
Quarry Load Ticket OCR
Extract quarry load ticket data including material, customer, vehicle, job, gross, tare, and net weight. Return validated JSON for aggregate operations.
Scale Ticket OCR API
Extract ticket, vehicle, material, gross, tare, and net weight from scale tickets. Validate weight calculations and return structured JSON through one API.
Convert a Weighbridge Slip to JSON
Convert weighbridge slips and scale tickets to structured JSON. Extract nested vehicle, material, gross, tare, net, timestamp, and validation fields.
Technical Comparisons & Integrations
Explore platform integrations and competitive analysis
Invoice OCR API Integration for Bolt.new
Learn how to integrate our Invoice OCR API into a Bolt.new app in under 5 minutes. Extract structured JSON effortlessly. Try our free live test now.
Add National ID OCR to Your Bolt.new App in 5 Minutes
Step-by-step guide to integrating the StructOCR National ID scanner API into a Bolt.new app. Build KYC and identity verification flows right in your browser.
Add Passport OCR to Your Bolt.new App in 5 Minutes
Step-by-step guide to integrating the StructOCR Passport scanner API into a Bolt.new app. Build travel, hospitality, and global KYC flows right in your browser.
Add Receipt OCR to Your Bolt.new App in 5 Minutes
Step-by-step guide to integrating the StructOCR receipt API into a Bolt.new app. Build expense tracking and receipt scanning tools right in your browser.
Add VIN OCR to Your Bolt.new App in 5 Minutes
Step-by-step guide to integrating the StructOCR VIN scanner API into a Bolt.new app. Build automotive and fleet tools right in your browser.
Add Container OCR using Cursor in 5 Minutes
Step-by-step guide to integrating the StructOCR shipping container API using the Cursor AI code editor. Build logistics and yard management tools rapidly.
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.