OpenAPI Specification
openapi: 3.0.3
info:
title: Shapeways Cart Orders API
version: v1
description: 'The Shapeways API provides programmatic access to Shapeways'' on-demand 3D printing and additive manufacturing platform: browse the material catalog, upload and manage 3D models, retrieve shipping options, and place and track manufacturing orders. Authentication is OAuth 2.0 (client_credentials for single-account apps, authorization_code + refresh_token for multi-user apps). Endpoints are versioned with a trailing /v1 path segment. This document is a faithful transcription of the public API reference published at https://developers.shapeways.com/ — it is not an official Shapeways OpenAPI document.'
x-provenance:
generated: '2026-07-21'
method: generated
source: https://developers.shapeways.com/api-reference
contact:
name: Shapeways API
email: api@shapeways.com
url: https://developers.shapeways.com/
servers:
- url: https://api.shapeways.com
description: Production
security:
- oauth2: []
tags:
- name: Orders
description: Place and track manufacturing orders.
paths:
/orders/v1:
post:
operationId: placeOrder
tags:
- Orders
summary: Place an order
description: Place a manufacturing order for one or more models.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/OrderRequest'
responses:
'200':
description: The placed order.
content:
application/json:
schema:
$ref: '#/components/schemas/OrderPlaced'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/TooManyRequests'
get:
operationId: listOrders
tags:
- Orders
summary: List orders
parameters:
- name: orderIds
in: query
required: false
description: Comma-separated list of order ids.
schema:
type: string
responses:
'200':
description: Orders and their status.
content:
application/json:
schema:
$ref: '#/components/schemas/OrderList'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/TooManyRequests'
/orders/{orderId}/v1:
get:
operationId: getOrder
tags:
- Orders
summary: Get order information
parameters:
- name: orderId
in: path
required: true
schema:
type: integer
- name: limit
in: query
required: false
description: Max results (max 100, default 20).
schema:
type: integer
default: 20
maximum: 100
responses:
'200':
description: Order detail.
content:
application/json:
schema:
$ref: '#/components/schemas/OrderList'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
components:
schemas:
Result:
type: object
description: Standard response envelope. All responses carry a result field.
properties:
result:
type: string
description: success or failure.
nextActionSuggestions:
type: object
OrderList:
type: object
properties:
result:
type: string
ordersCount:
type: integer
ordersStatus:
type: object
ordersInfo:
type: object
OrderPlaced:
type: object
properties:
result:
type: string
orderId:
type: integer
productionOrderIds:
type: array
items:
type: integer
nextActionSuggestions:
type: object
OrderRequest:
type: object
required:
- firstName
- lastName
- country
- state
- city
- address1
- zipCode
- phoneNumber
- items
- paymentMethod
- shippingOption
properties:
firstName:
type: string
lastName:
type: string
country:
type: string
state:
type: string
city:
type: string
address1:
type: string
address2:
type: string
address3:
type: string
zipCode:
type: string
phoneNumber:
type: string
items:
type: array
items:
$ref: '#/components/schemas/OrderItem'
paymentMethod:
type: string
shippingOption:
type: string
incentives:
type: object
paymentVerificationId:
type: string
manufacturingSpeed:
type: string
refNumber:
type: string
metadata:
type: object
OrderItem:
type: object
properties:
modelId:
type: integer
materialId:
type: integer
quantity:
type: integer
responses:
Unauthorized:
description: Missing or invalid OAuth 2.0 bearer token.
content:
application/json:
schema:
$ref: '#/components/schemas/Result'
BadRequest:
description: Malformed or invalid request.
content:
application/json:
schema:
$ref: '#/components/schemas/Result'
NotFound:
description: Resource not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Result'
TooManyRequests:
description: Rate limit exceeded.
content:
application/json:
schema:
$ref: '#/components/schemas/Result'
securitySchemes:
oauth2:
type: oauth2
description: OAuth 2.0. client_credentials for single-account apps; authorization_code (+ refresh_token) for multi-user apps.
flows:
clientCredentials:
tokenUrl: https://api.shapeways.com/oauth2/token
scopes: {}
authorizationCode:
authorizationUrl: https://api.shapeways.com/oauth2/authorize
tokenUrl: https://api.shapeways.com/oauth2/token
scopes: {}