Choose the permission or permissions marked as least privileged for this API. Use a higher privileged permission or permissions only if your app requires it. For details about delegated and application permissions, see Permission types. To learn more about these permissions, see the permissions reference.
Permission type
Least privileged permissions
Higher privileged permissions
Delegated (work or school account)
Not supported.
Not supported.
Delegated (personal Microsoft account)
Files.ReadWrite
Files.ReadWrite.All
Application
Not supported.
Not supported.
HTTP request
POST /drive/bundles
Request headers
Name
Description
Authorization
Bearer {token}. Required.
Request body
In the request body, supply a JSON representation of the bundle to be created.
Response
If the request is successful, the driveItem representing the newly created bundle will be returned.
The following example shows how to create a basic new bundle.
This request will create a new bundle named Just some files and add two existing items to the bundle.
This bundle can be used to share a collection of files with other users without sharing the folder those items are stored in.
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Models;
var requestBody = new DriveItem
{
Name = "Just some files",
Bundle = new Bundle
{
},
Children = new List<DriveItem>
{
new DriveItem
{
Id = "1234asdf",
},
new DriveItem
{
Id = "1234qwerty",
},
},
AdditionalData = new Dictionary<string, object>
{
{
"@microsoft.graph.conflictBehavior" , "rename"
},
},
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Drives["{drive-id}"].Bundles.PostAsync(requestBody);
<?php
// THIS SNIPPET IS A PREVIEW VERSION OF THE SDK. NON-PRODUCTION USE ONLY
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new DriveItem();
$requestBody->setName('Just some files');
$bundle = new Bundle();
$requestBody->setBundle($bundle);
$childrenDriveItem1 = new DriveItem();
$childrenDriveItem1->setId('1234asdf');
$childrenArray []= $childrenDriveItem1;
$childrenDriveItem2 = new DriveItem();
$childrenDriveItem2->setId('1234qwerty');
$childrenArray []= $childrenDriveItem2;
$requestBody->setChildren($childrenArray);
$additionalData = [
'@microsoft.graph.conflictBehavior' => 'rename',
];
$requestBody->setAdditionalData($additionalData);
$result = $graphServiceClient->drives()->byDriveId('drive-id')->bundles()->post($requestBody)->wait();
# THE PYTHON SDK IS IN PREVIEW. FOR NON-PRODUCTION USE ONLY
graph_client = GraphServiceClient(credentials, scopes)
request_body = DriveItem(
name = "Just some files",
bundle = Bundle(
),
children = [
DriveItem(
id = "1234asdf",
),
DriveItem(
id = "1234qwerty",
),
],
additional_data = {
"@microsoft_graph_conflict_behavior" : "rename",
}
)
result = await graph_client.drives.by_drive_id('drive-id').bundles.post(request_body)
POST https://graph.microsoft.com/v1.0/drive/bundles
Content-Type: application/json
{
"name": "My Day at the Beach",
"@microsoft.graph.conflictBehavior" : "rename",
"bundle": { "album": {} },
"children": [
{ "id": "1234asdf" }
]
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Models;
var requestBody = new DriveItem
{
Name = "My Day at the Beach",
Bundle = new Bundle
{
Album = new Album
{
},
},
Children = new List<DriveItem>
{
new DriveItem
{
Id = "1234asdf",
},
},
AdditionalData = new Dictionary<string, object>
{
{
"@microsoft.graph.conflictBehavior" , "rename"
},
},
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Drives["{drive-id}"].Bundles.PostAsync(requestBody);
// THE CLI IS IN PREVIEW. NON-PRODUCTION USE ONLY
mgc drives bundles create --drive-id {drive-id} --body '{\
"name": "My Day at the Beach",\
"@microsoft.graph.conflictBehavior" : "rename",\
"bundle": { "album": {} },\
"children": [\
{ "id": "1234asdf" }\
]\
}\
'
GraphServiceClient graphClient = GraphServiceClient.builder().authenticationProvider( authProvider ).buildClient();
DriveItem driveItem = new DriveItem();
driveItem.name = "My Day at the Beach";
driveItem.additionalDataManager().put("@microsoft.graph.conflictBehavior", new JsonPrimitive("rename"));
Bundle bundle = new Bundle();
Album album = new Album();
bundle.album = album;
driveItem.bundle = bundle;
LinkedList<DriveItem> childrenList = new LinkedList<DriveItem>();
DriveItem children = new DriveItem();
children.id = "1234asdf";
childrenList.add(children);
DriveItemCollectionResponse driveItemCollectionResponse = new DriveItemCollectionResponse();
driveItemCollectionResponse.value = childrenList;
DriveItemCollectionPage driveItemCollectionPage = new DriveItemCollectionPage(driveItemCollectionResponse, null);
driveItem.children = driveItemCollectionPage;
graphClient.drive().bundles()
.buildRequest()
.post(driveItem);
<?php
// THIS SNIPPET IS A PREVIEW VERSION OF THE SDK. NON-PRODUCTION USE ONLY
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new DriveItem();
$requestBody->setName('My Day at the Beach');
$bundle = new Bundle();
$bundleAlbum = new Album();
$bundle->setAlbum($bundleAlbum);
$requestBody->setBundle($bundle);
$childrenDriveItem1 = new DriveItem();
$childrenDriveItem1->setId('1234asdf');
$childrenArray []= $childrenDriveItem1;
$requestBody->setChildren($childrenArray);
$additionalData = [
'@microsoft.graph.conflictBehavior' => 'rename',
];
$requestBody->setAdditionalData($additionalData);
$result = $graphServiceClient->drives()->byDriveId('drive-id')->bundles()->post($requestBody)->wait();
Import-Module Microsoft.Graph.Files
$params = @{
name = "My Day at the Beach"
"@microsoft.graph.conflictBehavior" = "rename"
bundle = @{
album = @{
}
}
children = @(
@{
id = "1234asdf"
}
)
}
New-MgDriveBundle -DriveId $driveId -BodyParameter $params
# THE PYTHON SDK IS IN PREVIEW. FOR NON-PRODUCTION USE ONLY
graph_client = GraphServiceClient(credentials, scopes)
request_body = DriveItem(
name = "My Day at the Beach",
bundle = Bundle(
album = Album(
),
),
children = [
DriveItem(
id = "1234asdf",
),
],
additional_data = {
"@microsoft_graph_conflict_behavior" : "rename",
}
)
result = await graph_client.drives.by_drive_id('drive-id').bundles.post(request_body)
The response object shown here might be shortened for readability.
If @microsoft.graph.conflictBehavior is set to rename and a bundle with the same name already exists, the new bundle name will be updated to be unique.
OneDrive will append a number to the end of the bundle name.
For example, My Day at the Beach would be renamed My Day at the Beach 1.
If My Day at the Beach 1 is taken, then the number would be incremented again until a unique bundle name is discovered.