Onshape Folder API

Access and modify folder sharing permissions.

Operations 3

GET /folders/{fid}/acl Get the Access Control List (ACL) for a folder to view permissions #
POST /folders/{fid}/share Share folder with an entity #
DELETE /folders/{fid}/share/{eid} Remove permissions from the folder for the specified Access Control List (ACL)… #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/onshape-folder-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

onshape-folder-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Onshape REST Folder API
  description: '## Welcome to the Onshape REST API Explorer


    **See the API Explorer Guide for help navigating this page.**


    ### Using this page

    1.'
  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: Folder
  description: Access and modify folder sharing permissions.
paths:
  /folders/{fid}/acl:
    get:
      tags:
      - Folder
      summary: Get the Access Control List (ACL) for a folder to view permissions
      description: 'Returns the ACL of permission objects. Each object contains:

        * The type of entity

        * 0 (User)

        * 1 (Company)

        * 2 (Team)

        * 3 (Document)

        * 4 (Application)

        * The ID of the entity for the specified type.

        * The permissions for that entity.

        * OWNER (100): All permissions, including those not listed, such as permission to transfer ownership.

        * DELETE (90)

        * RESHARE (80)

        * WRITE (70)

        * READ (60)

        * LINK (50)

        * COPY (30): Can copy workspace

        * EXPORT (20): Can export geometry

        * COMMENT (10)

        * ANONYMOUS_ACCESS (5): Special, restricted read access'
      operationId: getFolderAcl
      parameters:
      - name: fid
        in: path
        required: true
        schema:
          type: string
      responses:
        default:
          description: default response
          content:
            application/json;charset=UTF-8; qs=0.09:
              schema:
                $ref: '#/components/schemas/BTAclInfo'
      deprecated: false
      security:
      - OAuth2:
        - OAuth2Read
        BasicAuth:
        - OAuth2Read
      x-BTVisibility: PRODUCTION
  /folders/{fid}/share:
    post:
      tags:
      - Folder
      summary: Share folder with an entity
      description: '* Specify the type of entity to share with using `entries.entryType`:

        * 0 (User)

        * 1 (Company)

        * 2 (Team)

        * 3 (Document)

        * 4 (Application)

        * Provide one of the identifiers in the `entries` object in the request body.

        * You can share with non-Onshape users with the `email` field when `entryType=0`.

        * Provide the string for the permission set. Do not include the integer in parentheses:

        * OWNER (100): Object owner. Implies all permissions including those not listed such as permission to transfer ownership.

        * DELETE (90)

        * RESHARE (80)

        * WRITE (70)

        * READ (60)

        * LINK (50)

        * COPY (30): Can copy workspace

        * EXPORT (20): Can export geometry

        * COMMENT (10)

        * ANONYMOUS_ACCESS (5): Special, restricted read access'
      operationId: share
      parameters:
      - name: fid
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json;charset=UTF-8; qs=0.09:
            schema:
              $ref: '#/components/schemas/BTShareParams'
        required: true
      responses:
        default:
          description: default response
          content:
            application/json;charset=UTF-8; qs=0.09:
              schema:
                $ref: '#/components/schemas/BTAclInfo'
      deprecated: false
      security:
      - OAuth2:
        - OAuth2Read
        - OAuth2Share
        BasicAuth:
        - OAuth2Read
        - OAuth2Share
      x-BTVisibility: PRODUCTION
  /folders/{fid}/share/{eid}:
    delete:
      tags:
      - Folder
      summary: Remove permissions from the folder for the specified Access Control List (ACL)…
      description: '* Provide the folder ID for the folder to unshare.

        * Provide the `entityType` for the type of entity to remove.

        * 0 (User)

        * 1 (Company)

        * 2 (Team)

        * 3 (Document)

        * 4 (Application)

        * Provide the entity ID in the `eid` param.'
      operationId: unShare
      parameters:
      - name: fid
        in: path
        required: true
        schema:
          type: string
      - name: eid
        in: path
        required: true
        schema:
          type: string
      - name: entryType
        in: query
        schema:
          maximum: 5
          minimum: 0
          type: integer
          format: int32
          default: 0
      responses:
        default:
          description: default response
          content:
            application/json;charset=UTF-8; qs=0.09:
              schema:
                type: object
      deprecated: false
      security:
      - OAuth2:
        - OAuth2Read
        - OAuth2Share
        BasicAuth:
        - OAuth2Read
        - OAuth2Share
      x-BTVisibility: PRODUCTION
