---
title: Create an Idea
description: This endpoint is to create an Idea in the Ideation Room. In the request body, passing name in the idea object is a minimum requirement.
url: https://storyblok.com/docs/api/management/ideation-room/create-an-idea
---

# Create an Idea

POST

```html
https://mapi.storyblok.com/v1/spaces/:space_id/ideas
```

This endpoint is to create an Idea in the Ideation Room. In the request body, passing `name` in the [idea object](/docs/api/management/ideation-room/the-ideation-room-object) is a minimum requirement.

## Path parameters

-   `:space_id` (required) (number)
    
    Numeric ID of a space
    

## Request body properties

-   `idea` (object)
    
    A single [idea object](/docs/api/management/ideation-room/the-ideation-room-object)
    
    Show `object` child properties
    
    -   `name` (required) (string)
        
        Name of the Idea
        
    -   `description` (string)
        
        A description of your Idea
        
    -   `content` (object)
        
        The content of your Idea
        
    -   `status` (string)
        
        Status of approval
        
    -   `story_ids` (number\[\])
        
        List of story IDs
        
    -   `is_private` (boolean)
        
        Defines the public or private status of the idea
        
    -   `bookmarks` (object)
        
        Bookmark URLs and their names with \_uid
        
        Show child properties
        
        -   `_uid` (string)
            
            UUID of the bookmark.
            
        -   `link` (string)
            
            URL of the bookmark.
            
        -   `label` (string)
            
            Display name of the bookmark.
            
        
    -   `internal_tags_list` (object\[\])
        
        List of objects containing the details of tags used for the component
        
        Show child properties
        
        -   `id` (number)
            
            Id of the tag
            
        -   `name` (string)
            
            Name of the tag
            
        
    -   `internal_tag_ids` (string\[\])
        
        List of ids of the tags assigned to the component
        
    -   `author` (object)
        
        The author object inside an Idea
        
        Show child properties
        
        -   `id` (number)
            
            The numeric ID
            
        -   `avatar` (string)
            
            Avatar of collaborator usually an image
            
        -   `userid` (string)
            
            User ID of collaborator
            
        -   `friendly_name` (string)
            
            Friendly name of collaborator
            
        
    -   `assignee` (object)
        
        The assignee object inside an Idea
        
        Show child properties
        
        -   `id` (number)
            
            The numeric ID
            
        -   `avatar` (string)
            
            Avatar of collaborator usually an image
            
        -   `userid` (string)
            
            User ID of collaborator
            
        -   `friendly_name` (string)
            
            Friendly name of collaborator
            
        
    -   `stories` (Idea's Stories Object)
        
        An array of the [idea’s stories object](/docs/api/management/ideation-room/idea-s-stories-object)
        
        Show child properties
        
        -   `name` (string)
            
            The complete name provided for the story
            
        -   `id` (number)
            
            The numeric ID
            
        -   `full_slug` (string)
            
            The full slug of the story, combining the parent folder(s) and the designated story slug
            
        
    

## Response properties

-   `idea` (object)
    
    A single [idea object](/docs/api/management/ideation-room/the-ideation-room-object)
    

## Examples

-   cURL
    
    ```shellscript
    curl "https://mapi.storyblok.com/v1/spaces/288868932106293/ideas" \
      -X POST \
      -H "Authorization: YOUR_OAUTH_TOKEN" \
      -H "Content-Type: application/json" \
      -d "{\"idea\":{\"assignee\":null,\"author\":{\"avatar\":\"avatars/67891/838dcb304c/avatar.jpg\",\"friendly_name\":\"Jon Doe\",\"id\":67891,\"userid\":\"test@email.com\"},\"bookmarks\":[],\"content\":{},\"deleted_at\":null,\"description\":\"First idea\",\"internal_tag_ids\":[\"12345\"],\"internal_tags_list\":[{\"id\":12345,\"name\":\"docs\"}],\"is_private\":true,\"name\":\"My first idea\",\"status\":\"draft\",\"stories\":[],\"story_ids\":[]}}"
    ```
    
-   JS
    
    ```javascript
    // storyblok-js-client@>=7, node@>=18
    import Storyblok from "storyblok-js-client";
    
    const storyblok = new Storyblok({
      oauthToken: "YOUR_PERSONAL_ACCESS_TOKEN",
    });
    
    try {
      const response = await storyblok.post('spaces/288868932106293/ideas', {
        "idea": {
          "assignee": null,
          "author": {
            "avatar": "avatars/67891/838dcb304c/avatar.jpg",
            "friendly_name": "Jon Doe",
            "id": 67891,
            "userid": "test@email.com"
          },
          "bookmarks": [],
          "content": {},
          "deleted_at": null,
          "description": "First idea",
          "internal_tag_ids": [
            "12345"
          ],
          "internal_tags_list": [
            {
              "id": 12345,
              "name": "docs"
            }
          ],
          "is_private": true,
          "name": "My first idea",
          "status": "draft",
          "stories": [],
          "story_ids": []
        }
      })
      console.log({ response })
    } catch (error) {
      console.log(error)
    }
    ```
    
-   PHP
    
    ```php
    $client = new \Storyblok\ManagementClient('YOUR_OAUTH_TOKEN');
    
    $payload = ["idea" => ["assignee" => null,"author" => ["avatar" => "avatars/67891/838dcb304c/avatar.jpg","friendly_name" => "Jon Doe","id" => 67891,"userid" => "test@email.com"],"bookmarks" => [],"content" => [],"deleted_at" => null,"description" => "First idea","internal_tag_ids" => ["12345"],"internal_tags_list" => [["id" => 12345,"name" => "docs"]],"is_private" => true,"name" => "My first idea","status" => "draft","stories" => [],"story_ids" => []]];
    
    $client->post('spaces/288868932106293/ideas', $payload)->getBody();
    ```
    
-   Java
    
    ```java
    HttpResponse<String> response = Unirest.post("https://mapi.storyblok.com/v1/spaces/288868932106293/ideas")
      .header("Content-Type", "application/json")
      .header("Authorization", "YOUR_OAUTH_TOKEN")
      .body({"idea":{"assignee":null,"author":{"avatar":"avatars/67891/838dcb304c/avatar.jpg","friendly_name":"Jon Doe","id":67891,"userid":"test@email.com"},"bookmarks":[],"content":{},"deleted_at":null,"description":"First idea","internal_tag_ids":["12345"],"internal_tags_list":[{"id":12345,"name":"docs"}],"is_private":true,"name":"My first idea","status":"draft","stories":[],"story_ids":[]}})
      .asString();
    ```
    
-   C#
    
    ```csharp
    var client = new RestClient("https://mapi.storyblok.com/v1/spaces/288868932106293/ideas");
    var request = new RestRequest(Method.POST);
    
    request.AddHeader("Content-Type", "application/json");
    request.AddHeader("Authorization", "YOUR_OAUTH_TOKEN");
    request.AddParameter("application/json", "{\"idea\":{\"assignee\":null,\"author\":{\"avatar\":\"avatars/67891/838dcb304c/avatar.jpg\",\"friendly_name\":\"Jon Doe\",\"id\":67891,\"userid\":\"test@email.com\"},\"bookmarks\":[],\"content\":{},\"deleted_at\":null,\"description\":\"First idea\",\"internal_tag_ids\":[\"12345\"],\"internal_tags_list\":[{\"id\":12345,\"name\":\"docs\"}],\"is_private\":true,\"name\":\"My first idea\",\"status\":\"draft\",\"stories\":[],\"story_ids\":[]}}", ParameterType.RequestBody);
    IRestResponse response = client.Execute(request);
    ```
    
-   Python
    
    ```python
    import requests
    
    url = "https://mapi.storyblok.com/v1/spaces/288868932106293/ideas"
    
    querystring = {}
    
    payload = {"idea":{"assignee":null,"author":{"avatar":"avatars/67891/838dcb304c/avatar.jpg","friendly_name":"Jon Doe","id":67891,"userid":"test@email.com"},"bookmarks":[],"content":{},"deleted_at":null,"description":"First idea","internal_tag_ids":["12345"],"internal_tags_list":[{"id":12345,"name":"docs"}],"is_private":true,"name":"My first idea","status":"draft","stories":[],"story_ids":[]}}
    headers = {
      'Content-Type': "application/json",
      'Authorization': "YOUR_OAUTH_TOKEN"
    }
    
    response = requests.request("POST", url, data=payload, headers=headers, params=querystring)
    
    print(response.text)
    ```
    
-   Ruby
    
    ```ruby
    require 'storyblok'
    client = Storyblok::Client.new(oauth_token: 'YOUR_OAUTH_TOKEN')
    
    payload = {"idea" => {"assignee" => null,"author" => {"avatar" => "avatars/67891/838dcb304c/avatar.jpg","friendly_name" => "Jon Doe","id" => 67891,"userid" => "test@email.com"},"bookmarks" => [],"content" => {},"deleted_at" => null,"description" => "First idea","internal_tag_ids" => ["12345"],"internal_tags_list" => [{"id" => 12345,"name" => "docs"}],"is_private" => true,"name" => "My first idea","status" => "draft","stories" => [],"story_ids" => []}}
    
    client.post('spaces/288868932106293/ideas', payload)
    ```
    
-   Swift
    
    ```swift
    let storyblok = URLSession(storyblok: .mapi(accessToken: .oauth("YOUR_OAUTH_TOKEN")))
    var request = URLRequest(storyblok: storyblok, path: "spaces/288868932106293/ideas")
    request.httpMethod = "POST"
    request.httpBody = try JSONSerialization.data(withJSONObject: [
        "idea": [
            "assignee": nil,
            "author": [
                "avatar": "avatars/67891/838dcb304c/avatar.jpg",
                "friendly_name": "Jon Doe",
                "id": 67891,
                "userid": "test@email.com",
            ],
            "bookmarks": [ ],
            "content": [ ],
            "deleted_at": nil,
            "description": "First idea",
            "internal_tag_ids": [
                "12345",
            ],
            "internal_tags_list": [
                [
                    "id": 12345,
                    "name": "docs",
                ],
            ],
            "is_private": true,
            "name": "My first idea",
            "status": "draft",
            "stories": [ ],
            "story_ids": [ ],
        ],
    ])
    let (data, _) = try await storyblok.data(for: request)
    print(try JSONSerialization.jsonObject(with: data))
    ```
    
-   Kotlin
    
    ```kotlin
    val client = HttpClient {
        install(Storyblok(MAPI)) {
            accessToken = OAuth("YOUR_OAUTH_TOKEN")
        }
    }
    
    val response = client.post("spaces/288868932106293/ideas") {
        setBody(buildJsonObject {
            putJsonObject("idea") {
                put("assignee", null)
                putJsonObject("author") {
                    put("avatar", "avatars/67891/838dcb304c/avatar.jpg")
                    put("friendly_name", "Jon Doe")
                    put("id", 67891)
                    put("userid", "test@email.com")
                }
                putJsonArray("bookmarks") { }
                putJsonObject("content") { }
                put("deleted_at", null)
                put("description", "First idea")
                putJsonArray("internal_tag_ids") {
                    add("12345")
                }
                putJsonArray("internal_tags_list") {
                    addJsonObject {
                        put("id", 12345)
                        put("name", "docs")
                    }
                }
                put("is_private", true)
                put("name", "My first idea")
                put("status", "draft")
                putJsonArray("stories") { }
                putJsonArray("story_ids") { }
            }
        })
    }
    
    println(response.body<JsonElement>())
    ```

## Pagination

-   [Previous: Ideation Room](/docs/api/management/ideation-room)
-   [Next: Delete an Idea](/docs/api/management/ideation-room/delete-an-idea)
