Copy a DriveItem

Creates a copy of a driveItem (including any children) under a new parent or with a new name.


One of the following scopes is required to execute this API:

  • Files.ReadWrite

HTTP request

POST /me/drive/items/{item-id}/copy
POST /me/drive/root:/{path}:/copy
POST /groups/{group-id}/drive/items/{item-id}/copy
POST /drives/{drive-id}/items/{item-id}/copy

Request body

In the request body, provide a JSON object with the following parameters.

Name Value Description
parentReference ItemReference Optional. Reference to the parent item the copy will be created in.
name string Optional. The new name for the copy. If this isn't provided, the same name will be used as the original.

Note: The parentReference should include either an id or path but not both. If both are included, they need to reference the same item or an error will occur.


Content-Type: application/json

  "parentReference": {
    "path": "/drive/root:/Documents"
  "name": "contoso plan.docx"


Returns details about how to monitor the progress of the copy, upon accepting the request.

HTTP/1.1 202 Accepted


In many cases the copy action is performed asynchronously. The response from the API will only indicate that the copy operation was accepted or rejected, say due to the destination filename already being in use.

Note: The API does not provide a method to know if the copy was successful.