Onshape BlobElement API
Create, modify, and translate blob elements.
Create, modify, and translate blob elements.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/onshape-blobelement-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
openapi: 3.2.0
info:
title: Onshape REST Account Blob Element API
description: '## Welcome to the Onshape REST API Explorer
**See the [API Explorer Guide](https://onshape-public.github.io/docs/api-intro/explorer/) for help navigating this page.**
### Using this page
1. Sign in to your [Onshape](https://cad.onshape.com) account in another tab.
2. Click the `Try it out` button below. It toggles to a `Cancel` button when selected.
### Authenticating
To authenticate your calls, click the `Authorize` button. See [API Explorer Guide: Authentication](https://onshape-public.github.io/docs/api-intro/explorer/#authentication) for details. Calls made when authenticated via API Keys or OAuth count against your annual [API limits](https://onshape-public.github.io/docs/auth/limits/#annual-api-call-limits).
* **Tip:** To ensure the current session isn''t used when trying other authentication techniques, make sure to [remove the Onshape cookie](https://support.google.com/chrome/answer/95647#zippy=%2Cdelete-cookies-from-a-site) as per the instructions for your browser, or use a private or incognito window.
### Additional resources
* [Onshape API Guide](https://onshape-public.github.io/docs/): Our full suite of developer guides, to be used as an accompaniment to this API Explorer.
* [Onshape Developer Portal](https://cad.onshape.com/appstore/dev-portal): The Onshape portal for managing your API keys, OAuth2 credentials, your Onshape applications, and your Onshape App Store entries.
* [Authentication Guide](https://onshape-public.github.io/docs/auth/): Our guide to using API keys, request signatures, and OAuth2 in your Onshape applications.'
termsOfService: https://www.onshape.com/legal/terms-of-use
contact:
email: api-support@onshape.zendesk.com
license:
name: Apache 2.0
url: http://www.apache.org/licenses/LICENSE-2.0.html
version: 1.218.84032-34acba44be17
x-logo:
url: images/logo-onshape-gray-green-nav-bar.svg
backgroundColor: '#ffffff'
altText: Onshape
href: images/logo-onshape-gray-green-nav-bar.svg
x-indeterministic-schemas:
- BTDiffInfo
- BTParameterSpecArray-2600
- BTSplineDescription-2118
- NodeModel
- BTPFunctionDeclaration-246
- BTPFunctionOrPredicateDeclaration-247
- BTPExpression-9
- SkinModel
- BTMAnnotation-4664
x-filter-info: ?restUserRole=PUBLIC
servers:
- url: https://cad.onshape.com/api/v16
description: Current
security:
- BasicAuth: []
tags:
- name: BlobElement
description: Create, modify, and translate blob elements.
paths:
/blobelements/d/{did}/w/{wid}:
post:
tags:
- BlobElement
summary: Upload a file and create a blob element from it.
description: Request body parameters are multipart fields, so you must use `"Content-Type":"multipart/form-data"` in the request header.
operationId: uploadFileCreateElement
parameters:
- name: did
in: path
description: The id of the document in which to perform the operation.
required: true
schema:
type: string
- name: linkDocumentId
in: query
description: The id of the document through which the above document should be accessed; only applicable when accessing a version of the document. This allows a user who has access to document a to see data from document b, as long as document b has been linked to document a by a user who has permission to both.
schema:
type: string
default: ''
- name: wid
in: path
description: The id of the workspace in which to perform the operation.
required: true
schema:
type: string
requestBody:
content:
multipart/form-data:
schema:
$ref: '#/components/schemas/BTBTranslationRequestParams'
responses:
default:
description: default response
content:
application/json;charset=UTF-8; qs=0.09:
schema:
$ref: '#/components/schemas/BTDocumentElementProcessingInfo'
deprecated: false
security:
- OAuth2:
- OAuth2Write
BasicAuth:
- OAuth2Write
x-BTVisibility: PRODUCTION
/blobelements/d/{did}/w/{wid}/e/{eid}:
get:
tags:
- BlobElement
summary: Download a file from a blob element for the specified workspace/version/microversion.
description: 'See [API Guide: Model Translation](https://onshape-public.github.io/docs/api-adv/translation/) for more details.'
operationId: downloadFileWorkspace
parameters:
- name: did
in: path
description: The id of the document in which to perform the operation.
required: true
schema:
type: string
- name: linkDocumentId
in: query
description: The id of the document through which the above document should be accessed; only applicable when accessing a version of the document. This allows a user who has access to document a to see data from document b, as long as document b has been linked to document a by a user who has permission to both.
schema:
type: string
default: ''
- name: wid
in: path
description: The id of the workspace in which to perform the operation.
required: true
schema:
type: string
- name: eid
in: path
description: The id of the element in which to perform the operation.
required: true
schema:
type: string
- name: contentDisposition
in: query
description: If "attachment", includes a Content-Disposition return header with the filename.
schema:
type: string
- name: If-None-Match
in: header
description: Entity tag; an md5 checksum of the data in double quotes. If the data to download has the same checksum as this entity tag, a 304 'Not Modified' status will be returned. The entity tag is returned in the response headers as ETag.
schema:
type: string
responses:
default:
description: File download.
content:
application/octet-stream:
schema:
type: string
format: binary
application/json;charset=UTF-8; qs=0.09:
schema:
type: string
format: binary
deprecated: false
security:
- OAuth2:
- OAuth2Read
BasicAuth:
- OAuth2Read
x-BTVisibility: PRODUCTION
post:
tags:
- BlobElement
summary: Update a blob element by uploading a file.
description: Request body parameters are multipart fields, so you must use `"Content-Type":"multipart/form-data"` in the request header.
operationId: uploadFileUpdateElement
parameters:
- name: did
in: path
description: The id of the document in which to perform the operation.
required: true
schema:
type: string
- name: linkDocumentId
in: query
description: The id of the document through which the above document should be accessed; only applicable when accessing a version of the document. This allows a user who has access to document a to see data from document b, as long as document b has been linked to document a by a user who has permission to both.
schema:
type: string
default: ''
- name: wid
in: path
description: The id of the workspace in which to perform the operation.
required: true
schema:
type: string
- name: eid
in: path
description: The id of the element in which to perform the operation.
required: true
schema:
type: string
- name: parentChangeId
in: query
description: The id of the last change made to this application element. This can be retrieved from the response for any app element modification endpoint.
schema:
type: string
requestBody:
content:
multipart/form-data:
schema:
$ref: '#/components/schemas/BTBTranslationRequestParams'
responses:
default:
description: default response
content:
application/json;charset=UTF-8; qs=0.09:
schema:
$ref: '#/components/schemas/BTDocumentElementProcessingInfo'
deprecated: false
security:
- OAuth2:
- OAuth2Write
BasicAuth:
- OAuth2Write
x-BTVisibility: PRODUCTION
/blobelements/d/{did}/w/{wid}/e/{eid}/units:
post:
tags:
- BlobElement
summary: Change the measurement units for the blob element.
operationId: updateUnits
parameters:
- name: did
in: path
description: The id of the document in which to perform the operation.
required: true
schema:
type: string
- name: linkDocumentId
in: query
description: The id of the document through which the above document should be accessed; only applicable when accessing a version of the document. This allows a user who has access to document a to see data from document b, as long as document b has been linked to document a by a user who has permission to both.
schema:
type: string
default: ''
- name: wid
in: path
description: The id of the workspace in which to perform the operation.
required: true
schema:
type: string
- name: eid
in: path
description: The id of the element in which to perform the operation.
required: true
schema:
type: string
requestBody:
content:
application/json;charset=UTF-8; qs=0.09:
schema:
$ref: '#/components/schemas/BTUpdateMeshUnitsParams'
required: true
responses:
default:
description: default response
content:
application/json;charset=UTF-8; qs=0.09:
schema:
$ref: '#/components/schemas/BTDocumentElementProcessingInfo'
deprecated: false
security:
- OAuth2:
- OAuth2Write
BasicAuth:
- OAuth2Write
x-BTVisibility: PRODUCTION
/blobelements/d/{did}/{wv}/{wvid}/e/{eid}/translations:
post:
tags:
- BlobElement
summary: Export a blob element to another format.
description: "* Use `formatName` in the JSON request body to specify the export file type. Use [Translations/getAllTranslatorFormats]#/Translation/getAllTranslatorFormats) to get a list of valid export file formats. \n* Set `storeInDocument` to `false` to export to a data file. Set to `true` to export to a blob element in the same document. \n* See [API Guide: Model Translation](https://onshape-public.github.io/docs/api-adv/translation/) for more details."
operationId: createBlobTranslation
parameters:
- name: did
in: path
description: The id of the document in which to perform the operation.
required: true
schema:
type: string
- name: linkDocumentId
in: query
description: The id of the document through which the above document should be accessed; only applicable when accessing a version of the document. This allows a user who has access to document a to see data from document b, as long as document b has been linked to document a by a user who has permission to both.
schema:
type: string
default: ''
- name: wv
in: path
description: Indicates which of workspace (w) or version (v) id is specified below.
required: true
schema:
type: string
enum:
- w
- v
- name: wvid
in: path
description: The id of the workspace, version in which the operation should be performed.
required: true
schema:
type: string
- name: eid
in: path
description: The id of the element in which to perform the operation.
required: true
schema:
type: string
requestBody:
content:
application/json;charset=UTF-8; qs=0.09:
schema:
$ref: '#/components/schemas/BTTranslateFormatParams'
required: true
responses:
default:
description: default response
content:
application/json;charset=UTF-8; qs=0.09:
schema:
$ref: '#/components/schemas/BTTranslationRequestInfo'
deprecated: false
security:
- OAuth2:
- OAuth2Read
BasicAuth:
- OAuth2Read
x-BTVisibility: PRODUCTION
components:
schemas:
BTBTranslationRequestParams:
type: object
properties:
allowFaultyParts:
type: boolean
createComposite:
type: boolean
createDrawingIfPossible:
type: boolean
encodedFilename:
type: string
extractAssemblyHierarchy:
type: boolean
file:
type: string
description: The file to upload.
format: binary
flattenAssemblies:
type: boolean
formatName:
type: string
importAppearances:
type: boolean
importMaterialDensity:
type: boolean
importWithinDocument:
type: boolean
joinAdjacentSurfaces:
type: boolean
locationElementId:
type: string
locationGroupId:
type: string
locationPosition:
type: integer
format: int32
makePublic:
type: boolean
notifyUser:
type: boolean
onePartPerDoc:
type: boolean
ownerId:
type: string
parentId:
type: string
projectId:
type: string
repointAppElementVersionRefs:
type: boolean
splitAssembliesIntoMultipleDocuments:
type: boolean
storeInDocument:
type: boolean
translate:
type: boolean
unit:
type: string
uploadId:
type: string
useIGESImportPostProcessing:
type: boolean
versionString:
type: string
yAxisIsUp:
type: boolean
x-BTVisibility-properties:
versionDescription: INTERNAL
versionId: INTERNAL
upgradeFeatureScriptVersion: INTERNAL
documentId: INTERNAL
versionName: INTERNAL
preserveSourceIds: INTERNAL
GBTUrdfMeshFormat:
type: string
enum:
- STL
- GLTF
- OBJ
- UNKNOWN
GBTParasolidEncodingType:
type: string
description: Export Parasolid in `BINARY` (.x_b) or `TEXT` (.x_t) mode.
default: TEXT
enum:
- TEXT
- BINARY
- UNKNOWN
GBTElementType:
type: string
enum:
- PARTSTUDIO
- ASSEMBLY
- DRAWING
- FEATURESTUDIO
- BLOB
- APPLICATION
- TABLE
- BILLOFMATERIALS
- VARIABLESTUDIO
- PUBLICATIONITEM
- UNKNOWN
BTThumbnailInfo:
type: object
properties:
href:
type: string
format: uri
id:
type: string
secondarySizes:
type: array
items:
type: array
items:
$ref: '#/components/schemas/BTThumbnailSizeInfo'
sizes:
type: array
items:
$ref: '#/components/schemas/BTThumbnailSizeInfo'
BTUpdateMeshUnitsParams:
type: object
properties:
units:
type: string
GBTStlEncodingType:
type: string
description: STL encoding type, `TEXT | BINARY`
default: TEXT
enum:
- TEXT
- BINARY
- UNKNOWN
GBTPreProcessParasolidOption:
type: string
description: Original geometry processing mode to improve results of translation to STEP.
enum:
- NO_PRE_PROCESSING
- USE_BODYSHOP_PRE_PROCESSING_ADVANCED
- USE_TRANSLATOR_PRE_PROCESSING
- USE_BODYSHOP_PRE_PROCESSING
- USE_BODYSHOP_PRE_PROCESSING_ADVANCED_WITH_SURFS_TO_BSURFS_CONVERTING
- UNKNOWN
BTThumbnailSizeInfo:
type: object
properties:
href:
type: string
format: uri
mediaType:
type: string
renderMode:
type: string
sheetName:
type: string
size:
type: string
uniqueId:
type: string
viewOrientation:
type: string
BTTranslationRequestInfo:
type: object
properties:
documentId:
type: string
exportRuleFileName:
type: string
description: The file name after evaluating a rule for the given `formatName`. `NULL` if `evaluateExportRule=false` or if the export rule is not found.
failureReason:
type: string
href:
type: string
description: URI to fetch complete information of the resource.
format: uri
id:
type: string
description: Id of the resource.
name:
type: string
description: Name of the resource.
requestElementId:
type: string
requestState:
$ref: '#/components/schemas/BTTranslationRequestState'
resultDocumentId:
type: string
resultElementIds:
type: array
items:
type: string
resultExternalDataIds:
type: array
items:
type: string
resultWorkspaceId:
type: string
versionId:
type: string
viewRef:
type: string
description: URI to visualize the resource in a webclient if applicable.
format: uri
workspaceId:
type: string
BTDocumentElementProcessingInfo:
type: object
properties:
accelerationUnits:
type: string
angleUnits:
type: string
angularVelocityUnits:
type: string
applicationTarget:
$ref: '#/components/schemas/BTApplicationTargetInfo'
areaUnits:
type: string
dataType:
type: string
deleted:
type: boolean
densityUnits:
type: string
elementType:
$ref: '#/components/schemas/GBTElementType'
energyUnits:
type: string
filename:
type: string
forceUnits:
type: string
foreignDataId:
type: string
frequencyUnits:
type: string
id:
type: string
lengthUnits:
type: string
massUnits:
type: string
microversionId:
type: string
momentUnits:
type: string
name:
type: string
pressureUnits:
type: string
prettyType:
type: string
safeToShow:
type: boolean
specifiedUnit:
type: string
thumbnailInfo:
$ref: '#/components/schemas/BTThumbnailInfo'
thumbnails:
type: string
format: uri
timeUnits:
type: string
translationEventKey:
type: string
translationId:
type: string
type:
type: string
unupdatable:
type: boolean
volumeUnits:
type: string
zip:
$ref: '#/components/schemas/BTZipFileInfo'
GBTRhinoVersions:
type: string
enum:
- V2
- V3
- V4
- V5
- V6
- V7
- V8
- UNKNOWN
BTTranslateFormatParams:
required:
- formatName
type: object
properties:
allowFaultyParts:
type: boolean
description: If true, parts with faults are imported. If false, faulty parts are omitted.
default: false
angularTolerance:
type: number
description: Determines the maximum angular deviation, between the analytical surface and its triangulation. Lower values result in a finer geometry and higher values result in coarser geometry.
format: double
example: 0.001
annotationsFontHeightInMillimeters:
type: number
description: Determines the font size in workspace units used for the MBD annotations text export
format: double
example: 4
blobElementId:
type: string
blobMicroversionId:
type: string
cloudObjectId:
type: string
description: Folder id where to store the exported model.
cloudStorageAccountId:
type: string
description: Account id to access the cloud storage.
colorMethod:
type: string
configuration:
type: string
description: URL-encoded string of configuration values (separated by `;`). See the [Configurations API Guide](https://onshape-public.github.io/docs/api-adv/configs/) for details.
connectionId:
type: string
createComposite:
type: boolean
currentSheetOnly:
type: boolean
destinationName:
type: string
description: The name of the exported file.
distanceTolerance:
type: number
description: Determines the maximum distance deviation, between the analytical surface and its triangulation. Lower values result in a finer geometry and higher values result in coarser geometry.
format: double
example: 0.001
dxfVersion:
type: string
elementId:
type: string
description: The id of the element in which to perform the operation.
elementIds:
type: array
description: An array of element ids for multi-element export.
items:
type: string
description: An array of element ids for multi-element export.
emailLink:
type: boolean
description: Use `true` if a link in an email should be sent.
emailMessage:
type: string
description: Message to send in the email body along with the download link.
emailSubject:
type: string
description: Subject to send the email with.
emailTo:
type: array
description: List of email addresses to send the email to.
items:
type: string
description: List of email addresses to send the email to.
evaluateExportRule:
type: boolean
description: Set to `true` to evaluate the export rule for the given `formatName` and to include an `exportRuleFileName` value in the response.
default: false
excludeHiddenEntities:
type: boolean
description: Whether or not to exclude hidden parts from export.
excludeOffSheetContent:
type: boolean
extractAssemblyHierarchy:
type: boolean
flatPatternAsync:
type: boolean
flatten:
type: boolean
flattenAssemblies:
type: boolean
foreignId:
type: string
formatName:
type: string
description: The name of the file format.
fromUserId:
type: string
description: Id of the user who does the export.
getyAxisIsUp:
type: boolean
grouping:
type: boolean
description: Whether parts should be exported as a group or individually in a .zip file.
hideInspectionItems:
type: boolean
ignoreExportRulesForContents:
type: boolean
description: For multiple elements export, use `true` if export rule shouldn't be applied for all elements.
imageHeight:
type: integer
format: int32
imageWidth:
type: integer
format: int32
importAppearances:
type: boolean
importInBackground:
type: boolean
importMaterialDensity:
type: boolean
importWithinDocument:
type: boolean
includeBendCenterlines:
type: boolean
includeBendLines:
type: boolean
includeCboreCsink:
type: boolean
includeDerivedTolerances:
type: boolean
includeExportIds:
type: boolean
description: Whether topology ids should be exported as parasolid attributes.
includeFormedCentermarks:
type: boolean
includeFormedOutlines:
type: boolean
includeSketches:
type: boolean
joinAdjacentSurfaces:
type: boolean
level:
type: string
linkDocumentId:
type: string
description: The id of the document through which the above document should be accessed; only applicable when accessing a version of the document. This allows a user who has access to document a to see data from document b, as long as document b has been linked to document a by a user who has permission to both.
linkDocumentWorkspaceId:
type: string
description: The id of the workspace through which the above document should be accessed; only applicable when accessing a version of the document. This allows a user who has access to document a to see data from document b, as long as document b has been linked to document a by a user who has permission to both.
maximumChordLength:
type: number
description: Determines the maximum of a triangle edge length. Lower values result in a finer geometry and higher values result in coarser geometry.
format: double
example: 0.01
notifyUser:
type: boolean
description: Send notification to the user client.
occurrencesToExport:
type: string
description: 'IDs of the occurrences to retrieve. Use comma-separated IDs for multiple instances (example: occurrencesToExport=JHK,JHD).'
onePartPerDoc:
type: boolean
originalForeignId:
type: string
parasolidMode:
$ref: '#/components/schemas/GBTParasolidEncodingType'
parentId:
type: string
partIds:
type: string
description: 'IDs of the parts to retrieve. Use comma-separated IDs for multiple parts (example: partIds=JHK,JHD).'
partsExportFilter:
$ref: '#/components/schemas/BTPartsExportFilter-4308'
password:
type: string
description: A password to protect the email with.
passwordRequired:
type: boolean
description: Use `true` if the email should be protected with a password.
pdfVersion:
type: string
processedForeignId:
type: string
projectId:
type: string
proxyDocumentId:
type: string
proxyElementId:
type: string
proxyWorkspaceVersion:
type: string
proxyWorkspaceVersionId:
type: string
resolution:
type: string
description: Determines export resolution of fine, medium, or coarse
example: fine
enum:
- fine
- medium
- coarse
rhinoVersion:
$ref: '#/components/schemas/GBTRhinoVersions'
selectablePdfText:
type: boolean
sendCopyToMe:
type: boolean
description: Use `true` if email copy should be sent to the user who does the export.
sheetIndices:
type: array
items:
type: integer
format: int32
sheetMetalFlat:
type: boolean
showOverriddenDimensions:
type: boolean
skipBodyshop:
type: boolean
sourceName:
type: string
specifyMaterialData:
type: boolean
specifyUnits:
type: boolean
splinesAsPolylines:
type: boolean
splitAssembliesIntoMultipleDocuments:
type: boolean
stepParasolidPreprocessingOption:
$ref: '#/components/schemas/GBTPreProcessParasolidOption'
stepVersionString:
type: string
description: 'Export STEP in version: `AP242` | `AP203` | `AP214`'
default: AP242
stlMode:
$ref: '#/components/schemas/GBTStlEncodingType'
storeInDocument:
type: boolean
description: Create a blob with exported file in the source document.
textAsGeometry:
type: boolean
textOption:
type: string
triggerAutoDownload:
type: boolean
description: Automatically download a translated file.
unit:
type: string
uploadId:
type: string
urdfMeshFormat:
$ref: '#/components/schemas/GBTUrdfMeshFormat'
urdfStlEncoding:
$ref: '#/components/schemas/GBTStlEncodingType'
useFileNameToSetSinglePartName:
type: boolean
useGlbCompression:
type: boolean
useGltfCompression:
type: boolean
useIGESImportPostProcessing:
type: boolean
useIgesCompatibilityMode:
type: boolean
validForDays:
type: integer
description: Number of days to keep the link valid for.
format: int32
versionString:
type: string
description: Parasolid version number as string. Use '0' for the latest.
default: '0'
x-BTVisibility-properties:
disableHoops: INTERNAL
upgradeFeatureScriptVersion: INTERNAL
documentId: INTERNAL
preserveSourceIds: INTERNAL
documentVersion: INTERNAL
BTTranslationRequestState:
type: string
enum:
- ACTIVE
- DONE
- FAILED
BTZipFileInfo:
type: object
properties:
files:
type: array
items:
type: string
BTApplicationTargetInfo:
type: object
properties:
baseHref:
type: string
format: uri
clientId:
type: string
supportsCollaboration:
type: boolean
tabIconHref:
type: string
format: uri
BTPartsExportFilter-4308:
type: object
properties:
btType:
type: string
description: Type of JSON object.
skipAllMesh:
type: boolean
skipCurves:
type: boolean
skipPartialMesh:
type: boolean
description: Skip mesh/curve foreign data creation in individual parts export
discriminator:
propertyName: btType
mapping:
BTPartsExportFilter-4308: '#/components/schemas/BTPartsExportFilter-4308'
securitySchemes:
OAuth2:
type: oauth2
description: Use OAuth 2.0 to authenticate requests.
flows:
authorizationCode:
authorizationUrl: /oauth/authorize
tokenUrl: /oauth/token
refreshUrl: /oauth/token
scopes:
OAuth2Internal: Application is Onshape Internal
OAuth2ReadPII: Application can read your profile information
OAuth2Read: Application can read your documents
OAuth2Write: Application can write to your documents
OAuth2Delete: Application can delete your documents and workspaces
OAuth2Purchase: Application can request purchases on your behalf
OAuth2Share: Application can share and unshare documents on your behalf
document.create: Atlas Application can create a document
document.edit: Atlas Application can edit a document
document.delete: Atlas Application can delete a document
document.read: Atlas Application can read a document
enterprise.create: Atlas Application can create an enterprise
enterprise.read: Atlas Application can read from an enterprise
enterprise.edit: Atlas Application can edit an enterprise
enterprise.delete: Atlas Application can delete an enterprise
enterprise.member.create: Atlas Application can create an enterprise member
enterpri
# --- truncated at 32 KB (32 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/onshape/refs/heads/main/openapi/onshape-blobelement-api-openapi.yml