Skip to main content

Documentation Index

Fetch the complete documentation index at: https://api.docs.onlydrams.app/llms.txt

Use this file to discover all available pages before exploring further.

Endpoints

Nested: producersbrandsproduct_linesvariants.
GET    /odis/v1/producers/:producer_id/brands/:brand_id/product_lines/:product_line_id/variants
GET    /odis/v1/producers/:producer_id/brands/:brand_id/product_lines/:product_line_id/variants/:id
POST   /odis/v1/producers/:producer_id/brands/:brand_id/product_lines/:product_line_id/variants
PATCH  /odis/v1/producers/:producer_id/brands/:brand_id/product_lines/:product_line_id/variants/:id
DELETE /odis/v1/producers/:producer_id/brands/:brand_id/product_lines/:product_line_id/variants/:id
ActionWho
GETAny ODIS user
POST / PATCH / DELETEAdmin or editor

Request body

Body key: variant.

Fields

  • producer_id — optional; defaults to producer_id in the path when not set
  • display_name, batch_name, vintage_year, released_at, sku, proof
  • metadata — object (merged for variant)
  • Sizes — one of:
    • size_ids: array of size UUIDs, or
    • size_assignments: array of per-size rows (for create or when updating with assignments)
On update, if you send size_assignments, existing variant size rows for that variant are replaced with the new list. If you send size_ids instead, the variant is assigned those sizes (legacy path).

size_assignments row shape

Each element can include (commonly used fields):
FieldTypeNotes
size_idUUIDRequired for each non-skipped row
upcstring, optionalIf present, must be 8, 12, 13, or 14 decimal digits (GTIN-style length)
bottle_price, bottle_secondary_lower_bound, bottle_secondary_upper_boundnumber
msrpnumber
auction_secondary_lower_bound, auction_secondary_upper_boundnumber
raritystring
optionalsarray
sb_attributesobject
Omit upc or leave it blank to clear it for that size row, subject to model rules.

Response (detail)

Includes id, product_line_id, producer_id, display_name, effective_name, batch_name, vintage_year, released_at, sku, proof, metadata, effective_metadata, size_ids, and size_assignments (array with size_id, milliliters, display, and the per-row fields above). released_at is serialized in ISO 8601 when present.

Example (create with assignments)

{
  "variant": {
    "sku": "SKU-1",
    "size_assignments": [
      {
        "size_id": "SIZE_UUID",
        "upc": "0080244007737"
      }
    ]
  }
}

See also