Skip to content
Public API
Esc
↑↓navigate↵open⌘Jpreview
On this page

Conventions

How paths, filters, retrieves, updates and errors behave across every endpoint.

Paths

Each entity follows the same shape:

Operation Request
List GET /entity
Retrieve GET /entity/:id
Create POST /entity
Update PUT /entity/:id
Delete DELETE /entity/:id

Operations that don’t fit this shape, such as POST /ticket/:ticketId/quote, have their own paths. The API reference lists all of them.

Filters

List filters are query parameters. Repeating a parameter builds an array:

curl "https://next.amfg.ai/engine-service/public-api/v1/model-version?ticketModelId=2001"
curl "https://next.amfg.ai/engine-service/public-api/v1/build-production?ids=1&ids=2"

Date filters take a single date, meaning from that date until now, or a range:

curl "https://next.amfg.ai/engine-service/public-api/v1/project?createdAt=2026-01-01"
curl "https://next.amfg.ai/engine-service/public-api/v1/project?createdAt[from]=2026-01-01&createdAt[to]=2026-07-01"

Retrieves

Updates

Updates replace the whole record; they are not patches. Send every field the schema requires, even the ones you are not changing. A missing field returns a 400 that names it.

Deletes can cascade. For example, deleting a machine group also deletes a material whose only group it was.

Errors

Errors are passed through as the underlying service produced them: the status, code, message and type. A 400 almost always means the request body failed validation, and the message names the field.

400 {"code": 400, "message": "query.ticketModelId is a required field"}

Some schemas are strict about types and require a number where a copied response field gives you a string (quotationFormId, customerId, colorId, userId). The error message tells you which field it is.

Error responses carry two headers, x-error-source and x-error-source-request-id. Include both in support tickets, because they identify the failing service and request.

Limits

Every authenticated call is recorded for usage reporting.