Pencil / Developer documentation

Build with Pencil.

Create and edit designs with REST or AI, embed a live preview, and connect your shop.

Static documentation snapshot · Retrieved 2026-11-09 18:05 -03 · API version 1.0.0

API base URL: https://api.pencildesign.co/public-api/v1

Start your integration

Examples use placeholders. Replace IDs with values from your own account and use the latest revision for every edit. Response excerpts show relevant fields, not a second endpoint specification.

  1. Create an access token
  2. Create from a template or start from scratch
  3. Discover options and edit with REST
  4. Edit through Pencil AI
  5. Embed the live preview and renew access
  6. Prepare pricing and add to cart
  7. Create independent design variants

1. Create an access token

In Pencil, open Platform Settings → API → Access tokens. Create a token with Read designs and Write designs, copy it once, and store it in your backend secret store. Use a separate test account/token for testing.

Send Authorization: Bearer <ACCESS_TOKEN>. Never put an account token in an iframe, a customer-facing bundle or a shared URL. The preview uses a separate temporary design-scoped session. The documentation is read-only; run authenticated requests from your backend or API client.

Choose the API origin for the same environment as your account. Dev uses https://dev-api.pencildesign.co/public-api/v1 and its viewer uses https://dev.pencildesign.co. This snapshot targets https://api.pencildesign.co/public-api/v1. Do not mix dev IDs, tokens or templates with another environment.

GET requests read data. For writes that require Idempotency-Key, generate and persist one unique key per intended operation. Retry an uncertain request with exactly the same key and body; do not generate another key for that retry. Use a fresh key for the next edit.

First authenticated request: your upload library
curl -X GET 'https://api.pencildesign.co/public-api/v1/uploads' \
  -H 'Authorization: Bearer <ACCESS_TOKEN>'

{ "items": [], "nextCursor": null } — an empty account library is valid. HTTP 401 means the token is missing, expired, revoked or invalid.

2. Create from a template or start from scratch

For a finished design, obtain its DesignerTemplate ID from your account’s template configuration or ask your Pencil contact. It must be an enabled, published template accessible to that account. A Model ID and a parametric ring-template ID are different identifiers. This API does not currently list DesignerTemplates; do not guess an ID or treat a viewer URL as a template ID.

A template copy infers modelBuilder. If you also supply it, it must match or the request is rejected before creation. A blank design requires modelBuilder: RING, PENDANT, NAMEPLATE or GENERIC. Unsupported families are rejected. A blank design has no geometry until you add a shape or ask AI to build it.

landingPageSlug is optional. Supply the exact enabled page slug from your account for its pricing rules; the page is pricing context, not a restriction to its original stones. Omit it for design-only or supported unpriced Pencil carts. It is selected at creation, so choose it before editing.

Save id, revision, viewerUrl and viewerExpiresAt from creation. With a read/write token, viewerUrl opens the new design immediately. The URL contains a temporary secret; do not log it or send it to AI.

Copy a designer template
curl -X POST 'https://api.pencildesign.co/public-api/v1/designs' \
  -H 'Authorization: Bearer <ACCESS_TOKEN>' \
  -H 'Idempotency-Key: <UNIQUE_OPERATION_KEY>' \
  -H 'Content-Type: application/json' \
  --data '{
  "templateId": "<DESIGNER_TEMPLATE_ID>",
  "name": "My ring",
  "landingPageSlug": "<LANDING_PAGE_SLUG>"
}'

HTTP 201: { "apiVersion": "v1", "id": "<DESIGN_ID>", "revision": 1, "viewerUrl": "<VIEWER_URL>", "viewerExpiresAt": "<EXPIRATION>" }

Start a blank ring
curl -X POST 'https://api.pencildesign.co/public-api/v1/designs' \
  -H 'Authorization: Bearer <ACCESS_TOKEN>' \
  -H 'Idempotency-Key: <UNIQUE_OPERATION_KEY>' \
  -H 'Content-Type: application/json' \
  --data '{
  "modelBuilder": "RING",
  "name": "New ring"
}'

HTTP 201 with a new design ID and revision. The preview is empty until geometry is added.

Discover parametric ring bands for the blank ring
curl -X GET 'https://api.pencildesign.co/public-api/v1/designs/<DESIGN_ID>/ring-options' \
  -H 'Authorization: Bearer <ACCESS_TOKEN>'

Use an items[].id as RING_TEMPLATE_ID. Read its defaults, morphs and editable ranges. Follow nextCursor with ?after=<NEXT_CURSOR> when present.

Add a band using its existing defaults
curl -X POST 'https://api.pencildesign.co/public-api/v1/designs/<DESIGN_ID>/changes' \
  -H 'Authorization: Bearer <ACCESS_TOKEN>' \
  -H 'Idempotency-Key: <UNIQUE_OPERATION_KEY>' \
  -H 'Content-Type: application/json' \
  --data '{
  "type": "ADD_RING_BAND",
  "expectedRevision": 1,
  "templateId": "<RING_TEMPLATE_ID>"
}'

HTTP 200: { "apiVersion": "v1", "id": "<DESIGN_ID>", "revision": 2 }. Read components to obtain the band componentId.

3. Discover options and edit with REST

The GET endpoints discover what the current design supports. GET components returns the existing instances and their stable componentId; component-options returns catalog choices. These IDs are not interchangeable. Follow catalog pagination and choose authorized IDs from the responses.

Preview controls without editing with POST parameter-options. For a band, put morphs at the top level beside componentId; do not put morphs inside parameters. Use exact names and ranges from the selected band’s morphOptions. Standard band dimensions belong in parameters as bandWidthMm and bandHeightMm, when offered. The response keeps saved values and revision unchanged; proposedParameters describes the proposal. Read scope is sufficient and no Idempotency-Key is needed.

POST changes applies one operation. Replace every sample expectedRevision with the latest saved revision. Read components after adding a stone to find the new componentId. To edit stone A without changing stone B, send only A’s componentId and the desired fields; compare B before and after.

Set shape, stoneTypeId or caratWeight independently, or combine them. width, length and depth are millimetres; do not combine dimensions with caratWeight in the same request. A type-only edit preserves physical dimensions, so carat may change with density. Use returned options and existing setting restrictions rather than assuming every combination is valid.

HTTP 409 REVISION_CONFLICT means another edit won. Read the latest snapshot, review the intended edit and submit a new operation with the current revision and a new key. Do not blindly replay it against another revision.

Read materials and supported changes
curl -X GET 'https://api.pencildesign.co/public-api/v1/designs/<DESIGN_ID>/parameter-options' \
  -H 'Authorization: Bearer <ACCESS_TOKEN>'

Choose materialId from materials[].id. supportedCommands identifies applicable change types.

Read existing stone and band IDs
curl -X GET 'https://api.pencildesign.co/public-api/v1/designs/<DESIGN_ID>/components' \
  -H 'Authorization: Bearer <ACCESS_TOKEN>'

Response contains id, revision and components. Save the componentId of each STONE and MAIN_SHAPE you want to target.

Discover controls for the selected band
curl -X GET 'https://api.pencildesign.co/public-api/v1/designs/<DESIGN_ID>/parameter-options?componentId=%3CBAND_COMPONENT_ID%3E' \
  -H 'Authorization: Bearer <ACCESS_TOKEN>'

Read component.values and component.morphOptions. Offer only the morph keys and ranges returned for this band.

Preview band morphs without changing the design
curl -X POST 'https://api.pencildesign.co/public-api/v1/designs/<DESIGN_ID>/parameter-options' \
  -H 'Authorization: Bearer <ACCESS_TOKEN>' \
  -H 'Content-Type: application/json' \
  --data '{
  "componentId": "<BAND_COMPONENT_ID>",
  "morphs": {
    "bandWidth": 3
  }
}'

For a band offering bandWidth: HTTP 200 with component.proposedParameters.morphs.bandWidth = 3. Saved component.values and revision remain unchanged. Apply the chosen edit separately through changes.

Preview standard band height without changing the design
curl -X POST 'https://api.pencildesign.co/public-api/v1/designs/<DESIGN_ID>/parameter-options' \
  -H 'Authorization: Bearer <ACCESS_TOKEN>' \
  -H 'Content-Type: application/json' \
  --data '{
  "componentId": "<BAND_COMPONENT_ID>",
  "parameters": {
    "bandHeightMm": 2
  }
}'

Use only when bandHeightMm is offered in component.parameters. Returns proposed controls without saving or generating geometry.

Discover ready stone settings
curl -X GET 'https://api.pencildesign.co/public-api/v1/designs/<DESIGN_ID>/component-options?kind=STONE' \
  -H 'Authorization: Bearer <ACCESS_TOKEN>'

Choose a ready setting from items and its supported stone type. Use the catalog config ID as STONE_CONFIG_ID.

Change material
curl -X POST 'https://api.pencildesign.co/public-api/v1/designs/<DESIGN_ID>/changes' \
  -H 'Authorization: Bearer <ACCESS_TOKEN>' \
  -H 'Idempotency-Key: <UNIQUE_OPERATION_KEY>' \
  -H 'Content-Type: application/json' \
  --data '{
  "type": "SET_MATERIAL",
  "expectedRevision": 2,
  "materialId": "<MATERIAL_ID>"
}'

HTTP 200 with the new committed revision; the open preview updates.

Add a stone at the shared shop default position
curl -X POST 'https://api.pencildesign.co/public-api/v1/designs/<DESIGN_ID>/changes' \
  -H 'Authorization: Bearer <ACCESS_TOKEN>' \
  -H 'Idempotency-Key: <UNIQUE_OPERATION_KEY>' \
  -H 'Content-Type: application/json' \
  --data '{
  "type": "ADD_STONE",
  "expectedRevision": 3,
  "stoneConfigId": "<STONE_CONFIG_ID>",
  "stoneTypeId": "<STONE_TYPE_ID>",
  "parentComponentId": "<BAND_COMPONENT_ID>",
  "placement": {
    "mode": "RING_DEFAULT"
  }
}'

One new stone instance is added. Read components again; existing stones keep their identities.

Edit only stone A
curl -X POST 'https://api.pencildesign.co/public-api/v1/designs/<DESIGN_ID>/changes' \
  -H 'Authorization: Bearer <ACCESS_TOKEN>' \
  -H 'Idempotency-Key: <UNIQUE_OPERATION_KEY>' \
  -H 'Content-Type: application/json' \
  --data '{
  "type": "SET_STONE_PARAMETERS",
  "expectedRevision": 4,
  "componentId": "<STONE_A_ID>",
  "shape": "PEAR",
  "stoneTypeId": "<RUBY_TYPE_ID>",
  "caratWeight": 1
}'

HTTP 200 with a new revision. Stone A is pear ruby, approximately 1 ct; stone B is not targeted. Catalog/generator rounding can slightly change the measured carat.

Move and rotate only stone A
curl -X POST 'https://api.pencildesign.co/public-api/v1/designs/<DESIGN_ID>/changes' \
  -H 'Authorization: Bearer <ACCESS_TOKEN>' \
  -H 'Idempotency-Key: <UNIQUE_OPERATION_KEY>' \
  -H 'Content-Type: application/json' \
  --data '{
  "type": "SET_RING_STONE_PLACEMENT",
  "expectedRevision": 5,
  "componentId": "<STONE_A_ID>",
  "placement": {
    "mode": "RING",
    "locationDegrees": 200,
    "heightMm": 0,
    "sideOffsetMm": 0,
    "rotationDegrees": {
      "x": 0,
      "y": 0,
      "z": 90
    }
  }
}'

Only the selected stone placement changes. Use the saved placement as the starting point when changing one coordinate.

4. Edit through Pencil AI

Create a conversation for the design, then submit a turn from your backend. The run request waits for the result; configure your client timeout appropriately. Use precise component IDs for multi-stone edits. Your own AI can instead call the same REST changes endpoint.

SUCCEEDED means the turn completed. NEEDS_INPUT includes question.id, text and options: submit the answer in a new turn with answerToQuestionId and the latest revision. FAILED does not imply rollback: earlier tool changes may already be saved. Read the design and returned revision before deciding how to continue.

After a transport interruption, retry the exact request with the same idempotency key and body. If you have its run ID, GET that run to recover its state. Never automatically repeat “add a stone” with a new key: that could add another stone. QUEUED/RUNNING are non-terminal states; read the run again with backoff.

Create the conversation
curl -X POST 'https://api.pencildesign.co/public-api/v1/ai/conversations' \
  -H 'Authorization: Bearer <ACCESS_TOKEN>' \
  -H 'Idempotency-Key: <UNIQUE_OPERATION_KEY>' \
  -H 'Content-Type: application/json' \
  --data '{
  "designId": "<DESIGN_ID>"
}'

HTTP 201 with id (CONVERSATION_ID), designId, origin PUBLIC_API and createdAt.

Request a targeted edit
curl -X POST 'https://api.pencildesign.co/public-api/v1/ai/conversations/<CONVERSATION_ID>/runs' \
  -H 'Authorization: Bearer <ACCESS_TOKEN>' \
  -H 'Idempotency-Key: <UNIQUE_OPERATION_KEY>' \
  -H 'Content-Type: application/json' \
  --data '{
  "text": "Change only stone <STONE_A_ID> to a pear ruby, 1 carat. Keep the other stone and band unchanged.",
  "expectedRevision": 6
}'

HTTP 200 with id (RUN_ID), status, revision, message, question and error. Example result fields: { "status": "SUCCEEDED", "revision": 7, "question": null, "error": null }.

Answer only if the turn requests clarification
curl -X POST 'https://api.pencildesign.co/public-api/v1/ai/conversations/<CONVERSATION_ID>/runs' \
  -H 'Authorization: Bearer <ACCESS_TOKEN>' \
  -H 'Idempotency-Key: <UNIQUE_OPERATION_KEY>' \
  -H 'Content-Type: application/json' \
  --data '{
  "text": "Use the first option.",
  "expectedRevision": 7,
  "answerToQuestionId": "<QUESTION_ID>"
}'

A new turn resolves the selected question. Use the actual question and saved revision, not the sample values.

Recover the turn state
curl -X GET 'https://api.pencildesign.co/public-api/v1/ai/conversations/<CONVERSATION_ID>/runs/<RUN_ID>' \
  -H 'Authorization: Bearer <ACCESS_TOKEN>'

Read status and revision. A FAILED result includes error.code/message; inspect the latest saved design even if the turn failed.

5. Embed the live preview and renew access

Your backend returns viewerUrl to the customer site. Verify its origin against your independently configured Pencil app origin, then assign it as the iframe src. For example: <iframe title="Pencil design preview" src="<VIEWER_URL>" width="100%" height="600"></iframe>. Do not put the account token in the iframe.

Keep the same preview open while REST or AI edits run. It observes committed revisions automatically, typically polling every three seconds. It is read-only; the API performs the edits. Multiple quick edits may appear together as the latest state.

The creation URL is temporary and does not grant geometry preparation. Use browser-sessions to open an existing design, renew expiration, or request preparation. On renewal, recreate the iframe or fully navigate to the new URL; changing only its fragment does not reinitialize the viewer. Do not cache or log session URLs.

Renew read-only access from your backend
curl -X POST 'https://api.pencildesign.co/public-api/v1/designs/<DESIGN_ID>/browser-sessions' \
  -H 'Authorization: Bearer <ACCESS_TOKEN>' \
  -H 'Content-Type: application/json' \
  --data '{
  "mode": "VIEW",
  "expiresInSeconds": 900
}'

HTTP 201 with viewerUrl, expiresAt and a design-scoped token. Give the viewerUrl to the iframe; keep your account credential on the backend.

6. Prepare pricing and add to cart

Create the design with landingPageSlug for the account’s pricing rules. Material, stone type/carat and geometry changes invalidate the previous preparation. Open a preparation-enabled viewer and wait for its current geometry before quoting or cart submission.

Browser rendering is required today: the shared viewer loads the assets, measures geometry and submits the glTF. A backend alone cannot substitute a plain VIEW token or account credential for this preparation grant. Without the viewer, weight/price may not become READY. Do not fabricate volume or submit example geometry.

A READY result includes the current revision and quoteId. Use those exact values for cart. If the shopper edits again, wait for a fresh READY result. Handle FAILED visibly; do not leave a spinner running. A missing page follows the existing unpriced Pencil cart policy (price may be null); fixed product prices still apply. External storefront handoffs require the applicable pricing/configuration.

The returned cart receipt identifies the frozen order/snapshot and downstream handoff. Follow the configured Shopify/Wix/Squarespace handoff in the response; API cart creation is not browser checkout or payment. If effectStatus is PENDING, read the receipt again; RECOVERY_REQUIRED needs investigation, not a new cart request.

Preparation uploads geometry, not a guaranteed fresh thumbnail. Do not assume merely opening the iframe or adding to cart captures a new screenshot. Production-file generation/download uses the existing Pencil order workflow; this API does not add a separate public production-export endpoint.

Open a preparation-enabled read-only viewer
curl -X POST 'https://api.pencildesign.co/public-api/v1/designs/<DESIGN_ID>/browser-sessions' \
  -H 'Authorization: Bearer <ACCESS_TOKEN>' \
  -H 'Content-Type: application/json' \
  --data '{
  "mode": "VIEW",
  "expiresInSeconds": 900,
  "prepareForCart": true
}'

Open the returned viewerUrl and keep it running while the geometry is prepared.

Wait for the current quote
curl -X GET 'https://api.pencildesign.co/public-api/v1/designs/<DESIGN_ID>/preparation' \
  -H 'Authorization: Bearer <ACCESS_TOKEN>'

Example result fields: { "status": "READY", "revision": 7, "price": { "amount": 150, "currency": "USD" }, "quoteId": "<QUOTE_ID>" }. Amounts are illustrative; use the actual response.

Add the prepared snapshot to cart
curl -X POST 'https://api.pencildesign.co/public-api/v1/designs/<DESIGN_ID>/cart' \
  -H 'Authorization: Bearer <ACCESS_TOKEN>' \
  -H 'Idempotency-Key: <UNIQUE_OPERATION_KEY>' \
  -H 'Content-Type: application/json' \
  --data '{
  "expectedRevision": 7,
  "quoteId": "<QUOTE_ID>",
  "customer": {
    "name": "Example Shopper",
    "email": "shopper@example.com",
    "phoneNumber": "<SHOPPER_PHONE>",
    "budget": "<SHOPPER_BUDGET>"
  },
  "externalSessionId": "<YOUR_SHOPPER_SESSION_ID>"
}'

HTTP 201 with cartId, orderId, snapshotModelId, status ADDED_TO_CART, price and effectStatus. Customer fields are examples; use consented shopper details or an existing leadId, never both.

Recover the same cart receipt
curl -X GET 'https://api.pencildesign.co/public-api/v1/designs/<DESIGN_ID>/cart/<CART_ID>' \
  -H 'Authorization: Bearer <ACCESS_TOKEN>'

Read the immutable snapshot and current effectStatus/handoff. After a lost POST response, retry the same POST key/body instead of creating a second order.

7. Create independent design variants

Create one independent copy per variant from the same DesignerTemplate ID. Use a new idempotency key for each copy and save each returned designId/revision separately. Change each copy through REST or a separate AI conversation.

Example: create “Ruby variant” and “Sapphire variant”, then change their respective stone type and material. Each has its own preview, preparation and cart snapshot; editing one does not update the other. Copying a template copies its saved template state, not edits made to another API design.

You can also build each variant from scratch with the same sequence of band/stone changes. There is no bulk-variants endpoint and no documented copy-from-public-design-ID operation. For large batches, limit concurrency, follow pagination, handle 429 with backoff and keep durable request keys.

Create the ruby variant
curl -X POST 'https://api.pencildesign.co/public-api/v1/designs' \
  -H 'Authorization: Bearer <ACCESS_TOKEN>' \
  -H 'Idempotency-Key: <UNIQUE_OPERATION_KEY>' \
  -H 'Content-Type: application/json' \
  --data '{
  "templateId": "<DESIGNER_TEMPLATE_ID>",
  "name": "Ruby variant",
  "landingPageSlug": "<LANDING_PAGE_SLUG>"
}'

Save this design ID as VARIANT_A_ID and use its own revision for edits.

Create the sapphire variant with a different request key
curl -X POST 'https://api.pencildesign.co/public-api/v1/designs' \
  -H 'Authorization: Bearer <ACCESS_TOKEN>' \
  -H 'Idempotency-Key: <UNIQUE_OPERATION_KEY>' \
  -H 'Content-Type: application/json' \
  --data '{
  "templateId": "<DESIGNER_TEMPLATE_ID>",
  "name": "Sapphire variant",
  "landingPageSlug": "<LANDING_PAGE_SLUG>"
}'

Save this independent design ID as VARIANT_B_ID. Discover and target its own component IDs.

API reference

Owned designs, account upload library, typed family-aware editing, persistent AI conversations, and scoped browser sessions. External Pencil AI is disabled by default per partner account; contact Pencil to enable it. All AI endpoints return 403 PUBLIC_DESIGN_AI_DISABLED while disabled, including for previously issued tokens. Existing read/write scopes still apply. REST design editing and regular editor AI are unaffected. Optional landingPageSlug associates a design with its shop. An explicitly authorized viewer prepares current geometry for pricing; a backend then creates an idempotent cart snapshot through the shared shop workflow. Discover supported commands and ready sources for the current design before editing. New public exports, checkout/payment endpoints and MCP are excluded.

All reference text is included in this HTML. This snapshot does not execute API requests or update automatically.

Authentication schemes

{
  "bearerAuth": {
    "type": "http",
    "scheme": "bearer",
    "description": "Backend pdc_ credential or design-scoped pds_ browser session. Creation and delegation require a backend credential."
  }
}

Endpoints

  1. POST /designs
  2. GET /designs/{id}
  3. GET /designs/{id}/parameter-options
  4. POST /designs/{id}/parameter-options
  5. GET /designs/{id}/component-options
  6. GET /designs/{id}/ring-options
  7. GET /designs/{id}/nameplate-options
  8. GET /designs/{id}/components
  9. POST /designs/{id}/changes
  10. GET /designs/{id}/revision
  11. POST /ai/conversations
  12. GET /ai/conversations/{id}
  13. POST /ai/conversations/{id}/runs
  14. GET /ai/conversations/{id}/runs/{runId}
  15. POST /ai/conversations/{id}/attachments
  16. GET /ai/conversations/{id}/attachments/{attachmentId}
  17. POST /designs/{id}/browser-sessions
  18. POST /uploads
  19. GET /uploads
  20. GET /uploads/{uploadId}
  21. POST /uploads/{uploadId}/prepare
  22. GET /designs/{id}/preparation
  23. POST /designs/{id}/preparation
  24. POST /designs/{id}/cart
  25. GET /designs/{id}/cart/{cartId}
POST /designs

Create a blank design or copy an account-published template, with an initial read-only viewer URL for read/write credentials

Authentication: [{"bearerAuth": []}]

Parameters

NameLocationRequiredType / description
Idempotency-KeyheaderYesstring: minLength: 1; maxLength: 128; pattern: "^[A-Za-z0-9._:-]+$"

Request body (required)

application/json

FieldTypeRequiredDescription / constraints
modelBuilderstringNo
enum: ["RING", "PENDANT", "NAMEPLATE", "GENERIC"]
namestringNo
minLength: 1; maxLength: 200; pattern: "\\S"
templateIdstringNo
format: "uuid"
landingPageSlugstringNoOptional exact slug of an enabled landing page in the authenticated account. The design stores its stable ID; omit for an unpriced design/cart (fixed product prices still apply).
minLength: 1; maxLength: 80; pattern: "^[a-z0-9](?:[a-z0-9-]{0,78}[a-z0-9])?$"

At least one alternative must match

Alternative 1

Required fields: templateId

Alternative 2

Required fields: modelBuilder

Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "modelBuilder": {
      "type": "string",
      "enum": [
        "RING",
        "PENDANT",
        "NAMEPLATE",
        "GENERIC"
      ]
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "pattern": "\\S"
    },
    "templateId": {
      "type": "string",
      "format": "uuid"
    },
    "landingPageSlug": {
      "type": "string",
      "minLength": 1,
      "maxLength": 80,
      "pattern": "^[a-z0-9](?:[a-z0-9-]{0,78}[a-z0-9])?$",
      "description": "Optional exact slug of an enabled landing page in the authenticated account. The design stores its stable ID; omit for an unpriced design/cart (fixed product prices still apply)."
    }
  },
  "required": [],
  "anyOf": [
    {
      "required": [
        "templateId"
      ]
    },
    {
      "required": [
        "modelBuilder"
      ]
    }
  ]
}

Responses

201 — Success

application/json

FieldTypeRequiredDescription / constraints
apiVersionstringYes
enum: ["v1"]
idstringYes
format: "uuid"
revisionintegerYes
minimum: 1; maximum: 2147483646
landingPageIdstringNoResolved stable page ID returned when creating a design with landingPageSlug. Retained by identical retries even if the page is renamed.
format: "uuid"
viewerUrlstringNoReady-to-embed read-only viewer URL on the configured Pencil app origin. Included when the backend credential also has designs:read. Contains a temporary secret in its fragment; do not log or persist it. Each successful create retry returns a fresh URL for the same design.
format: "uri"
viewerExpiresAtstringNoExpiration of viewerUrl, up to 15 minutes after this response and capped by the issuing credential expiration. This is not the design expiration. Renew through POST /designs/{id}/browser-sessions.
format: "date-time"
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "apiVersion": {
      "type": "string",
      "enum": [
        "v1"
      ]
    },
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "revision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    },
    "landingPageId": {
      "type": "string",
      "format": "uuid",
      "description": "Resolved stable page ID returned when creating a design with landingPageSlug. Retained by identical retries even if the page is renamed."
    },
    "viewerUrl": {
      "type": "string",
      "format": "uri",
      "description": "Ready-to-embed read-only viewer URL on the configured Pencil app origin. Included when the backend credential also has designs:read. Contains a temporary secret in its fragment; do not log or persist it. Each successful create retry returns a fresh URL for the same design."
    },
    "viewerExpiresAt": {
      "type": "string",
      "format": "date-time",
      "description": "Expiration of viewerUrl, up to 15 minutes after this response and capped by the issuing credential expiration. This is not the design expiration. Renew through POST /designs/{id}/browser-sessions."
    }
  },
  "required": [
    "apiVersion",
    "id",
    "revision"
  ]
}
400 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
401 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
403 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
404 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
409 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
413 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
415 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
422 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
429 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
500 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
502 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
503 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
504 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
Complete operation definition
{
  "operationId": "createDesign",
  "summary": "Create a blank design or copy an account-published template, with an initial read-only viewer URL for read/write credentials",
  "tags": [
    "REST Designs"
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "parameters": [
    {
      "name": "Idempotency-Key",
      "in": "header",
      "required": true,
      "schema": {
        "type": "string",
        "minLength": 1,
        "maxLength": 128,
        "pattern": "^[A-Za-z0-9._:-]+$"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "modelBuilder": {
              "type": "string",
              "enum": [
                "RING",
                "PENDANT",
                "NAMEPLATE",
                "GENERIC"
              ]
            },
            "name": {
              "type": "string",
              "minLength": 1,
              "maxLength": 200,
              "pattern": "\\S"
            },
            "templateId": {
              "type": "string",
              "format": "uuid"
            },
            "landingPageSlug": {
              "type": "string",
              "minLength": 1,
              "maxLength": 80,
              "pattern": "^[a-z0-9](?:[a-z0-9-]{0,78}[a-z0-9])?$",
              "description": "Optional exact slug of an enabled landing page in the authenticated account. The design stores its stable ID; omit for an unpriced design/cart (fixed product prices still apply)."
            }
          },
          "required": [],
          "anyOf": [
            {
              "required": [
                "templateId"
              ]
            },
            {
              "required": [
                "modelBuilder"
              ]
            }
          ]
        }
      }
    }
  },
  "responses": {
    "201": {
      "description": "Success",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "apiVersion": {
                "type": "string",
                "enum": [
                  "v1"
                ]
              },
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "revision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              },
              "landingPageId": {
                "type": "string",
                "format": "uuid",
                "description": "Resolved stable page ID returned when creating a design with landingPageSlug. Retained by identical retries even if the page is renamed."
              },
              "viewerUrl": {
                "type": "string",
                "format": "uri",
                "description": "Ready-to-embed read-only viewer URL on the configured Pencil app origin. Included when the backend credential also has designs:read. Contains a temporary secret in its fragment; do not log or persist it. Each successful create retry returns a fresh URL for the same design."
              },
              "viewerExpiresAt": {
                "type": "string",
                "format": "date-time",
                "description": "Expiration of viewerUrl, up to 15 minutes after this response and capped by the issuing credential expiration. This is not the design expiration. Renew through POST /designs/{id}/browser-sessions."
              }
            },
            "required": [
              "apiVersion",
              "id",
              "revision"
            ]
          }
        }
      }
    },
    "400": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "401": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "403": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "404": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "409": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "413": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "415": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "422": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "429": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "500": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "502": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "503": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "504": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    }
  }
}
GET /designs/{id}

Read the current authoritative design snapshot

Authentication: [{"bearerAuth": []}]

Parameters

NameLocationRequiredType / description
idpathYesstring: format: "uuid"

Responses

200 — Success

application/json

FieldTypeRequiredDescription / constraints
apiVersionstringYes
enum: ["v1"]
idstringYes
format: "uuid"
revisionintegerYes
minimum: 1; maximum: 2147483646
namestringYes
modelBuilderstringYes
partnerIdstringYes
format: "uuid"
landingPageIdstringYesSaved landing-page association, or null for a design without page-based pricing. Association alone does not imply price or cart readiness.
format: "uuid"; nullable: true
partnerPathstringYesThe owning account’s actual partner path, or null when unavailable. Match this or partnerId to the viewer route before rendering.
nullable: true
modelobjectYesOpaque read-only Pencil viewer snapshot. Pass to the Pencil viewer; use public design fields for integration logic.
additionalProperties: true
preparationobjectNo
additionalProperties: false

preparation

FieldTypeRequiredDescription / constraints
allowedbooleanYes
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "apiVersion": {
      "type": "string",
      "enum": [
        "v1"
      ]
    },
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "revision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    },
    "name": {
      "type": "string"
    },
    "modelBuilder": {
      "type": "string"
    },
    "partnerId": {
      "type": "string",
      "format": "uuid"
    },
    "landingPageId": {
      "type": "string",
      "format": "uuid",
      "nullable": true,
      "description": "Saved landing-page association, or null for a design without page-based pricing. Association alone does not imply price or cart readiness."
    },
    "partnerPath": {
      "type": "string",
      "nullable": true,
      "description": "The owning account’s actual partner path, or null when unavailable. Match this or partnerId to the viewer route before rendering."
    },
    "model": {
      "type": "object",
      "additionalProperties": true,
      "description": "Opaque read-only Pencil viewer snapshot. Pass to the Pencil viewer; use public design fields for integration logic."
    },
    "preparation": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "allowed": {
          "type": "boolean"
        }
      },
      "required": [
        "allowed"
      ]
    }
  },
  "required": [
    "apiVersion",
    "id",
    "revision",
    "name",
    "modelBuilder",
    "partnerId",
    "partnerPath",
    "landingPageId",
    "model"
  ]
}
400 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
401 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
403 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
404 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
409 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
413 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
415 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
422 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
429 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
500 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
502 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
503 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
504 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
Complete operation definition
{
  "operationId": "getDesign",
  "summary": "Read the current authoritative design snapshot",
  "tags": [
    "REST Designs"
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "parameters": [
    {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Success",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "apiVersion": {
                "type": "string",
                "enum": [
                  "v1"
                ]
              },
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "revision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              },
              "name": {
                "type": "string"
              },
              "modelBuilder": {
                "type": "string"
              },
              "partnerId": {
                "type": "string",
                "format": "uuid"
              },
              "landingPageId": {
                "type": "string",
                "format": "uuid",
                "nullable": true,
                "description": "Saved landing-page association, or null for a design without page-based pricing. Association alone does not imply price or cart readiness."
              },
              "partnerPath": {
                "type": "string",
                "nullable": true,
                "description": "The owning account’s actual partner path, or null when unavailable. Match this or partnerId to the viewer route before rendering."
              },
              "model": {
                "type": "object",
                "additionalProperties": true,
                "description": "Opaque read-only Pencil viewer snapshot. Pass to the Pencil viewer; use public design fields for integration logic."
              },
              "preparation": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "allowed": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "allowed"
                ]
              }
            },
            "required": [
              "apiVersion",
              "id",
              "revision",
              "name",
              "modelBuilder",
              "partnerId",
              "partnerPath",
              "landingPageId",
              "model"
            ]
          }
        }
      }
    },
    "400": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "401": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "403": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "404": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "409": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "413": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "415": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "422": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "429": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "500": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "502": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "503": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "504": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    }
  }
}
GET /designs/{id}/parameter-options

Discover materials, actions and controls for a selected customization

Authentication: [{"bearerAuth": []}]

Parameters

NameLocationRequiredType / description
idpathYesstring: format: "uuid"
componentIdqueryNostring: format: "uuid"

Responses

200 — Success

application/json

FieldTypeRequiredDescription / constraints
idstringNo
format: "uuid"
revisionintegerNo
minimum: 1; maximum: 2147483646
materialsarray of objectYes
supportedCommandsarray of stringNo
componentobjectNo
additionalProperties: false

materials

Array items

FieldTypeRequiredDescription / constraints
idstringYes
format: "uuid"
namestringYes

supportedCommands

Array items

component

FieldTypeRequiredDescription / constraints
componentIdstringYes
format: "uuid"
kindstringYes
enum: ["RING_BAND", "STONE"]
valuesobjectYes
additionalProperties: true
proposedParametersobjectNo
additionalProperties: true
parametersobjectYes
additionalProperties: {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["string", "number", "boolean"]}, "enum": {"type": "array", "items": {}}, "minimum": {"type": "number"}, "maximum": {"type": "number"}, "description": {"type": "string"}}, "required": ["type"]}
morphOptionsobjectNo
additionalProperties: true
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "revision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    },
    "materials": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name"
        ],
        "additionalProperties": true
      }
    },
    "supportedCommands": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "component": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "componentId": {
          "type": "string",
          "format": "uuid"
        },
        "kind": {
          "type": "string",
          "enum": [
            "RING_BAND",
            "STONE"
          ]
        },
        "values": {
          "type": "object",
          "additionalProperties": true
        },
        "proposedParameters": {
          "type": "object",
          "additionalProperties": true
        },
        "parameters": {
          "type": "object",
          "additionalProperties": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "string",
                  "number",
                  "boolean"
                ]
              },
              "enum": {
                "type": "array",
                "items": {}
              },
              "minimum": {
                "type": "number"
              },
              "maximum": {
                "type": "number"
              },
              "description": {
                "type": "string"
              }
            },
            "required": [
              "type"
            ]
          }
        },
        "morphOptions": {
          "type": "object",
          "additionalProperties": true
        }
      },
      "required": [
        "componentId",
        "kind",
        "values",
        "parameters"
      ]
    }
  },
  "required": [
    "materials"
  ]
}
400 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
401 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
403 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
404 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
409 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
413 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
415 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
422 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
429 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
500 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
502 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
503 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
504 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
Complete operation definition
{
  "operationId": "getDesignOptions",
  "summary": "Discover materials, actions and controls for a selected customization",
  "tags": [
    "REST Designs"
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "parameters": [
    {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "name": "componentId",
      "in": "query",
      "required": false,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Success",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "revision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              },
              "materials": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "name": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "name"
                  ],
                  "additionalProperties": true
                }
              },
              "supportedCommands": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "component": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "componentId": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "kind": {
                    "type": "string",
                    "enum": [
                      "RING_BAND",
                      "STONE"
                    ]
                  },
                  "values": {
                    "type": "object",
                    "additionalProperties": true
                  },
                  "proposedParameters": {
                    "type": "object",
                    "additionalProperties": true
                  },
                  "parameters": {
                    "type": "object",
                    "additionalProperties": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "string",
                            "number",
                            "boolean"
                          ]
                        },
                        "enum": {
                          "type": "array",
                          "items": {}
                        },
                        "minimum": {
                          "type": "number"
                        },
                        "maximum": {
                          "type": "number"
                        },
                        "description": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "type"
                      ]
                    }
                  },
                  "morphOptions": {
                    "type": "object",
                    "additionalProperties": true
                  }
                },
                "required": [
                  "componentId",
                  "kind",
                  "values",
                  "parameters"
                ]
              }
            },
            "required": [
              "materials"
            ]
          }
        }
      }
    },
    "400": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "401": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "403": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "404": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "409": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "413": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "415": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "422": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "429": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "500": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "502": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "503": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "504": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    }
  }
}
POST /designs/{id}/parameter-options

