western-digital Files API
File and folder CRUD operations.
File and folder CRUD operations.
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/western-digital-files-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 3.2.0
info:
title: WD My Cloud Home Authentication Files API
description: The WD My Cloud Home REST API enables off-device applications to manage files and folders on a user's My Cloud Home NAS device. It supports file upload, download, listing, search, sharing, thumbnails, and device discovery via OAuth 2.0 authentication.
version: v2
termsOfService: https://www.westerndigital.com/legal/terms-of-use
contact:
name: Western Digital Developer Support
url: https://developer.westerndigital.com/develop/wd-my-cloud-home/forms.html
license:
name: Western Digital Developer Terms
url: https://developer.westerndigital.com/develop/wd-my-cloud-home/
servers:
- url: https://config.mycloud.com
description: Configuration service — call first to get device and auth URLs
- url: https://device.mycloud.com
description: Device service (dynamically resolved per device)
- url: https://wdc.auth0.com
description: Authentication service
tags:
- name: Files
description: File and folder CRUD operations.
paths:
/sdk/v2/files:
get:
operationId: listFiles
summary: List Files
description: Returns a paginated list of files and folders within a directory on the My Cloud Home device. Use "root" as the folder ID to list the root directory.
tags:
- Files
security:
- bearerAuth: []
parameters:
- name: ids
in: query
required: false
schema:
type: string
description: Comma-separated list of file IDs to retrieve.
- name: pageToken
in: query
required: false
schema:
type: string
description: Token for pagination to retrieve the next page.
- name: limit
in: query
required: false
schema:
type: integer
default: 100
maximum: 100
description: Maximum number of results to return.
responses:
'200':
description: List of files and folders.
content:
application/json:
schema:
$ref: '#/components/schemas/FilesResponse'
'401':
description: Unauthorized.
post:
operationId: createFile
summary: Create File
description: Uploads a new file or creates a folder on the My Cloud Home device. Supports multipart/related for simultaneous metadata and content upload.
tags:
- Files
security:
- bearerAuth: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/FileCreateRequest'
multipart/related:
schema:
type: object
properties:
metadata:
$ref: '#/components/schemas/FileCreateRequest'
content:
type: string
format: binary
responses:
'201':
description: File or folder created.
content:
application/json:
schema:
$ref: '#/components/schemas/FileItem'
'401':
description: Unauthorized.
/sdk/v2/files/{fileId}:
get:
operationId: getFile
summary: Get File
description: Returns metadata for a specific file or folder.
tags:
- Files
security:
- bearerAuth: []
parameters:
- name: fileId
in: path
required: true
schema:
type: string
description: Unique identifier of the file or folder.
responses:
'200':
description: File metadata.
content:
application/json:
schema:
$ref: '#/components/schemas/FileItem'
'404':
description: File not found.
patch:
operationId: updateFile
summary: Update File
description: Updates metadata for a file or folder (e.g., rename, move).
tags:
- Files
security:
- bearerAuth: []
parameters:
- name: fileId
in: path
required: true
schema:
type: string
description: Unique identifier of the file or folder.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/FileUpdateRequest'
responses:
'200':
description: Updated file metadata.
content:
application/json:
schema:
$ref: '#/components/schemas/FileItem'
'404':
description: File not found.
delete:
operationId: deleteFile
summary: Delete File
description: Permanently deletes a file or folder from the device.
tags:
- Files
security:
- bearerAuth: []
parameters:
- name: fileId
in: path
required: true
schema:
type: string
description: Unique identifier of the file or folder.
responses:
'204':
description: File deleted.
'404':
description: File not found.
/sdk/v2/files/{fileId}/content:
get:
operationId: downloadFile
summary: Download File Content
description: Downloads the content of a specific file.
tags:
- Files
security:
- bearerAuth: []
parameters:
- name: fileId
in: path
required: true
schema:
type: string
description: Unique identifier of the file.
responses:
'200':
description: File content.
content:
application/octet-stream:
schema:
type: string
format: binary
'404':
description: File not found.
put:
operationId: uploadFileContent
summary: Upload File Content
description: Uploads or replaces the content of an existing file.
tags:
- Files
security:
- bearerAuth: []
parameters:
- name: fileId
in: path
required: true
schema:
type: string
description: Unique identifier of the file.
requestBody:
required: true
content:
application/octet-stream:
schema:
type: string
format: binary
responses:
'200':
description: File content updated.
content:
application/json:
schema:
$ref: '#/components/schemas/FileItem'
components:
schemas:
FileCreateRequest:
type: object
properties:
name:
type: string
description: Name of the file or folder.
mimeType:
type: string
description: MIME type. Use "application/x.wd.dir" to create a folder.
parentId:
type: string
description: Parent folder ID. Use "root" for root directory.
required:
- name
- mimeType
- parentId
FilesResponse:
type: object
properties:
files:
type: array
items:
$ref: '#/components/schemas/FileItem'
pageToken:
type: string
description: Token for the next page of results. Absent if no more pages.
FileUpdateRequest:
type: object
properties:
name:
type: string
description: New name for the file or folder.
parentId:
type: string
description: New parent folder ID (to move the file).
FileItem:
type: object
properties:
id:
type: string
description: Unique file/folder identifier.
name:
type: string
description: File or folder name.
mimeType:
type: string
description: MIME type. Use "application/x.wd.dir" for folders.
size:
type: integer
description: File size in bytes.
parentId:
type: string
description: ID of the parent folder. "root" for top-level items.
createdTime:
type: string
format: date-time
modifiedTime:
type: string
format: date-time
thumbnailUrl:
type: string
format: uri
description: URL for image/video thumbnail.
downloadUrl:
type: string
format: uri
description: Direct download URL.
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
description: OAuth 2.0 Bearer token obtained via the /oauth/token endpoint. Include in Authorization header as "Bearer {token}".