Shapeways API Documentation

Browse the Shapeways API Documentation below or check out our JSON API Discovery - Get the JSON View addon for your browser

OAuth1
GET /oauth1/request_token/v1
Authorization Header Parameters
oauth_consumer_key string required Public oauth consumer key.
oauth_signature string required Generated oauth signature.
oauth_signature_method string required HMAC-SHA1
oauth_nonce int required Random number
oauth_timestamp int required Number of seconds since the Unix Epoch.
GET /oauth1/access_token/v1
Authorization Header Parameters
oauth_verifier string required Oauth verifier.
oauth_consumer_key string required Public oauth consumer key
oauth_signature_method string required HMAC-SHA1
oauth_nonce int required A random string with a maximum of 254 characters, uniquely generated by the client to allow the server to verify that a request has never been made before. The nonce value must be unique across all requests with the same timestamp, client credentials, and token combinations.
oauth_timestamp int required Number of seconds since the Unix Epoch.
oauth_version string required 1.0
oauth_token string required Public oauth request token key
oauth_signature string required Generated oauth signature
API
GET /api/v1/
Returns
result string A 'result' field stating 'success'
nextActionSuggestions array Suggestions for next actions
rateLimit array Rate limiting information
{ "retryInSeconds":{ "type":"int", "description":"Time in seconds you must wait before making another API call" }, "retryTimestamp":{ "type":"int", "description":"Unix timestamp you must wait before making another API call" }, "windowInSeconds":{ "type":"int", "description":"Rate limiting sliding window in seconds" }, "limit":{ "type":"int", "description":"Maximum number of API calls during the rate limiting window" }, "remaining":{ "type":"int", "description":"Remaining number of API calls in the current rate limiting window" }, "history":{ "type":"array", "description":"Number of API calls made for each minute during the rate limiting window." } }
Cart
GET /orders/cart/v1
Returns
result string A 'result' field stating 'success'
itemCount int Quantity of items in the cart
items array List of cart items
{ "type":"object", "description":"Cart Item", "properties":{ "modelId":{ "type":"int", "description":"Model id" }, "materialId":{ "type":"int", "description":"Material id" }, "quantity":{ "type":"int", "description":"Quantity of models in this material" } } }
nextActionSuggestions object Suggestions for next actions
POST /orders/cart/v1
Parameters
modelId int required Model id
materialId int optional Material id
quantity int optional Quantity of models in this material
- Default: 1
Returns
result string A 'result' field stating 'success'
nextActionSuggestions object Suggestions for next actions
Materials
GET /materials/v1
Returns
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 /materials/{materialId}/v1
Parameters
materialId int required Material id
Returns
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" } } } } }
nextActionSuggestions object Suggestions for next actions
Models
GET /models/v1
Parameters
page int optional The model page, starting with 1. Each page contains 36 models.
Returns
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
POST /models/v1
Parameters
file string required Model file data
fileName string required Model filename
uploadScale float optional Model scale in meters: 1.0 - meter, 0.001 - millimeter, 0.0254 - inch.
- Default: 1
hasRightsToModel boolean required You have the rights to, or have authorization to use this model
- 0 - You do not have rights to, nor have authorization to use this model
- 1 - You have rights to, or have authorization to use this model
acceptTermsAndConditions boolean required You accept the Terms and Conditions, see http://www.shapeways.com/terms_and_conditions.
- 0 - You do not accept the Terms and Conditions, see http://www.shapeways.com/terms_and_conditions.
- 1 - You accept the Terms and Conditions, see http://www.shapeways.com/terms_and_conditions.
title string optional Model title
description string optional Model description
- Default:
isPublic boolean optional Model visibility
- Default: 0
- 0 - Private Model (viewable only with a private key)
- 1 - Public Model
isForSale int optional Model is for sale
- Default: 0
- 0 - Model cannot be purchased
- 1 - Model can be purchased
isDownloadable boolean optional Model is downloadable
- Default: 0
- 0 - Model cannot be downloaded
- 1 - Model can be downloaded
tags array optional Model tags
materials object optional Material objects
{ "<materialId>":{ "id":"<materialId>", "type":"object", "description":"Material Object", "properties":{ "markup":{ "type":"float", "description":"Markup amount" }, "isActive":{ "type":"boolean", "description":"Is this material active" } } } }
defaultMaterialId int optional The material id for this model's default material
categories array optional Array of category ids.
Returns
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
{ "<materialId>":{ "id":"<materialId>", "type":"object", "description":"Material Object", "properties":{ "markup":{ "type":"float", "description":"Markup amount" }, "isActive":{ "type":"boolean", "description":"Is this material active" } } } }
secretKey string The secret key is used to allow ANY user to access a private model. The model can be accessed with the url: www.shapeways.com/model/[modelId]/?key=[key]
claimKey string The claim key is used to allow ANY user to claim a model into their own account. The claim function should be used when your app is generating models using your own permanent access tokens.To enable a user to claim a model, send them to this url: www.shapeways.com/model/[modelId]/?key=[key].If the model is not "claimable" this key will be blank. Once a model is set to claimable, it cannot be set to public or for-sale.
defaultMaterialId int The material id for this model's default material
categories object Category Objects
{ "<categoryId>":{ "id":"<categoryId>", "type":"object", "description":"Category Object", "properties":{ "title":{ "type":"string", "description":"Category title" }, "level":{ "type":"int", "description":"Category's nested level, with 1 being the topmost level" }, "parentId":{ "type":"int", "description":"Category's parent category. For topmost categories, 0 will be returned to indicate that there is no parent." } } } }
urls object Url Objects
{ "<address>":{ "id":"<address>", "type":"object", "description":"Url Object", "properties":{ "address":{ "type":"string", "description":"Url Address" } } } }
printable string Model Printability
nextActionSuggestions object Suggestions for next actions
GET /models/{modelId}/v1
Parameters
modelId int required Model id
Returns
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
{ "<materialId>":{ "id":"<materialId>", "type":"object", "description":"Material Object", "properties":{ "markup":{ "type":"float", "description":"Markup amount" }, "isActive":{ "type":"boolean", "description":"Is this material active" }, "name":{ "type":"string", "description":"Material name" }, "basePrice":{ "type":"float", "description":"Base Price" }, "price":{ "type":"float", "description":"Price" }, "isPrintable":{ "type":"boolean", "description":"Is this material printable" }, "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" } } } } } } } } }
secretKey string The secret key is used to allow ANY user to access a private model. The model can be accessed with the url: www.shapeways.com/model/[modelId]/?key=[key]
claimKey string The claim key is used to allow ANY user to claim a model into their own account. The claim function should be used when your app is generating models using your own permanent access tokens.To enable a user to claim a model, send them to this url: www.shapeways.com/model/[modelId]/?key=[key].If the model is not "claimable" this key will be blank. Once a model is set to claimable, it cannot be set to public or for-sale.
defaultMaterialId int The material id for this model's default material
categories object Category Objects
{ "<categoryId>":{ "id":"<categoryId>", "type":"object", "description":"Category Object", "properties":{ "title":{ "type":"string", "description":"Category title" }, "level":{ "type":"int", "description":"Category's nested level, with 1 being the topmost level" }, "parentId":{ "type":"int", "description":"Category's parent category. For topmost categories, 0 will be returned to indicate that there is no parent." } } } }
urls object Url Objects
{ "<address>":{ "id":"<address>", "type":"object", "description":"Url Object", "properties":{ "address":{ "type":"string", "description":"Url Address" } } } }
printable string Model Printability
nextActionSuggestions object Suggestions for next actions
DELETE /models/{modelId}/v1
Parameters
modelId int required ID of the model to delete.
Returns
result string A 'result' field stating 'success'
modelId int ID of the model that was deleted.
nextActionSuggestions object Suggestions for next actions
GET /models/{modelId}/info/v1
Parameters
modelId int required The existing 3D model id
Returns
result string A 'result' field stating 'success'
modelId int Model ID
modelVersion int Model version
title string Model title
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
{ "<materialId>":{ "id":"<materialId>", "type":"object", "description":"Material Object", "properties":{ "markup":{ "type":"float", "description":"Markup amount" }, "isActive":{ "type":"boolean", "description":"Is this material active" }, "name":{ "type":"string", "description":"Material name" }, "basePrice":{ "type":"float", "description":"Base Price" }, "price":{ "type":"float", "description":"Price" }, "isPrintable":{ "type":"boolean", "description":"Is this material printable" }, "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" } } } } } } } } }
secretKey string The secret key is used to allow ANY user to access a private model. The model can be accessed with the url: www.shapeways.com/model/[modelId]/?key=[key]
claimKey string The claim key is used to allow ANY user to claim a model into their own account. The claim function should be used when your app is generating models using your own permanent access tokens.To enable a user to claim a model, send them to this url: www.shapeways.com/model/[modelId]/?key=[key].If the model is not "claimable" this key will be blank. Once a model is set to claimable, it cannot be set to public or for-sale.
defaultMaterialId int The material id for this model's default material
categories object Category Objects
{ "<categoryId>":{ "id":"<categoryId>", "type":"object", "description":"Category Object", "properties":{ "title":{ "type":"string", "description":"Category title" }, "level":{ "type":"int", "description":"Category's nested level, with 1 being the topmost level" }, "parentId":{ "type":"int", "description":"Category's parent category. For topmost categories, 0 will be returned to indicate that there is no parent." } } } }
urls object Url Objects
{ "<address>":{ "id":"<address>", "type":"object", "description":"Url Object", "properties":{ "address":{ "type":"string", "description":"Url Address" } } } }
printable string Model Printability
nextActionSuggestions object Suggestions for next actions
PUT /models/{modelId}/info/v1
Parameters
modelId int required The existing 3D model id
title string optional Model title
description string optional Model description
isPublic boolean optional Model visibility
- 0 - Private Model (viewable only with a private key)
- 1 - Public Model
isForSale int optional Model is for sale
- 0 - Model cannot be purchased
- 1 - Model can be purchased
isDownloadable boolean optional Model is downloadable
- 0 - Model cannot be downloaded
- 1 - Model can be downloaded
tags array optional Model tags
materials object optional Material objects
{ "<materialId>":{ "id":"<materialId>", "type":"object", "description":"Material Object", "properties":{ "markup":{ "type":"float", "description":"Markup amount" }, "isActive":{ "type":"boolean", "description":"Is this material active" } } } }
defaultMaterialId int optional The material id for this model's default material
categories array optional Array of category ids.
Returns
result string A 'result' field stating 'success'
modelId int Model ID
modelVersion int Model version
title string Model title
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
{ "<materialId>":{ "id":"<materialId>", "type":"object", "description":"Material Object", "properties":{ "markup":{ "type":"float", "description":"Markup amount" }, "isActive":{ "type":"boolean", "description":"Is this material active" } } } }
secretKey string The secret key is used to allow ANY user to access a private model. The model can be accessed with the url: www.shapeways.com/model/[modelId]/?key=[key]
claimKey string The claim key is used to allow ANY user to claim a model into their own account. The claim function should be used when your app is generating models using your own permanent access tokens.To enable a user to claim a model, send them to this url: www.shapeways.com/model/[modelId]/?key=[key].If the model is not "claimable" this key will be blank. Once a model is set to claimable, it cannot be set to public or for-sale.
defaultMaterialId int The material id for this model's default material
categories object Category Objects
{ "<categoryId>":{ "id":"<categoryId>", "type":"object", "description":"Category Object", "properties":{ "title":{ "type":"string", "description":"Category title" }, "level":{ "type":"int", "description":"Category's nested level, with 1 being the topmost level" }, "parentId":{ "type":"int", "description":"Category's parent category. For topmost categories, 0 will be returned to indicate that there is no parent." } } } }
urls object Url Objects
{ "<address>":{ "id":"<address>", "type":"object", "description":"Url Object", "properties":{ "address":{ "type":"string", "description":"Url Address" } } } }
printable string Model Printability
nextActionSuggestions object Suggestions for next actions
POST /models/{modelId}/files/v1
Parameters
file string required Model file data
fileName string required Model filename
uploadScale float optional Model scale in meters: 1.0 - meter, 0.001 - millimeter, 0.0254 - inch.
- Default: 1
hasRightsToModel boolean required You have the rights to, or have authorization to use this model
- 0 - You do not have rights to, nor have authorization to use this model
- 1 - You have rights to, or have authorization to use this model
acceptTermsAndConditions boolean required You accept the Terms and Conditions, see http://www.shapeways.com/terms_and_conditions.
- 0 - You do not accept the Terms and Conditions, see http://www.shapeways.com/terms_and_conditions.
- 1 - You accept the Terms and Conditions, see http://www.shapeways.com/terms_and_conditions.
Returns
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
nextActionSuggestions object Suggestions for next actions
GET /models/{modelId}/files/{fileVersion}/v1
Parameters
modelId int required Model id
fileVersion int required Model file version
file boolean optional Include model data file in the response
- Default: 0
- 0 - Do not include model file data
- 1 - Include model file data
Returns
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
nextActionSuggestions object Suggestions for next actions
POST /models/{modelId}/photos/v1
Parameters
modelId int required Model id
file string required Photo file data
title string optional Photo title
- Default:
description string optional Photo description
- Default:
materialId int optional Material depicted in the photo
isDefault boolean optional Default photo for this model
- Default:
Returns
result string A 'result' field stating 'success'
contentLength int Photo file size in bytes
fileMd5Checksum string Md5 checksum of the photo file
modelId int Model id this photo belongs to
title string The title of this photo
description string A description of this photo
width int The width of the photo
height int The height of the photo
default boolean Whether the photo is the default photo for the model or not
materialId int The material id of the material shown in this photo
photoId int The id of this photo
photoCount int The number of photos that exist for this model
nextActionSuggestions object Suggestions for next actions
Printers
GET /printers/v1
Returns
result string A 'result' field stating 'success'
printers array List of printers
{ "id":"<printerId>", "type":"object", "description":"Printer Item", "properties":{ "printerId":{ "type":"int", "description":"Printer id" }, "title":{ "type":"string", "description":"Printer name" }, "xBoundMin":{ "type":"float", "description":"Printer's minimum object size in the X axis direction in cm" }, "xBoundMax":{ "type":"float", "description":"Printer's maximum object size in the X axis direction in cm" }, "yBoundMin":{ "type":"float", "description":"Printer's minimum object size in the Y axis direction in cm" }, "yBoundMax":{ "type":"float", "description":"Printer's maximum object size in the Y axis direction in cm" }, "zBoundMin":{ "type":"float", "description":"Printer's minimum object size in the Z axis direction in cm" }, "zBoundMax":{ "type":"float", "description":"Printer's maximum object size in the Z axis direction in cm" } } }
nextActionSuggestions object Suggestions for next actions
GET /printers/{printerId}/v1
Parameters
printerId int required Printer id
Returns
result string A 'result' field stating 'success'
printerId int Printer id
title string Printer name
xBoundMin float Printer's minimum object size in the X axis direction in cm
xBoundMax float Printer's maximum object size in the X axis direction in cm
yBoundMin float Printer's minimum object size in the Y axis direction in cm
yBoundMax float Printer's maximum object size in the Y axis direction in cm
zBoundMin float Printer's minimum object size in the Z axis direction in cm
zBoundMax float Printer's maximum object size in the Z axis direction in cm
nextActionSuggestions object Suggestions for next actions
Price
POST /price/v1
Parameters
volume float required Model volume (cubic meters, use 0.000001 for cm^3)
area float required Model surface area (square meters, use 0.0001 for cm^2)
xBoundMin float required Model bounding box minimum on the x-axis in meters
- Default: 0
xBoundMax float required Model bounding box maximum on the x-axis in meters
- Default: 0
yBoundMin float required Model bounding box minimum on the y-axis in meters
- Default: 0
yBoundMax float required Model bounding box maximum on the y-axis in meters
- Default: 0
zBoundMin float required Model bounding box minimum on the z-axis in meters
- Default: 0
zBoundMax float required Model bounding box maximum on the z-axis in meters
- Default: 0
materials array optional Limit pricing to a set of materials. If left blank, prices for ALL materials will be returned.
Returns
result string A 'result' field stating 'success'
prices object List of material prices
{ "<materialId>":{ "id":"<materialId>", "type":"object", "description":"Price Object", "properties":{ "price":{ "type":"float", "description":"Price for model geometry in this material" }, "currency":{ "type":"string", "description":"Price currency" } } } }
nextActionSuggestions object Suggestions for next actions
Category
GET /categories/v1
Returns
result string A 'result' field stating 'success'
categories object Category objects
{ "<categoryId>":{ "id":"<categoryId>", "type":"object", "description":"Category Object", "properties":{ "title":{ "type":"string", "description":"Category title" }, "level":{ "type":"int", "description":"Category's nested level, with 1 being the topmost level" }, "parentId":{ "type":"int", "description":"Category's parent category. For topmost categories, 0 will be returned to indicate that there is no parent." } } } }
nextActionSuggestions object Suggestions for next actions
GET /categories/{categoryId}/v1
Parameters
categoryId int required Category id
Returns
result string A 'result' field stating 'success'
category object Category Object
{ "title":{ "type":"string", "description":"Category title" }, "level":{ "type":"int", "description":"Category's nested level, with 1 being the topmost level" }, "parentId":{ "type":"int", "description":"Category's parent category. For topmost categories, 0 will be returned to indicate that there is no parent." } }
nextActionSuggestions object Suggestions for next actions