Evaluate customization controls for proposed selections without saving or generating geometry

Authentication: [{"bearerAuth": []}]

Parameters

NameLocationRequiredType / description
idpathYesstring: format: "uuid"

Request body (required)

application/json

FieldTypeRequiredDescription / constraints
componentIdstringYes
format: "uuid"
parametersobjectNo
additionalProperties: false
morphsobjectNoBand-only proposal at the top level beside componentId, not inside parameters. Use exact keys from the selected band morphOptions, for example {"bandWidth":3}. Saved values and revision stay unchanged.
additionalProperties: {"anyOf": [{"type": "number"}, {"type": "boolean"}, {"type": "string", "maxLength": 100}]}

parameters

FieldTypeRequiredDescription / constraints
prongSettingstringNo
enum: ["PRONG_2", "PRONG_2_ALT", "PRONG_3", "PRONG_4", "PRONG_4_ALT", "PRONG_4_ALT_2", "PRONG_5", "PRONG_6", "PRONG_6_ALT", "PRONG_7", "PRONG_8", "PRONG_8_ALT", "PRONG_2_SHARED", "PRONG_1_SHARED"]
prongStylestringNo
enum: ["STRAIGHT", "CURVED", "CUPPED"]
prongTypestringNo
enum: ["DOUBLE", "ROUND", "TAB", "CLAW", "V"]
hasRailbooleanNo
railShapestringNo
enum: ["ROUND", "SQUARE"]
hasHalobooleanNo
prongsDiameternumberNo
minimum: 0.3; maximum: 3
railDiameternumberNo
minimum: 0.3; maximum: 3
railZOffsetnumberNo
railSizePercentnumberNo
minimum: 75; maximum: 125
railCornerRadiusnumberNo
minimum: 0; maximum: 1.5
galleryNoBottomRailbooleanNo
settingHeightnumberNo
minimum: 1; maximum: 20
armsOutbooleanNo
shapestringNo
enum: ["ROUND", "OVAL", "MOVAL", "PRINCESS", "PEAR", "MARQUISE", "RADIANT", "CUSHION", "ELONGATED_CUSHION", "HEART", "EMERALD", "BAGUETTE_STRAIGHT", "TRILLION", "TRIANGLE", "KITE", "LOZENGE", "ASSCHER", "TAPERED_BAGUETTE", "TRAPEZOID", "CALFS_HEAD", "HALF_MOON", "HEXAGON", "KEYSTONE", "LONG_HEXAGON", "OCTAGON", "OEC_ROUND", "OLD_MINE_PEAR_151", "OLD_MINE_PEAR_191", "OLD_MINE_CUSHION", "OLD_MINE_EMERALD", "OLD_MINE_OVAL", "STEP_CUT_ELONGATED_CUSHION", "STEP_CUT_MARQUISE", "STEP_CUT_OCTAGON", "STEP_CUT_OVAL_NARROW", "STEP_CUT_PEAR", "SUPERMAN"]
caratWeightnumberNo
minimum: 0.01; maximum: 100
widthnumberNoStone width in mm. Omitted dimensions retain their current values. Do not combine with caratWeight.
minimum: 0.01
lengthnumberNoStone length in mm.
minimum: 0.01
depthnumberNoStone depth in mm.
minimum: 0.01
stoneTypeIdstringNo
minLength: 1; maxLength: 100
ringSizestringNo
enum: ["US_2", "US_2.25", "US_2.5", "US_2.75", "US_3", "US_3.25", "US_3.5", "US_3.75", "US_4", "US_4.25", "US_4.5", "US_4.75", "US_5", "US_5.25", "US_5.5", "US_5.75", "US_6", "US_6.25", "US_6.5", "US_6.75", "US_7", "US_7.25", "US_7.5", "US_7.75", "US_8", "US_8.25", "US_8.5", "US_8.75", "US_9", "US_9.25", "US_9.5", "US_9.75", "US_10", "US_10.25", "US_10.5", "US_10.75", "US_11", "US_11.25", "US_11.5", "US_11.75", "US_12", "US_12.25", "US_12.5", "US_12.75", "US_13", "UK_F", "UK_F0.5", "UK_G", "UK_G0.5", "UK_H", "UK_H0.5", "UK_I", "UK_J", "UK_J0.5", "UK_K", "UK_K0.5", "UK_L", "UK_L0.5", "UK_M", "UK_M0.5", "UK_N", "UK_N0.5", "UK_O", "UK_O0.5", "UK_P", "UK_P0.5", "UK_Q", "UK_Q0.5", "UK_R", "UK_R0.5", "UK_S", "UK_S0.5", "UK_T", "UK_T0.5", "UK_U", "UK_U0.5", "UK_V", "UK_V0.5", "UK_W", "UK_W0.5", "UK_X", "UK_X0.5", "UK_Y", "UK_Z", "UK_Z0.5", "EU_44", "EU_45", "EU_45.5", "EU_46", "EU_47", "EU_47.5", "EU_48", "EU_48.5", "EU_49", "EU_50", "EU_50.5", "EU_51", "EU_52", "EU_52.5", "EU_53", "EU_54", "EU_54.5", "EU_55", "EU_56", "EU_56.5", "EU_57", "EU_58", "EU_58.5", "EU_59", "EU_60", "EU_60.5", "EU_61", "EU_61.5", "EU_62", "EU_63", "EU_63.5", "EU_64", "EU_65", "EU_65.5", "EU_66", "EU_67", "EU_67.5", "EU_68", "EU_69", "EU_69.5", "EU_70"]
bandWidthMmnumberNo
minimum: 1; maximum: 10
bandHeightMmnumberNo
minimum: 1; maximum: 5
settingTypestringNoEvaluate a setting before choosing its catalog config with SET_STONE; this request does not replace the setting.
enum: ["BEZEL", "HALF_BEZEL", "BEZEL_PRONG", "PRONG_4_PRONG", "FLUSH", "CHANNEL", "BASKET_PRONG", "PRONG_3", "PRONG_3_BASKET", "PRONG_4_CENTER", "PRONG_3_CENTER", "PRONG_2_CENTER", "BASKET", "U_BASKET", "NEVE_CUP", "SHAHLA_BASKET_WITH_PRONGS", "SHAHLA_CUP_WITH_RAILS", "SHAHLA_DOUBLE_BEZEL_WITH_PRONGS", "PAVE", "GALLERY", "GABRIEL_GALLERY", "GABRIEL_GALLERY_2", "SOLITAIRE", "HALO_W_PRONGS", "KIRA_LOW_HALO_SOLITAIRE", "KIRA_SOLITAIRE", "GABRIEL_STRAIGHT_SOLITAIRE", "GABRIEL_UPTURNED_SOLITAIRE", "GABRIEL_SOLITAIRE_1", "SHAHLA_BUBBLE_BEZEL", "SHAHLA_DOUBLE_BEZEL", "SHAHLA_SLOPING_BEZEL", "GABRIEL_BEZEL_TULIP", "GABRIEL_BEZEL_SOLITAIRE", "TULIP", "GABRIEL_TULIP", "GABRIEL_CURVED_DOUBLE_PRONG", "GABRIEL_TULIP_2", "GABRIEL_THREE_STONE_LOTUS", "PEG"]
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "componentId": {
      "type": "string",
      "format": "uuid"
    },
    "parameters": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "prongSetting": {
          "type": "string",
          "enum": [
            "PRONG_2",
            "PRONG_2_ALT",
            "PRONG_3",
            "PRONG_4",
            "PRONG_4_ALT",
            "PRONG_4_ALT_2",
            "PRONG_5",
            "PRONG_6",
            "PRONG_6_ALT",
            "PRONG_7",
            "PRONG_8",
            "PRONG_8_ALT",
            "PRONG_2_SHARED",
            "PRONG_1_SHARED"
          ]
        },
        "prongStyle": {
          "type": "string",
          "enum": [
            "STRAIGHT",
            "CURVED",
            "CUPPED"
          ]
        },
        "prongType": {
          "type": "string",
          "enum": [
            "DOUBLE",
            "ROUND",
            "TAB",
            "CLAW",
            "V"
          ]
        },
        "hasRail": {
          "type": "boolean"
        },
        "railShape": {
          "type": "string",
          "enum": [
            "ROUND",
            "SQUARE"
          ]
        },
        "hasHalo": {
          "type": "boolean"
        },
        "prongsDiameter": {
          "type": "number",
          "minimum": 0.3,
          "maximum": 3
        },
        "railDiameter": {
          "type": "number",
          "minimum": 0.3,
          "maximum": 3
        },
        "railZOffset": {
          "type": "number"
        },
        "railSizePercent": {
          "type": "number",
          "minimum": 75,
          "maximum": 125
        },
        "railCornerRadius": {
          "type": "number",
          "minimum": 0,
          "maximum": 1.5
        },
        "galleryNoBottomRail": {
          "type": "boolean"
        },
        "settingHeight": {
          "type": "number",
          "minimum": 1,
          "maximum": 20
        },
        "armsOut": {
          "type": "boolean"
        },
        "shape": {
          "type": "string",
          "enum": [
            "ROUND",
            "OVAL",
            "MOVAL",
            "PRINCESS",
            "PEAR",
            "MARQUISE",
            "RADIANT",
            "CUSHION",
            "ELONGATED_CUSHION",
            "HEART",
            "EMERALD",
            "BAGUETTE_STRAIGHT",
            "TRILLION",
            "TRIANGLE",
            "KITE",
            "LOZENGE",
            "ASSCHER",
            "TAPERED_BAGUETTE",
            "TRAPEZOID",
            "CALFS_HEAD",
            "HALF_MOON",
            "HEXAGON",
            "KEYSTONE",
            "LONG_HEXAGON",
            "OCTAGON",
            "OEC_ROUND",
            "OLD_MINE_PEAR_151",
            "OLD_MINE_PEAR_191",
            "OLD_MINE_CUSHION",
            "OLD_MINE_EMERALD",
            "OLD_MINE_OVAL",
            "STEP_CUT_ELONGATED_CUSHION",
            "STEP_CUT_MARQUISE",
            "STEP_CUT_OCTAGON",
            "STEP_CUT_OVAL_NARROW",
            "STEP_CUT_PEAR",
            "SUPERMAN"
          ]
        },
        "caratWeight": {
          "type": "number",
          "minimum": 0.01,
          "maximum": 100
        },
        "width": {
          "type": "number",
          "minimum": 0.01,
          "description": "Stone width in mm. Omitted dimensions retain their current values. Do not combine with caratWeight."
        },
        "length": {
          "type": "number",
          "minimum": 0.01,
          "description": "Stone length in mm."
        },
        "depth": {
          "type": "number",
          "minimum": 0.01,
          "description": "Stone depth in mm."
        },
        "stoneTypeId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "ringSize": {
          "type": "string",
          "enum": [
            "US_2",
            "US_2.25",
            "US_2.5",
            "US_2.75",
            "US_3",
            "US_3.25",
            "US_3.5",
            "US_3.75",
            "US_4",
            "US_4.25",
            "US_4.5",
            "US_4.75",
            "US_5",
            "US_5.25",
            "US_5.5",
            "US_5.75",
            "US_6",
            "US_6.25",
            "US_6.5",
            "US_6.75",
            "US_7",
            "US_7.25",
            "US_7.5",
            "US_7.75",
            "US_8",
            "US_8.25",
            "US_8.5",
            "US_8.75",
            "US_9",
            "US_9.25",
            "US_9.5",
            "US_9.75",
            "US_10",
            "US_10.25",
            "US_10.5",
            "US_10.75",
            "US_11",
            "US_11.25",
            "US_11.5",
            "US_11.75",
            "US_12",
            "US_12.25",
            "US_12.5",
            "US_12.75",
            "US_13",
            "UK_F",
            "UK_F0.5",
            "UK_G",
            "UK_G0.5",
            "UK_H",
            "UK_H0.5",
            "UK_I",
            "UK_J",
            "UK_J0.5",
            "UK_K",
            "UK_K0.5",
            "UK_L",
            "UK_L0.5",
            "UK_M",
            "UK_M0.5",
            "UK_N",
            "UK_N0.5",
            "UK_O",
            "UK_O0.5",
            "UK_P",
            "UK_P0.5",
            "UK_Q",
            "UK_Q0.5",
            "UK_R",
            "UK_R0.5",
            "UK_S",
            "UK_S0.5",
            "UK_T",
            "UK_T0.5",
            "UK_U",
            "UK_U0.5",
            "UK_V",
            "UK_V0.5",
            "UK_W",
            "UK_W0.5",
            "UK_X",
            "UK_X0.5",
            "UK_Y",
            "UK_Z",
            "UK_Z0.5",
            "EU_44",
            "EU_45",
            "EU_45.5",
            "EU_46",
            "EU_47",
            "EU_47.5",
            "EU_48",
            "EU_48.5",
            "EU_49",
            "EU_50",
            "EU_50.5",
            "EU_51",
            "EU_52",
            "EU_52.5",
            "EU_53",
            "EU_54",
            "EU_54.5",
            "EU_55",
            "EU_56",
            "EU_56.5",
            "EU_57",
            "EU_58",
            "EU_58.5",
            "EU_59",
            "EU_60",
            "EU_60.5",
            "EU_61",
            "EU_61.5",
            "EU_62",
            "EU_63",
            "EU_63.5",
            "EU_64",
            "EU_65",
            "EU_65.5",
            "EU_66",
            "EU_67",
            "EU_67.5",
            "EU_68",
            "EU_69",
            "EU_69.5",
            "EU_70"
          ]
        },
        "bandWidthMm": {
          "type": "number",
          "minimum": 1,
          "maximum": 10
        },
        "bandHeightMm": {
          "type": "number",
          "minimum": 1,
          "maximum": 5
        },
        "settingType": {
          "type": "string",
          "enum": [
            "BEZEL",
            "HALF_BEZEL",
            "BEZEL_PRONG",
            "PRONG_4_PRONG",
            "FLUSH",
            "CHANNEL",
            "BASKET_PRONG",
            "PRONG_3",
            "PRONG_3_BASKET",
            "PRONG_4_CENTER",
            "PRONG_3_CENTER",
            "PRONG_2_CENTER",
            "BASKET",
            "U_BASKET",
            "NEVE_CUP",
            "SHAHLA_BASKET_WITH_PRONGS",
            "SHAHLA_CUP_WITH_RAILS",
            "SHAHLA_DOUBLE_BEZEL_WITH_PRONGS",
            "PAVE",
            "GALLERY",
            "GABRIEL_GALLERY",
            "GABRIEL_GALLERY_2",
            "SOLITAIRE",
            "HALO_W_PRONGS",
            "KIRA_LOW_HALO_SOLITAIRE",
            "KIRA_SOLITAIRE",
            "GABRIEL_STRAIGHT_SOLITAIRE",
            "GABRIEL_UPTURNED_SOLITAIRE",
            "GABRIEL_SOLITAIRE_1",
            "SHAHLA_BUBBLE_BEZEL",
            "SHAHLA_DOUBLE_BEZEL",
            "SHAHLA_SLOPING_BEZEL",
            "GABRIEL_BEZEL_TULIP",
            "GABRIEL_BEZEL_SOLITAIRE",
            "TULIP",
            "GABRIEL_TULIP",
            "GABRIEL_CURVED_DOUBLE_PRONG",
            "GABRIEL_TULIP_2",
            "GABRIEL_THREE_STONE_LOTUS",
            "PEG"
          ],
          "description": "Evaluate a setting before choosing its catalog config with SET_STONE; this request does not replace the setting."
        }
      },
      "required": []
    },
    "morphs": {
      "type": "object",
      "minProperties": 1,
      "maxProperties": 30,
      "propertyNames": {
        "pattern": "^[a-z][a-zA-Z0-9_]{0,63}$"
      },
      "additionalProperties": {
        "anyOf": [
          {
            "type": "number"
          },
          {
            "type": "boolean"
          },
          {
            "type": "string",
            "maxLength": 100
          }
        ]
      },
      "description": "Band-only proposal at the top level beside componentId, not inside parameters. Use exact keys from the selected band morphOptions, for example {\"bandWidth\":3}. Saved values and revision stay unchanged."
    }
  },
  "required": [
    "componentId"
  ]
}

Responses

200 — Success

application/json

FieldTypeRequiredDescription / constraints
idstringNo
format: "uuid"
revisionintegerNo
minimum: 1; maximum: 2147483646
materialsarray of objectYes
supportedCommandsarray of stringNo
componentobjectNo
additionalProperties: false

materials

Array items

FieldTypeRequiredDescription / constraints
idstringYes
format: "uuid"
namestringYes

supportedCommands

Array items

component

FieldTypeRequiredDescription / constraints
componentIdstringYes
format: "uuid"
kindstringYes
enum: ["RING_BAND", "STONE"]
valuesobjectYes
additionalProperties: true
proposedParametersobjectNo
additionalProperties: true
parametersobjectYes
additionalProperties: {"type": "object", "additionalProperties": false, "properties": {"type": {"type": "string", "enum": ["string", "number", "boolean"]}, "enum": {"type": "array", "items": {}}, "minimum": {"type": "number"}, "maximum": {"type": "number"}, "description": {"type": "string"}}, "required": ["type"]}
morphOptionsobjectNo
additionalProperties: true
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "revision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    },
    "materials": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name"
        ],
        "additionalProperties": true
      }
    },
    "supportedCommands": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "component": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "componentId": {
          "type": "string",
          "format": "uuid"
        },
        "kind": {
          "type": "string",
          "enum": [
            "RING_BAND",
            "STONE"
          ]
        },
        "values": {
          "type": "object",
          "additionalProperties": true
        },
        "proposedParameters": {
          "type": "object",
          "additionalProperties": true
        },
        "parameters": {
          "type": "object",
          "additionalProperties": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "string",
                  "number",
                  "boolean"
                ]
              },
              "enum": {
                "type": "array",
                "items": {}
              },
              "minimum": {
                "type": "number"
              },
              "maximum": {
                "type": "number"
              },
              "description": {
                "type": "string"
              }
            },
            "required": [
              "type"
            ]
          }
        },
        "morphOptions": {
          "type": "object",
          "additionalProperties": true
        }
      },
      "required": [
        "componentId",
        "kind",
        "values",
        "parameters"
      ]
    }
  },
  "required": [
    "materials"
  ]
}
400 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
401 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
403 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
404 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
409 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
413 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
415 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
422 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
429 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
500 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
502 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
503 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
504 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
Complete operation definition
{
  "operationId": "evaluateDesignOptions",
  "summary": "Evaluate customization controls for proposed selections without saving or generating geometry",
  "tags": [
    "Viewer Geometry"
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "parameters": [
    {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "componentId": {
              "type": "string",
              "format": "uuid"
            },
            "parameters": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "prongSetting": {
                  "type": "string",
                  "enum": [
                    "PRONG_2",
                    "PRONG_2_ALT",
                    "PRONG_3",
                    "PRONG_4",
                    "PRONG_4_ALT",
                    "PRONG_4_ALT_2",
                    "PRONG_5",
                    "PRONG_6",
                    "PRONG_6_ALT",
                    "PRONG_7",
                    "PRONG_8",
                    "PRONG_8_ALT",
                    "PRONG_2_SHARED",
                    "PRONG_1_SHARED"
                  ]
                },
                "prongStyle": {
                  "type": "string",
                  "enum": [
                    "STRAIGHT",
                    "CURVED",
                    "CUPPED"
                  ]
                },
                "prongType": {
                  "type": "string",
                  "enum": [
                    "DOUBLE",
                    "ROUND",
                    "TAB",
                    "CLAW",
                    "V"
                  ]
                },
                "hasRail": {
                  "type": "boolean"
                },
                "railShape": {
                  "type": "string",
                  "enum": [
                    "ROUND",
                    "SQUARE"
                  ]
                },
                "hasHalo": {
                  "type": "boolean"
                },
                "prongsDiameter": {
                  "type": "number",
                  "minimum": 0.3,
                  "maximum": 3
                },
                "railDiameter": {
                  "type": "number",
                  "minimum": 0.3,
                  "maximum": 3
                },
                "railZOffset": {
                  "type": "number"
                },
                "railSizePercent": {
                  "type": "number",
                  "minimum": 75,
                  "maximum": 125
                },
                "railCornerRadius": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 1.5
                },
                "galleryNoBottomRail": {
                  "type": "boolean"
                },
                "settingHeight": {
                  "type": "number",
                  "minimum": 1,
                  "maximum": 20
                },
                "armsOut": {
                  "type": "boolean"
                },
                "shape": {
                  "type": "string",
                  "enum": [
                    "ROUND",
                    "OVAL",
                    "MOVAL",
                    "PRINCESS",
                    "PEAR",
                    "MARQUISE",
                    "RADIANT",
                    "CUSHION",
                    "ELONGATED_CUSHION",
                    "HEART",
                    "EMERALD",
                    "BAGUETTE_STRAIGHT",
                    "TRILLION",
                    "TRIANGLE",
                    "KITE",
                    "LOZENGE",
                    "ASSCHER",
                    "TAPERED_BAGUETTE",
                    "TRAPEZOID",
                    "CALFS_HEAD",
                    "HALF_MOON",
                    "HEXAGON",
                    "KEYSTONE",
                    "LONG_HEXAGON",
                    "OCTAGON",
                    "OEC_ROUND",
                    "OLD_MINE_PEAR_151",
                    "OLD_MINE_PEAR_191",
                    "OLD_MINE_CUSHION",
                    "OLD_MINE_EMERALD",
                    "OLD_MINE_OVAL",
                    "STEP_CUT_ELONGATED_CUSHION",
                    "STEP_CUT_MARQUISE",
                    "STEP_CUT_OCTAGON",
                    "STEP_CUT_OVAL_NARROW",
                    "STEP_CUT_PEAR",
                    "SUPERMAN"
                  ]
                },
                "caratWeight": {
                  "type": "number",
                  "minimum": 0.01,
                  "maximum": 100
                },
                "width": {
                  "type": "number",
                  "minimum": 0.01,
                  "description": "Stone width in mm. Omitted dimensions retain their current values. Do not combine with caratWeight."
                },
                "length": {
                  "type": "number",
                  "minimum": 0.01,
                  "description": "Stone length in mm."
                },
                "depth": {
                  "type": "number",
                  "minimum": 0.01,
                  "description": "Stone depth in mm."
                },
                "stoneTypeId": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "ringSize": {
                  "type": "string",
                  "enum": [
                    "US_2",
                    "US_2.25",
                    "US_2.5",
                    "US_2.75",
                    "US_3",
                    "US_3.25",
                    "US_3.5",
                    "US_3.75",
                    "US_4",
                    "US_4.25",
                    "US_4.5",
                    "US_4.75",
                    "US_5",
                    "US_5.25",
                    "US_5.5",
                    "US_5.75",
                    "US_6",
                    "US_6.25",
                    "US_6.5",
                    "US_6.75",
                    "US_7",
                    "US_7.25",
                    "US_7.5",
                    "US_7.75",
                    "US_8",
                    "US_8.25",
                    "US_8.5",
                    "US_8.75",
                    "US_9",
                    "US_9.25",
                    "US_9.5",
                    "US_9.75",
                    "US_10",
                    "US_10.25",
                    "US_10.5",
                    "US_10.75",
                    "US_11",
                    "US_11.25",
                    "US_11.5",
                    "US_11.75",
                    "US_12",
                    "US_12.25",
                    "US_12.5",
                    "US_12.75",
                    "US_13",
                    "UK_F",
                    "UK_F0.5",
                    "UK_G",
                    "UK_G0.5",
                    "UK_H",
                    "UK_H0.5",
                    "UK_I",
                    "UK_J",
                    "UK_J0.5",
                    "UK_K",
                    "UK_K0.5",
                    "UK_L",
                    "UK_L0.5",
                    "UK_M",
                    "UK_M0.5",
                    "UK_N",
                    "UK_N0.5",
                    "UK_O",
                    "UK_O0.5",
                    "UK_P",
                    "UK_P0.5",
                    "UK_Q",
                    "UK_Q0.5",
                    "UK_R",
                    "UK_R0.5",
                    "UK_S",
                    "UK_S0.5",
                    "UK_T",
                    "UK_T0.5",
                    "UK_U",
                    "UK_U0.5",
                    "UK_V",
                    "UK_V0.5",
                    "UK_W",
                    "UK_W0.5",
                    "UK_X",
                    "UK_X0.5",
                    "UK_Y",
                    "UK_Z",
                    "UK_Z0.5",
                    "EU_44",
                    "EU_45",
                    "EU_45.5",
                    "EU_46",
                    "EU_47",
                    "EU_47.5",
                    "EU_48",
                    "EU_48.5",
                    "EU_49",
                    "EU_50",
                    "EU_50.5",
                    "EU_51",
                    "EU_52",
                    "EU_52.5",
                    "EU_53",
                    "EU_54",
                    "EU_54.5",
                    "EU_55",
                    "EU_56",
                    "EU_56.5",
                    "EU_57",
                    "EU_58",
                    "EU_58.5",
                    "EU_59",
                    "EU_60",
                    "EU_60.5",
                    "EU_61",
                    "EU_61.5",
                    "EU_62",
                    "EU_63",
                    "EU_63.5",
                    "EU_64",
                    "EU_65",
                    "EU_65.5",
                    "EU_66",
                    "EU_67",
                    "EU_67.5",
                    "EU_68",
                    "EU_69",
                    "EU_69.5",
                    "EU_70"
                  ]
                },
                "bandWidthMm": {
                  "type": "number",
                  "minimum": 1,
                  "maximum": 10
                },
                "bandHeightMm": {
                  "type": "number",
                  "minimum": 1,
                  "maximum": 5
                },
                "settingType": {
                  "type": "string",
                  "enum": [
                    "BEZEL",
                    "HALF_BEZEL",
                    "BEZEL_PRONG",
                    "PRONG_4_PRONG",
                    "FLUSH",
                    "CHANNEL",
                    "BASKET_PRONG",
                    "PRONG_3",
                    "PRONG_3_BASKET",
                    "PRONG_4_CENTER",
                    "PRONG_3_CENTER",
                    "PRONG_2_CENTER",
                    "BASKET",
                    "U_BASKET",
                    "NEVE_CUP",
                    "SHAHLA_BASKET_WITH_PRONGS",
                    "SHAHLA_CUP_WITH_RAILS",
                    "SHAHLA_DOUBLE_BEZEL_WITH_PRONGS",
                    "PAVE",
                    "GALLERY",
                    "GABRIEL_GALLERY",
                    "GABRIEL_GALLERY_2",
                    "SOLITAIRE",
                    "HALO_W_PRONGS",
                    "KIRA_LOW_HALO_SOLITAIRE",
                    "KIRA_SOLITAIRE",
                    "GABRIEL_STRAIGHT_SOLITAIRE",
                    "GABRIEL_UPTURNED_SOLITAIRE",
                    "GABRIEL_SOLITAIRE_1",
                    "SHAHLA_BUBBLE_BEZEL",
                    "SHAHLA_DOUBLE_BEZEL",
                    "SHAHLA_SLOPING_BEZEL",
                    "GABRIEL_BEZEL_TULIP",
                    "GABRIEL_BEZEL_SOLITAIRE",
                    "TULIP",
                    "GABRIEL_TULIP",
                    "GABRIEL_CURVED_DOUBLE_PRONG",
                    "GABRIEL_TULIP_2",
                    "GABRIEL_THREE_STONE_LOTUS",
                    "PEG"
                  ],
                  "description": "Evaluate a setting before choosing its catalog config with SET_STONE; this request does not replace the setting."
                }
              },
              "required": []
            },
            "morphs": {
              "type": "object",
              "minProperties": 1,
              "maxProperties": 30,
              "propertyNames": {
                "pattern": "^[a-z][a-zA-Z0-9_]{0,63}$"
              },
              "additionalProperties": {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "string",
                    "maxLength": 100
                  }
                ]
              },
              "description": "Band-only proposal at the top level beside componentId, not inside parameters. Use exact keys from the selected band morphOptions, for example {\"bandWidth\":3}. Saved values and revision stay unchanged."
            }
          },
          "required": [
            "componentId"
          ]
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Success",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "revision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              },
              "materials": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "name": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "name"
                  ],
                  "additionalProperties": true
                }
              },
              "supportedCommands": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "component": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "componentId": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "kind": {
                    "type": "string",
                    "enum": [
                      "RING_BAND",
                      "STONE"
                    ]
                  },
                  "values": {
                    "type": "object",
                    "additionalProperties": true
                  },
                  "proposedParameters": {
                    "type": "object",
                    "additionalProperties": true
                  },
                  "parameters": {
                    "type": "object",
                    "additionalProperties": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "string",
                            "number",
                            "boolean"
                          ]
                        },
                        "enum": {
                          "type": "array",
                          "items": {}
                        },
                        "minimum": {
                          "type": "number"
                        },
                        "maximum": {
                          "type": "number"
                        },
                        "description": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "type"
                      ]
                    }
                  },
                  "morphOptions": {
                    "type": "object",
                    "additionalProperties": true
                  }
                },
                "required": [
                  "componentId",
                  "kind",
                  "values",
                  "parameters"
                ]
              }
            },
            "required": [
              "materials"
            ]
          }
        }
      }
    },
    "400": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "401": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "403": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "404": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "409": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "413": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "415": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "422": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "429": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "500": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "502": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "503": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "504": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    }
  }
}
GET /designs/{id}/component-options

Discover account-accessible ready shapes, stones/settings and attachment hardware for this design family

Authentication: [{"bearerAuth": []}]

Parameters

NameLocationRequiredType / description
idpathYesstring: format: "uuid"
kindqueryYesstring: enum: ["MAIN_SHAPE", "STONE", "BAIL", "JUMP_RING"]
afterqueryNostring: format: "uuid"
limitqueryNostring: pattern: "^(?:[1-9]|[1-9][0-9]|100)$"

Responses

200 — Success

application/json

FieldTypeRequiredDescription / constraints
kindstringYes
enum: ["MAIN_SHAPE", "STONE", "BAIL", "JUMP_RING"]
itemsarray of objectYes
nextCursorstringYes
format: "uuid"; nullable: true

items

Array items

FieldTypeRequiredDescription / constraints
idstringYes
format: "uuid"
namestringYes
sourcestringNo
enum: ["BASE_CONFIG", "CUSTOM_BASE_CONFIG"]
cutstringNo
shapestringNo
settingTypestringNo
typestringNo
sizestringNo
parametersobjectNo
additionalProperties: false
gemTypesarray of objectNo

parameters

FieldTypeRequiredDescription / constraints
shapeobjectYes
additionalProperties: false
caratWeightobjectYes
additionalProperties: false
widthobjectYes
additionalProperties: false
lengthobjectYes
additionalProperties: false
depthobjectYes
additionalProperties: false

shape

FieldTypeRequiredDescription / constraints
valuesarray of stringYes

values

Array items

caratWeight

FieldTypeRequiredDescription / constraints
minimumnumberYes
maximumnumberYes

width

FieldTypeRequiredDescription / constraints
minimumnumberYes

length

FieldTypeRequiredDescription / constraints
minimumnumberYes

depth

FieldTypeRequiredDescription / constraints
minimumnumberYes

gemTypes

Array items

FieldTypeRequiredDescription / constraints
idstringYes
namestringYes
qualitystringNo
nullable: true
baseStoneTypeIdstringNo
baseStoneTypeNamestringNo
nullable: true
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "kind": {
      "type": "string",
      "enum": [
        "MAIN_SHAPE",
        "STONE",
        "BAIL",
        "JUMP_RING"
      ]
    },
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string"
          },
          "source": {
            "type": "string",
            "enum": [
              "BASE_CONFIG",
              "CUSTOM_BASE_CONFIG"
            ]
          },
          "cut": {
            "type": "string"
          },
          "shape": {
            "type": "string"
          },
          "settingType": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "size": {
            "type": "string"
          },
          "parameters": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "shape": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "values": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                },
                "required": [
                  "values"
                ]
              },
              "caratWeight": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "minimum": {
                    "type": "number"
                  },
                  "maximum": {
                    "type": "number"
                  }
                },
                "required": [
                  "minimum",
                  "maximum"
                ]
              },
              "width": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "minimum": {
                    "type": "number"
                  }
                },
                "required": [
                  "minimum"
                ]
              },
              "length": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "minimum": {
                    "type": "number"
                  }
                },
                "required": [
                  "minimum"
                ]
              },
              "depth": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "minimum": {
                    "type": "number"
                  }
                },
                "required": [
                  "minimum"
                ]
              }
            },
            "required": [
              "shape",
              "caratWeight",
              "width",
              "length",
              "depth"
            ]
          },
          "gemTypes": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "id": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "quality": {
                  "type": "string",
                  "nullable": true
                },
                "baseStoneTypeId": {
                  "type": "string"
                },
                "baseStoneTypeName": {
                  "type": "string",
                  "nullable": true
                }
              },
              "required": [
                "id",
                "name"
              ]
            }
          }
        },
        "required": [
          "id",
          "name"
        ]
      }
    },
    "nextCursor": {
      "type": "string",
      "format": "uuid",
      "nullable": true
    }
  },
  "required": [
    "kind",
    "items",
    "nextCursor"
  ]
}
400 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
401 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
403 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
404 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
409 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
413 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
415 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
422 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
429 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
500 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
502 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
503 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
504 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
Complete operation definition
{
  "operationId": "getComponentOptions",
  "summary": "Discover account-accessible ready shapes, stones/settings and attachment hardware for this design family",
  "tags": [
    "REST Designs"
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "parameters": [
    {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "name": "kind",
      "in": "query",
      "required": true,
      "schema": {
        "type": "string",
        "enum": [
          "MAIN_SHAPE",
          "STONE",
          "BAIL",
          "JUMP_RING"
        ]
      }
    },
    {
      "name": "after",
      "in": "query",
      "required": false,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "name": "limit",
      "in": "query",
      "required": false,
      "schema": {
        "type": "string",
        "pattern": "^(?:[1-9]|[1-9][0-9]|100)$",
        "description": "Page size from 1 to 100; defaults to 20."
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Success",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "kind": {
                "type": "string",
                "enum": [
                  "MAIN_SHAPE",
                  "STONE",
                  "BAIL",
                  "JUMP_RING"
                ]
              },
              "items": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "name": {
                      "type": "string"
                    },
                    "source": {
                      "type": "string",
                      "enum": [
                        "BASE_CONFIG",
                        "CUSTOM_BASE_CONFIG"
                      ]
                    },
                    "cut": {
                      "type": "string"
                    },
                    "shape": {
                      "type": "string"
                    },
                    "settingType": {
                      "type": "string"
                    },
                    "type": {
                      "type": "string"
                    },
                    "size": {
                      "type": "string"
                    },
                    "parameters": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "shape": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "values": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            }
                          },
                          "required": [
                            "values"
                          ]
                        },
                        "caratWeight": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "minimum": {
                              "type": "number"
                            },
                            "maximum": {
                              "type": "number"
                            }
                          },
                          "required": [
                            "minimum",
                            "maximum"
                          ]
                        },
                        "width": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "minimum": {
                              "type": "number"
                            }
                          },
                          "required": [
                            "minimum"
                          ]
                        },
                        "length": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "minimum": {
                              "type": "number"
                            }
                          },
                          "required": [
                            "minimum"
                          ]
                        },
                        "depth": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "minimum": {
                              "type": "number"
                            }
                          },
                          "required": [
                            "minimum"
                          ]
                        }
                      },
                      "required": [
                        "shape",
                        "caratWeight",
                        "width",
                        "length",
                        "depth"
                      ]
                    },
                    "gemTypes": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "quality": {
                            "type": "string",
                            "nullable": true
                          },
                          "baseStoneTypeId": {
                            "type": "string"
                          },
                          "baseStoneTypeName": {
                            "type": "string",
                            "nullable": true
                          }
                        },
                        "required": [
                          "id",
                          "name"
                        ]
                      }
                    }
                  },
                  "required": [
                    "id",
                    "name"
                  ]
                }
              },
              "nextCursor": {
                "type": "string",
                "format": "uuid",
                "nullable": true
              }
            },
            "required": [
              "kind",
              "items",
              "nextCursor"
            ]
          }
        }
      }
    },
    "400": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "401": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "403": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "404": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "409": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "413": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "415": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "422": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "429": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "500": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "502": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "503": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "504": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    }
  }
}
GET /designs/{id}/ring-options

