AMFG Public API
REST surface exposing the AMFG Engine entities to external integrations.
Authentication
One header, one credential — an Incoming Secret created through the console (Settings → API Keys) or POST /api/v1/secret. The value (<secretId>.<random>) is shown once on create and sent on every call:
Authorization: <secret> # a "Bearer " prefix is also accepted
Every authentication failure returns an identical 401 {"code":401,"message":"Not Authorized"} with no distinction of cause. Secrets created before the Public API shipped cannot authenticate here — regenerate them.
Conventions
- Retrieves are filtered lists: a missing id returns
200with an empty body, not 404 — check for anidin the response. - List filters are query parameters; repeatable parameters build arrays (
?ids=1&ids=2). Date filters accept a single date or a range (?createdAt[from]=…&createdAt[to]=…). - Updates are whole-record, not patches — omitting a field the schema requires is a 400 naming it.
- Downstream errors pass through verbatim (status,
code,message,type), andx-error-source/x-error-source-request-idheaders name the failing service — quote them in support tickets. - Every authenticated call is metered.
Field-level entity semantics: AMFG Engine API Reference.
MCP
The same operations for quotes, tickets and parts are exposed as 9 MCP tools at POST /mcp (Model Context Protocol, 2026-07-28 spec, same Authorization header) — see the MCP tag.
Version 1.0.0
Base URL
https://next.amfg.ai/engine-service/public-api/v1Apps
Blanks
Catalogue Models
- GETList catalogue models
/catalogue-model - POSTCreate a catalogue model
/catalogue-model - GETGet a catalogue model
/catalogue-model/{id} - PUTUpdate a catalogue model
/catalogue-model/{id} - DELETEDelete a catalogue model
/catalogue-model/{id}
Catalogues
Colours
Currencys
Customers
- GETList customers
/customer - POSTCreate a customer
/customer - GETGet a customer
/customer/{id} - PUTUpdate a customer
/customer/{id}
Items
- GETList items
/item - POSTCreate an item
/item - PUTUpdate an item
/item/{id} - DELETEDelete an item (NOT IMPLEMENTED)
/item/{id} - GETGet an item
/item/{partItemId}
MCP
Machine Groups
- GETList machine groups
/machine-group - POSTCreate a machine group
/machine-group - GETGet a machine group
/machine-group/{id} - PUTUpdate a machine group
/machine-group/{id} - DELETEDelete a machine group
/machine-group/{id}
Machines
- GETList machines
/machine - POSTCreate a machine
/machine - GETGet a machine
/machine/{id} - PUTUpdate a machine
/machine/{id} - DELETEDelete a machine
/machine/{id} - POSTList machines by proximity
/machine/by-proximity - PUTAssign the reels of a machine
/machine/{machineId}/reels
Material Series
- GETList material seriess
/material-series - GETGet a material series
/material-series/{id} - PUTUpdate a material series
/material-series/{id} - DELETEDelete a material series
/material-series/{id}
Materials
- GETList materials
/material - POSTCreate a material
/material - GETGet a material
/material/{id} - PUTUpdate a material
/material/{id} - DELETEDelete a material
/material/{id}
Meeting Notes
Model Versions
- GETList model versions
/model-version - GETGet a model version
/model-version/{id} - POSTResolve model fields
/model-version/{id}/fields-resolve
PPS
Parts (ticket models)
- GETGet a machining strategy
/ticket-model/{ticketModelId}/machining-strategy/{serviceId} - PUTSet the machining strategy of a part service
/ticket-model/{ticketModelId}/machining-strategy/{serviceId} - PUTUpdate a service job post processing
/ticket-model/{ticketModelId}/post-processing - GETList ticket models
/ticket-model - POSTCreate a ticket model
/ticket-model - GETGet a ticket model
/ticket-model/{id} - PUTUpdate a ticket model
/ticket-model/{id} - DELETEDelete a ticket model
/ticket-model/{id} - POSTCreate parts from a catalogue
/ticket-model/from-catalogue - POSTFind similar parts
/ticket-model/{id}/similarity
Production Notes
Production Parameter Fields
Projects (orders)
- GETLook up an order by any identifier
/project/lookup - GETList projects
/project - POSTCreate a project
/project - GETGet a project
/project/{id} - PUTUpdate a project
/project/{id}
Quotation Form Regions
- GETList quotation form regions
/quotation-form-region - POSTCreate a quotation form region
/quotation-form-region - GETGet a quotation form region
/quotation-form-region/{id} - PUTUpdate a quotation form region
/quotation-form-region/{id} - DELETEDelete a quotation form region
/quotation-form-region/{id}
Quotation Forms
Quotes
- GETList ticket quotes
/ticket-quote - GETGet a ticket quote
/ticket-quote/{id} - PUTUpdate a ticket quote
/ticket-quote/{id}
Reels
- GETList reel groups
/reel-group - PUTUpdate a reel group
/reel-group - POSTCreate a reel group
/reel-group - GETGet a reel group
/reel-group/{id} - GETList reels
/reel - PUTUpdate a reel
/reel - GETList the reels of a reel group
/inventory-product-location/{inventoryProductLocationId}/reel - POSTCreate reels in a reel group
/inventory-product-location/{inventoryProductLocationId}/reel
Report Metricss
Service jobs
- GETList service jobs
/service-job - POSTCreate a service job
/service-job - GETGet a service job
/service-job/{id} - PUTUpdate a service job
/service-job/{id} - DELETEDelete a service job
/service-job/{id} - GETList service job productions
/service-job-production - GETGet a service job production
/service-job/{id}/production - PUTUpdate a service job production
/service-job/{id}/production/{ppsId} - POSTService job reassign ticket models
/service-job/reassign-ticket-models - PUTService job merge
/service-job/merge - PUTService job timeline start
/service-job/{id}/timeline/start - PUTService job timeline stop
/service-job/{id}/timeline/stop
Services
- GETList post-processing services and their names
/service - GETGet a post-processing service and its name
/service/{id}
Suppliers
Technologies
Tickets
- GETLook up a ticket by any identifier
/ticket/lookup - POSTCreate a ticket
/ticket - PUTUpdate a ticket
/ticket/{id} - PUTSend a ticket to production
/ticket/{id}/send-to-production - POSTCreate and send a quote
/ticket/{ticketId}/quote