components:
  schemas:
    BTInheritedAclInfo:
      type: object
      properties:
        entries:
          type: array
          items:
            $ref: '#/components/schemas/BTAclEntryInfo'
        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.
        objectId:
          type: string
        objectName:
          type: string
        objectType:
          type: integer
          format: int64
        owner:
          $ref: '#/components/schemas/BTOwnerInfo'
        public:
          type: boolean
        sharedWithSupport:
          type: boolean
        viewRef:
          type: string
          description: URI to visualize the resource in a webclient if applicable.
          format: uri
        visibility:
          type: string
    BTAclInfo:
      type: object
      properties:
        admin:
          type: boolean
        entries:
          type: array
          items:
            $ref: '#/components/schemas/BTAclEntryInfo'
        href:
          type: string
          description: URI to fetch complete information of the resource.
          format: uri
        id:
          type: string
          description: Id of the resource.
        inheritedAcls:
          type: array
          items:
            $ref: '#/components/schemas/BTInheritedAclInfo'
        name:
          type: string
          description: Name of the resource.
        objectId:
          type: string
        objectType:
          type: integer
          format: int64
        owner:
          $ref: '#/components/schemas/BTOwnerInfo'
        public:
          type: boolean
        sharedWithSupport:
          type: boolean
        viewRef:
          type: string
          description: URI to visualize the resource in a webclient if applicable.
          format: uri
        visibility:
          type: string
    BTOwnerInfo:
      type: object
      properties:
        href:
          type: string
          description: URI to fetch complete information of the resource.
          format: uri
        id:
          type: string
          description: Id of the resource.
        image:
          type: string
        isEnterpriseOwnedResource:
          type: boolean
        name:
          type: string
          description: Name of the resource.
        type:
          type: integer
          format: int32
        viewRef:
          type: string
          description: URI to visualize the resource in a webclient if applicable.
          format: uri
    BTAclEntryInfo:
      type: object
      properties:
        acceptOwnerTransfer:
          type: boolean
        canConnectionUserEdit:
          type: boolean
        companyName:
          type: string
        connectionId:
          type: string
        connectionName:
          type: string
        connectionUser:
          type: boolean
        email:
          type: string
        enterpriseMember:
          type: boolean
        entryId:
          type: string
        entryState:
          $ref: '#/components/schemas/BTUserState'
        entryType:
          type: integer
          format: int32
        folderInaccessible:
          type: boolean
        folderName:
          type: string
        image:
          type: string
        name:
          type: string
        objectId:
          type: string
        pendingOwnerTransfer:
          type: boolean
        permission:
          type: integer
          format: int64
        permissionSet:
          type: array
          items:
            type: string
        proCompanySubtype:
          type: integer
          format: int32
        teamName:
          type: string
    BTShareEntryParams:
      type: object
      properties:
        applicationId:
          type: string
        companyId:
          type: string
        connectionId:
          type: string
        email:
          type: string
        entryType:
          type: integer
          format: int32
        teamId:
          type: string
        userId:
          type: string
    BTUserState:
      type: string
      enum:
      - DELETED
      - ACTIVE
      - INACTIVE
      - REQUESTED
      - APPROVED
      - REQUEST_EXPIRED
      - ALL
      - MARKED_FOR_DELETION
    BTShareParams:
      type: object
      properties:
        connectionId:
          type: string
        documentId:
          type: string
        elementId:
          type: string
        encodedConfiguration:
          type: string
        entries:
          type: array
          items:
            $ref: '#/components/schemas/BTShareEntryParams'
        folderId:
          type: string
        message:
          type: string
        permission:
          type: integer
          format: int64
        permissionSet:
          type: array
          items:
            type: string
        update:
          type: boolean
        workspaceId:
          type: string
  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
            enterprise.member.read: Atlas Application can read the details of an enterprise member
            enterprise.member.edit: Atlas Application can edit the details of an enterprise member
            enterprise.member.delete: Atlas Application can delete a member from an enterprise
            webhook.create: Atlas Application can create a webhook on behalf of the logged-in user
            webhook.edit: Atlas Application can edit a webhook on behalf of the logged-in user
            webhook.read: Atlas Application can read a webhook on behalf of the logged-in user
            webhook.delete: Atlas Application can delete a webhook on behalf of the logged-in user
            PLMIntegration: PLM automation can invoke limited operations
    BasicAuth:
      type: http
      description: Use Basic Authentication with API Keys (key as username and secret as password) to authenticate requests.
      scheme: basic