Discover ring templates, page-builder morphs, defaults and editable ranges

Authentication: [{"bearerAuth": []}]

Parameters

NameLocationRequiredType / description
idpathYesstring: format: "uuid"
afterqueryNostring: format: "uuid"
limitqueryNostring: pattern: "^(?:[1-9]|[1-9][0-9]|100)$"

Responses

200 — Success

application/json

FieldTypeRequiredDescription / constraints
kindstringYes
enum: ["RING_BAND"]
itemsarray of objectYes
nextCursorstringYes
format: "uuid"; nullable: true

items

Array items

FieldTypeRequiredDescription / constraints
idstringYes
format: "uuid"
namestringYes
parametricKeystringYes
defaultsobjectYes
additionalProperties: false
morphOptionsobjectYes
additionalProperties: true
parametersobjectYes
additionalProperties: false

defaults

FieldTypeRequiredDescription / constraints
morphsobjectYes
additionalProperties: {"anyOf": [{"type": "number"}, {"type": "boolean"}, {"type": "string", "maxLength": 100}]}
ringSizestringYes
enum: ["US_2", "US_2.25", "US_2.5", "US_2.75", "US_3", "US_3.25", "US_3.5", "US_3.75", "US_4", "US_4.25", "US_4.5", "US_4.75", "US_5", "US_5.25", "US_5.5", "US_5.75", "US_6", "US_6.25", "US_6.5", "US_6.75", "US_7", "US_7.25", "US_7.5", "US_7.75", "US_8", "US_8.25", "US_8.5", "US_8.75", "US_9", "US_9.25", "US_9.5", "US_9.75", "US_10", "US_10.25", "US_10.5", "US_10.75", "US_11", "US_11.25", "US_11.5", "US_11.75", "US_12", "US_12.25", "US_12.5", "US_12.75", "US_13", "UK_F", "UK_F0.5", "UK_G", "UK_G0.5", "UK_H", "UK_H0.5", "UK_I", "UK_J", "UK_J0.5", "UK_K", "UK_K0.5", "UK_L", "UK_L0.5", "UK_M", "UK_M0.5", "UK_N", "UK_N0.5", "UK_O", "UK_O0.5", "UK_P", "UK_P0.5", "UK_Q", "UK_Q0.5", "UK_R", "UK_R0.5", "UK_S", "UK_S0.5", "UK_T", "UK_T0.5", "UK_U", "UK_U0.5", "UK_V", "UK_V0.5", "UK_W", "UK_W0.5", "UK_X", "UK_X0.5", "UK_Y", "UK_Z", "UK_Z0.5", "EU_44", "EU_45", "EU_45.5", "EU_46", "EU_47", "EU_47.5", "EU_48", "EU_48.5", "EU_49", "EU_50", "EU_50.5", "EU_51", "EU_52", "EU_52.5", "EU_53", "EU_54", "EU_54.5", "EU_55", "EU_56", "EU_56.5", "EU_57", "EU_58", "EU_58.5", "EU_59", "EU_60", "EU_60.5", "EU_61", "EU_61.5", "EU_62", "EU_63", "EU_63.5", "EU_64", "EU_65", "EU_65.5", "EU_66", "EU_67", "EU_67.5", "EU_68", "EU_69", "EU_69.5", "EU_70"]
bandWidthMmnumberNo
exclusiveMinimum: 0
bandHeightMmnumberNo
exclusiveMinimum: 0

parameters

FieldTypeRequiredDescription / constraints
ringSizeobjectYes
additionalProperties: false
bandWidthMmobjectNo
additionalProperties: false
bandHeightMmobjectNo
additionalProperties: false

ringSize

FieldTypeRequiredDescription / constraints
valuesarray of stringYes

values

Array items

bandWidthMm

FieldTypeRequiredDescription / constraints
minimumnumberYes
maximumnumberYes

bandHeightMm

FieldTypeRequiredDescription / constraints
minimumnumberYes
maximumnumberYes
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "kind": {
      "type": "string",
      "enum": [
        "RING_BAND"
      ]
    },
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string"
          },
          "parametricKey": {
            "type": "string"
          },
          "defaults": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "morphs": {
                "type": "object",
                "minProperties": 0,
                "maxProperties": 30,
                "propertyNames": {
                  "pattern": "^[a-z][a-zA-Z0-9_]{0,63}$"
                },
                "additionalProperties": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "string",
                      "maxLength": 100
                    }
                  ]
                }
              },
              "ringSize": {
                "type": "string",
                "enum": [
                  "US_2",
                  "US_2.25",
                  "US_2.5",
                  "US_2.75",
                  "US_3",
                  "US_3.25",
                  "US_3.5",
                  "US_3.75",
                  "US_4",
                  "US_4.25",
                  "US_4.5",
                  "US_4.75",
                  "US_5",
                  "US_5.25",
                  "US_5.5",
                  "US_5.75",
                  "US_6",
                  "US_6.25",
                  "US_6.5",
                  "US_6.75",
                  "US_7",
                  "US_7.25",
                  "US_7.5",
                  "US_7.75",
                  "US_8",
                  "US_8.25",
                  "US_8.5",
                  "US_8.75",
                  "US_9",
                  "US_9.25",
                  "US_9.5",
                  "US_9.75",
                  "US_10",
                  "US_10.25",
                  "US_10.5",
                  "US_10.75",
                  "US_11",
                  "US_11.25",
                  "US_11.5",
                  "US_11.75",
                  "US_12",
                  "US_12.25",
                  "US_12.5",
                  "US_12.75",
                  "US_13",
                  "UK_F",
                  "UK_F0.5",
                  "UK_G",
                  "UK_G0.5",
                  "UK_H",
                  "UK_H0.5",
                  "UK_I",
                  "UK_J",
                  "UK_J0.5",
                  "UK_K",
                  "UK_K0.5",
                  "UK_L",
                  "UK_L0.5",
                  "UK_M",
                  "UK_M0.5",
                  "UK_N",
                  "UK_N0.5",
                  "UK_O",
                  "UK_O0.5",
                  "UK_P",
                  "UK_P0.5",
                  "UK_Q",
                  "UK_Q0.5",
                  "UK_R",
                  "UK_R0.5",
                  "UK_S",
                  "UK_S0.5",
                  "UK_T",
                  "UK_T0.5",
                  "UK_U",
                  "UK_U0.5",
                  "UK_V",
                  "UK_V0.5",
                  "UK_W",
                  "UK_W0.5",
                  "UK_X",
                  "UK_X0.5",
                  "UK_Y",
                  "UK_Z",
                  "UK_Z0.5",
                  "EU_44",
                  "EU_45",
                  "EU_45.5",
                  "EU_46",
                  "EU_47",
                  "EU_47.5",
                  "EU_48",
                  "EU_48.5",
                  "EU_49",
                  "EU_50",
                  "EU_50.5",
                  "EU_51",
                  "EU_52",
                  "EU_52.5",
                  "EU_53",
                  "EU_54",
                  "EU_54.5",
                  "EU_55",
                  "EU_56",
                  "EU_56.5",
                  "EU_57",
                  "EU_58",
                  "EU_58.5",
                  "EU_59",
                  "EU_60",
                  "EU_60.5",
                  "EU_61",
                  "EU_61.5",
                  "EU_62",
                  "EU_63",
                  "EU_63.5",
                  "EU_64",
                  "EU_65",
                  "EU_65.5",
                  "EU_66",
                  "EU_67",
                  "EU_67.5",
                  "EU_68",
                  "EU_69",
                  "EU_69.5",
                  "EU_70"
                ]
              },
              "bandWidthMm": {
                "type": "number",
                "exclusiveMinimum": 0
              },
              "bandHeightMm": {
                "type": "number",
                "exclusiveMinimum": 0
              }
            },
            "required": [
              "ringSize",
              "morphs"
            ]
          },
          "morphOptions": {
            "type": "object",
            "additionalProperties": true
          },
          "parameters": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "ringSize": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "values": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                },
                "required": [
                  "values"
                ]
              },
              "bandWidthMm": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "minimum": {
                    "type": "number"
                  },
                  "maximum": {
                    "type": "number"
                  }
                },
                "required": [
                  "minimum",
                  "maximum"
                ]
              },
              "bandHeightMm": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "minimum": {
                    "type": "number"
                  },
                  "maximum": {
                    "type": "number"
                  }
                },
                "required": [
                  "minimum",
                  "maximum"
                ]
              }
            },
            "required": [
              "ringSize"
            ]
          }
        },
        "required": [
          "id",
          "name",
          "parametricKey",
          "defaults",
          "morphOptions",
          "parameters"
        ]
      }
    },
    "nextCursor": {
      "type": "string",
      "format": "uuid",
      "nullable": true
    }
  },
  "required": [
    "kind",
    "items",
    "nextCursor"
  ]
}
400 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
401 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
403 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
404 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
409 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
413 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
415 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
422 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
429 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
500 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
502 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
503 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
504 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
Complete operation definition
{
  "operationId": "getRingOptions",
  "summary": "Discover ring templates, page-builder morphs, defaults and editable ranges",
  "tags": [
    "REST Designs"
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "parameters": [
    {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "name": "after",
      "in": "query",
      "required": false,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "name": "limit",
      "in": "query",
      "required": false,
      "schema": {
        "type": "string",
        "pattern": "^(?:[1-9]|[1-9][0-9]|100)$"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Success",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "kind": {
                "type": "string",
                "enum": [
                  "RING_BAND"
                ]
              },
              "items": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "name": {
                      "type": "string"
                    },
                    "parametricKey": {
                      "type": "string"
                    },
                    "defaults": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "morphs": {
                          "type": "object",
                          "minProperties": 0,
                          "maxProperties": 30,
                          "propertyNames": {
                            "pattern": "^[a-z][a-zA-Z0-9_]{0,63}$"
                          },
                          "additionalProperties": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string",
                                "maxLength": 100
                              }
                            ]
                          }
                        },
                        "ringSize": {
                          "type": "string",
                          "enum": [
                            "US_2",
                            "US_2.25",
                            "US_2.5",
                            "US_2.75",
                            "US_3",
                            "US_3.25",
                            "US_3.5",
                            "US_3.75",
                            "US_4",
                            "US_4.25",
                            "US_4.5",
                            "US_4.75",
                            "US_5",
                            "US_5.25",
                            "US_5.5",
                            "US_5.75",
                            "US_6",
                            "US_6.25",
                            "US_6.5",
                            "US_6.75",
                            "US_7",
                            "US_7.25",
                            "US_7.5",
                            "US_7.75",
                            "US_8",
                            "US_8.25",
                            "US_8.5",
                            "US_8.75",
                            "US_9",
                            "US_9.25",
                            "US_9.5",
                            "US_9.75",
                            "US_10",
                            "US_10.25",
                            "US_10.5",
                            "US_10.75",
                            "US_11",
                            "US_11.25",
                            "US_11.5",
                            "US_11.75",
                            "US_12",
                            "US_12.25",
                            "US_12.5",
                            "US_12.75",
                            "US_13",
                            "UK_F",
                            "UK_F0.5",
                            "UK_G",
                            "UK_G0.5",
                            "UK_H",
                            "UK_H0.5",
                            "UK_I",
                            "UK_J",
                            "UK_J0.5",
                            "UK_K",
                            "UK_K0.5",
                            "UK_L",
                            "UK_L0.5",
                            "UK_M",
                            "UK_M0.5",
                            "UK_N",
                            "UK_N0.5",
                            "UK_O",
                            "UK_O0.5",
                            "UK_P",
                            "UK_P0.5",
                            "UK_Q",
                            "UK_Q0.5",
                            "UK_R",
                            "UK_R0.5",
                            "UK_S",
                            "UK_S0.5",
                            "UK_T",
                            "UK_T0.5",
                            "UK_U",
                            "UK_U0.5",
                            "UK_V",
                            "UK_V0.5",
                            "UK_W",
                            "UK_W0.5",
                            "UK_X",
                            "UK_X0.5",
                            "UK_Y",
                            "UK_Z",
                            "UK_Z0.5",
                            "EU_44",
                            "EU_45",
                            "EU_45.5",
                            "EU_46",
                            "EU_47",
                            "EU_47.5",
                            "EU_48",
                            "EU_48.5",
                            "EU_49",
                            "EU_50",
                            "EU_50.5",
                            "EU_51",
                            "EU_52",
                            "EU_52.5",
                            "EU_53",
                            "EU_54",
                            "EU_54.5",
                            "EU_55",
                            "EU_56",
                            "EU_56.5",
                            "EU_57",
                            "EU_58",
                            "EU_58.5",
                            "EU_59",
                            "EU_60",
                            "EU_60.5",
                            "EU_61",
                            "EU_61.5",
                            "EU_62",
                            "EU_63",
                            "EU_63.5",
                            "EU_64",
                            "EU_65",
                            "EU_65.5",
                            "EU_66",
                            "EU_67",
                            "EU_67.5",
                            "EU_68",
                            "EU_69",
                            "EU_69.5",
                            "EU_70"
                          ]
                        },
                        "bandWidthMm": {
                          "type": "number",
                          "exclusiveMinimum": 0
                        },
                        "bandHeightMm": {
                          "type": "number",
                          "exclusiveMinimum": 0
                        }
                      },
                      "required": [
                        "ringSize",
                        "morphs"
                      ]
                    },
                    "morphOptions": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "parameters": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "ringSize": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "values": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            }
                          },
                          "required": [
                            "values"
                          ]
                        },
                        "bandWidthMm": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "minimum": {
                              "type": "number"
                            },
                            "maximum": {
                              "type": "number"
                            }
                          },
                          "required": [
                            "minimum",
                            "maximum"
                          ]
                        },
                        "bandHeightMm": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "minimum": {
                              "type": "number"
                            },
                            "maximum": {
                              "type": "number"
                            }
                          },
                          "required": [
                            "minimum",
                            "maximum"
                          ]
                        }
                      },
                      "required": [
                        "ringSize"
                      ]
                    }
                  },
                  "required": [
                    "id",
                    "name",
                    "parametricKey",
                    "defaults",
                    "morphOptions",
                    "parameters"
                  ]
                }
              },
              "nextCursor": {
                "type": "string",
                "format": "uuid",
                "nullable": true
              }
            },
            "required": [
              "kind",
              "items",
              "nextCursor"
            ]
          }
        }
      }
    },
    "400": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "401": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "403": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "404": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "409": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "413": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "415": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "422": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "429": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "500": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "502": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "503": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "504": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    }
  }
}
GET /designs/{id}/nameplate-options

Discover account-accessible nameplate templates, defaults, fonts and parameter bounds

Authentication: [{"bearerAuth": []}]

Parameters

NameLocationRequiredType / description
idpathYesstring: format: "uuid"
afterqueryNostring: format: "uuid"
limitqueryNostring: pattern: "^(?:[1-9]|[1-9][0-9]|100)$"

Responses

200 — Success

application/json

FieldTypeRequiredDescription / constraints
kindstringYes
enum: ["NAMEPLATE"]
itemsarray of objectYes
nextCursorstringYes
format: "uuid"; nullable: true

items

Array items

FieldTypeRequiredDescription / constraints
idstringYes
format: "uuid"
namestringYes
parametricKeystringYes
enum: ["NAMEPLATE"]
defaultsobjectYes
additionalProperties: false
parametersobjectYes
additionalProperties: true

defaults

FieldTypeRequiredDescription / constraints
textstringYes
minLength: 1
fontFamilystringYes
enum: ["Roboto", "Inter", "Poppins", "Playfair Display", "Source Sans Pro", "Great Vibes", "Pacifico", "Allura", "Dancing Script", "Satisfy"]
fontWeightintegerYes
minimum: 100; maximum: 900
letterSpacingnumberYes
minimum: -1; maximum: 1
textThicknessnumberYes
minimum: 1; maximum: 7
targetWidthMmnumberYes
minimum: 10; maximum: 100; nullable: true
includeBackplatebooleanYes
backplateScalenumberYes
minimum: 0.1; maximum: 7
backplateThicknessnumberYes
minimum: 0.5; maximum: 5
engravebooleanYes
engraveDepthnumberYes
minimum: 0.1; maximum: 5
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "kind": {
      "type": "string",
      "enum": [
        "NAMEPLATE"
      ]
    },
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string"
          },
          "parametricKey": {
            "type": "string",
            "enum": [
              "NAMEPLATE"
            ]
          },
          "defaults": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "text": {
                "type": "string",
                "minLength": 1
              },
              "fontFamily": {
                "type": "string",
                "enum": [
                  "Roboto",
                  "Inter",
                  "Poppins",
                  "Playfair Display",
                  "Source Sans Pro",
                  "Great Vibes",
                  "Pacifico",
                  "Allura",
                  "Dancing Script",
                  "Satisfy"
                ]
              },
              "fontWeight": {
                "type": "integer",
                "minimum": 100,
                "maximum": 900
              },
              "letterSpacing": {
                "type": "number",
                "minimum": -1,
                "maximum": 1
              },
              "textThickness": {
                "type": "number",
                "minimum": 1,
                "maximum": 7
              },
              "targetWidthMm": {
                "type": "number",
                "minimum": 10,
                "maximum": 100,
                "nullable": true
              },
              "includeBackplate": {
                "type": "boolean"
              },
              "backplateScale": {
                "type": "number",
                "minimum": 0.1,
                "maximum": 7
              },
              "backplateThickness": {
                "type": "number",
                "minimum": 0.5,
                "maximum": 5
              },
              "engrave": {
                "type": "boolean"
              },
              "engraveDepth": {
                "type": "number",
                "minimum": 0.1,
                "maximum": 5
              }
            },
            "required": [
              "text",
              "fontFamily",
              "fontWeight",
              "letterSpacing",
              "textThickness",
              "targetWidthMm",
              "includeBackplate",
              "backplateScale",
              "backplateThickness",
              "engrave",
              "engraveDepth"
            ]
          },
          "parameters": {
            "type": "object",
            "additionalProperties": true
          }
        },
        "required": [
          "id",
          "name",
          "parametricKey",
          "defaults",
          "parameters"
        ]
      }
    },
    "nextCursor": {
      "type": "string",
      "format": "uuid",
      "nullable": true
    }
  },
  "required": [
    "kind",
    "items",
    "nextCursor"
  ]
}
400 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
401 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
403 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
404 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
409 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
413 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
415 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
422 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
429 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
500 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
502 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
503 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
504 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
Complete operation definition
{
  "operationId": "getNameplateOptions",
  "summary": "Discover account-accessible nameplate templates, defaults, fonts and parameter bounds",
  "tags": [
    "REST Designs"
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "parameters": [
    {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "name": "after",
      "in": "query",
      "required": false,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "name": "limit",
      "in": "query",
      "required": false,
      "schema": {
        "type": "string",
        "pattern": "^(?:[1-9]|[1-9][0-9]|100)$"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Success",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "kind": {
                "type": "string",
                "enum": [
                  "NAMEPLATE"
                ]
              },
              "items": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "name": {
                      "type": "string"
                    },
                    "parametricKey": {
                      "type": "string",
                      "enum": [
                        "NAMEPLATE"
                      ]
                    },
                    "defaults": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "text": {
                          "type": "string",
                          "minLength": 1
                        },
                        "fontFamily": {
                          "type": "string",
                          "enum": [
                            "Roboto",
                            "Inter",
                            "Poppins",
                            "Playfair Display",
                            "Source Sans Pro",
                            "Great Vibes",
                            "Pacifico",
                            "Allura",
                            "Dancing Script",
                            "Satisfy"
                          ]
                        },
                        "fontWeight": {
                          "type": "integer",
                          "minimum": 100,
                          "maximum": 900
                        },
                        "letterSpacing": {
                          "type": "number",
                          "minimum": -1,
                          "maximum": 1
                        },
                        "textThickness": {
                          "type": "number",
                          "minimum": 1,
                          "maximum": 7
                        },
                        "targetWidthMm": {
                          "type": "number",
                          "minimum": 10,
                          "maximum": 100,
                          "nullable": true
                        },
                        "includeBackplate": {
                          "type": "boolean"
                        },
                        "backplateScale": {
                          "type": "number",
                          "minimum": 0.1,
                          "maximum": 7
                        },
                        "backplateThickness": {
                          "type": "number",
                          "minimum": 0.5,
                          "maximum": 5
                        },
                        "engrave": {
                          "type": "boolean"
                        },
                        "engraveDepth": {
                          "type": "number",
                          "minimum": 0.1,
                          "maximum": 5
                        }
                      },
                      "required": [
                        "text",
                        "fontFamily",
                        "fontWeight",
                        "letterSpacing",
                        "textThickness",
                        "targetWidthMm",
                        "includeBackplate",
                        "backplateScale",
                        "backplateThickness",
                        "engrave",
                        "engraveDepth"
                      ]
                    },
                    "parameters": {
                      "type": "object",
                      "additionalProperties": true
                    }
                  },
                  "required": [
                    "id",
                    "name",
                    "parametricKey",
                    "defaults",
                    "parameters"
                  ]
                }
              },
              "nextCursor": {
                "type": "string",
                "format": "uuid",
                "nullable": true
              }
            },
            "required": [
              "kind",
              "items",
              "nextCursor"
            ]
          }
        }
      }
    },
    "400": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "401": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "403": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "404": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "409": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "413": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "415": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "422": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "429": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "500": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "502": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "503": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "504": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    }
  }
}
GET/designs/{id}/components

Read component handles and supported operations at one revision

Authentication: [{"bearerAuth": []}]

Parameters

NameLocationRequiredType / description
idpathYesstring: format: "uuid"

Responses

200 — Success

application/json

FieldTypeRequiredDescription / constraints
idstringYes
format: "uuid"
revisionintegerYes
minimum: 1; maximum: 2147483646
componentsarray of objectYes

components

Array items

FieldTypeRequiredDescription / constraints
componentIdstringYes
format: "uuid"
kindstringYes
enum: ["MAIN_SHAPE", "STONE", "BAIL", "JUMP_RING", "UPLOAD", "UNSUPPORTED"]
configIdstringYes
format: "uuid"; nullable: true
parentComponentIdstringYes
format: "uuid"; nullable: true
positionMmobjectYes
nullable: true; additionalProperties: false
rotationDegreesobjectYes
nullable: true; additionalProperties: false
ringParametersobjectNo
additionalProperties: false
canEditRingParametersbooleanNo
nameplateParametersobjectNo
additionalProperties: false
canEditNameplatebooleanNo
pendantParametersobjectNo
additionalProperties: false
canEditPendantParametersbooleanNo
uploadRolestringNo
enum: ["MAIN_SHAPE", "ADDED_COMPONENT"]
canSetStonebooleanNo
canSetRingPlacementbooleanNo
canScalebooleanNo
canAddRingStonebooleanNo
ringPlacementobjectNo
additionalProperties: false
scalePercentnumberNo
stoneParametersobjectNo
additionalProperties: false
stoneTypeIdstringNo
canTransformbooleanYes
canRemovebooleanYes

positionMm

FieldTypeRequiredDescription / constraints
xnumberYes
ynumberYes
znumberYes

rotationDegrees

FieldTypeRequiredDescription / constraints
xnumberYes
ynumberYes
znumberYes

ringParameters

FieldTypeRequiredDescription / constraints
templateIdstringYes
format: "uuid"
morphsobjectYes
additionalProperties: {"anyOf": [{"type": "number"}, {"type": "boolean"}, {"type": "string", "maxLength": 100}]}
ringSizestringYes
enum: ["US_2", "US_2.25", "US_2.5", "US_2.75", "US_3", "US_3.25", "US_3.5", "US_3.75", "US_4", "US_4.25", "US_4.5", "US_4.75", "US_5", "US_5.25", "US_5.5", "US_5.75", "US_6", "US_6.25", "US_6.5", "US_6.75", "US_7", "US_7.25", "US_7.5", "US_7.75", "US_8", "US_8.25", "US_8.5", "US_8.75", "US_9", "US_9.25", "US_9.5", "US_9.75", "US_10", "US_10.25", "US_10.5", "US_10.75", "US_11", "US_11.25", "US_11.5", "US_11.75", "US_12", "US_12.25", "US_12.5", "US_12.75", "US_13", "UK_F", "UK_F0.5", "UK_G", "UK_G0.5", "UK_H", "UK_H0.5", "UK_I", "UK_J", "UK_J0.5", "UK_K", "UK_K0.5", "UK_L", "UK_L0.5", "UK_M", "UK_M0.5", "UK_N", "UK_N0.5", "UK_O", "UK_O0.5", "UK_P", "UK_P0.5", "UK_Q", "UK_Q0.5", "UK_R", "UK_R0.5", "UK_S", "UK_S0.5", "UK_T", "UK_T0.5", "UK_U", "UK_U0.5", "UK_V", "UK_V0.5", "UK_W", "UK_W0.5", "UK_X", "UK_X0.5", "UK_Y", "UK_Z", "UK_Z0.5", "EU_44", "EU_45", "EU_45.5", "EU_46", "EU_47", "EU_47.5", "EU_48", "EU_48.5", "EU_49", "EU_50", "EU_50.5", "EU_51", "EU_52", "EU_52.5", "EU_53", "EU_54", "EU_54.5", "EU_55", "EU_56", "EU_56.5", "EU_57", "EU_58", "EU_58.5", "EU_59", "EU_60", "EU_60.5", "EU_61", "EU_61.5", "EU_62", "EU_63", "EU_63.5", "EU_64", "EU_65", "EU_65.5", "EU_66", "EU_67", "EU_67.5", "EU_68", "EU_69", "EU_69.5", "EU_70"]
bandWidthMmnumberNo
exclusiveMinimum: 0
bandHeightMmnumberNo
exclusiveMinimum: 0
morphOptionsobjectYes
additionalProperties: true

nameplateParameters

FieldTypeRequiredDescription / constraints
templateIdstringYes
format: "uuid"
textstringYes
minLength: 1
fontFamilystringYes
enum: ["Roboto", "Inter", "Poppins", "Playfair Display", "Source Sans Pro", "Great Vibes", "Pacifico", "Allura", "Dancing Script", "Satisfy"]
fontWeightintegerYes
minimum: 100; maximum: 900
letterSpacingnumberYes
minimum: -1; maximum: 1
textThicknessnumberYes
minimum: 1; maximum: 7
targetWidthMmnumberYes
minimum: 10; maximum: 100; nullable: true
includeBackplatebooleanYes
backplateScalenumberYes
minimum: 0.1; maximum: 7
backplateThicknessnumberYes
minimum: 0.5; maximum: 5
engravebooleanYes
engraveDepthnumberYes
minimum: 0.1; maximum: 5

pendantParameters

FieldTypeRequiredDescription / constraints
templateIdstringYes
format: "uuid"
widthMmnumberYes
minimum: 0.1; maximum: 1000
depthMmnumberYes
minimum: 0.1; maximum: 1000
scalePercentnumberYes
heightMmnumberYes
canScalebooleanYes

ringPlacement

FieldTypeRequiredDescription / constraints
modestringYes
enum: ["RING"]
locationDegreesnumberYes
heightMmnumberYes
sideOffsetMmnumberYes
rotationDegreesobjectYes
additionalProperties: false

rotationDegrees

FieldTypeRequiredDescription / constraints
xnumberYes
ynumberYes
znumberYes

stoneParameters

