SSCC API

Free, open REST API — no authentication required. Built on Cloudflare Workers.

https://sscc.birth1mark.workers.dev
Auth
None
Rate limit
500 req/hour
CORS
* (open)
Format
JSON
Max range
500 codes
Runtime
CF edge

GET/validate

Validates an 18-digit SSCC. Accepts bare 18-digit strings or 20-digit with AI (00) prefix.

curl "https://sscc.birth1mark.workers.dev/validate?sscc=356012345600000016"
const res  = await fetch('https://sscc.birth1mark.workers.dev/validate?sscc=356012345600000016');
const data = await res.json();
r = requests.get('https://sscc.birth1mark.workers.dev/validate', params={'sscc': '356012345600000016'})
sscc

GET/generate

Calculates the check digit for a 17-digit SSCC body and returns the complete 18-digit SSCC.

curl "https://sscc.birth1mark.workers.dev/generate?body=35601234560000001"
const res  = await fetch('https://sscc.birth1mark.workers.dev/generate?body=35601234560000001');
const data = await res.json();
r = requests.get('https://sscc.birth1mark.workers.dev/generate', params={'body': '35601234560000001'})
body — 17 digits

GET/range

Generates every SSCC between two codes with check digits. Accepts 17, 18 or 20-digit inputs. Max 500 codes.

curl "https://sscc.birth1mark.workers.dev/range?from=35601234560000001&to=35601234560000005"
const res  = await fetch('https://sscc.birth1mark.workers.dev/range?from=35601234560000001&to=35601234560000005');
const data = await res.json();
r = requests.get('https://sscc.birth1mark.workers.dev/range', params={'from': '35601234560000001', 'to': '35601234560000005'})
from
to

GET/prefix

Returns the GS1 member country for an SSCC based on its company prefix.

curl "https://sscc.birth1mark.workers.dev/prefix?sscc=356012345600000016"
const res  = await fetch('https://sscc.birth1mark.workers.dev/prefix?sscc=356012345600000016');
const data = await res.json();
r = requests.get('https://sscc.birth1mark.workers.dev/prefix', params={'sscc': '356012345600000016'})
sscc

POST/extract

Send raw file content as the request body — EDIFACT, IDoc SAP, XML, CSV or TXT. Format detected automatically.

curl -X POST "https://sscc.birth1mark.workers.dev/extract" \
  -H "Content-Type: text/plain" \
  --data-binary @desadv.edi
const content = await file.text();
const res     = await fetch('https://sscc.birth1mark.workers.dev/extract', { method: 'POST', body: content });
const data    = await res.json();
with open('desadv.edi') as f: content = f.read()
r = requests.post('https://sscc.birth1mark.workers.dev/extract', data=content)
File content

Errors

StatusMeaning
400Missing or invalid parameter
405Method not allowed
429Rate limit exceeded — max 500 req/hour per IP

Prefer a visual interface?

SSCC Pro Vision runs entirely in the browser — scan barcodes, validate codes, upload EDIFACT files and export results as CSV.

Open SSCC Pro Vision →