Shapeways Developers
Materials
Use the /materials/v1 API endpoint to get up-to-date information about Shapeways’ materials.
GET - List materials
Retrieves information on all available 40+ Shapeways’ materials.
Request
GET /materials/v1
Response
| parameters | type | description |
|---|---|---|
| result | string | A 'result' field stating 'success' |
| materials | object | Material objects |
{
"<materialId>":{
"id":"<materialId>",
"type":"object",
"description":"Material Object",
"properties":{
"title":{
"type":"string",
"description":"Material name"
},
"supportsColorFiles":{
"type":"boolean",
"description":"Material supports color"
},
"printerId":{
"type":"int",
"description":"Printer id that this material is printed on"
},
"swatch":{
"type":"string",
"description":"The url for the material swatch"
},
"restrictions":{
"id":"restrictions",
"type":"object",
"description":"Material Restriction Object",
"properties":{
"<restrictionId>":{
"id":"<restrictionId>",
"type":"object",
"description":"Material Restriction Object",
"properties":{
"restrictionId":{
"type":"int",
"description":"Material Restriction ID"
},
"restrictionName":{
"type":"string",
"description":"Material Restriction Name"
},
"restrictionEntityIds":{
"type":"array",
"description":"Material Restriction Entity Ids",
"default":[
],
"items":{
"type":"int",
"description":"Material Restriction Entity Id"
}
}
}
}
}
}
}
}
}
nextActionSuggestions
object
Suggestions for next actions
GET - Material information
Retrieves information for a specific material (Specified by the materialId)
Request
GET /materials/{materialId}/v1
| parameters | type | required | description |
|---|---|---|---|
| materialId | int | required | Material id |
Response
| parameters | type | description |
|---|---|---|
| result | string | A 'result' field stating 'success' |
| materialId | int | Material ID |
| title | string | Material name |
| supportsColorFiles | boolean | Material supports color |
| printerId | int | Printer id that this material is printed on |
| swatch | string | The url for the material swatch |
| restrictions | object | Material Restriction Object |
{
"<restrictionId>":{
"id":"<restrictionId>",
"type":"object",
"description":"Material Restriction Object",
"properties":{
"restrictionId":{
"type":"int",
"description":"Material Restriction ID"
},
"restrictionName":{
"type":"string",
"description":"Material Restriction Name"
},
"restrictionEntityIds":{
"type":"array",
"description":"Material Restriction Entity Ids",
"default":[
],
"items":{
"type":"int",
"description":"Material Restriction Entity Id"
}
}
}
}
}
rejections
array
list of rejection Objects
{
"rejections":[
{
"reasonTitle":{
"type":"string",
"description":"The rejection reason type name"
},
"comment":{
"type":"string",
"description":"The rejection comment with details about the rejection"
},
"pictureUrl":{
"type":"string",
"description":"A url containing the rejection picture (if present)"
}
}
]
}
nextActionSuggestions
object
Suggestions for next actions
Models
Easily manage your Shapeways’ 3D models with the /models/v1 API endpoint.
POST - Upload a model
Uploads a new model. See Upload a model for instructions and code examples.
Request
POST /models/v1
| parameters | type | required | description |
|---|---|---|---|
| file | string | required | Model file data |
| fileName | string | required | Model filename (with correct file extension) |
| uploadScale | float | optional | Model scale in meters |
| hasRightsToModel | boolean | required | You have the rights to model |
| acceptTermsAndConditions | boolean | required | You accept the Shapeways' Terms and Conditions |
| title | string | optional | Model title |
| description | string | optional | Model description |
| isPublic | boolean | optional | Model visibility |
| isClaimable | boolean | optional | Whether a model is claimable with a claim key |
| isForSale | int | optional | Model is for sale |
| isDownloadable | boolean | optional | Model is downloadable |
| tags | array | optional | Model tags |
| materials | object | optional | Material objects |
| defaultMaterialId | int | optional | The material id for this model's default material |
| categories | array | optional | Array of category ids. |
Response
| parameters | type | description |
|---|---|---|
| result | string | A 'result' field stating 'success' |
| modelId | int | Model ID |
| modelVersion | int | Model version |
| title | string | Model title |
| fileName | string | Model filename |
| contentLength | int | The file size of the uploaded file in bytes |
| fileMd5Checksum | string | The md5 checksum of the file |
| description | string | Model description |
| isPublic | boolean | Can be seen by the public |
| isClaimable | boolean | Can be claimed via claimKey |
| isForSale | boolean | Model is for sale |
| isDownloadable | boolean | Model is downloadable |
| materials | object | Material objects |
| secretKey | string | Model secret key |
| claimKey | string | Model claim key |
| defaultMaterialId | int | The material id for this model's default material |
| categories | object | Category Objects |
| tags | string | Tags |
| urls | object | Url Objects |
| spin | string | SPIN |
| printable | string | Model Printability |
| nextActionSuggestions | object | Suggestions for next actions |
GET - List models
Retrieves a list of models in the Shapeways account.
Request
GET /models/v1
| parameters | type | required | description |
|---|---|---|---|
| page | int | optional | The model page, starting with 1. Each page contains 36 models. |
Response
| parameters | type | description |
|---|---|---|
| result | string | A 'result' field stating 'success' |
| models | array | List of models |
{
"modelId":{
"type":"int",
"description":"Model ID"
},
"modelVersion":{
"type":"int",
"description":"Model version"
},
"title":{
"type":"string",
"description":"Model title"
}
}
nextActionSuggestions
object
Suggestions for next actions
GET - Model information
Retrieves information for a specific model like material printability and price (Specified by the modelId).
Request
GET /models/{modelId}/v1
| parameters | type | required | description |
|---|---|---|---|
| modelId | int | required | Model id |
Response
| parameters | type | description |
|---|---|---|
| result | string | A 'result' field stating 'success' |
| modelId | int | Model ID |
| modelVersion | int | Model version |
| title | string | Model title |
| fileName | string | Model filename |
| contentLength | int | The file size of the uploaded file in bytes |
| fileMd5Checksum | string | The md5 checksum of the file |
| fileData | string | Model file data |
| description | string | Model description |
| isPublic | boolean | Can be seen by the public |
| isClaimable | boolean | Can be claimed via claimKey |
| isForSale | boolean | Model is for sale |
| isDownloadable | boolean | Model is downloadable |
| materials | object | Material objects |
| secretKey | string | Model secret key |
| claimKey | string | Model claim key |
| defaultMaterialId | int | The material id for this model's default material |
| categories | object | Category Objects |
| tags | string | Tags |
| urls | object | Url Objects |
| spin | string | SPIN |
| printable | string | Model Printability |
| restrictions | object | Material Restriction Object |
{
"<materialId>":{
"id":"<materialId>",
"type":"object",
"description":"Material Object",
"properties":{
"markup":{
"type":"float",
"description":"Markup amount"
},
"isActive":{
"type":"boolean",
"description":"Is this material active"
},
"price":{
"type":"float",
"description":"Price"
}
}
}
}
nextActionSuggestions
object
Suggestions for next actions
DELETE - Delete a model
Deletes a model from the Shapeways’ account (Specified by the modelId).
Request
DELETE /models/{modelId}/v1
| parameters | type | required | description |
|---|---|---|---|
| modelId | int | required | ID of the model to delete. |
Response
| parameters | type | description |
|---|---|---|
| result | string | A 'result' field stating 'success' |
| modelId | int | ID of the model that was deleted. |
| nextActionSuggestions | object | Suggestions for next actions |
Orders
Use the /orders/v1 API endpoint to integrate with Shapeways fulfillment services to seamlessly place and manage orders.
POST - Place an order
Creates and places a new order. See Placing your first order instructions and code examples.
Request
POST /orders/v1
| parameters | type | required | description |
|---|---|---|---|
| firstName | string | required | First name for shipping address |
| lastName | string | required | Last name for shipping address |
| country | string | required | Shipping address country name or 2-letter code (ISO 3166) |
| state | string | required | Shipping address state or region. |
| city | string | required | Shipping address city name |
| address1 | string | required | Street Address |
| address2 | string | optional | Apartment or Suite |
| address3 | string | optional | Company or c/o |
| zipCode | string | required | Shipping address zip code. |
| phoneNumber | string | required | Customer phone number. |
| items | array | required | Set of items in your order |
| incentives | array | optional | Set of incentives to apply to the order |
| paymentVerificationId | string | optional | Shapeways-issued id to authorize payments for your app |
| paymentMethod | string | required | Payment method for this order |
| shippingOption | string | required | Shipping option for this order |
| manufacturingSpeed | string | optional | Manufacturing speed for this order |
| refNumber | string | optional | Reference number associated with this order. |
| metadata | array | optional | metadata |
Response
| parameters | type | description |
|---|---|---|
| result | string | A 'result' field stating 'success' |
| orderId | int | Id of the order that was created |
| productionOrderIds | array | Set of production order ids |
nextActionSuggestions
object
Suggestions for next actions
GET - List orders
Retrieves information like number of orders, their statuses, and shipping dates.
Request
GET /orders/v1
| parameters | type | required | description |
|---|---|---|---|
| orderIds | string | optional | comma separated list of order ids |
Response
| parameters | type | description |
|---|---|---|
| result | string | A 'result' field stating 'success' |
| ordersCount | object | Contains a summary of the number of orders classified by status |
| ordersStatus | json_object | Contains a detailed summary of each order and it's status |
| ordersInfo | array | Contains target ship date, target delivery date and shipments for each order |
nextActionSuggestions
object
Suggestions for next actions
GET - Order information
Retrieves information for a specific order placed through the API (Specified by the orderId).
Request
GET /orders/{orderId}/v1
| parameters | type | required | description |
|---|---|---|---|
| orderIds | string | optional | Filter by order ids provided for the api orders |
| orderId | string | optional | Filter by the order id provided for the api order |
| firstName | string | optional | Filter by first name on the address that was used to place the order |
| lastName | string | optional | Filter by lastName name on the address that was used to place the order |
| country | string | optional | Filter by country on the address that was used to place the order |
| state | string | optional | Filter by state or region on the address that was used to place the order |
| city | string | optional | Filter by city on the address that was used to place the order |
| address1 | string | optional | Filter by address1 that was used to place the order |
| address2 | string | optional | Filter by address street (line 1) that was used to place the order |
| address3 | string | optional | Filter by address street (line 2) that was used to place the order |
| zipCode | string | optional | Filter by zip code on the address that was used to place the order |
| phoneNumber | string | optional | Filter by phone number used to place the order |
| string | optional | Filter by email used to place the order | |
| limit | int | optional | Limits the number of orders returned. Limit cannot exceed 100. |
Response
| parameters | type | description |
|---|---|---|
| result | string | A 'result' field stating 'success' |
| ordersCount | object | Contains a summary of the number of orders classified by status |
| ordersStatus | json_object | Contains a detailed summary of each order and its status |
| ordersInfo | array | Contains target ship date, target delivery date and shipments for each order |
nextActionSuggestions
object
Suggestions for next actions
Shipping Options
Use the /cart/shipping-options/v1 API endpoint to determine what shipping options are available for your order.
GET - Shipping Options
Retrieves information about the shipping options available to the shipping location
Request
GET /cart/shipping-options/v1
| parameters | type | required | description |
|---|---|---|---|
| country | string | required | 2-letter country code (ISO 3166) of the shipping address |
| zipCode | string | optional | Shipping address zip code |
Response
| parameters | type | description |
|---|---|---|
| result | string | A 'result' field stating 'success' |
| shippingOptions | object | Available shipping options |
{
"shippingOptionId":{
"type":"int",
"description":"Id of the intended shipping option. Should be included in the request to the order creation endpoint to set the shipping option"
},
"price":{
"type":"float",
"description":"Cost of that shipping option without tax in USD"
},
"name":{
"type":"string",
"description":"Display name of shipping option"
},
"inTransitDaysMin":{
"type":"int",
"description":"Minimum shipping days (Business days)"
},
"inTransitDaysMax":{
"type":"int",
"description":"Maximum shipping days (Business days)"
}
}