FieldTypeRequiredDescription / constraints
prongSettingstringNo
enum: ["PRONG_2", "PRONG_2_ALT", "PRONG_3", "PRONG_4", "PRONG_4_ALT", "PRONG_4_ALT_2", "PRONG_5", "PRONG_6", "PRONG_6_ALT", "PRONG_7", "PRONG_8", "PRONG_8_ALT", "PRONG_2_SHARED", "PRONG_1_SHARED"]
prongStylestringNo
enum: ["STRAIGHT", "CURVED", "CUPPED"]
prongTypestringNo
enum: ["DOUBLE", "ROUND", "TAB", "CLAW", "V"]
hasRailbooleanNo
railShapestringNo
enum: ["ROUND", "SQUARE"]
hasHalobooleanNo
prongsDiameternumberNo
minimum: 0.3; maximum: 3
railDiameternumberNo
minimum: 0.3; maximum: 3
railZOffsetnumberNo
railSizePercentnumberNo
minimum: 75; maximum: 125
railCornerRadiusnumberNo
minimum: 0; maximum: 1.5
galleryNoBottomRailbooleanNo
settingHeightnumberNo
minimum: 1; maximum: 20
armsOutbooleanNo
shapestringYes
enum: ["ROUND", "OVAL", "MOVAL", "PRINCESS", "PEAR", "MARQUISE", "RADIANT", "CUSHION", "ELONGATED_CUSHION", "HEART", "EMERALD", "BAGUETTE_STRAIGHT", "TRILLION", "TRIANGLE", "KITE", "LOZENGE", "ASSCHER", "TAPERED_BAGUETTE", "TRAPEZOID", "CALFS_HEAD", "HALF_MOON", "HEXAGON", "KEYSTONE", "LONG_HEXAGON", "OCTAGON", "OEC_ROUND", "OLD_MINE_PEAR_151", "OLD_MINE_PEAR_191", "OLD_MINE_CUSHION", "OLD_MINE_EMERALD", "OLD_MINE_OVAL", "STEP_CUT_ELONGATED_CUSHION", "STEP_CUT_MARQUISE", "STEP_CUT_OCTAGON", "STEP_CUT_OVAL_NARROW", "STEP_CUT_PEAR", "SUPERMAN"]
caratWeightnumberYes
minimum: 0.01; maximum: 100
widthnumberYesStone width in mm. Omitted dimensions retain their current values. Do not combine with caratWeight.
minimum: 0.01
lengthnumberYesStone length in mm.
minimum: 0.01
depthnumberYesStone depth in mm.
minimum: 0.01
stoneTypeIdstringYes
minLength: 1; maxLength: 100
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "revision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    },
    "components": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "componentId": {
            "type": "string",
            "format": "uuid"
          },
          "kind": {
            "type": "string",
            "enum": [
              "MAIN_SHAPE",
              "STONE",
              "BAIL",
              "JUMP_RING",
              "UPLOAD",
              "UNSUPPORTED"
            ]
          },
          "configId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "parentComponentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "positionMm": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "x": {
                "type": "number"
              },
              "y": {
                "type": "number"
              },
              "z": {
                "type": "number"
              }
            },
            "required": [
              "x",
              "y",
              "z"
            ],
            "nullable": true
          },
          "rotationDegrees": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "x": {
                "type": "number"
              },
              "y": {
                "type": "number"
              },
              "z": {
                "type": "number"
              }
            },
            "required": [
              "x",
              "y",
              "z"
            ],
            "nullable": true
          },
          "ringParameters": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "templateId": {
                "type": "string",
                "format": "uuid"
              },
              "morphs": {
                "type": "object",
                "minProperties": 0,
                "maxProperties": 30,
                "propertyNames": {
                  "pattern": "^[a-z][a-zA-Z0-9_]{0,63}$"
                },
                "additionalProperties": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "string",
                      "maxLength": 100
                    }
                  ]
                }
              },
              "ringSize": {
                "type": "string",
                "enum": [
                  "US_2",
                  "US_2.25",
                  "US_2.5",
                  "US_2.75",
                  "US_3",
                  "US_3.25",
                  "US_3.5",
                  "US_3.75",
                  "US_4",
                  "US_4.25",
                  "US_4.5",
                  "US_4.75",
                  "US_5",
                  "US_5.25",
                  "US_5.5",
                  "US_5.75",
                  "US_6",
                  "US_6.25",
                  "US_6.5",
                  "US_6.75",
                  "US_7",
                  "US_7.25",
                  "US_7.5",
                  "US_7.75",
                  "US_8",
                  "US_8.25",
                  "US_8.5",
                  "US_8.75",
                  "US_9",
                  "US_9.25",
                  "US_9.5",
                  "US_9.75",
                  "US_10",
                  "US_10.25",
                  "US_10.5",
                  "US_10.75",
                  "US_11",
                  "US_11.25",
                  "US_11.5",
                  "US_11.75",
                  "US_12",
                  "US_12.25",
                  "US_12.5",
                  "US_12.75",
                  "US_13",
                  "UK_F",
                  "UK_F0.5",
                  "UK_G",
                  "UK_G0.5",
                  "UK_H",
                  "UK_H0.5",
                  "UK_I",
                  "UK_J",
                  "UK_J0.5",
                  "UK_K",
                  "UK_K0.5",
                  "UK_L",
                  "UK_L0.5",
                  "UK_M",
                  "UK_M0.5",
                  "UK_N",
                  "UK_N0.5",
                  "UK_O",
                  "UK_O0.5",
                  "UK_P",
                  "UK_P0.5",
                  "UK_Q",
                  "UK_Q0.5",
                  "UK_R",
                  "UK_R0.5",
                  "UK_S",
                  "UK_S0.5",
                  "UK_T",
                  "UK_T0.5",
                  "UK_U",
                  "UK_U0.5",
                  "UK_V",
                  "UK_V0.5",
                  "UK_W",
                  "UK_W0.5",
                  "UK_X",
                  "UK_X0.5",
                  "UK_Y",
                  "UK_Z",
                  "UK_Z0.5",
                  "EU_44",
                  "EU_45",
                  "EU_45.5",
                  "EU_46",
                  "EU_47",
                  "EU_47.5",
                  "EU_48",
                  "EU_48.5",
                  "EU_49",
                  "EU_50",
                  "EU_50.5",
                  "EU_51",
                  "EU_52",
                  "EU_52.5",
                  "EU_53",
                  "EU_54",
                  "EU_54.5",
                  "EU_55",
                  "EU_56",
                  "EU_56.5",
                  "EU_57",
                  "EU_58",
                  "EU_58.5",
                  "EU_59",
                  "EU_60",
                  "EU_60.5",
                  "EU_61",
                  "EU_61.5",
                  "EU_62",
                  "EU_63",
                  "EU_63.5",
                  "EU_64",
                  "EU_65",
                  "EU_65.5",
                  "EU_66",
                  "EU_67",
                  "EU_67.5",
                  "EU_68",
                  "EU_69",
                  "EU_69.5",
                  "EU_70"
                ]
              },
              "bandWidthMm": {
                "type": "number",
                "exclusiveMinimum": 0
              },
              "bandHeightMm": {
                "type": "number",
                "exclusiveMinimum": 0
              },
              "morphOptions": {
                "type": "object",
                "additionalProperties": true
              }
            },
            "required": [
              "templateId",
              "ringSize",
              "morphs",
              "morphOptions"
            ]
          },
          "canEditRingParameters": {
            "type": "boolean"
          },
          "nameplateParameters": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "templateId": {
                "type": "string",
                "format": "uuid"
              },
              "text": {
                "type": "string",
                "minLength": 1
              },
              "fontFamily": {
                "type": "string",
                "enum": [
                  "Roboto",
                  "Inter",
                  "Poppins",
                  "Playfair Display",
                  "Source Sans Pro",
                  "Great Vibes",
                  "Pacifico",
                  "Allura",
                  "Dancing Script",
                  "Satisfy"
                ]
              },
              "fontWeight": {
                "type": "integer",
                "minimum": 100,
                "maximum": 900
              },
              "letterSpacing": {
                "type": "number",
                "minimum": -1,
                "maximum": 1
              },
              "textThickness": {
                "type": "number",
                "minimum": 1,
                "maximum": 7
              },
              "targetWidthMm": {
                "type": "number",
                "minimum": 10,
                "maximum": 100,
                "nullable": true
              },
              "includeBackplate": {
                "type": "boolean"
              },
              "backplateScale": {
                "type": "number",
                "minimum": 0.1,
                "maximum": 7
              },
              "backplateThickness": {
                "type": "number",
                "minimum": 0.5,
                "maximum": 5
              },
              "engrave": {
                "type": "boolean"
              },
              "engraveDepth": {
                "type": "number",
                "minimum": 0.1,
                "maximum": 5
              }
            },
            "required": [
              "templateId",
              "text",
              "fontFamily",
              "fontWeight",
              "letterSpacing",
              "textThickness",
              "targetWidthMm",
              "includeBackplate",
              "backplateScale",
              "backplateThickness",
              "engrave",
              "engraveDepth"
            ]
          },
          "canEditNameplate": {
            "type": "boolean"
          },
          "pendantParameters": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "templateId": {
                "type": "string",
                "format": "uuid"
              },
              "widthMm": {
                "type": "number",
                "minimum": 0.1,
                "maximum": 1000
              },
              "depthMm": {
                "type": "number",
                "minimum": 0.1,
                "maximum": 1000
              },
              "scalePercent": {
                "type": "number"
              },
              "heightMm": {
                "type": "number"
              },
              "canScale": {
                "type": "boolean"
              }
            },
            "required": [
              "templateId",
              "widthMm",
              "depthMm",
              "scalePercent",
              "heightMm",
              "canScale"
            ]
          },
          "canEditPendantParameters": {
            "type": "boolean"
          },
          "uploadRole": {
            "type": "string",
            "enum": [
              "MAIN_SHAPE",
              "ADDED_COMPONENT"
            ]
          },
          "canSetStone": {
            "type": "boolean"
          },
          "canSetRingPlacement": {
            "type": "boolean"
          },
          "canScale": {
            "type": "boolean"
          },
          "canAddRingStone": {
            "type": "boolean"
          },
          "ringPlacement": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "mode": {
                "type": "string",
                "enum": [
                  "RING"
                ]
              },
              "locationDegrees": {
                "type": "number"
              },
              "heightMm": {
                "type": "number"
              },
              "sideOffsetMm": {
                "type": "number"
              },
              "rotationDegrees": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "x": {
                    "type": "number"
                  },
                  "y": {
                    "type": "number"
                  },
                  "z": {
                    "type": "number"
                  }
                },
                "required": [
                  "x",
                  "y",
                  "z"
                ]
              }
            },
            "required": [
              "mode",
              "locationDegrees",
              "heightMm",
              "sideOffsetMm",
              "rotationDegrees"
            ]
          },
          "scalePercent": {
            "type": "number"
          },
          "stoneParameters": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "prongSetting": {
                "type": "string",
                "enum": [
                  "PRONG_2",
                  "PRONG_2_ALT",
                  "PRONG_3",
                  "PRONG_4",
                  "PRONG_4_ALT",
                  "PRONG_4_ALT_2",
                  "PRONG_5",
                  "PRONG_6",
                  "PRONG_6_ALT",
                  "PRONG_7",
                  "PRONG_8",
                  "PRONG_8_ALT",
                  "PRONG_2_SHARED",
                  "PRONG_1_SHARED"
                ]
              },
              "prongStyle": {
                "type": "string",
                "enum": [
                  "STRAIGHT",
                  "CURVED",
                  "CUPPED"
                ]
              },
              "prongType": {
                "type": "string",
                "enum": [
                  "DOUBLE",
                  "ROUND",
                  "TAB",
                  "CLAW",
                  "V"
                ]
              },
              "hasRail": {
                "type": "boolean"
              },
              "railShape": {
                "type": "string",
                "enum": [
                  "ROUND",
                  "SQUARE"
                ]
              },
              "hasHalo": {
                "type": "boolean"
              },
              "prongsDiameter": {
                "type": "number",
                "minimum": 0.3,
                "maximum": 3
              },
              "railDiameter": {
                "type": "number",
                "minimum": 0.3,
                "maximum": 3
              },
              "railZOffset": {
                "type": "number"
              },
              "railSizePercent": {
                "type": "number",
                "minimum": 75,
                "maximum": 125
              },
              "railCornerRadius": {
                "type": "number",
                "minimum": 0,
                "maximum": 1.5
              },
              "galleryNoBottomRail": {
                "type": "boolean"
              },
              "settingHeight": {
                "type": "number",
                "minimum": 1,
                "maximum": 20
              },
              "armsOut": {
                "type": "boolean"
              },
              "shape": {
                "type": "string",
                "enum": [
                  "ROUND",
                  "OVAL",
                  "MOVAL",
                  "PRINCESS",
                  "PEAR",
                  "MARQUISE",
                  "RADIANT",
                  "CUSHION",
                  "ELONGATED_CUSHION",
                  "HEART",
                  "EMERALD",
                  "BAGUETTE_STRAIGHT",
                  "TRILLION",
                  "TRIANGLE",
                  "KITE",
                  "LOZENGE",
                  "ASSCHER",
                  "TAPERED_BAGUETTE",
                  "TRAPEZOID",
                  "CALFS_HEAD",
                  "HALF_MOON",
                  "HEXAGON",
                  "KEYSTONE",
                  "LONG_HEXAGON",
                  "OCTAGON",
                  "OEC_ROUND",
                  "OLD_MINE_PEAR_151",
                  "OLD_MINE_PEAR_191",
                  "OLD_MINE_CUSHION",
                  "OLD_MINE_EMERALD",
                  "OLD_MINE_OVAL",
                  "STEP_CUT_ELONGATED_CUSHION",
                  "STEP_CUT_MARQUISE",
                  "STEP_CUT_OCTAGON",
                  "STEP_CUT_OVAL_NARROW",
                  "STEP_CUT_PEAR",
                  "SUPERMAN"
                ]
              },
              "caratWeight": {
                "type": "number",
                "minimum": 0.01,
                "maximum": 100
              },
              "width": {
                "type": "number",
                "minimum": 0.01,
                "description": "Stone width in mm. Omitted dimensions retain their current values. Do not combine with caratWeight."
              },
              "length": {
                "type": "number",
                "minimum": 0.01,
                "description": "Stone length in mm."
              },
              "depth": {
                "type": "number",
                "minimum": 0.01,
                "description": "Stone depth in mm."
              },
              "stoneTypeId": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100
              }
            },
            "required": [
              "shape",
              "caratWeight",
              "width",
              "length",
              "depth",
              "stoneTypeId"
            ]
          },
          "stoneTypeId": {
            "type": "string"
          },
          "canTransform": {
            "type": "boolean"
          },
          "canRemove": {
            "type": "boolean"
          }
        },
        "required": [
          "componentId",
          "kind",
          "configId",
          "parentComponentId",
          "positionMm",
          "rotationDegrees",
          "canTransform",
          "canRemove"
        ]
      }
    }
  },
  "required": [
    "id",
    "revision",
    "components"
  ]
}
400 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
401 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
403 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
404 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
409 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
413 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
415 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
422 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
429 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
500 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
502 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
503 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
504 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
Complete operation definition
{
  "operationId": "getDesignComponents",
  "summary": "Read component handles and supported operations at one revision",
  "tags": [
    "REST Designs"
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "parameters": [
    {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Success",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "revision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              },
              "components": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "componentId": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "kind": {
                      "type": "string",
                      "enum": [
                        "MAIN_SHAPE",
                        "STONE",
                        "BAIL",
                        "JUMP_RING",
                        "UPLOAD",
                        "UNSUPPORTED"
                      ]
                    },
                    "configId": {
                      "type": "string",
                      "format": "uuid",
                      "nullable": true
                    },
                    "parentComponentId": {
                      "type": "string",
                      "format": "uuid",
                      "nullable": true
                    },
                    "positionMm": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "x": {
                          "type": "number"
                        },
                        "y": {
                          "type": "number"
                        },
                        "z": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "x",
                        "y",
                        "z"
                      ],
                      "nullable": true
                    },
                    "rotationDegrees": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "x": {
                          "type": "number"
                        },
                        "y": {
                          "type": "number"
                        },
                        "z": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "x",
                        "y",
                        "z"
                      ],
                      "nullable": true
                    },
                    "ringParameters": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "templateId": {
                          "type": "string",
                          "format": "uuid"
                        },
                        "morphs": {
                          "type": "object",
                          "minProperties": 0,
                          "maxProperties": 30,
                          "propertyNames": {
                            "pattern": "^[a-z][a-zA-Z0-9_]{0,63}$"
                          },
                          "additionalProperties": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "type": "boolean"
                              },
                              {
                                "type": "string",
                                "maxLength": 100
                              }
                            ]
                          }
                        },
                        "ringSize": {
                          "type": "string",
                          "enum": [
                            "US_2",
                            "US_2.25",
                            "US_2.5",
                            "US_2.75",
                            "US_3",
                            "US_3.25",
                            "US_3.5",
                            "US_3.75",
                            "US_4",
                            "US_4.25",
                            "US_4.5",
                            "US_4.75",
                            "US_5",
                            "US_5.25",
                            "US_5.5",
                            "US_5.75",
                            "US_6",
                            "US_6.25",
                            "US_6.5",
                            "US_6.75",
                            "US_7",
                            "US_7.25",
                            "US_7.5",
                            "US_7.75",
                            "US_8",
                            "US_8.25",
                            "US_8.5",
                            "US_8.75",
                            "US_9",
                            "US_9.25",
                            "US_9.5",
                            "US_9.75",
                            "US_10",
                            "US_10.25",
                            "US_10.5",
                            "US_10.75",
                            "US_11",
                            "US_11.25",
                            "US_11.5",
                            "US_11.75",
                            "US_12",
                            "US_12.25",
                            "US_12.5",
                            "US_12.75",
                            "US_13",
                            "UK_F",
                            "UK_F0.5",
                            "UK_G",
                            "UK_G0.5",
                            "UK_H",
                            "UK_H0.5",
                            "UK_I",
                            "UK_J",
                            "UK_J0.5",
                            "UK_K",
                            "UK_K0.5",
                            "UK_L",
                            "UK_L0.5",
                            "UK_M",
                            "UK_M0.5",
                            "UK_N",
                            "UK_N0.5",
                            "UK_O",
                            "UK_O0.5",
                            "UK_P",
                            "UK_P0.5",
                            "UK_Q",
                            "UK_Q0.5",
                            "UK_R",
                            "UK_R0.5",
                            "UK_S",
                            "UK_S0.5",
                            "UK_T",
                            "UK_T0.5",
                            "UK_U",
                            "UK_U0.5",
                            "UK_V",
                            "UK_V0.5",
                            "UK_W",
                            "UK_W0.5",
                            "UK_X",
                            "UK_X0.5",
                            "UK_Y",
                            "UK_Z",
                            "UK_Z0.5",
                            "EU_44",
                            "EU_45",
                            "EU_45.5",
                            "EU_46",
                            "EU_47",
                            "EU_47.5",
                            "EU_48",
                            "EU_48.5",
                            "EU_49",
                            "EU_50",
                            "EU_50.5",
                            "EU_51",
                            "EU_52",
                            "EU_52.5",
                            "EU_53",
                            "EU_54",
                            "EU_54.5",
                            "EU_55",
                            "EU_56",
                            "EU_56.5",
                            "EU_57",
                            "EU_58",
                            "EU_58.5",
                            "EU_59",
                            "EU_60",
                            "EU_60.5",
                            "EU_61",
                            "EU_61.5",
                            "EU_62",
                            "EU_63",
                            "EU_63.5",
                            "EU_64",
                            "EU_65",
                            "EU_65.5",
                            "EU_66",
                            "EU_67",
                            "EU_67.5",
                            "EU_68",
                            "EU_69",
                            "EU_69.5",
                            "EU_70"
                          ]
                        },
                        "bandWidthMm": {
                          "type": "number",
                          "exclusiveMinimum": 0
                        },
                        "bandHeightMm": {
                          "type": "number",
                          "exclusiveMinimum": 0
                        },
                        "morphOptions": {
                          "type": "object",
                          "additionalProperties": true
                        }
                      },
                      "required": [
                        "templateId",
                        "ringSize",
                        "morphs",
                        "morphOptions"
                      ]
                    },
                    "canEditRingParameters": {
                      "type": "boolean"
                    },
                    "nameplateParameters": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "templateId": {
                          "type": "string",
                          "format": "uuid"
                        },
                        "text": {
                          "type": "string",
                          "minLength": 1
                        },
                        "fontFamily": {
                          "type": "string",
                          "enum": [
                            "Roboto",
                            "Inter",
                            "Poppins",
                            "Playfair Display",
                            "Source Sans Pro",
                            "Great Vibes",
                            "Pacifico",
                            "Allura",
                            "Dancing Script",
                            "Satisfy"
                          ]
                        },
                        "fontWeight": {
                          "type": "integer",
                          "minimum": 100,
                          "maximum": 900
                        },
                        "letterSpacing": {
                          "type": "number",
                          "minimum": -1,
                          "maximum": 1
                        },
                        "textThickness": {
                          "type": "number",
                          "minimum": 1,
                          "maximum": 7
                        },
                        "targetWidthMm": {
                          "type": "number",
                          "minimum": 10,
                          "maximum": 100,
                          "nullable": true
                        },
                        "includeBackplate": {
                          "type": "boolean"
                        },
                        "backplateScale": {
                          "type": "number",
                          "minimum": 0.1,
                          "maximum": 7
                        },
                        "backplateThickness": {
                          "type": "number",
                          "minimum": 0.5,
                          "maximum": 5
                        },
                        "engrave": {
                          "type": "boolean"
                        },
                        "engraveDepth": {
                          "type": "number",
                          "minimum": 0.1,
                          "maximum": 5
                        }
                      },
                      "required": [
                        "templateId",
                        "text",
                        "fontFamily",
                        "fontWeight",
                        "letterSpacing",
                        "textThickness",
                        "targetWidthMm",
                        "includeBackplate",
                        "backplateScale",
                        "backplateThickness",
                        "engrave",
                        "engraveDepth"
                      ]
                    },
                    "canEditNameplate": {
                      "type": "boolean"
                    },
                    "pendantParameters": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "templateId": {
                          "type": "string",
                          "format": "uuid"
                        },
                        "widthMm": {
                          "type": "number",
                          "minimum": 0.1,
                          "maximum": 1000
                        },
                        "depthMm": {
                          "type": "number",
                          "minimum": 0.1,
                          "maximum": 1000
                        },
                        "scalePercent": {
                          "type": "number"
                        },
                        "heightMm": {
                          "type": "number"
                        },
                        "canScale": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "templateId",
                        "widthMm",
                        "depthMm",
                        "scalePercent",
                        "heightMm",
                        "canScale"
                      ]
                    },
                    "canEditPendantParameters": {
                      "type": "boolean"
                    },
                    "uploadRole": {
                      "type": "string",
                      "enum": [
                        "MAIN_SHAPE",
                        "ADDED_COMPONENT"
                      ]
                    },
                    "canSetStone": {
                      "type": "boolean"
                    },
                    "canSetRingPlacement": {
                      "type": "boolean"
                    },
                    "canScale": {
                      "type": "boolean"
                    },
                    "canAddRingStone": {
                      "type": "boolean"
                    },
                    "ringPlacement": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "mode": {
                          "type": "string",
                          "enum": [
                            "RING"
                          ]
                        },
                        "locationDegrees": {
                          "type": "number"
                        },
                        "heightMm": {
                          "type": "number"
                        },
                        "sideOffsetMm": {
                          "type": "number"
                        },
                        "rotationDegrees": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "x": {
                              "type": "number"
                            },
                            "y": {
                              "type": "number"
                            },
                            "z": {
                              "type": "number"
                            }
                          },
                          "required": [
                            "x",
                            "y",
                            "z"
                          ]
                        }
                      },
                      "required": [
                        "mode",
                        "locationDegrees",
                        "heightMm",
                        "sideOffsetMm",
                        "rotationDegrees"
                      ]
                    },
                    "scalePercent": {
                      "type": "number"
                    },
                    "stoneParameters": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "prongSetting": {
                          "type": "string",
                          "enum": [
                            "PRONG_2",
                            "PRONG_2_ALT",
                            "PRONG_3",
                            "PRONG_4",
                            "PRONG_4_ALT",
                            "PRONG_4_ALT_2",
                            "PRONG_5",
                            "PRONG_6",
                            "PRONG_6_ALT",
                            "PRONG_7",
                            "PRONG_8",
                            "PRONG_8_ALT",
                            "PRONG_2_SHARED",
                            "PRONG_1_SHARED"
                          ]
                        },
                        "prongStyle": {
                          "type": "string",
                          "enum": [
                            "STRAIGHT",
                            "CURVED",
                            "CUPPED"
                          ]
                        },
                        "prongType": {
                          "type": "string",
                          "enum": [
                            "DOUBLE",
                            "ROUND",
                            "TAB",
                            "CLAW",
                            "V"
                          ]
                        },
                        "hasRail": {
                          "type": "boolean"
                        },
                        "railShape": {
                          "type": "string",
                          "enum": [
                            "ROUND",
                            "SQUARE"
                          ]
                        },
                        "hasHalo": {
                          "type": "boolean"
                        },
                        "prongsDiameter": {
                          "type": "number",
                          "minimum": 0.3,
                          "maximum": 3
                        },
                        "railDiameter": {
                          "type": "number",
                          "minimum": 0.3,
                          "maximum": 3
                        },
                        "railZOffset": {
                          "type": "number"
                        },
                        "railSizePercent": {
                          "type": "number",
                          "minimum": 75,
                          "maximum": 125
                        },
                        "railCornerRadius": {
                          "type": "number",
                          "minimum": 0,
                          "maximum": 1.5
                        },
                        "galleryNoBottomRail": {
                          "type": "boolean"
                        },
                        "settingHeight": {
                          "type": "number",
                          "minimum": 1,
                          "maximum": 20
                        },
                        "armsOut": {
                          "type": "boolean"
                        },
                        "shape": {
                          "type": "string",
                          "enum": [
                            "ROUND",
                            "OVAL",
                            "MOVAL",
                            "PRINCESS",
                            "PEAR",
                            "MARQUISE",
                            "RADIANT",
                            "CUSHION",
                            "ELONGATED_CUSHION",
                            "HEART",
                            "EMERALD",
                            "BAGUETTE_STRAIGHT",
                            "TRILLION",
                            "TRIANGLE",
                            "KITE",
                            "LOZENGE",
                            "ASSCHER",
                            "TAPERED_BAGUETTE",
                            "TRAPEZOID",
                            "CALFS_HEAD",
                            "HALF_MOON",
                            "HEXAGON",
                            "KEYSTONE",
                            "LONG_HEXAGON",
                            "OCTAGON",
                            "OEC_ROUND",
                            "OLD_MINE_PEAR_151",
                            "OLD_MINE_PEAR_191",
                            "OLD_MINE_CUSHION",
                            "OLD_MINE_EMERALD",
                            "OLD_MINE_OVAL",
                            "STEP_CUT_ELONGATED_CUSHION",
                            "STEP_CUT_MARQUISE",
                            "STEP_CUT_OCTAGON",
                            "STEP_CUT_OVAL_NARROW",
                            "STEP_CUT_PEAR",
                            "SUPERMAN"
                          ]
                        },
                        "caratWeight": {
                          "type": "number",
                          "minimum": 0.01,
                          "maximum": 100
                        },
                        "width": {
                          "type": "number",
                          "minimum": 0.01,
                          "description": "Stone width in mm. Omitted dimensions retain their current values. Do not combine with caratWeight."
                        },
                        "length": {
                          "type": "number",
                          "minimum": 0.01,
                          "description": "Stone length in mm."
                        },
                        "depth": {
                          "type": "number",
                          "minimum": 0.01,
                          "description": "Stone depth in mm."
                        },
                        "stoneTypeId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 100
                        }
                      },
                      "required": [
                        "shape",
                        "caratWeight",
                        "width",
                        "length",
                        "depth",
                        "stoneTypeId"
                      ]
                    },
                    "stoneTypeId": {
                      "type": "string"
                    },
                    "canTransform": {
                      "type": "boolean"
                    },
                    "canRemove": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "componentId",
                    "kind",
                    "configId",
                    "parentComponentId",
                    "positionMm",
                    "rotationDegrees",
                    "canTransform",
                    "canRemove"
                  ]
                }
              }
            },
            "required": [
              "id",
              "revision",
              "components"
            ]
          }
        }
      }
    },
    "400": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "401": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "403": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "404": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "409": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "413": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "415": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "422": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "429": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "500": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "502": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "503": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "504": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    }
  }
}
POST/designs/{id}/changes

Apply a design change at an expected revision

Authentication: [{"bearerAuth": []}]

Parameters

NameLocationRequiredType / description
idpathYesstring: format: "uuid"
Idempotency-KeyheaderYesstring: minLength: 1; maxLength: 128; pattern: "^[A-Za-z0-9._:-]+$"

Request body (required)

application/json

Exactly one alternative must match

Alternative 1

Required fields: type, expectedRevision, materialId

FieldTypeRequiredDescription / constraints
typestringYes
enum: ["SET_MATERIAL"]
expectedRevisionintegerYes
minimum: 1; maximum: 2147483646
materialIdstringYes
format: "uuid"

Alternative 2

Required fields: type, expectedRevision, componentId

FieldTypeRequiredDescription / constraints
typestringYes
enum: ["SET_PENDANT_PARAMETERS"]
expectedRevisionintegerYes
minimum: 1; maximum: 2147483646
componentIdstringYes
format: "uuid"
widthMmnumberNo
minimum: 0.1; maximum: 1000
depthMmnumberNo
minimum: 0.1; maximum: 1000
scalePercentintegerNo
minimum: 1; maximum: 500

At least one alternative must match

Alternative 1

Required fields: widthMm

Alternative 2

Required fields: depthMm

Alternative 3

Required fields: scalePercent

Alternative 3

Required fields: type, expectedRevision, templateId, text

FieldTypeRequiredDescription / constraints
typestringYes
enum: ["ADD_NAMEPLATE"]
expectedRevisionintegerYes
minimum: 1; maximum: 2147483646
templateIdstringYes
format: "uuid"
textstringYes
minLength: 1
fontFamilystringNo
enum: ["Roboto", "Inter", "Poppins", "Playfair Display", "Source Sans Pro", "Great Vibes", "Pacifico", "Allura", "Dancing Script", "Satisfy"]
fontWeightintegerNo
minimum: 100; maximum: 900
letterSpacingnumberNo
minimum: -1; maximum: 1
textThicknessnumberNo
minimum: 1; maximum: 7
targetWidthMmnumberNo
minimum: 10; maximum: 100; nullable: true
includeBackplatebooleanNo
backplateScalenumberNo
minimum: 0.1; maximum: 7
backplateThicknessnumberNo
minimum: 0.5; maximum: 5
engravebooleanNo
engraveDepthnumberNo
minimum: 0.1; maximum: 5

Alternative 4

Required fields: type, expectedRevision, componentId

FieldTypeRequiredDescription / constraints
typestringYes
enum: ["SET_NAMEPLATE_PARAMETERS"]
expectedRevisionintegerYes
minimum: 1; maximum: 2147483646
componentIdstringYes
format: "uuid"
textstringNo
minLength: 1
fontFamilystringNo
enum: ["Roboto", "Inter", "Poppins", "Playfair Display", "Source Sans Pro", "Great Vibes", "Pacifico", "Allura", "Dancing Script", "Satisfy"]
fontWeightintegerNo
minimum: 100; maximum: 900
letterSpacingnumberNo
minimum: -1; maximum: 1
textThicknessnumberNo
minimum: 1; maximum: 7
targetWidthMmnumberNo
minimum: 10; maximum: 100; nullable: true
includeBackplatebooleanNo
backplateScalenumberNo
minimum: 0.1; maximum: 7
backplateThicknessnumberNo
minimum: 0.5; maximum: 5
engravebooleanNo
engraveDepthnumberNo
minimum: 0.1; maximum: 5

At least one alternative must match

Alternative 1

Required fields: text

Alternative 2

Required fields: fontFamily

Alternative 3

Required fields: fontWeight

Alternative 4

Required fields: letterSpacing

Alternative 5

Required fields: textThickness

Alternative 6

Required fields: targetWidthMm

Alternative 7

Required fields: includeBackplate

Alternative 8

Required fields: backplateScale

Alternative 9

Required fields: backplateThickness

Alternative 10

Required fields: engrave

Alternative 11

Required fields: engraveDepth

Alternative 5

Required fields: type, expectedRevision, uploadId, role, placement

FieldTypeRequiredDescription / constraints
typestringYes
enum: ["ADD_UPLOAD"]
expectedRevisionintegerYes
minimum: 1; maximum: 2147483646
uploadIdstringYes
format: "uuid"
rolestringYes
enum: ["MAIN_SHAPE", "ADDED_COMPONENT"]
uniformScalenumberNo
minimum: 0.001; maximum: 1000
placementoneOfYes

placement

Exactly one alternative must match

Alternative 1

Required fields: mode, positionMm, rotationDegrees

FieldTypeRequiredDescription / constraints
modestringYes
enum: ["WORLD"]
parentComponentIdstringNo
format: "uuid"
positionMmobjectYesWorld position in millimetres.
additionalProperties: false
rotationDegreesobjectYesWorld XYZ Euler rotation in degrees.
additionalProperties: false

positionMm

World position in millimetres.

FieldTypeRequiredDescription / constraints
xnumberYes
ynumberYes
znumberYes

rotationDegrees

World XYZ Euler rotation in degrees.

FieldTypeRequiredDescription / constraints
xnumberYes
ynumberYes
znumberYes

Alternative 2

Required fields: mode, parentComponentId, locationDegrees, heightMm, sidePositionMm, rotationDegrees

FieldTypeRequiredDescription / constraints
modestringYes
enum: ["RING"]
parentComponentIdstringYes
format: "uuid"
locationDegreesnumberYes
minimum: 0; maximum: 360
heightMmnumberYes
minimum: -100; maximum: 100
sidePositionMmnumberYes
minimum: -100; maximum: 100
rotationDegreesobjectYes
additionalProperties: false

rotationDegrees

FieldTypeRequiredDescription / constraints
xnumberYes
minimum: -360; maximum: 360
ynumberYes
minimum: -360; maximum: 360
znumberYes
minimum: -360; maximum: 360

Alternative 6

Required fields: type, expectedRevision, templateId

FieldTypeRequiredDescription / constraints
typestringYes
enum: ["ADD_RING_BAND"]
expectedRevisionintegerYes
minimum: 1; maximum: 2147483646
templateIdstringYes
format: "uuid"
morphsobjectNo
additionalProperties: {"anyOf": [{"type": "number"}, {"type": "boolean"}, {"type": "string", "maxLength": 100}]}
ringSizestringNo
enum: ["US_2", "US_2.25", "US_2.5", "US_2.75", "US_3", "US_3.25", "US_3.5", "US_3.75", "US_4", "US_4.25", "US_4.5", "US_4.75", "US_5", "US_5.25", "US_5.5", "US_5.75", "US_6", "US_6.25", "US_6.5", "US_6.75", "US_7", "US_7.25", "US_7.5", "US_7.75", "US_8", "US_8.25", "US_8.5", "US_8.75", "US_9", "US_9.25", "US_9.5", "US_9.75", "US_10", "US_10.25", "US_10.5", "US_10.75", "US_11", "US_11.25", "US_11.5", "US_11.75", "US_12", "US_12.25", "US_12.5", "US_12.75", "US_13", "UK_F", "UK_F0.5", "UK_G", "UK_G0.5", "UK_H", "UK_H0.5", "UK_I", "UK_J", "UK_J0.5", "UK_K", "UK_K0.5", "UK_L", "UK_L0.5", "UK_M", "UK_M0.5", "UK_N", "UK_N0.5", "UK_O", "UK_O0.5", "UK_P", "UK_P0.5", "UK_Q", "UK_Q0.5", "UK_R", "UK_R0.5", "UK_S", "UK_S0.5", "UK_T", "UK_T0.5", "UK_U", "UK_U0.5", "UK_V", "UK_V0.5", "UK_W", "UK_W0.5", "UK_X", "UK_X0.5", "UK_Y", "UK_Z", "UK_Z0.5", "EU_44", "EU_45", "EU_45.5", "EU_46", "EU_47", "EU_47.5", "EU_48", "EU_48.5", "EU_49", "EU_50", "EU_50.5", "EU_51", "EU_52", "EU_52.5", "EU_53", "EU_54", "EU_54.5", "EU_55", "EU_56", "EU_56.5", "EU_57", "EU_58", "EU_58.5", "EU_59", "EU_60", "EU_60.5", "EU_61", "EU_61.5", "EU_62", "EU_63", "EU_63.5", "EU_64", "EU_65", "EU_65.5", "EU_66", "EU_67", "EU_67.5", "EU_68", "EU_69", "EU_69.5", "EU_70"]
bandWidthMmnumberNo
minimum: 1; maximum: 10
bandHeightMmnumberNo
minimum: 1; maximum: 5

Alternative 7

Required fields: type, expectedRevision, componentId

FieldTypeRequiredDescription / constraints
typestringYes
enum: ["SET_RING_BAND_PARAMETERS"]
expectedRevisionintegerYes
minimum: 1; maximum: 2147483646
componentIdstringYes
format: "uuid"
morphsobjectNo
additionalProperties: {"anyOf": [{"type": "number"}, {"type": "boolean"}, {"type": "string", "maxLength": 100}]}
ringSizestringNo
enum: ["US_2", "US_2.25", "US_2.5", "US_2.75", "US_3", "US_3.25", "US_3.5", "US_3.75", "US_4", "US_4.25", "US_4.5", "US_4.75", "US_5", "US_5.25", "US_5.5", "US_5.75", "US_6", "US_6.25", "US_6.5", "US_6.75", "US_7", "US_7.25", "US_7.5", "US_7.75", "US_8", "US_8.25", "US_8.5", "US_8.75", "US_9", "US_9.25", "US_9.5", "US_9.75", "US_10", "US_10.25", "US_10.5", "US_10.75", "US_11", "US_11.25", "US_11.5", "US_11.75", "US_12", "US_12.25", "US_12.5", "US_12.75", "US_13", "UK_F", "UK_F0.5", "UK_G", "UK_G0.5", "UK_H", "UK_H0.5", "UK_I", "UK_J", "UK_J0.5", "UK_K", "UK_K0.5", "UK_L", "UK_L0.5", "UK_M", "UK_M0.5", "UK_N", "UK_N0.5", "UK_O", "UK_O0.5", "UK_P", "UK_P0.5", "UK_Q", "UK_Q0.5", "UK_R", "UK_R0.5", "UK_S", "UK_S0.5", "UK_T", "UK_T0.5", "UK_U", "UK_U0.5", "UK_V", "UK_V0.5", "UK_W", "UK_W0.5", "UK_X", "UK_X0.5", "UK_Y", "UK_Z", "UK_Z0.5", "EU_44", "EU_45", "EU_45.5", "EU_46", "EU_47", "EU_47.5", "EU_48", "EU_48.5", "EU_49", "EU_50", "EU_50.5", "EU_51", "EU_52", "EU_52.5", "EU_53", "EU_54", "EU_54.5", "EU_55", "EU_56", "EU_56.5", "EU_57", "EU_58", "EU_58.5", "EU_59", "EU_60", "EU_60.5", "EU_61", "EU_61.5", "EU_62", "EU_63", "EU_63.5", "EU_64", "EU_65", "EU_65.5", "EU_66", "EU_67", "EU_67.5", "EU_68", "EU_69", "EU_69.5", "EU_70"]
bandWidthMmnumberNo
minimum: 1; maximum: 10
bandHeightMmnumberNo
minimum: 1; maximum: 5

At least one alternative must match

Alternative 1

Required fields: morphs

Alternative 2

Required fields: ringSize

Alternative 3

Required fields: bandWidthMm

Alternative 4

Required fields: bandHeightMm

Alternative 8

Required fields: type, expectedRevision, customBaseConfigId, positionMm, rotationDegrees

FieldTypeRequiredDescription / constraints
typestringYes
enum: ["ADD_MAIN_SHAPE"]
expectedRevisionintegerYes
minimum: 1; maximum: 2147483646
customBaseConfigIdstringYes
format: "uuid"
positionMmobjectYesWorld position in millimetres.
additionalProperties: false
rotationDegreesobjectYesWorld XYZ Euler rotation in degrees.
additionalProperties: false

positionMm

World position in millimetres.

FieldTypeRequiredDescription / constraints
xnumberYes
ynumberYes
znumberYes

rotationDegrees

World XYZ Euler rotation in degrees.

FieldTypeRequiredDescription / constraints
xnumberYes
ynumberYes
znumberYes

Alternative 9

Required fields: type, expectedRevision, baseConfigId, positionMm, rotationDegrees

FieldTypeRequiredDescription / constraints
typestringYes
enum: ["ADD_MAIN_SHAPE"]
expectedRevisionintegerYes
minimum: 1; maximum: 2147483646
baseConfigIdstringYes
format: "uuid"
positionMmobjectYesWorld position in millimetres.
additionalProperties: false
rotationDegreesobjectYesWorld XYZ Euler rotation in degrees.
additionalProperties: false

positionMm

World position in millimetres.

FieldTypeRequiredDescription / constraints
xnumberYes
ynumberYes
znumberYes

rotationDegrees

World XYZ Euler rotation in degrees.

FieldTypeRequiredDescription / constraints
xnumberYes
ynumberYes
znumberYes

