Price Embedded Barcode Decoder
Decode retail price and variable-weight barcodes to extract product and price data
Our free price-embedded barcode decoder reads retail variable-measure barcodes that include an item reference and a price or weight value. These labels are common on weighed foods such as meat, cheese and deli products. The encoded positions and decimal scaling can vary by retailer, country and numbering scheme.
Need to decode PEB barcodes in your app?
Copy the example below to get started using our free Barcode Parser API. No API key needed.
barcode=$'2012345407503'
curl -sS -G https://parser.orcascan.com/ \
--data-urlencode "barcode=$barcode" \
--data-urlencode 'type=peb'
// Node.js 18+
var barcode = "2012345407503";
var url = "https://parser.orcascan.com/?barcode=" + encodeURIComponent(barcode) + "&type=peb";
fetch(url)
.then(function(res) { return res.json(); })
.then(console.log);
import json
from urllib.parse import quote
from urllib.request import urlopen
barcode = "2012345407503"
url = "https://parser.orcascan.com/?barcode=" + quote(barcode, safe="") + "&type=peb"
with urlopen(url) as response:
print(json.load(response))
using System;
using System.Net.Http;
var barcode = "2012345407503";
var url = "https://parser.orcascan.com/?barcode=" + Uri.EscapeDataString(barcode) + "&type=peb";
using var client = new HttpClient();
Console.WriteLine(await client.GetStringAsync(url));
package main
import (
"io"
"net/http"
"net/url"
"os"
)
func main() {
barcode := "2012345407503"
endpoint := "https://parser.orcascan.com/?barcode=" + url.QueryEscape(barcode) + "&type=peb"
res, err := http.Get(endpoint)
if err != nil { panic(err) }
defer res.Body.Close()
io.Copy(os.Stdout, res.Body)
}
<?php
$barcode = "2012345407503";
$url = "https://parser.orcascan.com/?barcode=" . rawurlencode($barcode) . "&type=peb";
echo file_get_contents($url);
import java.net.URI;
import java.net.URLEncoder;
import java.net.http.*;
import java.nio.charset.StandardCharsets;
class BarcodeParser {
public static void main(String[] args) throws Exception {
String barcode = "2012345407503";
String url = "https://parser.orcascan.com/?barcode=" +
URLEncoder.encode(barcode, StandardCharsets.UTF_8) + "&type=peb";
var request = HttpRequest.newBuilder(URI.create(url)).build();
var response = HttpClient.newHttpClient().send(
request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
<!doctype html>
<html>
<body>
<pre id="result">Loading...</pre>
<script>
var barcode = "2012345407503";
var url = "https://parser.orcascan.com/?barcode=" + encodeURIComponent(barcode) + "&type=peb";
fetch(url)
.then(function(res) { return res.json(); })
.then(function(json) {
document.getElementById("result").textContent = JSON.stringify(json, null, 2);
});
</script>
</body>
</html>
Need to decode lots of PEB barcodes?
Import a spreadsheet of barcodes and automatically extract their data into separate columns.
Decode barcodes in bulk →Need to extract PEB data as you scan?
Scan barcodes with your phone and automatically capture their data in a shared spreadsheet.
Scan with your phone →Frequently asked questions
How does a price-embedded barcode store a variable value?
A retailer-defined EAN or UPC number range can reserve positions for an item reference and a price or weight value. The exact positions depend on the numbering scheme.
How can I tell whether a decoded value means price or weight?
The digits alone are not enough. A decoder needs the local or retailer-specific prefix, field layout and decimal-scaling rules to interpret the variable value.
Why does the decoded price or weight have no decimal point?
Variable-measure values are often stored as integers with implied decimal places. The format specifies where to insert the decimal point and how to interpret the unit.
Need help tracking PEB barcodes?
We've helped organizations of all sizes tackle barcode challenges, chat with our team live for help to find a solution.