1
Getting started
Basics
The OnSite API is built on a modular structure, where each step in the order process—such as uploading a file, obtaining a quote, or placing an order—is handled by a dedicated API endpoint. The output of one endpoint is designed to serve as the input for the next, ensuring seamless integration across the workflow.
The API exclusively supports the JSON data-interchange format and utilizes the OAuth 2.0 protocol for secure authorization.
Getting Started
To begin using the OnSite API, you must first enable the API integration option for your active OnSite account. If you do not already have an account, you will need to create one.
To initiate the process, please send a request to onsite@materialise.com , with subject “API” Our dedicated account manager, responsible for partnerships and API setup, will contact you to discuss the details of the integration and further steps for collaboration.
API Authorization Keys
Once all integration details and terms have been finalized, your API authorization credentials—Client ID and Client Secret—will be generated and made available in your Materialise OnSite user account.
These credentials are essential for system authorization and for making API calls. You can access your credentials via the following link:
OnSite API Settings
The Client ID and Client Secret are used to obtain temporary authorization tokens necessary for API functionality.
Interactive Documentation
Once you have obtained your Client ID and Client Secret, you can explore and test the Materialise OnSite API directly in your browser using our interactive API documentation powered by Swagger.
The Swagger interface allows you to experiment with API calls and review the proper request bodies and responses in JSON format. You can access the interactive documentation here: Onsite API Swagger documentation.
2
API Order flow model

3
API Key Parameters
Overview
API parameters are critical variables used as input to make API calls. These parameters influence the response from an endpoint and are essential for tailoring API functionality to specific requirements. Each parameter consists of a name and an associated value.
Below is a detailed description of the key parameters used in the OnSite API:
m
modelID |
A unique identifier for uploaded 3D models. A single 3D model can generate multiple modelID s, which are required to create a product. Additionally, a single modelID can be used to create multiple products.
|
technologyID |
The identifier for 3D printing technologies. Each technology is associated with a specific |
materialID |
The identifier for 3D printing materials. Each material is linked to a unique materialID . Note that multiple materialID s can belong to a single technology.
|
finishID |
The identifier for surface finishes. Each finish is associated with a unique |
colorID |
The identifier for material colors. Each color is tied to a unique |
productID |
A unique identifier for products. A product is defined as a 3D model combined with specified technology, material, and finish. The |
quotationItemID |
A unique identifier for quotation items. A quotation item represents a product with a specified quantity and production service. |
quotationID |
A unique identifier for quotations, which are collections of quotation items. Each |
deliveryAddressID |
The identifier for a delivery address linked to a specific user account. The
|
invoiceAddressID |
The identifier for an invoice address linked to a specific user account. The |
4
API endpoints
API Reference (API endpoints description)
The structure of request bodies and responses is available in our Onsite API Swagger documentation
Request URL (below as ‘API’): https://api.onsite.materialise.com/v1
ENDPOINT | DESCRIPTION |
Authorization | Used to get you authorized |
POST API/token |
Receive authorization token Returns an authorization token for provided client ID and client secret. |
Model related | Used for uploading 3D models, receiving model parameters and processing status |
POST API/models
GET API/models/{id}/status
GET API /models/{id} |
Upload 3D model Upload a 3D model to receive a modelID. modelIDs are used to create products for quotations.
Get 3D model processing status Check the processing status of an uploaded 3D model.
Get 3D model parameters Get the dimensions, volume, and surface area of a processed 3D model. |
Technologies related | Provides a list of IDs for all available technologies and materials |
GET API/technologies |
Get a list of available technologies and materials Receive IDs of available technologies, materials, and finishes. technologyIDs and materialIDs are used together with modelIDs to create products |
Product related | Used to create products and receive production costs |
POST API/products
POST API/products/{id}/price
GET API/products/{id}/services |
Create a product in selected material Create a product in selected material based on the previously uploaded model and receive a productID.
Receive production price for a product Receive production price for a product in specified currency.
Get available services for a product Receive the list of available services for a specific product. |
Delivery Address related | Used for adding a new Delivery Address for a Quotation |
POST API/delivery-address |
Create a new Delivery Address Create an empty quotation and receive deliveryAddressID. |
Quotation related | Used for quotation related actions: create, update, order, and delete |
POST API/quotations
POST API/quotations/{id}/addresses
POST API/quotations/{id}/order
GET API/quotations
GET API/quotations/{id}
DELETE API/quotations/{id} |
Create an empty quotation Create an empty quotation and receive quotationID. Quotations can include multiple products and required to create orders.
Add addresses to a quotation Add shipping and invoice address for a specific quotation.
Place an order Place an order for specific quotationID.
Get a list of quotations Receive a list of active quotations.
Get quotation details Receive details of a specific quotation including total cost, transport cost, and the list of items in that quotation.
Delete quotation Delete unnecessary quotation from the list of active quotations. |
Quotation Item related | Used for adding and deleting products in quotations |
POST API/quotations/{id}/items
DELETE API/quotations/{id}/items/{quotationItemId} |
Add items to quotations Add a previously defined product to a specific quotation and receive quotationItemID.
Delete items from quotations Delete a quotation item form a specific quotation |
5
Order Submitting Using API
Placing an order using OnSite API typically goes as follows:
- Receive an authorization token for your client ID and client secret
- Upload a 3D model and receive a modelID: POST to API/Model
- To get models parameters (dimensions data), use the modelID in the GET to API/models/{id
- Retrieve the list of available technologies, materials, finishes, and their IDs: GET to API/technologies
- Create a product by combining technologyID, materialID, and finishID with a modelID and receive a productid: POST to API/products
- A list of available services, i.e “Fast Lane” for the product (based on technology/material) is checked by the GET to API /products/{id}/services
- To check the price (already with 10% online discount) and lead-times use POST to API/products/{id}/price
- Create an empty quotation and receive a quotationID :POST to API/quotations
- Important to mention supported currency (EUR, USD, GBP, PLN) and add your reference ID
- Add quotation items to the quotation using a quotationID and productID Post to API/quotations/{id}/items
- Create a new Delivery Address to the quotation using and receive a deliveryAddressID Post to API/delivery-addresses
- Add delivery and invoice address to the quotation using deliveryAddressID and invoiceAddressID. Delivery and Invoice address ID can be found in your profile at onsite after you add them in manually: https://onsite.materialise.com/en/account/personalinfo Post to API/quotations/{id}/addresses
- Place an order by sending quotationID to the corresponding endpoint. Please note that placing an order via API requires invoice payment to be enabled for your account at Materialise OnSite.Post to API/quotations/{id}/order