Question: Im trying to create folder inside another folder using the OneDrive API. I used the documentation from [this](https://dev.onedrive.com/items/create.htm) page.

First I create a new folder JSON object:

```
var folderObject = JObject.FromObject(new
{
    name = "New Folder",
    folder = new
    { }
});

```

Second I add this object to the HttpContent:

```
HttpContent content = new StringContent(folderObject.ToString(), Encoding.UTF8, "application/json");

```

Then I make a post request like this:

```
HttpResponseMessage response = await client.PostAsync("/v1.0/drive/root/children", content);

```

This works fine and a folder named New Folder is added to the root of my Drive. Now I want to create a folder inside the folder I just created. So I make a post request that looks like this:

```
HttpResponseMessage response = await client.PostAsync("/v1.0/drive/root/New Folder/children", content);

```

I expect a new folder named New Folder inside the previously created folder. But this request gives me a Http 400 error.

How can I create a new folder inside another folder?

Answer: 
Your second request is malformed.

There are two ways to create an item as a child of another - by id or by path.

By id would look something like:

```
HttpResponseMessage response = await client.PostAsync("/v1.0/drive/root/items/{parentItem.id}/children", content);

```

By path would look something like (note the use of colons):

```
HttpResponseMessage response = await client.PostAsync("/v1.0/drive/root{parentItem path}:/children", content);

```

Given the context, what you're after is most likely:

```
HttpResponseMessage response = await client.PostAsync("/v1.0/drive/root:/New Folder:/children", content);

```
if you are using graphClient, then fetch the id of parent folder and pass it to the items method, like below

```
folder = graphServiceClient.Me.Drive.Items[parentItem.Id].Children.Request().AddAsync(new DriveItem
            {
                Name = 'Name of the folder',
                Folder = new Folder()
            }).Result;

```