Alternative 10

Required fields: type, expectedRevision, stoneConfigId, stoneTypeId, positionMm, rotationDegrees

FieldTypeRequiredDescription / constraints
typestringYes
enum: ["ADD_STONE"]
expectedRevisionintegerYes
minimum: 1; maximum: 2147483646
stoneConfigIdstringYes
format: "uuid"
stoneTypeIdstringYes
minLength: 1; maxLength: 100
parentComponentIdstringNo
format: "uuid"
positionMmobjectYesWorld position in millimetres.
additionalProperties: false
rotationDegreesobjectYesWorld XYZ Euler rotation in degrees.
additionalProperties: false

positionMm

World position in millimetres.

FieldTypeRequiredDescription / constraints
xnumberYes
ynumberYes
znumberYes

rotationDegrees

World XYZ Euler rotation in degrees.

FieldTypeRequiredDescription / constraints
xnumberYes
ynumberYes
znumberYes

Alternative 11

Required fields: type, expectedRevision, stoneConfigId, stoneTypeId, placement

FieldTypeRequiredDescription / constraints
typestringYes
enum: ["ADD_STONE"]
expectedRevisionintegerYes
minimum: 1; maximum: 2147483646
stoneConfigIdstringYes
format: "uuid"
stoneTypeIdstringYes
minLength: 1; maxLength: 100
parentComponentIdstringNo
format: "uuid"
placementoneOfYes

placement

Exactly one alternative must match

Alternative 1

Required fields: mode, locationDegrees, heightMm, sideOffsetMm, rotationDegrees

FieldTypeRequiredDescription / constraints
modestringYes
enum: ["RING"]
locationDegreesnumberYes
heightMmnumberYes
sideOffsetMmnumberYes
rotationDegreesobjectYes
additionalProperties: false

rotationDegrees

FieldTypeRequiredDescription / constraints
xnumberYes
ynumberYes
znumberYes

Alternative 2

Required fields: mode

FieldTypeRequiredDescription / constraints
modestringYesUse the shop default: first stone at the top, subsequent stones spaced around it on this band, with 90-degree local rotation.
enum: ["RING_DEFAULT"]

Alternative 12

Required fields: type, expectedRevision, componentId

FieldTypeRequiredDescription / constraints
typestringYes
enum: ["SET_STONE_PARAMETERS"]
expectedRevisionintegerYes
minimum: 1; maximum: 2147483646
componentIdstringYes
format: "uuid"
prongSettingstringNo
enum: ["PRONG_2", "PRONG_2_ALT", "PRONG_3", "PRONG_4", "PRONG_4_ALT", "PRONG_4_ALT_2", "PRONG_5", "PRONG_6", "PRONG_6_ALT", "PRONG_7", "PRONG_8", "PRONG_8_ALT", "PRONG_2_SHARED", "PRONG_1_SHARED"]
prongStylestringNo
enum: ["STRAIGHT", "CURVED", "CUPPED"]
prongTypestringNo
enum: ["DOUBLE", "ROUND", "TAB", "CLAW", "V"]
hasRailbooleanNo
railShapestringNo
enum: ["ROUND", "SQUARE"]
hasHalobooleanNo
prongsDiameternumberNo
minimum: 0.3; maximum: 3
railDiameternumberNo
minimum: 0.3; maximum: 3
railZOffsetnumberNo
railSizePercentnumberNo
minimum: 75; maximum: 125
railCornerRadiusnumberNo
minimum: 0; maximum: 1.5
galleryNoBottomRailbooleanNo
settingHeightnumberNo
minimum: 1; maximum: 20
armsOutbooleanNo
shapestringNo
enum: ["ROUND", "OVAL", "MOVAL", "PRINCESS", "PEAR", "MARQUISE", "RADIANT", "CUSHION", "ELONGATED_CUSHION", "HEART", "EMERALD", "BAGUETTE_STRAIGHT", "TRILLION", "TRIANGLE", "KITE", "LOZENGE", "ASSCHER", "TAPERED_BAGUETTE", "TRAPEZOID", "CALFS_HEAD", "HALF_MOON", "HEXAGON", "KEYSTONE", "LONG_HEXAGON", "OCTAGON", "OEC_ROUND", "OLD_MINE_PEAR_151", "OLD_MINE_PEAR_191", "OLD_MINE_CUSHION", "OLD_MINE_EMERALD", "OLD_MINE_OVAL", "STEP_CUT_ELONGATED_CUSHION", "STEP_CUT_MARQUISE", "STEP_CUT_OCTAGON", "STEP_CUT_OVAL_NARROW", "STEP_CUT_PEAR", "SUPERMAN"]
caratWeightnumberNo
minimum: 0.01; maximum: 100
widthnumberNoStone width in mm. Omitted dimensions retain their current values. Do not combine with caratWeight.
minimum: 0.01
lengthnumberNoStone length in mm.
minimum: 0.01
depthnumberNoStone depth in mm.
minimum: 0.01
stoneTypeIdstringNo
minLength: 1; maxLength: 100

At least one alternative must match

Alternative 1

Required fields: prongSetting

Alternative 2

Required fields: prongStyle

Alternative 3

Required fields: prongType

Alternative 4

Required fields: hasRail

Alternative 5

Required fields: railShape

Alternative 6

Required fields: hasHalo

Alternative 7

Required fields: prongsDiameter

Alternative 8

Required fields: railDiameter

Alternative 9

Required fields: railZOffset

Alternative 10

Required fields: railSizePercent

Alternative 11

Required fields: railCornerRadius

Alternative 12

Required fields: galleryNoBottomRail

Alternative 13

Required fields: settingHeight

Alternative 14

Required fields: armsOut

Alternative 15

Required fields: shape

Alternative 16

Required fields: caratWeight

Alternative 17

Required fields: width

Alternative 18

Required fields: length

Alternative 19

Required fields: depth

Alternative 20

Required fields: stoneTypeId

Alternative 13

Required fields: type, expectedRevision, componentId, stoneConfigId, stoneTypeId

FieldTypeRequiredDescription / constraints
typestringYes
enum: ["SET_STONE"]
expectedRevisionintegerYes
minimum: 1; maximum: 2147483646
componentIdstringYes
format: "uuid"
stoneConfigIdstringYes
format: "uuid"
stoneTypeIdstringYes
minLength: 1; maxLength: 100

Alternative 14

Required fields: type, expectedRevision, componentId, placement

FieldTypeRequiredDescription / constraints
typestringYes
enum: ["SET_RING_STONE_PLACEMENT"]
expectedRevisionintegerYes
minimum: 1; maximum: 2147483646
componentIdstringYes
format: "uuid"
placementobjectYes
additionalProperties: false

placement

FieldTypeRequiredDescription / constraints
modestringYes
enum: ["RING"]
locationDegreesnumberYes
heightMmnumberYes
sideOffsetMmnumberYes
rotationDegreesobjectYes
additionalProperties: false

rotationDegrees

FieldTypeRequiredDescription / constraints
xnumberYes
ynumberYes
znumberYes

Alternative 15

Required fields: type, expectedRevision, jumpRingConfigId, positionMm, rotationDegrees

FieldTypeRequiredDescription / constraints
typestringYes
enum: ["ADD_JUMP_RING"]
expectedRevisionintegerYes
minimum: 1; maximum: 2147483646
jumpRingConfigIdstringYes
format: "uuid"
parentComponentIdstringNo
format: "uuid"
positionMmobjectYesWorld position in millimetres.
additionalProperties: false
rotationDegreesobjectYesWorld XYZ Euler rotation in degrees.
additionalProperties: false

positionMm

World position in millimetres.

FieldTypeRequiredDescription / constraints
xnumberYes
ynumberYes
znumberYes

rotationDegrees

World XYZ Euler rotation in degrees.

FieldTypeRequiredDescription / constraints
xnumberYes
ynumberYes
znumberYes

Alternative 16

Required fields: type, expectedRevision, componentId, scalePercent

FieldTypeRequiredDescription / constraints
typestringYes
enum: ["SET_MAIN_SHAPE_SCALE"]
expectedRevisionintegerYes
minimum: 1; maximum: 2147483646
componentIdstringYes
format: "uuid"
scalePercentintegerYes
minimum: 1; maximum: 500

Alternative 17

Required fields: type, expectedRevision, bailConfigId, positionMm, rotationDegrees

FieldTypeRequiredDescription / constraints
typestringYes
enum: ["ADD_BAIL"]
expectedRevisionintegerYes
minimum: 1; maximum: 2147483646
bailConfigIdstringYes
format: "uuid"
positionMmobjectYesWorld position in millimetres.
additionalProperties: false
rotationDegreesobjectYesWorld XYZ Euler rotation in degrees.
additionalProperties: false

positionMm

World position in millimetres.

FieldTypeRequiredDescription / constraints
xnumberYes
ynumberYes
znumberYes

rotationDegrees

World XYZ Euler rotation in degrees.

FieldTypeRequiredDescription / constraints
xnumberYes
ynumberYes
znumberYes

Alternative 18

Required fields: type, expectedRevision, bailConfigId, placement

FieldTypeRequiredDescription / constraints
typestringYes
enum: ["ADD_BAIL"]
expectedRevisionintegerYes
minimum: 1; maximum: 2147483646
bailConfigIdstringYes
format: "uuid"
placementobjectYes
additionalProperties: false

placement

FieldTypeRequiredDescription / constraints
modestringYesPlace once at the body’s world top center with 1 mm overlap. Unsupported geometry or insufficient contact is rejected.
enum: ["TOP_CENTER"]
parentComponentIdstringYes
format: "uuid"

Alternative 19

Required fields: type, expectedRevision, componentId, positionMm, rotationDegrees

FieldTypeRequiredDescription / constraints
typestringYes
enum: ["SET_COMPONENT_TRANSFORM"]
expectedRevisionintegerYes
minimum: 1; maximum: 2147483646
componentIdstringYes
format: "uuid"
positionMmobjectYesWorld position in millimetres.
additionalProperties: false
rotationDegreesobjectYesWorld XYZ Euler rotation in degrees.
additionalProperties: false

positionMm

World position in millimetres.

FieldTypeRequiredDescription / constraints
xnumberYes
ynumberYes
znumberYes

rotationDegrees

World XYZ Euler rotation in degrees.

FieldTypeRequiredDescription / constraints
xnumberYes
ynumberYes
znumberYes

Alternative 20

Required fields: type, expectedRevision, componentId

FieldTypeRequiredDescription / constraints
typestringYes
enum: ["REMOVE_COMPONENT"]
expectedRevisionintegerYes
minimum: 1; maximum: 2147483646
componentIdstringYes
format: "uuid"
Complete schema
{
  "oneOf": [
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "SET_MATERIAL"
          ]
        },
        "expectedRevision": {
          "type": "integer",
          "minimum": 1,
          "maximum": 2147483646
        },
        "materialId": {
          "type": "string",
          "format": "uuid"
        }
      },
      "required": [
        "type",
        "expectedRevision",
        "materialId"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "SET_PENDANT_PARAMETERS"
          ]
        },
        "expectedRevision": {
          "type": "integer",
          "minimum": 1,
          "maximum": 2147483646
        },
        "componentId": {
          "type": "string",
          "format": "uuid"
        },
        "widthMm": {
          "type": "number",
          "minimum": 0.1,
          "maximum": 1000
        },
        "depthMm": {
          "type": "number",
          "minimum": 0.1,
          "maximum": 1000
        },
        "scalePercent": {
          "type": "integer",
          "minimum": 1,
          "maximum": 500
        }
      },
      "required": [
        "type",
        "expectedRevision",
        "componentId"
      ],
      "anyOf": [
        {
          "required": [
            "widthMm"
          ]
        },
        {
          "required": [
            "depthMm"
          ]
        },
        {
          "required": [
            "scalePercent"
          ]
        }
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "ADD_NAMEPLATE"
          ]
        },
        "expectedRevision": {
          "type": "integer",
          "minimum": 1,
          "maximum": 2147483646
        },
        "templateId": {
          "type": "string",
          "format": "uuid"
        },
        "text": {
          "type": "string",
          "minLength": 1
        },
        "fontFamily": {
          "type": "string",
          "enum": [
            "Roboto",
            "Inter",
            "Poppins",
            "Playfair Display",
            "Source Sans Pro",
            "Great Vibes",
            "Pacifico",
            "Allura",
            "Dancing Script",
            "Satisfy"
          ]
        },
        "fontWeight": {
          "type": "integer",
          "minimum": 100,
          "maximum": 900
        },
        "letterSpacing": {
          "type": "number",
          "minimum": -1,
          "maximum": 1
        },
        "textThickness": {
          "type": "number",
          "minimum": 1,
          "maximum": 7
        },
        "targetWidthMm": {
          "type": "number",
          "minimum": 10,
          "maximum": 100,
          "nullable": true
        },
        "includeBackplate": {
          "type": "boolean"
        },
        "backplateScale": {
          "type": "number",
          "minimum": 0.1,
          "maximum": 7
        },
        "backplateThickness": {
          "type": "number",
          "minimum": 0.5,
          "maximum": 5
        },
        "engrave": {
          "type": "boolean"
        },
        "engraveDepth": {
          "type": "number",
          "minimum": 0.1,
          "maximum": 5
        }
      },
      "required": [
        "type",
        "expectedRevision",
        "templateId",
        "text"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "SET_NAMEPLATE_PARAMETERS"
          ]
        },
        "expectedRevision": {
          "type": "integer",
          "minimum": 1,
          "maximum": 2147483646
        },
        "componentId": {
          "type": "string",
          "format": "uuid"
        },
        "text": {
          "type": "string",
          "minLength": 1
        },
        "fontFamily": {
          "type": "string",
          "enum": [
            "Roboto",
            "Inter",
            "Poppins",
            "Playfair Display",
            "Source Sans Pro",
            "Great Vibes",
            "Pacifico",
            "Allura",
            "Dancing Script",
            "Satisfy"
          ]
        },
        "fontWeight": {
          "type": "integer",
          "minimum": 100,
          "maximum": 900
        },
        "letterSpacing": {
          "type": "number",
          "minimum": -1,
          "maximum": 1
        },
        "textThickness": {
          "type": "number",
          "minimum": 1,
          "maximum": 7
        },
        "targetWidthMm": {
          "type": "number",
          "minimum": 10,
          "maximum": 100,
          "nullable": true
        },
        "includeBackplate": {
          "type": "boolean"
        },
        "backplateScale": {
          "type": "number",
          "minimum": 0.1,
          "maximum": 7
        },
        "backplateThickness": {
          "type": "number",
          "minimum": 0.5,
          "maximum": 5
        },
        "engrave": {
          "type": "boolean"
        },
        "engraveDepth": {
          "type": "number",
          "minimum": 0.1,
          "maximum": 5
        }
      },
      "required": [
        "type",
        "expectedRevision",
        "componentId"
      ],
      "anyOf": [
        {
          "required": [
            "text"
          ]
        },
        {
          "required": [
            "fontFamily"
          ]
        },
        {
          "required": [
            "fontWeight"
          ]
        },
        {
          "required": [
            "letterSpacing"
          ]
        },
        {
          "required": [
            "textThickness"
          ]
        },
        {
          "required": [
            "targetWidthMm"
          ]
        },
        {
          "required": [
            "includeBackplate"
          ]
        },
        {
          "required": [
            "backplateScale"
          ]
        },
        {
          "required": [
            "backplateThickness"
          ]
        },
        {
          "required": [
            "engrave"
          ]
        },
        {
          "required": [
            "engraveDepth"
          ]
        }
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "ADD_UPLOAD"
          ]
        },
        "expectedRevision": {
          "type": "integer",
          "minimum": 1,
          "maximum": 2147483646
        },
        "uploadId": {
          "type": "string",
          "format": "uuid"
        },
        "role": {
          "type": "string",
          "enum": [
            "MAIN_SHAPE",
            "ADDED_COMPONENT"
          ]
        },
        "uniformScale": {
          "type": "number",
          "minimum": 0.001,
          "maximum": 1000
        },
        "placement": {
          "oneOf": [
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "mode": {
                  "type": "string",
                  "enum": [
                    "WORLD"
                  ]
                },
                "parentComponentId": {
                  "type": "string",
                  "format": "uuid"
                },
                "positionMm": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "x": {
                      "type": "number"
                    },
                    "y": {
                      "type": "number"
                    },
                    "z": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "x",
                    "y",
                    "z"
                  ],
                  "description": "World position in millimetres."
                },
                "rotationDegrees": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "x": {
                      "type": "number"
                    },
                    "y": {
                      "type": "number"
                    },
                    "z": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "x",
                    "y",
                    "z"
                  ],
                  "description": "World XYZ Euler rotation in degrees."
                }
              },
              "required": [
                "mode",
                "positionMm",
                "rotationDegrees"
              ]
            },
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "mode": {
                  "type": "string",
                  "enum": [
                    "RING"
                  ]
                },
                "parentComponentId": {
                  "type": "string",
                  "format": "uuid"
                },
                "locationDegrees": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 360
                },
                "heightMm": {
                  "type": "number",
                  "minimum": -100,
                  "maximum": 100
                },
                "sidePositionMm": {
                  "type": "number",
                  "minimum": -100,
                  "maximum": 100
                },
                "rotationDegrees": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "x": {
                      "type": "number",
                      "minimum": -360,
                      "maximum": 360
                    },
                    "y": {
                      "type": "number",
                      "minimum": -360,
                      "maximum": 360
                    },
                    "z": {
                      "type": "number",
                      "minimum": -360,
                      "maximum": 360
                    }
                  },
                  "required": [
                    "x",
                    "y",
                    "z"
                  ]
                }
              },
              "required": [
                "mode",
                "parentComponentId",
                "locationDegrees",
                "heightMm",
                "sidePositionMm",
                "rotationDegrees"
              ]
            }
          ]
        }
      },
      "required": [
        "type",
        "expectedRevision",
        "uploadId",
        "role",
        "placement"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "ADD_RING_BAND"
          ]
        },
        "expectedRevision": {
          "type": "integer",
          "minimum": 1,
          "maximum": 2147483646
        },
        "templateId": {
          "type": "string",
          "format": "uuid"
        },
        "morphs": {
          "type": "object",
          "minProperties": 1,
          "maxProperties": 30,
          "propertyNames": {
            "pattern": "^[a-z][a-zA-Z0-9_]{0,63}$"
          },
          "additionalProperties": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "boolean"
              },
              {
                "type": "string",
                "maxLength": 100
              }
            ]
          }
        },
        "ringSize": {
          "type": "string",
          "enum": [
            "US_2",
            "US_2.25",
            "US_2.5",
            "US_2.75",
            "US_3",
            "US_3.25",
            "US_3.5",
            "US_3.75",
            "US_4",
            "US_4.25",
            "US_4.5",
            "US_4.75",
            "US_5",
            "US_5.25",
            "US_5.5",
            "US_5.75",
            "US_6",
            "US_6.25",
            "US_6.5",
            "US_6.75",
            "US_7",
            "US_7.25",
            "US_7.5",
            "US_7.75",
            "US_8",
            "US_8.25",
            "US_8.5",
            "US_8.75",
            "US_9",
            "US_9.25",
            "US_9.5",
            "US_9.75",
            "US_10",
            "US_10.25",
            "US_10.5",
            "US_10.75",
            "US_11",
            "US_11.25",
            "US_11.5",
            "US_11.75",
            "US_12",
            "US_12.25",
            "US_12.5",
            "US_12.75",
            "US_13",
            "UK_F",
            "UK_F0.5",
            "UK_G",
            "UK_G0.5",
            "UK_H",
            "UK_H0.5",
            "UK_I",
            "UK_J",
            "UK_J0.5",
            "UK_K",
            "UK_K0.5",
            "UK_L",
            "UK_L0.5",
            "UK_M",
            "UK_M0.5",
            "UK_N",
            "UK_N0.5",
            "UK_O",
            "UK_O0.5",
            "UK_P",
            "UK_P0.5",
            "UK_Q",
            "UK_Q0.5",
            "UK_R",
            "UK_R0.5",
            "UK_S",
            "UK_S0.5",
            "UK_T",
            "UK_T0.5",
            "UK_U",
            "UK_U0.5",
            "UK_V",
            "UK_V0.5",
            "UK_W",
            "UK_W0.5",
            "UK_X",
            "UK_X0.5",
            "UK_Y",
            "UK_Z",
            "UK_Z0.5",
            "EU_44",
            "EU_45",
            "EU_45.5",
            "EU_46",
            "EU_47",
            "EU_47.5",
            "EU_48",
            "EU_48.5",
            "EU_49",
            "EU_50",
            "EU_50.5",
            "EU_51",
            "EU_52",
            "EU_52.5",
            "EU_53",
            "EU_54",
            "EU_54.5",
            "EU_55",
            "EU_56",
            "EU_56.5",
            "EU_57",
            "EU_58",
            "EU_58.5",
            "EU_59",
            "EU_60",
            "EU_60.5",
            "EU_61",
            "EU_61.5",
            "EU_62",
            "EU_63",
            "EU_63.5",
            "EU_64",
            "EU_65",
            "EU_65.5",
            "EU_66",
            "EU_67",
            "EU_67.5",
            "EU_68",
            "EU_69",
            "EU_69.5",
            "EU_70"
          ]
        },
        "bandWidthMm": {
          "type": "number",
          "minimum": 1,
          "maximum": 10
        },
        "bandHeightMm": {
          "type": "number",
          "minimum": 1,
          "maximum": 5
        }
      },
      "required": [
        "type",
        "expectedRevision",
        "templateId"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "SET_RING_BAND_PARAMETERS"
          ]
        },
        "expectedRevision": {
          "type": "integer",
          "minimum": 1,
          "maximum": 2147483646
        },
        "componentId": {
          "type": "string",
          "format": "uuid"
        },
        "morphs": {
          "type": "object",
          "minProperties": 1,
          "maxProperties": 30,
          "propertyNames": {
            "pattern": "^[a-z][a-zA-Z0-9_]{0,63}$"
          },
          "additionalProperties": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "boolean"
              },
              {
                "type": "string",
                "maxLength": 100
              }
            ]
          }
        },
        "ringSize": {
          "type": "string",
          "enum": [
            "US_2",
            "US_2.25",
            "US_2.5",
            "US_2.75",
            "US_3",
            "US_3.25",
            "US_3.5",
            "US_3.75",
            "US_4",
            "US_4.25",
            "US_4.5",
            "US_4.75",
            "US_5",
            "US_5.25",
            "US_5.5",
            "US_5.75",
            "US_6",
            "US_6.25",
            "US_6.5",
            "US_6.75",
            "US_7",
            "US_7.25",
            "US_7.5",
            "US_7.75",
            "US_8",
            "US_8.25",
            "US_8.5",
            "US_8.75",
            "US_9",
            "US_9.25",
            "US_9.5",
            "US_9.75",
            "US_10",
            "US_10.25",
            "US_10.5",
            "US_10.75",
            "US_11",
            "US_11.25",
            "US_11.5",
            "US_11.75",
            "US_12",
            "US_12.25",
            "US_12.5",
            "US_12.75",
            "US_13",
            "UK_F",
            "UK_F0.5",
            "UK_G",
            "UK_G0.5",
            "UK_H",
            "UK_H0.5",
            "UK_I",
            "UK_J",
            "UK_J0.5",
            "UK_K",
            "UK_K0.5",
            "UK_L",
            "UK_L0.5",
            "UK_M",
            "UK_M0.5",
            "UK_N",
            "UK_N0.5",
            "UK_O",
            "UK_O0.5",
            "UK_P",
            "UK_P0.5",
            "UK_Q",
            "UK_Q0.5",
            "UK_R",
            "UK_R0.5",
            "UK_S",
            "UK_S0.5",
            "UK_T",
            "UK_T0.5",
            "UK_U",
            "UK_U0.5",
            "UK_V",
            "UK_V0.5",
            "UK_W",
            "UK_W0.5",
            "UK_X",
            "UK_X0.5",
            "UK_Y",
            "UK_Z",
            "UK_Z0.5",
            "EU_44",
            "EU_45",
            "EU_45.5",
            "EU_46",
            "EU_47",
            "EU_47.5",
            "EU_48",
            "EU_48.5",
            "EU_49",
            "EU_50",
            "EU_50.5",
            "EU_51",
            "EU_52",
            "EU_52.5",
            "EU_53",
            "EU_54",
            "EU_54.5",
            "EU_55",
            "EU_56",
            "EU_56.5",
            "EU_57",
            "EU_58",
            "EU_58.5",
            "EU_59",
            "EU_60",
            "EU_60.5",
            "EU_61",
            "EU_61.5",
            "EU_62",
            "EU_63",
            "EU_63.5",
            "EU_64",
            "EU_65",
            "EU_65.5",
            "EU_66",
            "EU_67",
            "EU_67.5",
            "EU_68",
            "EU_69",
            "EU_69.5",
            "EU_70"
          ]
        },
        "bandWidthMm": {
          "type": "number",
          "minimum": 1,
          "maximum": 10
        },
        "bandHeightMm": {
          "type": "number",
          "minimum": 1,
          "maximum": 5
        }
      },
      "required": [
        "type",
        "expectedRevision",
        "componentId"
      ],
      "anyOf": [
        {
          "required": [
            "morphs"
          ]
        },
        {
          "required": [
            "ringSize"
          ]
        },
        {
          "required": [
            "bandWidthMm"
          ]
        },
        {
          "required": [
            "bandHeightMm"
          ]
        }
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "ADD_MAIN_SHAPE"
          ]
        },
        "expectedRevision": {
          "type": "integer",
          "minimum": 1,
          "maximum": 2147483646
        },
        "customBaseConfigId": {
          "type": "string",
          "format": "uuid"
        },
        "positionMm": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "x": {
              "type": "number"
            },
            "y": {
              "type": "number"
            },
            "z": {
              "type": "number"
            }
          },
          "required": [
            "x",
            "y",
            "z"
          ],
          "description": "World position in millimetres."
        },
        "rotationDegrees": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "x": {
              "type": "number"
            },
            "y": {
              "type": "number"
            },
            "z": {
              "type": "number"
            }
          },
          "required": [
            "x",
            "y",
            "z"
          ],
          "description": "World XYZ Euler rotation in degrees."
        }
      },
      "required": [
        "type",
        "expectedRevision",
        "customBaseConfigId",
        "positionMm",
        "rotationDegrees"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "ADD_MAIN_SHAPE"
          ]
        },
        "expectedRevision": {
          "type": "integer",
          "minimum": 1,
          "maximum": 2147483646
        },
        "baseConfigId": {
          "type": "string",
          "format": "uuid"
        },
        "positionMm": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "x": {
              "type": "number"
            },
            "y": {
              "type": "number"
            },
            "z": {
              "type": "number"
            }
          },
          "required": [
            "x",
            "y",
            "z"
          ],
          "description": "World position in millimetres."
        },
        "rotationDegrees": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "x": {
              "type": "number"
            },
            "y": {
              "type": "number"
            },
            "z": {
              "type": "number"
            }
          },
          "required": [
            "x",
            "y",
            "z"
          ],
          "description": "World XYZ Euler rotation in degrees."
        }
      },
      "required": [
        "type",
        "expectedRevision",
        "baseConfigId",
        "positionMm",
        "rotationDegrees"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "ADD_STONE"
          ]
        },
        "expectedRevision": {
          "type": "integer",
          "minimum": 1,
          "maximum": 2147483646
        },
        "stoneConfigId": {
          "type": "string",
          "format": "uuid"
        },
        "stoneTypeId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "parentComponentId": {
          "type": "string",
          "format": "uuid"
        },
        "positionMm": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "x": {
              "type": "number"
            },
            "y": {
              "type": "number"
            },
            "z": {
              "type": "number"
            }
          },
          "required": [
            "x",
            "y",
            "z"
          ],
          "description": "World position in millimetres."
        },
        "rotationDegrees": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "x": {
              "type": "number"
            },
            "y": {
              "type": "number"
            },
            "z": {
              "type": "number"
            }
          },
          "required": [
            "x",
            "y",
            "z"
          ],
          "description": "World XYZ Euler rotation in degrees."
        }
      },
      "required": [
        "type",
        "expectedRevision",
        "stoneConfigId",
        "stoneTypeId",
        "positionMm",
        "rotationDegrees"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "ADD_STONE"
          ]
        },
        "expectedRevision": {
          "type": "integer",
          "minimum": 1,
          "maximum": 2147483646
        },
        "stoneConfigId": {
          "type": "string",
          "format": "uuid"
        },
        "stoneTypeId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "parentComponentId": {
          "type": "string",
          "format": "uuid"
        },
        "placement": {
          "oneOf": [
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "mode": {
                  "type": "string",
                  "enum": [
                    "RING"
                  ]
                },
                "locationDegrees": {
                  "type": "number"
                },
                "heightMm": {
                  "type": "number"
                },
                "sideOffsetMm": {
                  "type": "number"
                },
                "rotationDegrees": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "x": {
                      "type": "number"
                    },
                    "y": {
                      "type": "number"
                    },
                    "z": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "x",
                    "y",
                    "z"
                  ]
                }
              },
              "required": [
                "mode",
                "locationDegrees",
                "heightMm",
                "sideOffsetMm",
                "rotationDegrees"
              ]
            },
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "mode": {
                  "type": "string",
                  "enum": [
                    "RING_DEFAULT"
                  ],
                  "description": "Use the shop default: first stone at the top, subsequent stones spaced around it on this band, with 90-degree local rotation."
                }
              },
              "required": [
                "mode"
              ]
            }
          ]
        }
      },
      "required": [
        "type",
        "expectedRevision",
        "stoneConfigId",
        "stoneTypeId",
        "placement"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "SET_STONE_PARAMETERS"
          ]
        },
        "expectedRevision": {
          "type": "integer",
          "minimum": 1,
          "maximum": 2147483646
        },
        "componentId": {
          "type": "string",
          "format": "uuid"
        },
        "prongSetting": {
          "type": "string",
          "enum": [
            "PRONG_2",
            "PRONG_2_ALT",
            "PRONG_3",
            "PRONG_4",
            "PRONG_4_ALT",
            "PRONG_4_ALT_2",
            "PRONG_5",
            "PRONG_6",
            "PRONG_6_ALT",
            "PRONG_7",
            "PRONG_8",
            "PRONG_8_ALT",
            "PRONG_2_SHARED",
            "PRONG_1_SHARED"
          ]
        },
        "prongStyle": {
          "type": "string",
          "enum": [
            "STRAIGHT",
            "CURVED",
            "CUPPED"
          ]
        },
        "prongType": {
          "type": "string",
          "enum": [
            "DOUBLE",
            "ROUND",
            "TAB",
            "CLAW",
            "V"
          ]
        },
        "hasRail": {
          "type": "boolean"
        },
        "railShape": {
          "type": "string",
          "enum": [
            "ROUND",
            "SQUARE"
          ]
        },
        "hasHalo": {
          "type": "boolean"
        },
        "prongsDiameter": {
          "type": "number",
          "minimum": 0.3,
          "maximum": 3
        },
        "railDiameter": {
          "type": "number",
          "minimum": 0.3,
          "maximum": 3
        },
        "railZOffset": {
          "type": "number"
        },
        "railSizePercent": {
          "type": "number",
          "minimum": 75,
          "maximum": 125
        },
        "railCornerRadius": {
          "type": "number",
          "minimum": 0,
          "maximum": 1.5
        },
        "galleryNoBottomRail": {
          "type": "boolean"
        },
        "settingHeight": {
          "type": "number",
          "minimum": 1,
          "maximum": 20
        },
        "armsOut": {
          "type": "boolean"
        },
        "shape": {
          "type": "string",
          "enum": [
            "ROUND",
            "OVAL",
            "MOVAL",
            "PRINCESS",
            "PEAR",
            "MARQUISE",
            "RADIANT",
            "CUSHION",
            "ELONGATED_CUSHION",
            "HEART",
            "EMERALD",
            "BAGUETTE_STRAIGHT",
            "TRILLION",
            "TRIANGLE",
            "KITE",
            "LOZENGE",
            "ASSCHER",
            "TAPERED_BAGUETTE",
            "TRAPEZOID",
            "CALFS_HEAD",
            "HALF_MOON",
            "HEXAGON",
            "KEYSTONE",
            "LONG_HEXAGON",
            "OCTAGON",
            "OEC_ROUND",
            "OLD_MINE_PEAR_151",
            "OLD_MINE_PEAR_191",
            "OLD_MINE_CUSHION",
            "OLD_MINE_EMERALD",
            "OLD_MINE_OVAL",
            "STEP_CUT_ELONGATED_CUSHION",
            "STEP_CUT_MARQUISE",
            "STEP_CUT_OCTAGON",
            "STEP_CUT_OVAL_NARROW",
            "STEP_CUT_PEAR",
            "SUPERMAN"
          ]
        },
        "caratWeight": {
          "type": "number",
          "minimum": 0.01,
          "maximum": 100
        },
        "width": {
          "type": "number",
          "minimum": 0.01,
          "description": "Stone width in mm. Omitted dimensions retain their current values. Do not combine with caratWeight."
        },
        "length": {
          "type": "number",
          "minimum": 0.01,
          "description": "Stone length in mm."
        },
        "depth": {
          "type": "number",
          "minimum": 0.01,
          "description": "Stone depth in mm."
        },
        "stoneTypeId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        }
      },
      "required": [
        "type",
        "expectedRevision",
        "componentId"
      ],
      "anyOf": [
        {
          "required": [
            "prongSetting"
          ]
        },
        {
          "required": [
            "prongStyle"
          ]
        },
        {
          "required": [
            "prongType"
          ]
        },
        {
          "required": [
            "hasRail"
          ]
        },
        {
          "required": [
            "railShape"
          ]
        },
        {
          "required": [
            "hasHalo"
          ]
        },
        {
          "required": [
            "prongsDiameter"
          ]
        },
        {
          "required": [
            "railDiameter"
          ]
        },
        {
          "required": [
            "railZOffset"
          ]
        },
        {
          "required": [
            "railSizePercent"
          ]
        },
        {
          "required": [
            "railCornerRadius"
          ]
        },
        {
          "required": [
            "galleryNoBottomRail"
          ]
        },
        {
          "required": [
            "settingHeight"
          ]
        },
        {
          "required": [
            "armsOut"
          ]
        },
        {
          "required": [
            "shape"
          ]
        },
        {
          "required": [
            "caratWeight"
          ]
        },
        {
          "required": [
            "width"
          ]
        },
        {
          "required": [
            "length"
          ]
        },
        {
          "required": [
            "depth"
          ]
        },
        {
          "required": [
            "stoneTypeId"
          ]
        }
      ],
      "not": {
        "required": [
          "caratWeight"
        ],
        "anyOf": [
          {
            "required": [
              "width"
            ]
          },
          {
            "required": [
              "length"
            ]
          },
          {
            "required": [
              "depth"
            ]
          }
        ]
      }
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "SET_STONE"
          ]
        },
        "expectedRevision": {
          "type": "integer",
          "minimum": 1,
          "maximum": 2147483646
        },
        "componentId": {
          "type": "string",
          "format": "uuid"
        },
        "stoneConfigId": {
          "type": "string",
          "format": "uuid"
        },
        "stoneTypeId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        }
      },
      "required": [
        "type",
        "expectedRevision",
        "componentId",
        "stoneConfigId",
        "stoneTypeId"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "SET_RING_STONE_PLACEMENT"
          ]
        },
        "expectedRevision": {
          "type": "integer",
          "minimum": 1,
          "maximum": 2147483646
        },
        "componentId": {
          "type": "string",
          "format": "uuid"
        },
        "placement": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "mode": {
              "type": "string",
              "enum": [
                "RING"
              ]
            },
            "locationDegrees": {
              "type": "number"
            },
            "heightMm": {
              "type": "number"
            },
            "sideOffsetMm": {
              "type": "number"
            },
            "rotationDegrees": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "x": {
                  "type": "number"
                },
                "y": {
                  "type": "number"
                },
                "z": {
                  "type": "number"
                }
              },
              "required": [
                "x",
                "y",
                "z"
              ]
            }
          },
          "required": [
            "mode",
            "locationDegrees",
            "heightMm",
            "sideOffsetMm",
            "rotationDegrees"
          ]
        }
      },
      "required": [
        "type",
        "expectedRevision",
        "componentId",
        "placement"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "ADD_JUMP_RING"
          ]
        },
        "expectedRevision": {
          "type": "integer",
          "minimum": 1,
          "maximum": 2147483646
        },
        "jumpRingConfigId": {
          "type": "string",
          "format": "uuid"
        },
        "parentComponentId": {
          "type": "string",
          "format": "uuid"
        },
        "positionMm": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "x": {
              "type": "number"
            },
            "y": {
              "type": "number"
            },
            "z": {
              "type": "number"
            }
          },
          "required": [
            "x",
            "y",
            "z"
          ],
          "description": "World position in millimetres."
        },
        "rotationDegrees": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "x": {
              "type": "number"
            },
            "y": {
              "type": "number"
            },
            "z": {
              "type": "number"
            }
          },
          "required": [
            "x",
            "y",
            "z"
          ],
          "description": "World XYZ Euler rotation in degrees."
        }
      },
      "required": [
        "type",
        "expectedRevision",
        "jumpRingConfigId",
        "positionMm",
        "rotationDegrees"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "SET_MAIN_SHAPE_SCALE"
          ]
        },
        "expectedRevision": {
          "type": "integer",
          "minimum": 1,
          "maximum": 2147483646
        },
        "componentId": {
          "type": "string",
          "format": "uuid"
        },
        "scalePercent": {
          "type": "integer",
          "minimum": 1,
          "maximum": 500
        }
      },
      "required": [
        "type",
        "expectedRevision",
        "componentId",
        "scalePercent"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "ADD_BAIL"
          ]
        },
        "expectedRevision": {
          "type": "integer",
          "minimum": 1,
          "maximum": 2147483646
        },
        "bailConfigId": {
          "type": "string",
          "format": "uuid"
        },
        "positionMm": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "x": {
              "type": "number"
            },
            "y": {
              "type": "number"
            },
            "z": {
              "type": "number"
            }
          },
          "required": [
            "x",
            "y",
            "z"
          ],
          "description": "World position in millimetres."
        },
        "rotationDegrees": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "x": {
              "type": "number"
            },
            "y": {
              "type": "number"
            },
            "z": {
              "type": "number"
            }
          },
          "required": [
            "x",
            "y",
            "z"
          ],
          "description": "World XYZ Euler rotation in degrees."
        }
      },
      "required": [
        "type",
        "expectedRevision",
        "bailConfigId",
        "positionMm",
        "rotationDegrees"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "ADD_BAIL"
          ]
        },
        "expectedRevision": {
          "type": "integer",
          "minimum": 1,
          "maximum": 2147483646
        },
        "bailConfigId": {
          "type": "string",
          "format": "uuid"
        },
        "placement": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "mode": {
              "type": "string",
              "enum": [
                "TOP_CENTER"
              ],
              "description": "Place once at the body’s world top center with 1 mm overlap. Unsupported geometry or insufficient contact is rejected."
            },
            "parentComponentId": {
              "type": "string",
              "format": "uuid"
            }
          },
          "required": [
            "mode",
            "parentComponentId"
          ]
        }
      },
      "required": [
        "type",
        "expectedRevision",
        "bailConfigId",
        "placement"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "SET_COMPONENT_TRANSFORM"
          ]
        },
        "expectedRevision": {
          "type": "integer",
          "minimum": 1,
          "maximum": 2147483646
        },
        "componentId": {
          "type": "string",
          "format": "uuid"
        },
        "positionMm": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "x": {
              "type": "number"
            },
            "y": {
              "type": "number"
            },
            "z": {
              "type": "number"
            }
          },
          "required": [
            "x",
            "y",
            "z"
          ],
          "description": "World position in millimetres."
        },
        "rotationDegrees": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "x": {
              "type": "number"
            },
            "y": {
              "type": "number"
            },
            "z": {
              "type": "number"
            }
          },
          "required": [
            "x",
            "y",
            "z"
          ],
          "description": "World XYZ Euler rotation in degrees."
        }
      },
      "required": [
        "type",
        "expectedRevision",
        "componentId",
        "positionMm",
        "rotationDegrees"
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "REMOVE_COMPONENT"
          ]
        },
        "expectedRevision": {
          "type": "integer",
          "minimum": 1,
          "maximum": 2147483646
        },
        "componentId": {
          "type": "string",
          "format": "uuid"
        }
      },
      "required": [
        "type",
        "expectedRevision",
        "componentId"
      ]
    }
  ]
}

