ReluAutomate
Guides

Crown & Bridge specifics

Service-specific details for integrating Relu's Crown & Bridge Models service — per-tooth margin lines, pre-designed crowns, and die engraving options.

The Crown & Bridge Models service builds printable jaw models with removable dies from intraoral scans. This guide covers what differs from the generic order flow: per-tooth inputs (margin lines and pre-designed crowns) and the die engraving parameters.

All tooth numbers below are FDI — see Tooth numbering for the contract and the Universal (UNN) conversion table.

Resources

  • API URL: https://api.automate.relu.ai/
  • Endpoint: POST /orders — the generic order route.
  • Service: Crown & Bridge Models, service_id a15dad07-2925-4768-9810-9e7cde1c6425.

Per-tooth inputs

Beyond the upper_jaw / lower_jaw scans, the service accepts per-tooth files in input_data:

Margin lines: margin_line_<fdi>

One margin-line file per prepped tooth (usually .pts), keyed by the FDI tooth number: margin_line_11, margin_line_12, … Invalid tooth numbers fail the request synchronously with a 422 naming the key.

Pre-designed crowns: input_crown_*

Closed crown meshes to carve out of the model. Two mutually exclusive key shapes:

  • FDI-keyed (preferred). Key each crown by its FDI tooth number: input_crown_11, input_crown_12, … The tooth assignment comes from the key itself, so parameter_values.tooth_nbs can stay empty (useful with automatic prep detection).
  • Positional (legacy). Keys input_crown_0 … input_crown_{n-1}, paired in order against parameter_values.tooth_nbs (["crown_11", "crown_12", …]). tooth_nbs must be present and at least as long as the crown count — an empty or too-short list is a 422, since the pairing would be ambiguous.

Never mix the two. A key set that is neither all-FDI nor exactly 0…n-1 is rejected with a 422 listing the keys and both accepted shapes.

Crowns auto-enable the parameter

Sending any input_crown_* file automatically enables the add_input_crowns parameter for that order — you don't need to set it (or override a preset that has it disabled) yourself.

Example: order with margins and crowns

Both jaws, per-tooth margin lines, and pre-designed crowns, all FDI-keyed:

curl -X POST https://api.automate.relu.ai/orders \
  -H "X-API-Key: <your_api_token>" \
  -H "Content-Type: application/json" \
  -d '{
    "service_id": "a15dad07-2925-4768-9810-9e7cde1c6425",
    "order_name": "case-1042",
    "input_data": {
      "upper_jaw":      { "external_download_url": "https://…/upper.stl", "extension": ".stl" },
      "lower_jaw":      { "external_download_url": "https://…/lower.stl", "extension": ".stl" },
      "margin_line_11": { "external_download_url": "https://…/margin_line_11.pts", "extension": ".pts" },
      "margin_line_12": { "external_download_url": "https://…/margin_line_12.pts", "extension": ".pts" },
      "margin_line_13": { "external_download_url": "https://…/margin_line_13.pts", "extension": ".pts" },
      "input_crown_11": { "external_download_url": "https://…/crown_11.stl", "extension": ".stl" },
      "input_crown_12": { "external_download_url": "https://…/crown_12.stl", "extension": ".stl" },
      "input_crown_13": { "external_download_url": "https://…/crown_13.stl", "extension": ".stl" }
    },
    "preset_id": "<optional saved preset>"
  }'

Invalid tooth numbers in margin_line_* keys, input_crown_* keys, or tooth_nbs values fail the request synchronously with a 422 that names the offending key or value — the order is never created.

Die engraving

The number physically engraved on each die is controlled by two parameters, independent of the API's FDI-only contract:

  • engrave_tooth_number (enabled | disabled, default enabled) — whether the tooth number is engraved on the die at all.
  • die_engraving_notation (fdi | universal | organization, default organization) — which notation the engraved digits use. organization follows your organization's tooth-numbering setting. This parameter is rolling out — check GET /services/{id} for availability.

These only change the engraved digits on the output. They never affect how the API interprets your input keys or parameter values — those stay FDI regardless.

On this page