Back to Docs
Public API

Garment Records API

Read the researched blank records behind vaybel.com/blanks as JSON or Markdown, without an account.

Updated 2026-09-16

Every page under vaybel.com/blanks is rendered from one imported garment research record. The same record is served as JSON and Markdown from the public API so an assistant, a script or a spreadsheet can read exactly what the page shows, with the sources attached.

No authentication

Read-only, anonymous, cached for an hour. Rate limited per IP like every anonymous endpoint.

Snapshot data

Prices are timestamped observations of standard public rates, never quotes. Missing values are null; empty arrays mean nothing was captured, not that nothing exists.

Endpoints

Base URL: https://api.vaybel.com.

MethodPathReturns
GET/garments/Published records as index cards. Filters: unit (branded_blank, printful_native, printify_native), category, q.
GET/garments/<slug>/Identity, thumbnail and links to both projections.
GET/garments/<slug>/vaybel.jsonSeller projection: identity, materials, colors, sizes, measurements, construction, decoration, provider listings, standard offers, price components, shipping, reviews, certifications, sourcing, decisions, sources, claims, conflicts, gaps, page copy, catalog images.
GET/garments/<slug>/vaybel.mdThe seller page as cited Markdown with a claim-to-source register.
GET/garments/<slug>/beforewear.jsonTechnical projection (assets, capabilities, manufacturing; no pricing or reviews), also rendered at beforewear.com/garments.
GET/garments/schema.jsonJSON Schema (draft 2020-12) for the projection payload, garment-access/2.4.0.

Slugs are the page paths: bella-canvas-3001, gildan-5000, printful-257-aop-tee-m.

bash
curl -s https://api.vaybel.com/garments/bella-canvas-3001/vaybel.json | jq '.data.offers[] | select(.vaybel_public_price_eligible) | {provider_listing_id, base_amount_minor, observed_at}'

Reading a projection

  • data.<section> holds rows with stable ids (mat-001, color-014, offer-pf-base). Rows reference each other by id: a color points at its material_profile_id, an offer at its provider_listing_id and included_placement_ids.
  • claims support every populated fact. targets are JSON Pointers into data (for example /data/measurements/measure-012/value); references name the sources entries and a locator inside them. verification tells you whether a source was checked, corroborated by an independent source, or left as a single report.
  • conflicts list targets where sources disagree. An unresolved conflict keeps the value null.
  • gaps say what was not found, why, and what would close it. requires_live_quote on pricing means the provider publishes no standard price and you need a configuration-specific quote.
  • page is the cited copy used on the web page; each item lists the claim_ids behind it.
  • images are Vaybel catalog renders of the blank (showcase = sample design on the garment, blank = enhanced garment views). catalog.launch_url opens the design flow on that blank for signed-in sellers.

Prices are in minor units: base_amount_minor: 1192 with minor_unit_exponent: 2 is 11.92 USD. Only offers with vaybel_public_price_eligible: true are standard, undiscounted prices; the page shows nothing else.

What is not in the public record

Raw provider API payloads, internal audit notes and workspace file paths stay private. The research method is described in each record's research block.

Versions

schema_version on every payload is garment-access/2.4.0. Records carry a record_revision (bella-canvas-3001.2026-09-16.r1); a refreshed research run publishes a new revision and never rewrites an older one in place. Fetch the schema at /garments/schema.json to validate responses.

With an assistant

The Vaybel MCP server exposes the catalog to agents and can generate designs, mockups and listings on any blank here. For read-only research, the Markdown and JSON links need no token: point your agent at https://api.vaybel.com/garments/<slug>/vaybel.md.

Choosing a blank

Both projections include the same selection_summary: suitable_for and tradeoffs contain garment-only guidance with claim_ids, plus explicit evidence limitations. The Markdown endpoint includes this brief before the detailed research. Printing, provider prices and shipping are separate decisions and are not garment rankings.

catalog.Product is the canonical product. The research JSON is its read-only attachment. Import requires one existing canonical SKU; published attachments must be withdrawn before replacement, then explicitly published again.

Choose a blank with an agent

The authenticated MCP surface uses the canonical catalog product UUID throughout:

  1. catalog.list_blanks discovers products and indicates whether published research is attached.
  2. catalog.get_blank(product_id, section) returns one product, its Launch Product link, and the cited when to choose it summary and tradeoffs. Start with overview; request materials, sizing, or construction for more detail. Sizing includes raw catalog measurement tables.
  3. catalog.compare_blanks(product_ids, section) returns the same section for two to four distinct products, in the requested order.

Detail responses return ten rows per research section; comparisons return three. Follow next_offset using the offset argument to continue facts, evidence, conflicts or gaps. Compact claims link to the complete public research register; absence from one page does not mean a fact is undocumented.

These read-only tools require catalog:read and Starter or above. They respect the same connected-provider catalog scope as discovery. Research is a snapshot, not current stock or a price quote. Missing research does not make a published catalog product unavailable. Material profiles keep their color scopes; body measurements and finished garment measurements must not be mixed.

Ask the agent to explain suitability against your fit, fabric, weight, size and color needs. It should cite the evidence, state unknowns, and keep print quality and shipping separate. The tools do not assign a universal quality score or make a selection on your behalf.

Brand Assistant uses these same tools. Choose Find a blank in its conversation starters, or Choose with Brand Assistant on Launch Product. The prompt is editable before sending; choosing a returned blank opens the existing design step. Selecting a blank does not generate a design or spend generation credits.