Responses

200 — Success

application/json

FieldTypeRequiredDescription / constraints
apiVersionstringYes
enum: ["v1"]
idstringYes
format: "uuid"
revisionintegerYes
minimum: 1; maximum: 2147483646
landingPageIdstringNoResolved stable page ID returned when creating a design with landingPageSlug. Retained by identical retries even if the page is renamed.
format: "uuid"
componentIdstringNoComponent addressed by this command. Present for component mutations; preserved on retries.
format: "uuid"
affectedComponentIdsarray of stringNo
parentComponentIdstringNoParent selected by automatic bail placement; preserved on retries.
format: "uuid"
positionMmobjectNoResolved world position for automatic bail placement; preserved on retries.
additionalProperties: false
rotationDegreesobjectNoResolved XYZ Euler rotation for automatic bail placement; preserved on retries.
additionalProperties: false

affectedComponentIds

Array items

format: "uuid"

positionMm

Resolved world position for automatic bail placement; preserved on retries.

FieldTypeRequiredDescription / constraints
xnumberYes
ynumberYes
znumberYes

rotationDegrees

Resolved XYZ Euler rotation for automatic bail placement; preserved on retries.

FieldTypeRequiredDescription / constraints
xnumberYes
ynumberYes
znumberYes
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "apiVersion": {
      "type": "string",
      "enum": [
        "v1"
      ]
    },
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "revision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    },
    "landingPageId": {
      "type": "string",
      "format": "uuid",
      "description": "Resolved stable page ID returned when creating a design with landingPageSlug. Retained by identical retries even if the page is renamed."
    },
    "componentId": {
      "type": "string",
      "format": "uuid",
      "description": "Component addressed by this command. Present for component mutations; preserved on retries."
    },
    "affectedComponentIds": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid"
      }
    },
    "parentComponentId": {
      "type": "string",
      "format": "uuid",
      "description": "Parent selected by automatic bail placement; preserved on retries."
    },
    "positionMm": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "x": {
          "type": "number"
        },
        "y": {
          "type": "number"
        },
        "z": {
          "type": "number"
        }
      },
      "required": [
        "x",
        "y",
        "z"
      ],
      "description": "Resolved world position for automatic bail placement; preserved on retries."
    },
    "rotationDegrees": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "x": {
          "type": "number"
        },
        "y": {
          "type": "number"
        },
        "z": {
          "type": "number"
        }
      },
      "required": [
        "x",
        "y",
        "z"
      ],
      "description": "Resolved XYZ Euler rotation for automatic bail placement; preserved on retries."
    }
  },
  "required": [
    "apiVersion",
    "id",
    "revision"
  ]
}
400 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
401 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
403 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
404 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
409 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
413 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
415 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
422 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
429 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
500 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
502 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
503 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
504 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
Complete operation definition
{
  "operationId": "configureDesign",
  "summary": "Apply a design change at an expected revision",
  "tags": [
    "REST Designs"
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "parameters": [
    {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "name": "Idempotency-Key",
      "in": "header",
      "required": true,
      "schema": {
        "type": "string",
        "minLength": 1,
        "maxLength": 128,
        "pattern": "^[A-Za-z0-9._:-]+$"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "oneOf": [
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "SET_MATERIAL"
                  ]
                },
                "expectedRevision": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 2147483646
                },
                "materialId": {
                  "type": "string",
                  "format": "uuid"
                }
              },
              "required": [
                "type",
                "expectedRevision",
                "materialId"
              ]
            },
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "SET_PENDANT_PARAMETERS"
                  ]
                },
                "expectedRevision": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 2147483646
                },
                "componentId": {
                  "type": "string",
                  "format": "uuid"
                },
                "widthMm": {
                  "type": "number",
                  "minimum": 0.1,
                  "maximum": 1000
                },
                "depthMm": {
                  "type": "number",
                  "minimum": 0.1,
                  "maximum": 1000
                },
                "scalePercent": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 500
                }
              },
              "required": [
                "type",
                "expectedRevision",
                "componentId"
              ],
              "anyOf": [
                {
                  "required": [
                    "widthMm"
                  ]
                },
                {
                  "required": [
                    "depthMm"
                  ]
                },
                {
                  "required": [
                    "scalePercent"
                  ]
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "ADD_NAMEPLATE"
                  ]
                },
                "expectedRevision": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 2147483646
                },
                "templateId": {
                  "type": "string",
                  "format": "uuid"
                },
                "text": {
                  "type": "string",
                  "minLength": 1
                },
                "fontFamily": {
                  "type": "string",
                  "enum": [
                    "Roboto",
                    "Inter",
                    "Poppins",
                    "Playfair Display",
                    "Source Sans Pro",
                    "Great Vibes",
                    "Pacifico",
                    "Allura",
                    "Dancing Script",
                    "Satisfy"
                  ]
                },
                "fontWeight": {
                  "type": "integer",
                  "minimum": 100,
                  "maximum": 900
                },
                "letterSpacing": {
                  "type": "number",
                  "minimum": -1,
                  "maximum": 1
                },
                "textThickness": {
                  "type": "number",
                  "minimum": 1,
                  "maximum": 7
                },
                "targetWidthMm": {
                  "type": "number",
                  "minimum": 10,
                  "maximum": 100,
                  "nullable": true
                },
                "includeBackplate": {
                  "type": "boolean"
                },
                "backplateScale": {
                  "type": "number",
                  "minimum": 0.1,
                  "maximum": 7
                },
                "backplateThickness": {
                  "type": "number",
                  "minimum": 0.5,
                  "maximum": 5
                },
                "engrave": {
                  "type": "boolean"
                },
                "engraveDepth": {
                  "type": "number",
                  "minimum": 0.1,
                  "maximum": 5
                }
              },
              "required": [
                "type",
                "expectedRevision",
                "templateId",
                "text"
              ]
            },
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "SET_NAMEPLATE_PARAMETERS"
                  ]
                },
                "expectedRevision": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 2147483646
                },
                "componentId": {
                  "type": "string",
                  "format": "uuid"
                },
                "text": {
                  "type": "string",
                  "minLength": 1
                },
                "fontFamily": {
                  "type": "string",
                  "enum": [
                    "Roboto",
                    "Inter",
                    "Poppins",
                    "Playfair Display",
                    "Source Sans Pro",
                    "Great Vibes",
                    "Pacifico",
                    "Allura",
                    "Dancing Script",
                    "Satisfy"
                  ]
                },
                "fontWeight": {
                  "type": "integer",
                  "minimum": 100,
                  "maximum": 900
                },
                "letterSpacing": {
                  "type": "number",
                  "minimum": -1,
                  "maximum": 1
                },
                "textThickness": {
                  "type": "number",
                  "minimum": 1,
                  "maximum": 7
                },
                "targetWidthMm": {
                  "type": "number",
                  "minimum": 10,
                  "maximum": 100,
                  "nullable": true
                },
                "includeBackplate": {
                  "type": "boolean"
                },
                "backplateScale": {
                  "type": "number",
                  "minimum": 0.1,
                  "maximum": 7
                },
                "backplateThickness": {
                  "type": "number",
                  "minimum": 0.5,
                  "maximum": 5
                },
                "engrave": {
                  "type": "boolean"
                },
                "engraveDepth": {
                  "type": "number",
                  "minimum": 0.1,
                  "maximum": 5
                }
              },
              "required": [
                "type",
                "expectedRevision",
                "componentId"
              ],
              "anyOf": [
                {
                  "required": [
                    "text"
                  ]
                },
                {
                  "required": [
                    "fontFamily"
                  ]
                },
                {
                  "required": [
                    "fontWeight"
                  ]
                },
                {
                  "required": [
                    "letterSpacing"
                  ]
                },
                {
                  "required": [
                    "textThickness"
                  ]
                },
                {
                  "required": [
                    "targetWidthMm"
                  ]
                },
                {
                  "required": [
                    "includeBackplate"
                  ]
                },
                {
                  "required": [
                    "backplateScale"
                  ]
                },
                {
                  "required": [
                    "backplateThickness"
                  ]
                },
                {
                  "required": [
                    "engrave"
                  ]
                },
                {
                  "required": [
                    "engraveDepth"
                  ]
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "ADD_UPLOAD"
                  ]
                },
                "expectedRevision": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 2147483646
                },
                "uploadId": {
                  "type": "string",
                  "format": "uuid"
                },
                "role": {
                  "type": "string",
                  "enum": [
                    "MAIN_SHAPE",
                    "ADDED_COMPONENT"
                  ]
                },
                "uniformScale": {
                  "type": "number",
                  "minimum": 0.001,
                  "maximum": 1000
                },
                "placement": {
                  "oneOf": [
                    {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "mode": {
                          "type": "string",
                          "enum": [
                            "WORLD"
                          ]
                        },
                        "parentComponentId": {
                          "type": "string",
                          "format": "uuid"
                        },
                        "positionMm": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "x": {
                              "type": "number"
                            },
                            "y": {
                              "type": "number"
                            },
                            "z": {
                              "type": "number"
                            }
                          },
                          "required": [
                            "x",
                            "y",
                            "z"
                          ],
                          "description": "World position in millimetres."
                        },
                        "rotationDegrees": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "x": {
                              "type": "number"
                            },
                            "y": {
                              "type": "number"
                            },
                            "z": {
                              "type": "number"
                            }
                          },
                          "required": [
                            "x",
                            "y",
                            "z"
                          ],
                          "description": "World XYZ Euler rotation in degrees."
                        }
                      },
                      "required": [
                        "mode",
                        "positionMm",
                        "rotationDegrees"
                      ]
                    },
                    {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "mode": {
                          "type": "string",
                          "enum": [
                            "RING"
                          ]
                        },
                        "parentComponentId": {
                          "type": "string",
                          "format": "uuid"
                        },
                        "locationDegrees": {
                          "type": "number",
                          "minimum": 0,
                          "maximum": 360
                        },
                        "heightMm": {
                          "type": "number",
                          "minimum": -100,
                          "maximum": 100
                        },
                        "sidePositionMm": {
                          "type": "number",
                          "minimum": -100,
                          "maximum": 100
                        },
                        "rotationDegrees": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "x": {
                              "type": "number",
                              "minimum": -360,
                              "maximum": 360
                            },
                            "y": {
                              "type": "number",
                              "minimum": -360,
                              "maximum": 360
                            },
                            "z": {
                              "type": "number",
                              "minimum": -360,
                              "maximum": 360
                            }
                          },
                          "required": [
                            "x",
                            "y",
                            "z"
                          ]
                        }
                      },
                      "required": [
                        "mode",
                        "parentComponentId",
                        "locationDegrees",
                        "heightMm",
                        "sidePositionMm",
                        "rotationDegrees"
                      ]
                    }
                  ]
                }
              },
              "required": [
                "type",
                "expectedRevision",
                "uploadId",
                "role",
                "placement"
              ]
            },
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "ADD_RING_BAND"
                  ]
                },
                "expectedRevision": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 2147483646
                },
                "templateId": {
                  "type": "string",
                  "format": "uuid"
                },
                "morphs": {
                  "type": "object",
                  "minProperties": 1,
                  "maxProperties": 30,
                  "propertyNames": {
                    "pattern": "^[a-z][a-zA-Z0-9_]{0,63}$"
                  },
                  "additionalProperties": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "maxLength": 100
                      }
                    ]
                  }
                },
                "ringSize": {
                  "type": "string",
                  "enum": [
                    "US_2",
                    "US_2.25",
                    "US_2.5",
                    "US_2.75",
                    "US_3",
                    "US_3.25",
                    "US_3.5",
                    "US_3.75",
                    "US_4",
                    "US_4.25",
                    "US_4.5",
                    "US_4.75",
                    "US_5",
                    "US_5.25",
                    "US_5.5",
                    "US_5.75",
                    "US_6",
                    "US_6.25",
                    "US_6.5",
                    "US_6.75",
                    "US_7",
                    "US_7.25",
                    "US_7.5",
                    "US_7.75",
                    "US_8",
                    "US_8.25",
                    "US_8.5",
                    "US_8.75",
                    "US_9",
                    "US_9.25",
                    "US_9.5",
                    "US_9.75",
                    "US_10",
                    "US_10.25",
                    "US_10.5",
                    "US_10.75",
                    "US_11",
                    "US_11.25",
                    "US_11.5",
                    "US_11.75",
                    "US_12",
                    "US_12.25",
                    "US_12.5",
                    "US_12.75",
                    "US_13",
                    "UK_F",
                    "UK_F0.5",
                    "UK_G",
                    "UK_G0.5",
                    "UK_H",
                    "UK_H0.5",
                    "UK_I",
                    "UK_J",
                    "UK_J0.5",
                    "UK_K",
                    "UK_K0.5",
                    "UK_L",
                    "UK_L0.5",
                    "UK_M",
                    "UK_M0.5",
                    "UK_N",
                    "UK_N0.5",
                    "UK_O",
                    "UK_O0.5",
                    "UK_P",
                    "UK_P0.5",
                    "UK_Q",
                    "UK_Q0.5",
                    "UK_R",
                    "UK_R0.5",
                    "UK_S",
                    "UK_S0.5",
                    "UK_T",
                    "UK_T0.5",
                    "UK_U",
                    "UK_U0.5",
                    "UK_V",
                    "UK_V0.5",
                    "UK_W",
                    "UK_W0.5",
                    "UK_X",
                    "UK_X0.5",
                    "UK_Y",
                    "UK_Z",
                    "UK_Z0.5",
                    "EU_44",
                    "EU_45",
                    "EU_45.5",
                    "EU_46",
                    "EU_47",
                    "EU_47.5",
                    "EU_48",
                    "EU_48.5",
                    "EU_49",
                    "EU_50",
                    "EU_50.5",
                    "EU_51",
                    "EU_52",
                    "EU_52.5",
                    "EU_53",
                    "EU_54",
                    "EU_54.5",
                    "EU_55",
                    "EU_56",
                    "EU_56.5",
                    "EU_57",
                    "EU_58",
                    "EU_58.5",
                    "EU_59",
                    "EU_60",
                    "EU_60.5",
                    "EU_61",
                    "EU_61.5",
                    "EU_62",
                    "EU_63",
                    "EU_63.5",
                    "EU_64",
                    "EU_65",
                    "EU_65.5",
                    "EU_66",
                    "EU_67",
                    "EU_67.5",
                    "EU_68",
                    "EU_69",
                    "EU_69.5",
                    "EU_70"
                  ]
                },
                "bandWidthMm": {
                  "type": "number",
                  "minimum": 1,
                  "maximum": 10
                },
                "bandHeightMm": {
                  "type": "number",
                  "minimum": 1,
                  "maximum": 5
                }
              },
              "required": [
                "type",
                "expectedRevision",
                "templateId"
              ]
            },
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "SET_RING_BAND_PARAMETERS"
                  ]
                },
                "expectedRevision": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 2147483646
                },
                "componentId": {
                  "type": "string",
                  "format": "uuid"
                },
                "morphs": {
                  "type": "object",
                  "minProperties": 1,
                  "maxProperties": 30,
                  "propertyNames": {
                    "pattern": "^[a-z][a-zA-Z0-9_]{0,63}$"
                  },
                  "additionalProperties": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "maxLength": 100
                      }
                    ]
                  }
                },
                "ringSize": {
                  "type": "string",
                  "enum": [
                    "US_2",
                    "US_2.25",
                    "US_2.5",
                    "US_2.75",
                    "US_3",
                    "US_3.25",
                    "US_3.5",
                    "US_3.75",
                    "US_4",
                    "US_4.25",
                    "US_4.5",
                    "US_4.75",
                    "US_5",
                    "US_5.25",
                    "US_5.5",
                    "US_5.75",
                    "US_6",
                    "US_6.25",
                    "US_6.5",
                    "US_6.75",
                    "US_7",
                    "US_7.25",
                    "US_7.5",
                    "US_7.75",
                    "US_8",
                    "US_8.25",
                    "US_8.5",
                    "US_8.75",
                    "US_9",
                    "US_9.25",
                    "US_9.5",
                    "US_9.75",
                    "US_10",
                    "US_10.25",
                    "US_10.5",
                    "US_10.75",
                    "US_11",
                    "US_11.25",
                    "US_11.5",
                    "US_11.75",
                    "US_12",
                    "US_12.25",
                    "US_12.5",
                    "US_12.75",
                    "US_13",
                    "UK_F",
                    "UK_F0.5",
                    "UK_G",
                    "UK_G0.5",
                    "UK_H",
                    "UK_H0.5",
                    "UK_I",
                    "UK_J",
                    "UK_J0.5",
                    "UK_K",
                    "UK_K0.5",
                    "UK_L",
                    "UK_L0.5",
                    "UK_M",
                    "UK_M0.5",
                    "UK_N",
                    "UK_N0.5",
                    "UK_O",
                    "UK_O0.5",
                    "UK_P",
                    "UK_P0.5",
                    "UK_Q",
                    "UK_Q0.5",
                    "UK_R",
                    "UK_R0.5",
                    "UK_S",
                    "UK_S0.5",
                    "UK_T",
                    "UK_T0.5",
                    "UK_U",
                    "UK_U0.5",
                    "UK_V",
                    "UK_V0.5",
                    "UK_W",
                    "UK_W0.5",
                    "UK_X",
                    "UK_X0.5",
                    "UK_Y",
                    "UK_Z",
                    "UK_Z0.5",
                    "EU_44",
                    "EU_45",
                    "EU_45.5",
                    "EU_46",
                    "EU_47",
                    "EU_47.5",
                    "EU_48",
                    "EU_48.5",
                    "EU_49",
                    "EU_50",
                    "EU_50.5",
                    "EU_51",
                    "EU_52",
                    "EU_52.5",
                    "EU_53",
                    "EU_54",
                    "EU_54.5",
                    "EU_55",
                    "EU_56",
                    "EU_56.5",
                    "EU_57",
                    "EU_58",
                    "EU_58.5",
                    "EU_59",
                    "EU_60",
                    "EU_60.5",
                    "EU_61",
                    "EU_61.5",
                    "EU_62",
                    "EU_63",
                    "EU_63.5",
                    "EU_64",
                    "EU_65",
                    "EU_65.5",
                    "EU_66",
                    "EU_67",
                    "EU_67.5",
                    "EU_68",
                    "EU_69",
                    "EU_69.5",
                    "EU_70"
                  ]
                },
                "bandWidthMm": {
                  "type": "number",
                  "minimum": 1,
                  "maximum": 10
                },
                "bandHeightMm": {
                  "type": "number",
                  "minimum": 1,
                  "maximum": 5
                }
              },
              "required": [
                "type",
                "expectedRevision",
                "componentId"
              ],
              "anyOf": [
                {
                  "required": [
                    "morphs"
                  ]
                },
                {
                  "required": [
                    "ringSize"
                  ]
                },
                {
                  "required": [
                    "bandWidthMm"
                  ]
                },
                {
                  "required": [
                    "bandHeightMm"
                  ]
                }
              ]
            },
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "ADD_MAIN_SHAPE"
                  ]
                },
                "expectedRevision": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 2147483646
                },
                "customBaseConfigId": {
                  "type": "string",
                  "format": "uuid"
                },
                "positionMm": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "x": {
                      "type": "number"
                    },
                    "y": {
                      "type": "number"
                    },
                    "z": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "x",
                    "y",
                    "z"
                  ],
                  "description": "World position in millimetres."
                },
                "rotationDegrees": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "x": {
                      "type": "number"
                    },
                    "y": {
                      "type": "number"
                    },
                    "z": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "x",
                    "y",
                    "z"
                  ],
                  "description": "World XYZ Euler rotation in degrees."
                }
              },
              "required": [
                "type",
                "expectedRevision",
                "customBaseConfigId",
                "positionMm",
                "rotationDegrees"
              ]
            },
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "ADD_MAIN_SHAPE"
                  ]
                },
                "expectedRevision": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 2147483646
                },
                "baseConfigId": {
                  "type": "string",
                  "format": "uuid"
                },
                "positionMm": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "x": {
                      "type": "number"
                    },
                    "y": {
                      "type": "number"
                    },
                    "z": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "x",
                    "y",
                    "z"
                  ],
                  "description": "World position in millimetres."
                },
                "rotationDegrees": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "x": {
                      "type": "number"
                    },
                    "y": {
                      "type": "number"
                    },
                    "z": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "x",
                    "y",
                    "z"
                  ],
                  "description": "World XYZ Euler rotation in degrees."
                }
              },
              "required": [
                "type",
                "expectedRevision",
                "baseConfigId",
                "positionMm",
                "rotationDegrees"
              ]
            },
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "ADD_STONE"
                  ]
                },
                "expectedRevision": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 2147483646
                },
                "stoneConfigId": {
                  "type": "string",
                  "format": "uuid"
                },
                "stoneTypeId": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "parentComponentId": {
                  "type": "string",
                  "format": "uuid"
                },
                "positionMm": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "x": {
                      "type": "number"
                    },
                    "y": {
                      "type": "number"
                    },
                    "z": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "x",
                    "y",
                    "z"
                  ],
                  "description": "World position in millimetres."
                },
                "rotationDegrees": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "x": {
                      "type": "number"
                    },
                    "y": {
                      "type": "number"
                    },
                    "z": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "x",
                    "y",
                    "z"
                  ],
                  "description": "World XYZ Euler rotation in degrees."
                }
              },
              "required": [
                "type",
                "expectedRevision",
                "stoneConfigId",
                "stoneTypeId",
                "positionMm",
                "rotationDegrees"
              ]
            },
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "ADD_STONE"
                  ]
                },
                "expectedRevision": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 2147483646
                },
                "stoneConfigId": {
                  "type": "string",
                  "format": "uuid"
                },
                "stoneTypeId": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "parentComponentId": {
                  "type": "string",
                  "format": "uuid"
                },
                "placement": {
                  "oneOf": [
                    {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "mode": {
                          "type": "string",
                          "enum": [
                            "RING"
                          ]
                        },
                        "locationDegrees": {
                          "type": "number"
                        },
                        "heightMm": {
                          "type": "number"
                        },
                        "sideOffsetMm": {
                          "type": "number"
                        },
                        "rotationDegrees": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "x": {
                              "type": "number"
                            },
                            "y": {
                              "type": "number"
                            },
                            "z": {
                              "type": "number"
                            }
                          },
                          "required": [
                            "x",
                            "y",
                            "z"
                          ]
                        }
                      },
                      "required": [
                        "mode",
                        "locationDegrees",
                        "heightMm",
                        "sideOffsetMm",
                        "rotationDegrees"
                      ]
                    },
                    {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "mode": {
                          "type": "string",
                          "enum": [
                            "RING_DEFAULT"
                          ],
                          "description": "Use the shop default: first stone at the top, subsequent stones spaced around it on this band, with 90-degree local rotation."
                        }
                      },
                      "required": [
                        "mode"
                      ]
                    }
                  ]
                }
              },
              "required": [
                "type",
                "expectedRevision",
                "stoneConfigId",
                "stoneTypeId",
                "placement"
              ]
            },
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "SET_STONE_PARAMETERS"
                  ]
                },
                "expectedRevision": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 2147483646
                },
                "componentId": {
                  "type": "string",
                  "format": "uuid"
                },
                "prongSetting": {
                  "type": "string",
                  "enum": [
                    "PRONG_2",
                    "PRONG_2_ALT",
                    "PRONG_3",
                    "PRONG_4",
                    "PRONG_4_ALT",
                    "PRONG_4_ALT_2",
                    "PRONG_5",
                    "PRONG_6",
                    "PRONG_6_ALT",
                    "PRONG_7",
                    "PRONG_8",
                    "PRONG_8_ALT",
                    "PRONG_2_SHARED",
                    "PRONG_1_SHARED"
                  ]
                },
                "prongStyle": {
                  "type": "string",
                  "enum": [
                    "STRAIGHT",
                    "CURVED",
                    "CUPPED"
                  ]
                },
                "prongType": {
                  "type": "string",
                  "enum": [
                    "DOUBLE",
                    "ROUND",
                    "TAB",
                    "CLAW",
                    "V"
                  ]
                },
                "hasRail": {
                  "type": "boolean"
                },
                "railShape": {
                  "type": "string",
                  "enum": [
                    "ROUND",
                    "SQUARE"
                  ]
                },
                "hasHalo": {
                  "type": "boolean"
                },
                "prongsDiameter": {
                  "type": "number",
                  "minimum": 0.3,
                  "maximum": 3
                },
                "railDiameter": {
                  "type": "number",
                  "minimum": 0.3,
                  "maximum": 3
                },
                "railZOffset": {
                  "type": "number"
                },
                "railSizePercent": {
                  "type": "number",
                  "minimum": 75,
                  "maximum": 125
                },
                "railCornerRadius": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 1.5
                },
                "galleryNoBottomRail": {
                  "type": "boolean"
                },
                "settingHeight": {
                  "type": "number",
                  "minimum": 1,
                  "maximum": 20
                },
                "armsOut": {
                  "type": "boolean"
                },
                "shape": {
                  "type": "string",
                  "enum": [
                    "ROUND",
                    "OVAL",
                    "MOVAL",
                    "PRINCESS",
                    "PEAR",
                    "MARQUISE",
                    "RADIANT",
                    "CUSHION",
                    "ELONGATED_CUSHION",
                    "HEART",
                    "EMERALD",
                    "BAGUETTE_STRAIGHT",
                    "TRILLION",
                    "TRIANGLE",
                    "KITE",
                    "LOZENGE",
                    "ASSCHER",
                    "TAPERED_BAGUETTE",
                    "TRAPEZOID",
                    "CALFS_HEAD",
                    "HALF_MOON",
                    "HEXAGON",
                    "KEYSTONE",
                    "LONG_HEXAGON",
                    "OCTAGON",
                    "OEC_ROUND",
                    "OLD_MINE_PEAR_151",
                    "OLD_MINE_PEAR_191",
                    "OLD_MINE_CUSHION",
                    "OLD_MINE_EMERALD",
                    "OLD_MINE_OVAL",
                    "STEP_CUT_ELONGATED_CUSHION",
                    "STEP_CUT_MARQUISE",
                    "STEP_CUT_OCTAGON",
                    "STEP_CUT_OVAL_NARROW",
                    "STEP_CUT_PEAR",
                    "SUPERMAN"
                  ]
                },
                "caratWeight": {
                  "type": "number",
                  "minimum": 0.01,
                  "maximum": 100
                },
                "width": {
                  "type": "number",
                  "minimum": 0.01,
                  "description": "Stone width in mm. Omitted dimensions retain their current values. Do not combine with caratWeight."
                },
                "length": {
                  "type": "number",
                  "minimum": 0.01,
                  "description": "Stone length in mm."
                },
                "depth": {
                  "type": "number",
                  "minimum": 0.01,
                  "description": "Stone depth in mm."
                },
                "stoneTypeId": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                }
              },
              "required": [
                "type",
                "expectedRevision",
                "componentId"
              ],
              "anyOf": [
                {
                  "required": [
                    "prongSetting"
                  ]
                },
                {
                  "required": [
                    "prongStyle"
                  ]
                },
                {
                  "required": [
                    "prongType"
                  ]
                },
                {
                  "required": [
                    "hasRail"
                  ]
                },
                {
                  "required": [
                    "railShape"
                  ]
                },
                {
                  "required": [
                    "hasHalo"
                  ]
                },
                {
                  "required": [
                    "prongsDiameter"
                  ]
                },
                {
                  "required": [
                    "railDiameter"
                  ]
                },
                {
                  "required": [
                    "railZOffset"
                  ]
                },
                {
                  "required": [
                    "railSizePercent"
                  ]
                },
                {
                  "required": [
                    "railCornerRadius"
                  ]
                },
                {
                  "required": [
                    "galleryNoBottomRail"
                  ]
                },
                {
                  "required": [
                    "settingHeight"
                  ]
                },
                {
                  "required": [
                    "armsOut"
                  ]
                },
                {
                  "required": [
                    "shape"
                  ]
                },
                {
                  "required": [
                    "caratWeight"
                  ]
                },
                {
                  "required": [
                    "width"
                  ]
                },
                {
                  "required": [
                    "length"
                  ]
                },
                {
                  "required": [
                    "depth"
                  ]
                },
                {
                  "required": [
                    "stoneTypeId"
                  ]
                }
              ],
              "not": {
                "required": [
                  "caratWeight"
                ],
                "anyOf": [
                  {
                    "required": [
                      "width"
                    ]
                  },
                  {
                    "required": [
                      "length"
                    ]
                  },
                  {
                    "required": [
                      "depth"
                    ]
                  }
                ]
              }
            },
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "SET_STONE"
                  ]
                },
                "expectedRevision": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 2147483646
                },
                "componentId": {
                  "type": "string",
                  "format": "uuid"
                },
                "stoneConfigId": {
                  "type": "string",
                  "format": "uuid"
                },
                "stoneTypeId": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                }
              },
              "required": [
                "type",
                "expectedRevision",
                "componentId",
                "stoneConfigId",
                "stoneTypeId"
              ]
            },
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "SET_RING_STONE_PLACEMENT"
                  ]
                },
                "expectedRevision": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 2147483646
                },
                "componentId": {
                  "type": "string",
                  "format": "uuid"
                },
                "placement": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "mode": {
                      "type": "string",
                      "enum": [
                        "RING"
                      ]
                    },
                    "locationDegrees": {
                      "type": "number"
                    },
                    "heightMm": {
                      "type": "number"
                    },
                    "sideOffsetMm": {
                      "type": "number"
                    },
                    "rotationDegrees": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "x": {
                          "type": "number"
                        },
                        "y": {
                          "type": "number"
                        },
                        "z": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "x",
                        "y",
                        "z"
                      ]
                    }
                  },
                  "required": [
                    "mode",
                    "locationDegrees",
                    "heightMm",
                    "sideOffsetMm",
                    "rotationDegrees"
                  ]
                }
              },
              "required": [
                "type",
                "expectedRevision",
                "componentId",
                "placement"
              ]
            },
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "ADD_JUMP_RING"
                  ]
                },
                "expectedRevision": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 2147483646
                },
                "jumpRingConfigId": {
                  "type": "string",
                  "format": "uuid"
                },
                "parentComponentId": {
                  "type": "string",
                  "format": "uuid"
                },
                "positionMm": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "x": {
                      "type": "number"
                    },
                    "y": {
                      "type": "number"
                    },
                    "z": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "x",
                    "y",
                    "z"
                  ],
                  "description": "World position in millimetres."
                },
                "rotationDegrees": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "x": {
                      "type": "number"
                    },
                    "y": {
                      "type": "number"
                    },
                    "z": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "x",
                    "y",
                    "z"
                  ],
                  "description": "World XYZ Euler rotation in degrees."
                }
              },
              "required": [
                "type",
                "expectedRevision",
                "jumpRingConfigId",
                "positionMm",
                "rotationDegrees"
              ]
            },
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "SET_MAIN_SHAPE_SCALE"
                  ]
                },
                "expectedRevision": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 2147483646
                },
                "componentId": {
                  "type": "string",
                  "format": "uuid"
                },
                "scalePercent": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 500
                }
              },
              "required": [
                "type",
                "expectedRevision",
                "componentId",
                "scalePercent"
              ]
            },
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "ADD_BAIL"
                  ]
                },
                "expectedRevision": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 2147483646
                },
                "bailConfigId": {
                  "type": "string",
                  "format": "uuid"
                },
                "positionMm": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "x": {
                      "type": "number"
                    },
                    "y": {
                      "type": "number"
                    },
                    "z": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "x",
                    "y",
                    "z"
                  ],
                  "description": "World position in millimetres."
                },
                "rotationDegrees": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "x": {
                      "type": "number"
                    },
                    "y": {
                      "type": "number"
                    },
                    "z": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "x",
                    "y",
                    "z"
                  ],
                  "description": "World XYZ Euler rotation in degrees."
                }
              },
              "required": [
                "type",
                "expectedRevision",
                "bailConfigId",
                "positionMm",
                "rotationDegrees"
              ]
            },
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "ADD_BAIL"
                  ]
                },
                "expectedRevision": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 2147483646
                },
                "bailConfigId": {
                  "type": "string",
                  "format": "uuid"
                },
                "placement": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "mode": {
                      "type": "string",
                      "enum": [
                        "TOP_CENTER"
                      ],
                      "description": "Place once at the body’s world top center with 1 mm overlap. Unsupported geometry or insufficient contact is rejected."
                    },
                    "parentComponentId": {
                      "type": "string",
                      "format": "uuid"
                    }
                  },
                  "required": [
                    "mode",
                    "parentComponentId"
                  ]
                }
              },
              "required": [
                "type",
                "expectedRevision",
                "bailConfigId",
                "placement"
              ]
            },
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "SET_COMPONENT_TRANSFORM"
                  ]
                },
                "expectedRevision": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 2147483646
                },
                "componentId": {
                  "type": "string",
                  "format": "uuid"
                },
                "positionMm": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "x": {
                      "type": "number"
                    },
                    "y": {
                      "type": "number"
                    },
                    "z": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "x",
                    "y",
                    "z"
                  ],
                  "description": "World position in millimetres."
                },
                "rotationDegrees": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "x": {
                      "type": "number"
                    },
                    "y": {
                      "type": "number"
                    },
                    "z": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "x",
                    "y",
                    "z"
                  ],
                  "description": "World XYZ Euler rotation in degrees."
                }
              },
              "required": [
                "type",
                "expectedRevision",
                "componentId",
                "positionMm",
                "rotationDegrees"
              ]
            },
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "REMOVE_COMPONENT"
                  ]
                },
                "expectedRevision": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 2147483646
                },
                "componentId": {
                  "type": "string",
                  "format": "uuid"
                }
              },
              "required": [
                "type",
                "expectedRevision",
                "componentId"
              ]
            }
          ]
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Success",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "apiVersion": {
                "type": "string",
                "enum": [
                  "v1"
                ]
              },
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "revision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              },
              "landingPageId": {
                "type": "string",
                "format": "uuid",
                "description": "Resolved stable page ID returned when creating a design with landingPageSlug. Retained by identical retries even if the page is renamed."
              },
              "componentId": {
                "type": "string",
                "format": "uuid",
                "description": "Component addressed by this command. Present for component mutations; preserved on retries."
              },
              "affectedComponentIds": {
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "uuid"
                }
              },
              "parentComponentId": {
                "type": "string",
                "format": "uuid",
                "description": "Parent selected by automatic bail placement; preserved on retries."
              },
              "positionMm": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "x": {
                    "type": "number"
                  },
                  "y": {
                    "type": "number"
                  },
                  "z": {
                    "type": "number"
                  }
                },
                "required": [
                  "x",
                  "y",
                  "z"
                ],
                "description": "Resolved world position for automatic bail placement; preserved on retries."
              },
              "rotationDegrees": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "x": {
                    "type": "number"
                  },
                  "y": {
                    "type": "number"
                  },
                  "z": {
                    "type": "number"
                  }
                },
                "required": [
                  "x",
                  "y",
                  "z"
                ],
                "description": "Resolved XYZ Euler rotation for automatic bail placement; preserved on retries."
              }
            },
            "required": [
              "apiVersion",
              "id",
              "revision"
            ]
          }
        }
      }
    },
    "400": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "401": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "403": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "404": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "409": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "413": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "415": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "422": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "429": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "500": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "502": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "503": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "504": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    }
  }
}
GET /designs/{id}/revision

