Build on the product ledger

Any app that needs structured product data, verified provenance, real dimensions or BIM parametrics consumes one API. Right now it serves 36 records from 29 brands: 36 with physical parametrics, 5 BIM-ready.

Quick start

curl https://proddata.io/api/v1/products/handle/akabanga-chili-oil-75ml
Open live JSONThe same record the UI renders at /@akabanga-chili-oil-75ml
const res = await fetch(
  "https://proddata.io/api/v1/search?product_type=construction&has_3d=true"
);
const { data } = await res.json();
// data[0].links.self → full record with parametrics + BIM

Endpoints

  • GET/api/v1/productsList and filter records with the full query vocabularyTry it
  • POST/api/v1/products/scanScan-to-search: match extracted labels against the ledger; never creates duplicates
  • GET/api/v1/products/{id}Full record by internal id, UPI or flat handleTry it
  • GET/api/v1/products/upi/{upi}Full record by Universal Product IDTry it
  • GET/api/v1/products/handle/{handle}Full record by permanent handle; natural products namespace by commodityTry it
  • GET/api/v1/products/{id}/galleryGallery assets, filterable by asset_type and sourceTry it
  • GET/api/v1/products/{id}/parametricsPhysical dimensions, weight, volume and packagingTry it
  • GET/api/v1/products/{id}/bimBIM extension; construction products onlyTry it
  • GET/api/v1/searchFull-text search across names, brands, handles and originsTry it
  • GET/api/v1/commodities/{slug}Commodity index with every lot on recordTry it
  • GET/api/v1/brandsAll registered brandsTry it
  • GET/api/v1/brands/{slug}Brand profile with its recordsTry it
  • GET/api/v1/statsRegistry counts: products, trust states, media coverageTry it

Filter vocabulary

Filters compose freely on /api/v1/products and /api/v1/search. Every example below is a live request.

q
Full-text across name, brand, handle, UPI, origin?q=bourbon
product_type
manufactured · natural · construction?product_type=construction
commodity
Natural products by commodity namespace?commodity=coffee
verification_status
brand_verified · pending_review · ai_generated?verification_status=brand_verified
has_3d
Records with a 3D model on file?has_3d=true
has_video
Records with video?has_video=true
media_source
Only records carrying official brand media?media_source=brand
has_bim
Records with the BIM extension?has_bim=true
bim.ifc_type
Exact IFC classification match?bim.ifc_type=IfcWallType
parametrics.weight_g__lte
Weight ceiling in grams?parametrics.weight_g__lte=500
limit · offset
Pagination?limit=10&offset=10

Trust is a filter, not a footnote

Every data point declares its source. API values map directly to the badges users see:

Brand-Verifiedverification_status=brand_verified
Pending Reviewverification_status=pending_review
AI-Generatedverification_status=ai_generated

Need only official media? ?media_source=brand&has_3d=true returns records with brand-uploaded, dimension-verified assets only.

Pricing

Free

$0

  • 100 calls/mo
  • Basic lookup
  • Permanent handles
  • 2D gallery
Create free key
Starter

$49/mo

  • 5K calls/mo
  • AI classification
  • Parametrics
  • Video assets
Create free key
Most teamsGrowth

$199/mo

  • 25K calls/mo
  • Full AI pipeline
  • 3D models
  • Trust filters
  • Provenance data
Create free key
Enterprise

Custom

  • Unlimited calls
  • BIM export (IFC)
  • Custom models
  • SLA
Talk to us

API keys and tiered rate limiting are part of the platform spec. This demo serves the public read API without keys.