API v1 preview

# The Line item object

One quote or order line: model, size, quantity, prices and repair.

## Fields

`model_repair` object · optional

Orders only, on paid repair lines. Once repaired, the line prints file_revision.file_repair (1.1).

**model_repair fields**

`status` string · required

Allowed values: waiting, repairing, checking, repaired

`file_revision` integer · required

Minimum: 1

`file_repair` integer · optional

Minimum: 1

`model_id` string · required

Immutable model ID: MD- followed by eight uppercase Crockford Base32 characters. Use this same ID in the website, URLs and API; pass it unchanged.

Min length: 11 · Max length: 11

`quantity` integer · required

Minimum: 1 · Maximum: 10000

`unit_price` integer · required

Manufacturing price per model in USD cents, excluding repair, shipping and tax.

Minimum: 0

`subtotal` integer · required

Manufacturing unit_price × quantity, plus repair.fee when the repair fee is charged on this line.

Minimum: 0

`repair` object · required

Model repair decided by the server. It applies when mesh inspection fails, when the account requested repair for this file revision, or when a paid order already covers the revision. A model that passes inspection prints as uploaded.

[Repair object](https://ottomfg.com/docs/repair-object.md)

`longest_dimension_mm` number · required

Longest bounding-box dimension in millimeters, 30–200 inclusive. Fractional values are accepted. Uniformly scale all axes. At model creation this is the default and inspection reference size; each pricing/quote item explicitly selects its own size. Callers convert other units to millimeters.

Minimum: 30 · Maximum: 200

`dimensions_mm` object · required

Dimensions at the selected print size in millimeters, rounded to at most three decimals. The longest axis matches longest_dimension_mm within rounding tolerance; small extents can round to zero.

**dimensions_mm fields**

`x` number · required

Extent along x in mm.

Minimum: 0

`y` number · required

Extent along y in mm.

Minimum: 0

`z` number · required

Extent along z in mm.

Minimum: 0

`file_revision` integer · optional

Customer-uploaded file revision, not the internal processing generation.

Minimum: 1

`thumbnail` object · optional

Optional private preview of the purchased file, freshly signed on order reads. Uses a 384 pixel WebP thumbnail, or the source PNG if conversion is incomplete. Missing when unavailable; refresh the order after expiry. Never uses a later uploaded revision.

**thumbnail fields**

`url` string (uri) · required

`expires_at` string (date-time) · required

`model_name` string · optional

Display name captured when quoting; saved names do not change after model renames. For older orders without a saved name, reads may supply the current model name or the filename of the matching uploaded file. The model_id remains the canonical reference.

## Used in

- [The Quote object](https://ottomfg.com/docs/quote-object.md)
- [The Order object](https://ottomfg.com/docs/order-object.md)

Example

JSON

```
{
  "model_id": "MD-739YQ549",
  "longest_dimension_mm": 100,
  "quantity": 2,
  "dimensions_mm": {
    "x": 100,
    "y": 50,
    "z": 20
  },
  "unit_price": 2460,
  "subtotal": 4920,
  "repair": {
    "required": false,
    "applied": false,
    "reason": null,
    "status": "not_applied",
    "fee": 0,
    "covered_by_order_id": null
  }
}
```

API v1 preview

Source: https://ottomfg.com/docs/line-item-object