Check the current revision without rebuilding the renderer snapshot

Authentication: [{"bearerAuth": []}]

Parameters

NameLocationRequiredType / description
idpathYesstring: format: "uuid"

Responses

200 — Success

application/json

FieldTypeRequiredDescription / constraints
idstringYes
format: "uuid"
revisionintegerYes
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "revision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "id",
    "revision"
  ]
}
400 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
401 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
403 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
404 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
409 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
413 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
415 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
422 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
429 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
500 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
502 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
503 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
504 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
Complete operation definition
{
  "operationId": "getDesignRevision",
  "summary": "Check the current revision without rebuilding the renderer snapshot",
  "tags": [
    "REST Designs"
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "parameters": [
    {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Success",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "revision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "id",
              "revision"
            ]
          }
        }
      }
    },
    "400": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "401": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "403": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "404": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "409": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "413": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "415": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "422": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "429": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "500": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "502": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "503": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "504": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    }
  }
}
POST /ai/conversations

Start a persistent external AI conversation for an owned design

Authentication: [{"bearerAuth": []}]

Parameters

NameLocationRequiredType / description
Idempotency-KeyheaderYesstring: minLength: 1; maxLength: 128; pattern: "^[A-Za-z0-9._:-]+$"

Request body (required)

application/json

FieldTypeRequiredDescription / constraints
designIdstringYes
format: "uuid"
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "designId": {
      "type": "string",
      "format": "uuid"
    }
  },
  "required": [
    "designId"
  ]
}

Responses

201 — Success

application/json

FieldTypeRequiredDescription / constraints
apiVersionstringYes
enum: ["v1"]
idstringYes
format: "uuid"
designIdstringYes
format: "uuid"
originstringYes
enum: ["PUBLIC_API"]
createdAtstringYes
format: "date-time"
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "apiVersion": {
      "type": "string",
      "enum": [
        "v1"
      ]
    },
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "designId": {
      "type": "string",
      "format": "uuid"
    },
    "origin": {
      "type": "string",
      "enum": [
        "PUBLIC_API"
      ]
    },
    "createdAt": {
      "type": "string",
      "format": "date-time"
    }
  },
  "required": [
    "apiVersion",
    "id",
    "designId",
    "origin",
    "createdAt"
  ]
}
400 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
401 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
403 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
404 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
409 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
413 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
415 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
422 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
429 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
500 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
502 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
503 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
504 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
Complete operation definition
{
  "operationId": "createAiConversation",
  "summary": "Start a persistent external AI conversation for an owned design",
  "tags": [
    "REST AI"
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "parameters": [
    {
      "name": "Idempotency-Key",
      "in": "header",
      "required": true,
      "schema": {
        "type": "string",
        "minLength": 1,
        "maxLength": 128,
        "pattern": "^[A-Za-z0-9._:-]+$"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "designId": {
              "type": "string",
              "format": "uuid"
            }
          },
          "required": [
            "designId"
          ]
        }
      }
    }
  },
  "responses": {
    "201": {
      "description": "Success",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "apiVersion": {
                "type": "string",
                "enum": [
                  "v1"
                ]
              },
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "designId": {
                "type": "string",
                "format": "uuid"
              },
              "origin": {
                "type": "string",
                "enum": [
                  "PUBLIC_API"
                ]
              },
              "createdAt": {
                "type": "string",
                "format": "date-time"
              }
            },
            "required": [
              "apiVersion",
              "id",
              "designId",
              "origin",
              "createdAt"
            ]
          }
        }
      }
    },
    "400": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "401": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "403": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "404": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "409": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "413": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "415": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "422": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "429": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "500": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "502": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "503": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "504": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    }
  }
}
GET /ai/conversations/{id}

Resume an owned external conversation and read its recent public messages

Authentication: [{"bearerAuth": []}]

Parameters

NameLocationRequiredType / description
idpathYesstring: format: "uuid"
beforequeryNostring: format: "uuid"
limitqueryNostring: pattern: "^(?:[1-9]|[1-9][0-9]|100)$"

Responses

200 — Success

application/json

FieldTypeRequiredDescription / constraints
apiVersionstringYes
enum: ["v1"]
idstringYes
format: "uuid"
designIdstringYes
format: "uuid"
originstringYes
enum: ["PUBLIC_API"]
createdAtstringYes
format: "date-time"
revisionintegerYes
minimum: 1; maximum: 2147483646
messagesarray of objectYes
nextBeforeMessageIdstringYes
format: "uuid"; nullable: true

messages

Array items

FieldTypeRequiredDescription / constraints
idstringYes
format: "uuid"
rolestringYes
enum: ["user", "assistant"]
contentstringYes
createdAtstringYes
format: "date-time"
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "apiVersion": {
      "type": "string",
      "enum": [
        "v1"
      ]
    },
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "designId": {
      "type": "string",
      "format": "uuid"
    },
    "origin": {
      "type": "string",
      "enum": [
        "PUBLIC_API"
      ]
    },
    "createdAt": {
      "type": "string",
      "format": "date-time"
    },
    "revision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    },
    "messages": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "role": {
            "type": "string",
            "enum": [
              "user",
              "assistant"
            ]
          },
          "content": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "role",
          "content",
          "createdAt"
        ]
      }
    },
    "nextBeforeMessageId": {
      "type": "string",
      "format": "uuid",
      "nullable": true
    }
  },
  "required": [
    "apiVersion",
    "id",
    "designId",
    "origin",
    "createdAt",
    "revision",
    "messages",
    "nextBeforeMessageId"
  ]
}
400 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
401 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
403 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
404 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
409 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
413 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
415 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
422 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
429 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
500 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
502 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
503 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
504 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
Complete operation definition
{
  "operationId": "getAiConversation",
  "summary": "Resume an owned external conversation and read its recent public messages",
  "tags": [
    "REST AI"
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "parameters": [
    {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "name": "before",
      "in": "query",
      "required": false,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "name": "limit",
      "in": "query",
      "required": false,
      "schema": {
        "type": "string",
        "pattern": "^(?:[1-9]|[1-9][0-9]|100)$",
        "description": "History page size, default 50, maximum 100."
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Success",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "apiVersion": {
                "type": "string",
                "enum": [
                  "v1"
                ]
              },
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "designId": {
                "type": "string",
                "format": "uuid"
              },
              "origin": {
                "type": "string",
                "enum": [
                  "PUBLIC_API"
                ]
              },
              "createdAt": {
                "type": "string",
                "format": "date-time"
              },
              "revision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              },
              "messages": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "role": {
                      "type": "string",
                      "enum": [
                        "user",
                        "assistant"
                      ]
                    },
                    "content": {
                      "type": "string"
                    },
                    "createdAt": {
                      "type": "string",
                      "format": "date-time"
                    }
                  },
                  "required": [
                    "id",
                    "role",
                    "content",
                    "createdAt"
                  ]
                }
              },
              "nextBeforeMessageId": {
                "type": "string",
                "format": "uuid",
                "nullable": true
              }
            },
            "required": [
              "apiVersion",
              "id",
              "designId",
              "origin",
              "createdAt",
              "revision",
              "messages",
              "nextBeforeMessageId"
            ]
          }
        }
      }
    },
    "400": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "401": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "403": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "404": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "409": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "413": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "415": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "422": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "429": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "500": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "502": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "503": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "504": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    }
  }
}
POST /ai/conversations/{id}/runs

Apply an AI instruction or answer a question and return the resulting turn

Authentication: [{"bearerAuth": []}]

Parameters

NameLocationRequiredType / description
idpathYesstring: format: "uuid"
Idempotency-KeyheaderYesstring: minLength: 1; maxLength: 128; pattern: "^[A-Za-z0-9._:-]+$"

Request body (required)

application/json

FieldTypeRequiredDescription / constraints
textstringYes
minLength: 1; maxLength: 8000; pattern: "\\S"
expectedRevisionintegerYes
minimum: 1; maximum: 2147483646
answerToQuestionIdstringNo
format: "uuid"
attachmentIdsarray of stringNo
maxItems: 4; uniqueItems: true

attachmentIds

maxItems: 4; uniqueItems: true

Array items

format: "uuid"

Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "text": {
      "type": "string",
      "minLength": 1,
      "maxLength": 8000,
      "pattern": "\\S"
    },
    "expectedRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    },
    "answerToQuestionId": {
      "type": "string",
      "format": "uuid"
    },
    "attachmentIds": {
      "type": "array",
      "maxItems": 4,
      "uniqueItems": true,
      "items": {
        "type": "string",
        "format": "uuid"
      }
    }
  },
  "required": [
    "text",
    "expectedRevision"
  ]
}

Responses

200 — Success

application/json

FieldTypeRequiredDescription / constraints
apiVersionstringYes
enum: ["v1"]
idstringYes
format: "uuid"
conversationIdstringYes
format: "uuid"
designIdstringYes
format: "uuid"
statusstringYes
enum: ["QUEUED", "RUNNING", "NEEDS_INPUT", "SUCCEEDED", "FAILED"]
revisionintegerYes
minimum: 1; maximum: 2147483646
messagestringYes
nullable: true
questionobjectYes
nullable: true; additionalProperties: false
errorobjectYes
nullable: true; additionalProperties: false
createdAtstringYes
format: "date-time"
updatedAtstringYes
format: "date-time"

question

FieldTypeRequiredDescription / constraints
idstringYes
format: "uuid"
textstringYes
optionsarray of objectYes
resolvedByRunIdstringYes
format: "uuid"; nullable: true

options

Array items

FieldTypeRequiredDescription / constraints
idstringYes
labelstringYes

error

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "apiVersion": {
      "type": "string",
      "enum": [
        "v1"
      ]
    },
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "conversationId": {
      "type": "string",
      "format": "uuid"
    },
    "designId": {
      "type": "string",
      "format": "uuid"
    },
    "status": {
      "type": "string",
      "enum": [
        "QUEUED",
        "RUNNING",
        "NEEDS_INPUT",
        "SUCCEEDED",
        "FAILED"
      ]
    },
    "revision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    },
    "message": {
      "type": "string",
      "nullable": true
    },
    "question": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid"
        },
        "text": {
          "type": "string"
        },
        "options": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string"
              },
              "label": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "label"
            ]
          }
        },
        "resolvedByRunId": {
          "type": "string",
          "format": "uuid",
          "nullable": true
        }
      },
      "required": [
        "id",
        "text",
        "options",
        "resolvedByRunId"
      ],
      "nullable": true
    },
    "error": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "code": {
          "type": "string"
        },
        "message": {
          "type": "string"
        }
      },
      "required": [
        "code",
        "message"
      ],
      "nullable": true
    },
    "createdAt": {
      "type": "string",
      "format": "date-time"
    },
    "updatedAt": {
      "type": "string",
      "format": "date-time"
    }
  },
  "required": [
    "apiVersion",
    "id",
    "conversationId",
    "designId",
    "status",
    "revision",
    "message",
    "question",
    "error",
    "createdAt",
    "updatedAt"
  ]
}
400 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
401 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
403 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
404 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
409 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
413 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
415 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
422 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
429 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
500 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
502 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
503 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
504 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
Complete operation definition
{
  "operationId": "submitAiTurn",
  "summary": "Apply an AI instruction or answer a question and return the resulting turn",
  "tags": [
    "REST AI"
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "parameters": [
    {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "name": "Idempotency-Key",
      "in": "header",
      "required": true,
      "schema": {
        "type": "string",
        "minLength": 1,
        "maxLength": 128,
        "pattern": "^[A-Za-z0-9._:-]+$"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "text": {
              "type": "string",
              "minLength": 1,
              "maxLength": 8000,
              "pattern": "\\S"
            },
            "expectedRevision": {
              "type": "integer",
              "minimum": 1,
              "maximum": 2147483646
            },
            "answerToQuestionId": {
              "type": "string",
              "format": "uuid"
            },
            "attachmentIds": {
              "type": "array",
              "maxItems": 4,
              "uniqueItems": true,
              "items": {
                "type": "string",
                "format": "uuid"
              }
            }
          },
          "required": [
            "text",
            "expectedRevision"
          ]
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Success",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "apiVersion": {
                "type": "string",
                "enum": [
                  "v1"
                ]
              },
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "conversationId": {
                "type": "string",
                "format": "uuid"
              },
              "designId": {
                "type": "string",
                "format": "uuid"
              },
              "status": {
                "type": "string",
                "enum": [
                  "QUEUED",
                  "RUNNING",
                  "NEEDS_INPUT",
                  "SUCCEEDED",
                  "FAILED"
                ]
              },
              "revision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              },
              "message": {
                "type": "string",
                "nullable": true
              },
              "question": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "text": {
                    "type": "string"
                  },
                  "options": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "label": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "id",
                        "label"
                      ]
                    }
                  },
                  "resolvedByRunId": {
                    "type": "string",
                    "format": "uuid",
                    "nullable": true
                  }
                },
                "required": [
                  "id",
                  "text",
                  "options",
                  "resolvedByRunId"
                ],
                "nullable": true
              },
              "error": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "code": {
                    "type": "string"
                  },
                  "message": {
                    "type": "string"
                  }
                },
                "required": [
                  "code",
                  "message"
                ],
                "nullable": true
              },
              "createdAt": {
                "type": "string",
                "format": "date-time"
              },
              "updatedAt": {
                "type": "string",
                "format": "date-time"
              }
            },
            "required": [
              "apiVersion",
              "id",
              "conversationId",
              "designId",
              "status",
              "revision",
              "message",
              "question",
              "error",
              "createdAt",
              "updatedAt"
            ]
          }
        }
      }
    },
    "400": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "401": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "403": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "404": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "409": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "413": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "415": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "422": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "429": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "500": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "502": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "503": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "504": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    }
  }
}
GET /ai/conversations/{id}/runs/{runId}

Read AI progress, saved revision, structured question or terminal result

Authentication: [{"bearerAuth": []}]

Parameters

NameLocationRequiredType / description
idpathYesstring: format: "uuid"
runIdpathYesstring: format: "uuid"

Responses

200 — Success

application/json

FieldTypeRequiredDescription / constraints
apiVersionstringYes
enum: ["v1"]
idstringYes
format: "uuid"
conversationIdstringYes
format: "uuid"
designIdstringYes
format: "uuid"
statusstringYes
enum: ["QUEUED", "RUNNING", "NEEDS_INPUT", "SUCCEEDED", "FAILED"]
revisionintegerYes
minimum: 1; maximum: 2147483646
messagestringYes
nullable: true
questionobjectYes
nullable: true; additionalProperties: false
errorobjectYes
nullable: true; additionalProperties: false
createdAtstringYes
format: "date-time"
updatedAtstringYes
format: "date-time"

question

FieldTypeRequiredDescription / constraints
idstringYes
format: "uuid"
textstringYes
optionsarray of objectYes
resolvedByRunIdstringYes
format: "uuid"; nullable: true

options

Array items

FieldTypeRequiredDescription / constraints
idstringYes
labelstringYes

error

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "apiVersion": {
      "type": "string",
      "enum": [
        "v1"
      ]
    },
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "conversationId": {
      "type": "string",
      "format": "uuid"
    },
    "designId": {
      "type": "string",
      "format": "uuid"
    },
    "status": {
      "type": "string",
      "enum": [
        "QUEUED",
        "RUNNING",
        "NEEDS_INPUT",
        "SUCCEEDED",
        "FAILED"
      ]
    },
    "revision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    },
    "message": {
      "type": "string",
      "nullable": true
    },
    "question": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid"
        },
        "text": {
          "type": "string"
        },
        "options": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string"
              },
              "label": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "label"
            ]
          }
        },
        "resolvedByRunId": {
          "type": "string",
          "format": "uuid",
          "nullable": true
        }
      },
      "required": [
        "id",
        "text",
        "options",
        "resolvedByRunId"
      ],
      "nullable": true
    },
    "error": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "code": {
          "type": "string"
        },
        "message": {
          "type": "string"
        }
      },
      "required": [
        "code",
        "message"
      ],
      "nullable": true
    },
    "createdAt": {
      "type": "string",
      "format": "date-time"
    },
    "updatedAt": {
      "type": "string",
      "format": "date-time"
    }
  },
  "required": [
    "apiVersion",
    "id",
    "conversationId",
    "designId",
    "status",
    "revision",
    "message",
    "question",
    "error",
    "createdAt",
    "updatedAt"
  ]
}
400 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
401 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
403 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
404 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
409 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
413 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
415 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
422 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
429 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
500 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
502 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
503 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
504 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
Complete operation definition
{
  "operationId": "getAiRun",
  "summary": "Read AI progress, saved revision, structured question or terminal result",
  "tags": [
    "REST AI"
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "parameters": [
    {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "name": "runId",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Success",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "apiVersion": {
                "type": "string",
                "enum": [
                  "v1"
                ]
              },
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "conversationId": {
                "type": "string",
                "format": "uuid"
              },
              "designId": {
                "type": "string",
                "format": "uuid"
              },
              "status": {
                "type": "string",
                "enum": [
                  "QUEUED",
                  "RUNNING",
                  "NEEDS_INPUT",
                  "SUCCEEDED",
                  "FAILED"
                ]
              },
              "revision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              },
              "message": {
                "type": "string",
                "nullable": true
              },
              "question": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "id": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "text": {
                    "type": "string"
                  },
                  "options": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "label": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "id",
                        "label"
                      ]
                    }
                  },
                  "resolvedByRunId": {
                    "type": "string",
                    "format": "uuid",
                    "nullable": true
                  }
                },
                "required": [
                  "id",
                  "text",
                  "options",
                  "resolvedByRunId"
                ],
                "nullable": true
              },
              "error": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "code": {
                    "type": "string"
                  },
                  "message": {
                    "type": "string"
                  }
                },
                "required": [
                  "code",
                  "message"
                ],
                "nullable": true
              },
              "createdAt": {
                "type": "string",
                "format": "date-time"
              },
              "updatedAt": {
                "type": "string",
                "format": "date-time"
              }
            },
            "required": [
              "apiVersion",
              "id",
              "conversationId",
              "designId",
              "status",
              "revision",
              "message",
              "question",
              "error",
              "createdAt",
              "updatedAt"
            ]
          }
        }
      }
    },
    "400": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "401": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "403": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "404": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "409": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "413": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "415": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "422": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "429": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "500": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "502": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "503": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "504": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    }
  }
}
POST /ai/conversations/{id}/attachments

Upload an owned PNG, JPEG or WebP reference image up to 20 MiB; use the returned ID in a turn

Authentication: [{"bearerAuth": []}]

Parameters

NameLocationRequiredType / description
idpathYesstring: format: "uuid"
filenamequeryYesstring: minLength: 1; maxLength: 255
Idempotency-KeyheaderYesstring: minLength: 1; maxLength: 128; pattern: "^[A-Za-z0-9._:-]+$"

Request body (required)

application/octet-stream

format: "binary"

Complete schema
{
  "type": "string",
  "format": "binary"
}

Responses

201 — Success

application/json

FieldTypeRequiredDescription / constraints
idstringYes
format: "uuid"
kindstringYes
enum: ["IMAGE"]
filenamestringYes
mimeTypestringYes
enum: ["image/jpeg"]
widthintegerYes
heightintegerYes
statusstringYes
enum: ["PENDING", "READY", "FAILED"]
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "kind": {
      "type": "string",
      "enum": [
        "IMAGE"
      ]
    },
    "filename": {
      "type": "string"
    },
    "mimeType": {
      "type": "string",
      "enum": [
        "image/jpeg"
      ]
    },
    "width": {
      "type": "integer"
    },
    "height": {
      "type": "integer"
    },
    "status": {
      "type": "string",
      "enum": [
        "PENDING",
        "READY",
        "FAILED"
      ]
    }
  },
  "required": [
    "id",
    "kind",
    "filename",
    "mimeType",
    "width",
    "height",
    "status"
  ]
}
400 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
401 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
403 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
404 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
409 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
413 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
415 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
422 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
429 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
500 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
502 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
503 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
504 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
Complete operation definition
{
  "operationId": "createAiImageAttachment",
  "summary": "Upload an owned PNG, JPEG or WebP reference image up to 20 MiB; use the returned ID in a turn",
  "tags": [
    "REST AI"
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "parameters": [
    {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "name": "filename",
      "in": "query",
      "required": true,
      "schema": {
        "type": "string",
        "minLength": 1,
        "maxLength": 255
      }
    },
    {
      "name": "Idempotency-Key",
      "in": "header",
      "required": true,
      "schema": {
        "type": "string",
        "minLength": 1,
        "maxLength": 128,
        "pattern": "^[A-Za-z0-9._:-]+$"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/octet-stream": {
        "schema": {
          "type": "string",
          "format": "binary"
        }
      }
    }
  },
  "responses": {
    "201": {
      "description": "Success",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "kind": {
                "type": "string",
                "enum": [
                  "IMAGE"
                ]
              },
              "filename": {
                "type": "string"
              },
              "mimeType": {
                "type": "string",
                "enum": [
                  "image/jpeg"
                ]
              },
              "width": {
                "type": "integer"
              },
              "height": {
                "type": "integer"
              },
              "status": {
                "type": "string",
                "enum": [
                  "PENDING",
                  "READY",
                  "FAILED"
                ]
              }
            },
            "required": [
              "id",
              "kind",
              "filename",
              "mimeType",
              "width",
              "height",
              "status"
            ]
          }
        }
      }
    },
    "400": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "401": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "403": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "404": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "409": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "413": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "415": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "422": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "429": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "500": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "502": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "503": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "504": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    }
  }
}
GET /ai/conversations/{id}/attachments/{attachmentId}

Read an owned conversation image’s status and safe metadata

Authentication: [{"bearerAuth": []}]

Parameters

NameLocationRequiredType / description
idpathYesstring: format: "uuid"
attachmentIdpathYesstring: format: "uuid"

Responses

200 — Success

application/json

FieldTypeRequiredDescription / constraints
idstringYes
format: "uuid"
kindstringYes
enum: ["IMAGE"]
filenamestringYes
mimeTypestringYes
enum: ["image/jpeg"]
widthintegerYes
heightintegerYes
statusstringYes
enum: ["PENDING", "READY", "FAILED"]
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "kind": {
      "type": "string",
      "enum": [
        "IMAGE"
      ]
    },
    "filename": {
      "type": "string"
    },
    "mimeType": {
      "type": "string",
      "enum": [
        "image/jpeg"
      ]
    },
    "width": {
      "type": "integer"
    },
    "height": {
      "type": "integer"
    },
    "status": {
      "type": "string",
      "enum": [
        "PENDING",
        "READY",
        "FAILED"
      ]
    }
  },
  "required": [
    "id",
    "kind",
    "filename",
    "mimeType",
    "width",
    "height",
    "status"
  ]
}
400 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
401 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
403 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
404 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
409 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
413 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
415 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
422 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
429 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
500 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
502 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
503 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
504 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
Complete operation definition
{
  "operationId": "getAiImageAttachment",
  "summary": "Read an owned conversation image’s status and safe metadata",
  "tags": [
    "REST AI"
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "parameters": [
    {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "name": "attachmentId",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Success",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "kind": {
                "type": "string",
                "enum": [
                  "IMAGE"
                ]
              },
              "filename": {
                "type": "string"
              },
              "mimeType": {
                "type": "string",
                "enum": [
                  "image/jpeg"
                ]
              },
              "width": {
                "type": "integer"
              },
              "height": {
                "type": "integer"
              },
              "status": {
                "type": "string",
                "enum": [
                  "PENDING",
                  "READY",
                  "FAILED"
                ]
              }
            },
            "required": [
              "id",
              "kind",
              "filename",
              "mimeType",
              "width",
              "height",
              "status"
            ]
          }
        }
      }
    },
    "400": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "401": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "403": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "404": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "409": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "413": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "415": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "422": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "429": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "500": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "502": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "503": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "504": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    }
  }
}
POST /designs/{id}/browser-sessions

Open an existing design, renew preview access or request explicit editing/preparation authority; each call mints a new session

Authentication: [{"bearerAuth": []}]

Parameters

NameLocationRequiredType / description
idpathYesstring: format: "uuid"

Request body (required)

application/json

FieldTypeRequiredDescription / constraints
modestringYes
enum: ["VIEW", "EDIT"]
expiresInSecondsintegerYes
minimum: 60; maximum: 3600
prepareForCartbooleanNoExplicitly allow this viewer to submit geometry for pricing/cart. Requires a read/write backend credential; does not grant design edits to VIEW sessions.
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "mode": {
      "type": "string",
      "enum": [
        "VIEW",
        "EDIT"
      ]
    },
    "expiresInSeconds": {
      "type": "integer",
      "minimum": 60,
      "maximum": 3600
    },
    "prepareForCart": {
      "type": "boolean",
      "description": "Explicitly allow this viewer to submit geometry for pricing/cart. Requires a read/write backend credential; does not grant design edits to VIEW sessions."
    }
  },
  "required": [
    "mode",
    "expiresInSeconds"
  ]
}

Responses

201 — Success

application/json

FieldTypeRequiredDescription / constraints
tokenstringYes
expiresAtstringYes
format: "date-time"
designIdstringYes
format: "uuid"
modestringYes
enum: ["VIEW", "EDIT"]
viewerPathstringYesRelative path on the Pencil app origin. The fragment contains the temporary view token.
viewerUrlstringYesFull partner-scoped viewer URL on the server-configured Pencil app origin. Prefer this URL; its fragment contains the temporary view token. Accounts without a partner path use the separate partner-id route.
format: "uri"
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "token": {
      "type": "string"
    },
    "expiresAt": {
      "type": "string",
      "format": "date-time"
    },
    "designId": {
      "type": "string",
      "format": "uuid"
    },
    "mode": {
      "type": "string",
      "enum": [
        "VIEW",
        "EDIT"
      ]
    },
    "viewerPath": {
      "type": "string",
      "description": "Relative path on the Pencil app origin. The fragment contains the temporary view token."
    },
    "viewerUrl": {
      "type": "string",
      "format": "uri",
      "description": "Full partner-scoped viewer URL on the server-configured Pencil app origin. Prefer this URL; its fragment contains the temporary view token. Accounts without a partner path use the separate partner-id route."
    }
  },
  "required": [
    "token",
    "expiresAt",
    "designId",
    "mode",
    "viewerPath",
    "viewerUrl"
  ]
}
400 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
401 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
403 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
404 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
409 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
413 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
415 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
422 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
429 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
500 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
502 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
503 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
504 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
Complete operation definition
{
  "operationId": "createBrowserSession",
  "summary": "Open an existing design, renew preview access or request explicit editing/preparation authority; each call mints a new session",
  "tags": [
    "Preview Sessions"
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "parameters": [
    {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "mode": {
              "type": "string",
              "enum": [
                "VIEW",
                "EDIT"
              ]
            },
            "expiresInSeconds": {
              "type": "integer",
              "minimum": 60,
              "maximum": 3600
            },
            "prepareForCart": {
              "type": "boolean",
              "description": "Explicitly allow this viewer to submit geometry for pricing/cart. Requires a read/write backend credential; does not grant design edits to VIEW sessions."
            }
          },
          "required": [
            "mode",
            "expiresInSeconds"
          ]
        }
      }
    }
  },
  "responses": {
    "201": {
      "description": "Success",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "token": {
                "type": "string"
              },
              "expiresAt": {
                "type": "string",
                "format": "date-time"
              },
              "designId": {
                "type": "string",
                "format": "uuid"
              },
              "mode": {
                "type": "string",
                "enum": [
                  "VIEW",
                  "EDIT"
                ]
              },
              "viewerPath": {
                "type": "string",
                "description": "Relative path on the Pencil app origin. The fragment contains the temporary view token."
              },
              "viewerUrl": {
                "type": "string",
                "format": "uri",
                "description": "Full partner-scoped viewer URL on the server-configured Pencil app origin. Prefer this URL; its fragment contains the temporary view token. Accounts without a partner path use the separate partner-id route."
              }
            },
            "required": [
              "token",
              "expiresAt",
              "designId",
              "mode",
              "viewerPath",
              "viewerUrl"
            ]
          }
        }
      }
    },
    "400": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "401": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "403": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "404": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "409": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "413": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "415": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "422": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "429": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "500": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "502": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "503": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "504": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    }
  }
}
POST /uploads

Store a reusable owned mesh (STL millimetres or self-contained GLB/GLTF metres), up to 100 MiB

Authentication: [{"bearerAuth": []}]

Parameters

NameLocationRequiredType / description
filenamequeryYesstring: minLength: 1; maxLength: 255
Idempotency-KeyheaderYesstring: minLength: 1; maxLength: 128; pattern: "^[A-Za-z0-9._:-]+$"

Request body (required)

application/octet-stream

format: "binary"

Complete schema
{
  "type": "string",
  "format": "binary"
}

Responses

201 — Success

application/json

FieldTypeRequiredDescription / constraints
idstringYes
format: "uuid"
namestringYes
statusstringYes
enum: ["PENDING", "READY", "FAILED"]
sourceBytesintegerNo
minimum: 0
dimensionsMmobjectNo
additionalProperties: false
errorobjectNo
additionalProperties: false

dimensionsMm

FieldTypeRequiredDescription / constraints
xnumberYes
ynumberYes
znumberYes

error

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "name": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "enum": [
        "PENDING",
        "READY",
        "FAILED"
      ]
    },
    "sourceBytes": {
      "type": "integer",
      "minimum": 0
    },
    "dimensionsMm": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "x": {
          "type": "number"
        },
        "y": {
          "type": "number"
        },
        "z": {
          "type": "number"
        }
      },
      "required": [
        "x",
        "y",
        "z"
      ]
    },
    "error": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "code": {
          "type": "string"
        },
        "message": {
          "type": "string"
        }
      },
      "required": [
        "code",
        "message"
      ]
    }
  },
  "required": [
    "id",
    "name",
    "status"
  ]
}
400 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
401 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
403 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
404 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
409 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
413 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
415 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
422 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
429 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
500 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
502 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
503 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
504 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
Complete operation definition
{
  "operationId": "createUpload",
  "summary": "Store a reusable owned mesh (STL millimetres or self-contained GLB/GLTF metres), up to 100 MiB",
  "tags": [
    "Uploads"
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "parameters": [
    {
      "name": "filename",
      "in": "query",
      "required": true,
      "schema": {
        "type": "string",
        "minLength": 1,
        "maxLength": 255
      }
    },
    {
      "name": "Idempotency-Key",
      "in": "header",
      "required": true,
      "schema": {
        "type": "string",
        "minLength": 1,
        "maxLength": 128,
        "pattern": "^[A-Za-z0-9._:-]+$"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/octet-stream": {
        "schema": {
          "type": "string",
          "format": "binary"
        }
      }
    }
  },
  "responses": {
    "201": {
      "description": "Success",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "name": {
                "type": "string"
              },
              "status": {
                "type": "string",
                "enum": [
                  "PENDING",
                  "READY",
                  "FAILED"
                ]
              },
              "sourceBytes": {
                "type": "integer",
                "minimum": 0
              },
              "dimensionsMm": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "x": {
                    "type": "number"
                  },
                  "y": {
                    "type": "number"
                  },
                  "z": {
                    "type": "number"
                  }
                },
                "required": [
                  "x",
                  "y",
                  "z"
                ]
              },
              "error": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "code": {
                    "type": "string"
                  },
                  "message": {
                    "type": "string"
                  }
                },
                "required": [
                  "code",
                  "message"
                ]
              }
            },
            "required": [
              "id",
              "name",
              "status"
            ]
          }
        }
      }
    },
    "400": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "401": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "403": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "404": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "409": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "413": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "415": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "422": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "429": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "500": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "502": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "503": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "504": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    }
  }
}
GET /uploads

List the authenticated account’s upload library and preparation status

Authentication: [{"bearerAuth": []}]

Parameters

NameLocationRequiredType / description
afterqueryNostring: format: "uuid"
limitqueryNostring: pattern: "^(?:[1-9]|[1-9][0-9]|100)$"

Responses

200 — Success

application/json

FieldTypeRequiredDescription / constraints
itemsarray of objectYes
nextCursorstringYes
format: "uuid"; nullable: true

items

Array items

FieldTypeRequiredDescription / constraints
idstringYes
format: "uuid"
namestringYes
statusstringYes
enum: ["PENDING", "READY", "FAILED"]
sourceBytesintegerNo
minimum: 0
dimensionsMmobjectNo
additionalProperties: false
errorobjectNo
additionalProperties: false

dimensionsMm

FieldTypeRequiredDescription / constraints
xnumberYes
ynumberYes
znumberYes

error

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "PENDING",
              "READY",
              "FAILED"
            ]
          },
          "sourceBytes": {
            "type": "integer",
            "minimum": 0
          },
          "dimensionsMm": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "x": {
                "type": "number"
              },
              "y": {
                "type": "number"
              },
              "z": {
                "type": "number"
              }
            },
            "required": [
              "x",
              "y",
              "z"
            ]
          },
          "error": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        },
        "required": [
          "id",
          "name",
          "status"
        ]
      }
    },
    "nextCursor": {
      "type": "string",
      "format": "uuid",
      "nullable": true
    }
  },
  "required": [
    "items",
    "nextCursor"
  ]
}
400 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
401 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
403 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
404 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
409 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
413 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
415 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
422 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
429 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
500 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
502 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
503 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
504 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
Complete operation definition
{
  "operationId": "listUploads",
  "summary": "List the authenticated account’s upload library and preparation status",
  "tags": [
    "Uploads"
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "parameters": [
    {
      "name": "after",
      "in": "query",
      "required": false,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "name": "limit",
      "in": "query",
      "required": false,
      "schema": {
        "type": "string",
        "pattern": "^(?:[1-9]|[1-9][0-9]|100)$"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Success",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "items": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "name": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "PENDING",
                        "READY",
                        "FAILED"
                      ]
                    },
                    "sourceBytes": {
                      "type": "integer",
                      "minimum": 0
                    },
                    "dimensionsMm": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "x": {
                          "type": "number"
                        },
                        "y": {
                          "type": "number"
                        },
                        "z": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "x",
                        "y",
                        "z"
                      ]
                    },
                    "error": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ]
                    }
                  },
                  "required": [
                    "id",
                    "name",
                    "status"
                  ]
                }
              },
              "nextCursor": {
                "type": "string",
                "format": "uuid",
                "nullable": true
              }
            },
            "required": [
              "items",
              "nextCursor"
            ]
          }
        }
      }
    },
    "400": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "401": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "403": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "404": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "409": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "413": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "415": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "422": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "429": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "500": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "502": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "503": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "504": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    }
  }
}
GET /uploads/{uploadId}

Read an owned upload’s readiness; only READY assets can be attached

Authentication: [{"bearerAuth": []}]

Parameters

NameLocationRequiredType / description
uploadIdpathYesstring: format: "uuid"

Responses

200 — Success

application/json

FieldTypeRequiredDescription / constraints
idstringYes
format: "uuid"
namestringYes
statusstringYes
enum: ["PENDING", "READY", "FAILED"]
sourceBytesintegerNo
minimum: 0
dimensionsMmobjectNo
additionalProperties: false
errorobjectNo
additionalProperties: false

dimensionsMm

FieldTypeRequiredDescription / constraints
xnumberYes
ynumberYes
znumberYes

error

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "name": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "enum": [
        "PENDING",
        "READY",
        "FAILED"
      ]
    },
    "sourceBytes": {
      "type": "integer",
      "minimum": 0
    },
    "dimensionsMm": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "x": {
          "type": "number"
        },
        "y": {
          "type": "number"
        },
        "z": {
          "type": "number"
        }
      },
      "required": [
        "x",
        "y",
        "z"
      ]
    },
    "error": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "code": {
          "type": "string"
        },
        "message": {
          "type": "string"
        }
      },
      "required": [
        "code",
        "message"
      ]
    }
  },
  "required": [
    "id",
    "name",
    "status"
  ]
}
400 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
401 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
403 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
404 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
409 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
413 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
415 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
422 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
429 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
500 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
502 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
503 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
504 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
Complete operation definition
{
  "operationId": "getUpload",
  "summary": "Read an owned upload’s readiness; only READY assets can be attached",
  "tags": [
    "Uploads"
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "parameters": [
    {
      "name": "uploadId",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Success",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "name": {
                "type": "string"
              },
              "status": {
                "type": "string",
                "enum": [
                  "PENDING",
                  "READY",
                  "FAILED"
                ]
              },
              "sourceBytes": {
                "type": "integer",
                "minimum": 0
              },
              "dimensionsMm": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "x": {
                    "type": "number"
                  },
                  "y": {
                    "type": "number"
                  },
                  "z": {
                    "type": "number"
                  }
                },
                "required": [
                  "x",
                  "y",
                  "z"
                ]
              },
              "error": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "code": {
                    "type": "string"
                  },
                  "message": {
                    "type": "string"
                  }
                },
                "required": [
                  "code",
                  "message"
                ]
              }
            },
            "required": [
              "id",
              "name",
              "status"
            ]
          }
        }
      }
    },
    "400": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "401": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "403": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "404": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "409": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "413": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "415": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "422": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "429": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "500": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "502": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "503": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "504": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    }
  }
}
POST /uploads/{uploadId}/prepare

Prepare or recover an existing owned upload through the shared normalization pipeline

Authentication: [{"bearerAuth": []}]

Parameters

NameLocationRequiredType / description
uploadIdpathYesstring: format: "uuid"

Responses

200 — Success

application/json

FieldTypeRequiredDescription / constraints
idstringYes
format: "uuid"
namestringYes
statusstringYes
enum: ["PENDING", "READY", "FAILED"]
sourceBytesintegerNo
minimum: 0
dimensionsMmobjectNo
additionalProperties: false
errorobjectNo
additionalProperties: false

dimensionsMm

FieldTypeRequiredDescription / constraints
xnumberYes
ynumberYes
znumberYes

error

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "name": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "enum": [
        "PENDING",
        "READY",
        "FAILED"
      ]
    },
    "sourceBytes": {
      "type": "integer",
      "minimum": 0
    },
    "dimensionsMm": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "x": {
          "type": "number"
        },
        "y": {
          "type": "number"
        },
        "z": {
          "type": "number"
        }
      },
      "required": [
        "x",
        "y",
        "z"
      ]
    },
    "error": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "code": {
          "type": "string"
        },
        "message": {
          "type": "string"
        }
      },
      "required": [
        "code",
        "message"
      ]
    }
  },
  "required": [
    "id",
    "name",
    "status"
  ]
}
400 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
401 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
403 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
404 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
409 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
413 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
415 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
422 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
429 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
500 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
502 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
503 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
504 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
Complete operation definition
{
  "operationId": "prepareUpload",
  "summary": "Prepare or recover an existing owned upload through the shared normalization pipeline",
  "tags": [
    "Uploads"
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "parameters": [
    {
      "name": "uploadId",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Success",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "name": {
                "type": "string"
              },
              "status": {
                "type": "string",
                "enum": [
                  "PENDING",
                  "READY",
                  "FAILED"
                ]
              },
              "sourceBytes": {
                "type": "integer",
                "minimum": 0
              },
              "dimensionsMm": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "x": {
                    "type": "number"
                  },
                  "y": {
                    "type": "number"
                  },
                  "z": {
                    "type": "number"
                  }
                },
                "required": [
                  "x",
                  "y",
                  "z"
                ]
              },
              "error": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "code": {
                    "type": "string"
                  },
                  "message": {
                    "type": "string"
                  }
                },
                "required": [
                  "code",
                  "message"
                ]
              }
            },
            "required": [
              "id",
              "name",
              "status"
            ]
          }
        }
      }
    },
    "400": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "401": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "403": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "404": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "409": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "413": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "415": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "422": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "429": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "500": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "502": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "503": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "504": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    }
  }
}
GET /designs/{id}/preparation

Read current revision readiness and authoritative shop price; READY with null price follows the existing unpriced shop policy

Authentication: [{"bearerAuth": []}]

Parameters

NameLocationRequiredType / description
idpathYesstring: format: "uuid"

Responses

200 — Success

application/json

FieldTypeRequiredDescription / constraints
designIdstringYes
format: "uuid"
revisionintegerYes
minimum: 1; maximum: 2147483646
statusstringYes
enum: ["PENDING", "READY", "FAILED"]
priceobjectYes
nullable: true; additionalProperties: false
quoteIdstringNo
pattern: "^[a-f0-9]{64}$"
errorobjectNo
additionalProperties: false

price

FieldTypeRequiredDescription / constraints
amountnumberYes
minimum: 0
currencystringYes

error

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "designId": {
      "type": "string",
      "format": "uuid"
    },
    "revision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    },
    "status": {
      "type": "string",
      "enum": [
        "PENDING",
        "READY",
        "FAILED"
      ]
    },
    "price": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "amount": {
          "type": "number",
          "minimum": 0
        },
        "currency": {
          "type": "string"
        }
      },
      "required": [
        "amount",
        "currency"
      ],
      "nullable": true
    },
    "quoteId": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$"
    },
    "error": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "code": {
          "type": "string"
        },
        "message": {
          "type": "string"
        }
      },
      "required": [
        "code",
        "message"
      ]
    }
  },
  "required": [
    "designId",
    "revision",
    "status",
    "price"
  ]
}
400 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
401 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
403 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
404 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
409 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
413 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
415 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
422 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
429 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
500 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
502 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
503 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
504 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
Complete operation definition
{
  "operationId": "getDesignPreparation",
  "summary": "Read current revision readiness and authoritative shop price; READY with null price follows the existing unpriced shop policy",
  "tags": [
    "Pricing and Cart"
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "parameters": [
    {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Success",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "designId": {
                "type": "string",
                "format": "uuid"
              },
              "revision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              },
              "status": {
                "type": "string",
                "enum": [
                  "PENDING",
                  "READY",
                  "FAILED"
                ]
              },
              "price": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "amount": {
                    "type": "number",
                    "minimum": 0
                  },
                  "currency": {
                    "type": "string"
                  }
                },
                "required": [
                  "amount",
                  "currency"
                ],
                "nullable": true
              },
              "quoteId": {
                "type": "string",
                "pattern": "^[a-f0-9]{64}$"
              },
              "error": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "code": {
                    "type": "string"
                  },
                  "message": {
                    "type": "string"
                  }
                },
                "required": [
                  "code",
                  "message"
                ]
              }
            },
            "required": [
              "designId",
              "revision",
              "status",
              "price"
            ]
          }
        }
      }
    },
    "400": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "401": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "403": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "404": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "409": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "413": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "415": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "422": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "429": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "500": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "502": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "503": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "504": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    }
  }
}
POST /designs/{id}/preparation

Submit shared-viewer geometry using an explicit preparation browser grant; ordinary VIEW and backend tokens cannot submit

Authentication: [{"bearerAuth": []}]

Parameters

NameLocationRequiredType / description
idpathYesstring: format: "uuid"

Request body (required)

application/json

FieldTypeRequiredDescription / constraints
expectedRevisionintegerYes
minimum: 1; maximum: 2147483646
gltfstringYesSelf-contained glTF 2.0 JSON produced by the shared Pencil browser viewer.
minLength: 2; maxLength: 16777216
metalVolumeBreakdownobjectNo
additionalProperties: false

metalVolumeBreakdown

FieldTypeRequiredDescription / constraints
versionschemaYes
const: 1
primaryVolumeMm3numberYes
exclusiveMinimum: 0
settingVolumesarray of objectYes
maxItems: 1000

settingVolumes

maxItems: 1000

Array items

FieldTypeRequiredDescription / constraints
customizationIdstringYes
format: "uuid"
volumeMm3numberYes
exclusiveMinimum: 0
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "expectedRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    },
    "gltf": {
      "type": "string",
      "minLength": 2,
      "maxLength": 16777216,
      "description": "Self-contained glTF 2.0 JSON produced by the shared Pencil browser viewer."
    },
    "metalVolumeBreakdown": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "version": {
          "const": 1
        },
        "primaryVolumeMm3": {
          "type": "number",
          "exclusiveMinimum": 0
        },
        "settingVolumes": {
          "type": "array",
          "maxItems": 1000,
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "customizationId": {
                "type": "string",
                "format": "uuid"
              },
              "volumeMm3": {
                "type": "number",
                "exclusiveMinimum": 0
              }
            },
            "required": [
              "customizationId",
              "volumeMm3"
            ]
          }
        }
      },
      "required": [
        "version",
        "primaryVolumeMm3",
        "settingVolumes"
      ]
    }
  },
  "required": [
    "expectedRevision",
    "gltf"
  ]
}

Responses

200 — Success

application/json

FieldTypeRequiredDescription / constraints
designIdstringYes
format: "uuid"
revisionintegerYes
minimum: 1; maximum: 2147483646
statusstringYes
enum: ["PENDING", "READY", "FAILED"]
priceobjectYes
nullable: true; additionalProperties: false
quoteIdstringNo
pattern: "^[a-f0-9]{64}$"
errorobjectNo
additionalProperties: false

price

FieldTypeRequiredDescription / constraints
amountnumberYes
minimum: 0
currencystringYes

error

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "designId": {
      "type": "string",
      "format": "uuid"
    },
    "revision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    },
    "status": {
      "type": "string",
      "enum": [
        "PENDING",
        "READY",
        "FAILED"
      ]
    },
    "price": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "amount": {
          "type": "number",
          "minimum": 0
        },
        "currency": {
          "type": "string"
        }
      },
      "required": [
        "amount",
        "currency"
      ],
      "nullable": true
    },
    "quoteId": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$"
    },
    "error": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "code": {
          "type": "string"
        },
        "message": {
          "type": "string"
        }
      },
      "required": [
        "code",
        "message"
      ]
    }
  },
  "required": [
    "designId",
    "revision",
    "status",
    "price"
  ]
}
400 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
401 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
403 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
404 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
409 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
413 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
415 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
422 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
429 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
500 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
502 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
503 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
504 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
Complete operation definition
{
  "operationId": "prepareDesignGeometry",
  "summary": "Submit shared-viewer geometry using an explicit preparation browser grant; ordinary VIEW and backend tokens cannot submit",
  "tags": [
    "Viewer Geometry"
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "parameters": [
    {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "expectedRevision": {
              "type": "integer",
              "minimum": 1,
              "maximum": 2147483646
            },
            "gltf": {
              "type": "string",
              "minLength": 2,
              "maxLength": 16777216,
              "description": "Self-contained glTF 2.0 JSON produced by the shared Pencil browser viewer."
            },
            "metalVolumeBreakdown": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "version": {
                  "const": 1
                },
                "primaryVolumeMm3": {
                  "type": "number",
                  "exclusiveMinimum": 0
                },
                "settingVolumes": {
                  "type": "array",
                  "maxItems": 1000,
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "customizationId": {
                        "type": "string",
                        "format": "uuid"
                      },
                      "volumeMm3": {
                        "type": "number",
                        "exclusiveMinimum": 0
                      }
                    },
                    "required": [
                      "customizationId",
                      "volumeMm3"
                    ]
                  }
                }
              },
              "required": [
                "version",
                "primaryVolumeMm3",
                "settingVolumes"
              ]
            }
          },
          "required": [
            "expectedRevision",
            "gltf"
          ]
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Success",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "designId": {
                "type": "string",
                "format": "uuid"
              },
              "revision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              },
              "status": {
                "type": "string",
                "enum": [
                  "PENDING",
                  "READY",
                  "FAILED"
                ]
              },
              "price": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "amount": {
                    "type": "number",
                    "minimum": 0
                  },
                  "currency": {
                    "type": "string"
                  }
                },
                "required": [
                  "amount",
                  "currency"
                ],
                "nullable": true
              },
              "quoteId": {
                "type": "string",
                "pattern": "^[a-f0-9]{64}$"
              },
              "error": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "code": {
                    "type": "string"
                  },
                  "message": {
                    "type": "string"
                  }
                },
                "required": [
                  "code",
                  "message"
                ]
              }
            },
            "required": [
              "designId",
              "revision",
              "status",
              "price"
            ]
          }
        }
      }
    },
    "400": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "401": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "403": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "404": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "409": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "413": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "415": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "422": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "429": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "500": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "502": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "503": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "504": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    }
  }
}
POST /designs/{id}/cart

Freeze the prepared design and invoke the shared shop order workflow; repeat the same idempotency key after a lost response

Authentication: [{"bearerAuth": []}]

Parameters

NameLocationRequiredType / description
idpathYesstring: format: "uuid"
Idempotency-KeyheaderYesstring: minLength: 1; maxLength: 128; pattern: "^[A-Za-z0-9._:-]+$"

Request body (required)

application/json

FieldTypeRequiredDescription / constraints
expectedRevisionintegerYes
minimum: 1; maximum: 2147483646
quoteIdstringYes
pattern: "^[a-f0-9]{64}$"
leadIdstringNo
format: "uuid"
buttonIdstringNo
minLength: 1; maxLength: 100; pattern: "^[a-zA-Z0-9_-]+$"
customerobjectNo
additionalProperties: false
externalSessionIdstringNoOptional opaque partner customer/session reference. This is not a Pencil authentication session.
minLength: 1; maxLength: 128; pattern: "\\S"

customer

FieldTypeRequiredDescription / constraints
namestringYes
minLength: 1; maxLength: 200; pattern: "\\S"
emailstringYes
format: "email"; minLength: 5; maxLength: 100
phoneNumberstringYes
minLength: 1; maxLength: 100; pattern: "\\S"
budgetstringYes
minLength: 1; maxLength: 500; pattern: "\\S"
designRequeststringNo
maxLength: 4000
requiredTimeframestringNo
maxLength: 500
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "expectedRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    },
    "quoteId": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$"
    },
    "leadId": {
      "type": "string",
      "format": "uuid"
    },
    "buttonId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "^[a-zA-Z0-9_-]+$"
    },
    "customer": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "name": {
          "type": "string",
          "minLength": 1,
          "maxLength": 200,
          "pattern": "\\S"
        },
        "email": {
          "type": "string",
          "minLength": 5,
          "maxLength": 100,
          "format": "email"
        },
        "phoneNumber": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "\\S"
        },
        "budget": {
          "type": "string",
          "minLength": 1,
          "maxLength": 500,
          "pattern": "\\S"
        },
        "designRequest": {
          "type": "string",
          "maxLength": 4000
        },
        "requiredTimeframe": {
          "type": "string",
          "maxLength": 500
        }
      },
      "required": [
        "name",
        "email",
        "phoneNumber",
        "budget"
      ]
    },
    "externalSessionId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128,
      "pattern": "\\S",
      "description": "Optional opaque partner customer/session reference. This is not a Pencil authentication session."
    }
  },
  "required": [
    "expectedRevision",
    "quoteId"
  ],
  "not": {
    "required": [
      "leadId",
      "customer"
    ]
  }
}

Responses

201 — Success

application/json

FieldTypeRequiredDescription / constraints
apiVersionstringYes
enum: ["v1"]
cartIdstringYes
format: "uuid"
orderIdstringYes
format: "uuid"
designIdstringYes
format: "uuid"
revisionintegerYes
minimum: 1; maximum: 2147483646
snapshotModelIdstringYes
format: "uuid"
sourceModelIdstringYes
format: "uuid"
leadIdstringNo
format: "uuid"
statusstringYes
enum: ["ADDED_TO_CART"]
priceobjectYes
nullable: true; additionalProperties: false
effectStatusstringYes
enum: ["PENDING", "COMPLETE", "RECOVERY_REQUIRED"]
handoffobjectNo
additionalProperties: false

price

FieldTypeRequiredDescription / constraints
amountnumberYes
minimum: 0
currencystringYes

handoff

FieldTypeRequiredDescription / constraints
platformstringYes
enum: ["PENCIL", "CUSTOM", "SHOPIFY", "WIX", "WIX_V1", "SQUARESPACE"]
statusstringYes
enum: ["PENDING", "READY", "RECOVERY_REQUIRED"]
productIdstringNo
variantIdstringNo
appIdstringNo
handlestringNo
urlSlugstringNo
orderIdstringNo
format: "uuid"
cartPropertiesVersionintegerNo
enum: [1]
cartPropertiesobjectNo
additionalProperties: {"type": "string"}
productobjectNo
additionalProperties: true
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "apiVersion": {
      "type": "string",
      "enum": [
        "v1"
      ]
    },
    "cartId": {
      "type": "string",
      "format": "uuid"
    },
    "orderId": {
      "type": "string",
      "format": "uuid"
    },
    "designId": {
      "type": "string",
      "format": "uuid"
    },
    "revision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    },
    "snapshotModelId": {
      "type": "string",
      "format": "uuid"
    },
    "sourceModelId": {
      "type": "string",
      "format": "uuid"
    },
    "leadId": {
      "type": "string",
      "format": "uuid"
    },
    "status": {
      "type": "string",
      "enum": [
        "ADDED_TO_CART"
      ]
    },
    "price": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "amount": {
          "type": "number",
          "minimum": 0
        },
        "currency": {
          "type": "string"
        }
      },
      "required": [
        "amount",
        "currency"
      ],
      "nullable": true
    },
    "effectStatus": {
      "type": "string",
      "enum": [
        "PENDING",
        "COMPLETE",
        "RECOVERY_REQUIRED"
      ]
    },
    "handoff": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "platform": {
          "type": "string",
          "enum": [
            "PENCIL",
            "CUSTOM",
            "SHOPIFY",
            "WIX",
            "WIX_V1",
            "SQUARESPACE"
          ]
        },
        "status": {
          "type": "string",
          "enum": [
            "PENDING",
            "READY",
            "RECOVERY_REQUIRED"
          ]
        },
        "productId": {
          "type": "string"
        },
        "variantId": {
          "type": "string"
        },
        "appId": {
          "type": "string"
        },
        "handle": {
          "type": "string"
        },
        "urlSlug": {
          "type": "string"
        },
        "orderId": {
          "type": "string",
          "format": "uuid"
        },
        "cartPropertiesVersion": {
          "type": "integer",
          "enum": [
            1
          ]
        },
        "cartProperties": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "product": {
          "type": "object",
          "additionalProperties": true
        }
      },
      "required": [
        "platform",
        "status"
      ]
    }
  },
  "required": [
    "apiVersion",
    "cartId",
    "orderId",
    "designId",
    "revision",
    "snapshotModelId",
    "sourceModelId",
    "status",
    "price",
    "effectStatus"
  ]
}
400 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
401 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
403 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
404 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
409 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
413 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
415 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
422 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
429 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
500 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
502 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
503 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
504 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
Complete operation definition
{
  "operationId": "addDesignToCart",
  "summary": "Freeze the prepared design and invoke the shared shop order workflow; repeat the same idempotency key after a lost response",
  "tags": [
    "Pricing and Cart"
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "parameters": [
    {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "name": "Idempotency-Key",
      "in": "header",
      "required": true,
      "schema": {
        "type": "string",
        "minLength": 1,
        "maxLength": 128,
        "pattern": "^[A-Za-z0-9._:-]+$"
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "expectedRevision": {
              "type": "integer",
              "minimum": 1,
              "maximum": 2147483646
            },
            "quoteId": {
              "type": "string",
              "pattern": "^[a-f0-9]{64}$"
            },
            "leadId": {
              "type": "string",
              "format": "uuid"
            },
            "buttonId": {
              "type": "string",
              "minLength": 1,
              "maxLength": 100,
              "pattern": "^[a-zA-Z0-9_-]+$"
            },
            "customer": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 200,
                  "pattern": "\\S"
                },
                "email": {
                  "type": "string",
                  "minLength": 5,
                  "maxLength": 100,
                  "format": "email"
                },
                "phoneNumber": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100,
                  "pattern": "\\S"
                },
                "budget": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 500,
                  "pattern": "\\S"
                },
                "designRequest": {
                  "type": "string",
                  "maxLength": 4000
                },
                "requiredTimeframe": {
                  "type": "string",
                  "maxLength": 500
                }
              },
              "required": [
                "name",
                "email",
                "phoneNumber",
                "budget"
              ]
            },
            "externalSessionId": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "\\S",
              "description": "Optional opaque partner customer/session reference. This is not a Pencil authentication session."
            }
          },
          "required": [
            "expectedRevision",
            "quoteId"
          ],
          "not": {
            "required": [
              "leadId",
              "customer"
            ]
          }
        }
      }
    }
  },
  "responses": {
    "201": {
      "description": "Success",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "apiVersion": {
                "type": "string",
                "enum": [
                  "v1"
                ]
              },
              "cartId": {
                "type": "string",
                "format": "uuid"
              },
              "orderId": {
                "type": "string",
                "format": "uuid"
              },
              "designId": {
                "type": "string",
                "format": "uuid"
              },
              "revision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              },
              "snapshotModelId": {
                "type": "string",
                "format": "uuid"
              },
              "sourceModelId": {
                "type": "string",
                "format": "uuid"
              },
              "leadId": {
                "type": "string",
                "format": "uuid"
              },
              "status": {
                "type": "string",
                "enum": [
                  "ADDED_TO_CART"
                ]
              },
              "price": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "amount": {
                    "type": "number",
                    "minimum": 0
                  },
                  "currency": {
                    "type": "string"
                  }
                },
                "required": [
                  "amount",
                  "currency"
                ],
                "nullable": true
              },
              "effectStatus": {
                "type": "string",
                "enum": [
                  "PENDING",
                  "COMPLETE",
                  "RECOVERY_REQUIRED"
                ]
              },
              "handoff": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "platform": {
                    "type": "string",
                    "enum": [
                      "PENCIL",
                      "CUSTOM",
                      "SHOPIFY",
                      "WIX",
                      "WIX_V1",
                      "SQUARESPACE"
                    ]
                  },
                  "status": {
                    "type": "string",
                    "enum": [
                      "PENDING",
                      "READY",
                      "RECOVERY_REQUIRED"
                    ]
                  },
                  "productId": {
                    "type": "string"
                  },
                  "variantId": {
                    "type": "string"
                  },
                  "appId": {
                    "type": "string"
                  },
                  "handle": {
                    "type": "string"
                  },
                  "urlSlug": {
                    "type": "string"
                  },
                  "orderId": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "cartPropertiesVersion": {
                    "type": "integer",
                    "enum": [
                      1
                    ]
                  },
                  "cartProperties": {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    }
                  },
                  "product": {
                    "type": "object",
                    "additionalProperties": true
                  }
                },
                "required": [
                  "platform",
                  "status"
                ]
              }
            },
            "required": [
              "apiVersion",
              "cartId",
              "orderId",
              "designId",
              "revision",
              "snapshotModelId",
              "sourceModelId",
              "status",
              "price",
              "effectStatus"
            ]
          }
        }
      }
    },
    "400": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "401": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "403": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "404": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "409": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "413": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "415": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "422": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "429": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "500": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "502": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "503": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "504": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    }
  }
}
GET /designs/{id}/cart/{cartId}

Recover the cart receipt and downstream effect state using a backend credential

Authentication: [{"bearerAuth": []}]

Parameters

NameLocationRequiredType / description
idpathYesstring: format: "uuid"
cartIdpathYesstring: format: "uuid"

Responses

200 — Success

application/json

FieldTypeRequiredDescription / constraints
apiVersionstringYes
enum: ["v1"]
cartIdstringYes
format: "uuid"
orderIdstringYes
format: "uuid"
designIdstringYes
format: "uuid"
revisionintegerYes
minimum: 1; maximum: 2147483646
snapshotModelIdstringYes
format: "uuid"
sourceModelIdstringYes
format: "uuid"
leadIdstringNo
format: "uuid"
statusstringYes
enum: ["ADDED_TO_CART"]
priceobjectYes
nullable: true; additionalProperties: false
effectStatusstringYes
enum: ["PENDING", "COMPLETE", "RECOVERY_REQUIRED"]
handoffobjectNo
additionalProperties: false

price

FieldTypeRequiredDescription / constraints
amountnumberYes
minimum: 0
currencystringYes

handoff

FieldTypeRequiredDescription / constraints
platformstringYes
enum: ["PENCIL", "CUSTOM", "SHOPIFY", "WIX", "WIX_V1", "SQUARESPACE"]
statusstringYes
enum: ["PENDING", "READY", "RECOVERY_REQUIRED"]
productIdstringNo
variantIdstringNo
appIdstringNo
handlestringNo
urlSlugstringNo
orderIdstringNo
format: "uuid"
cartPropertiesVersionintegerNo
enum: [1]
cartPropertiesobjectNo
additionalProperties: {"type": "string"}
productobjectNo
additionalProperties: true
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "apiVersion": {
      "type": "string",
      "enum": [
        "v1"
      ]
    },
    "cartId": {
      "type": "string",
      "format": "uuid"
    },
    "orderId": {
      "type": "string",
      "format": "uuid"
    },
    "designId": {
      "type": "string",
      "format": "uuid"
    },
    "revision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    },
    "snapshotModelId": {
      "type": "string",
      "format": "uuid"
    },
    "sourceModelId": {
      "type": "string",
      "format": "uuid"
    },
    "leadId": {
      "type": "string",
      "format": "uuid"
    },
    "status": {
      "type": "string",
      "enum": [
        "ADDED_TO_CART"
      ]
    },
    "price": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "amount": {
          "type": "number",
          "minimum": 0
        },
        "currency": {
          "type": "string"
        }
      },
      "required": [
        "amount",
        "currency"
      ],
      "nullable": true
    },
    "effectStatus": {
      "type": "string",
      "enum": [
        "PENDING",
        "COMPLETE",
        "RECOVERY_REQUIRED"
      ]
    },
    "handoff": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "platform": {
          "type": "string",
          "enum": [
            "PENCIL",
            "CUSTOM",
            "SHOPIFY",
            "WIX",
            "WIX_V1",
            "SQUARESPACE"
          ]
        },
        "status": {
          "type": "string",
          "enum": [
            "PENDING",
            "READY",
            "RECOVERY_REQUIRED"
          ]
        },
        "productId": {
          "type": "string"
        },
        "variantId": {
          "type": "string"
        },
        "appId": {
          "type": "string"
        },
        "handle": {
          "type": "string"
        },
        "urlSlug": {
          "type": "string"
        },
        "orderId": {
          "type": "string",
          "format": "uuid"
        },
        "cartPropertiesVersion": {
          "type": "integer",
          "enum": [
            1
          ]
        },
        "cartProperties": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "product": {
          "type": "object",
          "additionalProperties": true
        }
      },
      "required": [
        "platform",
        "status"
      ]
    }
  },
  "required": [
    "apiVersion",
    "cartId",
    "orderId",
    "designId",
    "revision",
    "snapshotModelId",
    "sourceModelId",
    "status",
    "price",
    "effectStatus"
  ]
}
400 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
401 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
403 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
404 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
409 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
413 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
415 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
422 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
429 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
500 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
502 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
503 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
504 — Request failed

application/json

FieldTypeRequiredDescription / constraints
codestringYes
messagestringYes
currentRevisionintegerNo
minimum: 1; maximum: 2147483646
Complete schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "currentRevision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483646
    }
  },
  "required": [
    "code",
    "message"
  ]
}
Complete operation definition
{
  "operationId": "getDesignCartReceipt",
  "summary": "Recover the cart receipt and downstream effect state using a backend credential",
  "tags": [
    "Pricing and Cart"
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "parameters": [
    {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "name": "cartId",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Success",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "apiVersion": {
                "type": "string",
                "enum": [
                  "v1"
                ]
              },
              "cartId": {
                "type": "string",
                "format": "uuid"
              },
              "orderId": {
                "type": "string",
                "format": "uuid"
              },
              "designId": {
                "type": "string",
                "format": "uuid"
              },
              "revision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              },
              "snapshotModelId": {
                "type": "string",
                "format": "uuid"
              },
              "sourceModelId": {
                "type": "string",
                "format": "uuid"
              },
              "leadId": {
                "type": "string",
                "format": "uuid"
              },
              "status": {
                "type": "string",
                "enum": [
                  "ADDED_TO_CART"
                ]
              },
              "price": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "amount": {
                    "type": "number",
                    "minimum": 0
                  },
                  "currency": {
                    "type": "string"
                  }
                },
                "required": [
                  "amount",
                  "currency"
                ],
                "nullable": true
              },
              "effectStatus": {
                "type": "string",
                "enum": [
                  "PENDING",
                  "COMPLETE",
                  "RECOVERY_REQUIRED"
                ]
              },
              "handoff": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "platform": {
                    "type": "string",
                    "enum": [
                      "PENCIL",
                      "CUSTOM",
                      "SHOPIFY",
                      "WIX",
                      "WIX_V1",
                      "SQUARESPACE"
                    ]
                  },
                  "status": {
                    "type": "string",
                    "enum": [
                      "PENDING",
                      "READY",
                      "RECOVERY_REQUIRED"
                    ]
                  },
                  "productId": {
                    "type": "string"
                  },
                  "variantId": {
                    "type": "string"
                  },
                  "appId": {
                    "type": "string"
                  },
                  "handle": {
                    "type": "string"
                  },
                  "urlSlug": {
                    "type": "string"
                  },
                  "orderId": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "cartPropertiesVersion": {
                    "type": "integer",
                    "enum": [
                      1
                    ]
                  },
                  "cartProperties": {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    }
                  },
                  "product": {
                    "type": "object",
                    "additionalProperties": true
                  }
                },
                "required": [
                  "platform",
                  "status"
                ]
              }
            },
            "required": [
              "apiVersion",
              "cartId",
              "orderId",
              "designId",
              "revision",
              "snapshotModelId",
              "sourceModelId",
              "status",
              "price",
              "effectStatus"
            ]
          }
        }
      }
    },
    "400": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "401": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "403": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "404": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "409": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "413": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "415": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "422": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "429": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "500": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "502": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "503": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    },
    "504": {
      "description": "Request failed",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "currentRevision": {
                "type": "integer",
                "minimum": 1,
                "maximum": 2147483646
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        }
      }
    }
  }
}

Trusted by over 100,000 designers

Start designing now

100,000+
Designers using Pencil
5,000,000+
Customization options
5 minutes
Time to create first design
90%
Cheaper than hiring someone