⚠️Draft Content
Storyblok
Search Storyblok's Documentation
  1. Create an Idea

Management API

Create an Idea

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.

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

Path Parameters

  • :space_id

    required number

    Numeric ID of a space

Response Properties

  • stories

    Bulk Tags Association Object[]

    Bulk Tags Association Object array

    • story_id

      number

      Numeric ID of the Story

    • tag_list

      string[]

      List of tag names

Request
curl "https://mapi.storyblok.com/v1/spaces/606/ideas" \
  -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: YOUR_OAUTH_TOKEN" \
  -d "{\"idea\": {\"name\": \"My first idea\",\"description\": \"First idea\",\"content\": {},\"deleted_at\": null,\"status\": \"draft\",\"story_ids\": [],\"is_private\": true,\"bookmarks\": [],\"internal_tags_list\": [{\"id\": 12345,\"name\": \"docs\"}],\"internal_tag_ids\": [\"12345\"],\"author\": {\"id\": 67891,\"userid\": \"test@email.com\",\"friendly_name\": \"Jon Doe\",\"avatar\": \"avatars/67891/838dcb304c/avatar.jpg\"},\"assignee\": null,\"stories\": []}}"
Request
// Using the Universal JavaScript Client:
// https://github.com/storyblok/storyblok-js-client
Storyblok.post('/spaces/606/ideas', {
  "idea": {
    "name": "My first idea",
    "description": "First idea",
    "content": {},
    "deleted_at": null,
    "status": "draft",
    "story_ids": [],
    "is_private": true,
    "bookmarks": [],
    "internal_tags_list": [
      {
        "id": 12345,
        "name": "docs"
      }
    ],
    "internal_tag_ids": [
      "12345"
    ],
    "author": {
      "id": 67891,
      "userid": "test@email.com",
      "friendly_name": "Jon Doe",
      "avatar": "avatars/67891/838dcb304c/avatar.jpg"
    },
    "assignee": null,
    "stories": []
  }
})
  .then(response => {
    console.log(response)
  }).catch(error => { 
    console.log(error)
  })
Request
$client = new \Storyblok\ManagementClient('YOUR_OAUTH_TOKEN');

$payload = [
  "idea" =>  [
    "name" =>  "My first idea",
    "description" =>  "First idea",
    "content" =>  [],
    "deleted_at" =>  null,
    "status" =>  "draft",
    "story_ids" =>  [],
    "is_private" =>  true,
    "bookmarks" =>  [],
    "internal_tags_list" =>  [
      [
        "id" =>  12345,
        "name" =>  "docs"
      ]
    ],
    "internal_tag_ids" =>  [
      "12345"
    ],
    "author" =>  [
      "id" =>  67891,
      "userid" =>  "test@email.com",
      "friendly_name" =>  "Jon Doe",
      "avatar" =>  "avatars/67891/838dcb304c/avatar.jpg"
    ],
    "assignee" =>  null,
    "stories" =>  []
  ]
];

$client->post('/spaces/606/ideas', $payload)->getBody();
Request
require 'storyblok'
client = Storyblok::Client.new(oauth_token: 'YOUR_OAUTH_TOKEN')

payload = {
  "idea" =>  {
    "name" =>  "My first idea",
    "description" =>  "First idea",
    "content" =>  {},
    "deleted_at" =>  null,
    "status" =>  "draft",
    "story_ids" =>  [],
    "is_private" =>  true,
    "bookmarks" =>  [],
    "internal_tags_list" =>  [
      {
        "id" =>  12345,
        "name" =>  "docs"
      }
    ],
    "internal_tag_ids" =>  [
      "12345"
    ],
    "author" =>  {
      "id" =>  67891,
      "userid" =>  "test@email.com",
      "friendly_name" =>  "Jon Doe",
      "avatar" =>  "avatars/67891/838dcb304c/avatar.jpg"
    },
    "assignee" =>  null,
    "stories" =>  []
  }
}

client.post('/spaces/606/ideas', payload)
Request
HttpResponse<String> response = Unirest.post("https://mapi.storyblok.com/v1/spaces/606/ideas")
  .header("Content-Type", "application/json")
  .header("Authorization", "YOUR_OAUTH_TOKEN")
  .body("{\"idea\": {\"name\": \"My first idea\",\"description\": \"First idea\",\"content\": {},\"deleted_at\": null,\"status\": \"draft\",\"story_ids\": [],\"is_private\": true,\"bookmarks\": [],\"internal_tags_list\": [{\"id\": 12345,\"name\": \"docs\"}],\"internal_tag_ids\": [\"12345\"],\"author\": {\"id\": 67891,\"userid\": \"test@email.com\",\"friendly_name\": \"Jon Doe\",\"avatar\": \"avatars/67891/838dcb304c/avatar.jpg\"},\"assignee\": null,\"stories\": []}}")
  .asString();
Request
var client = new RestClient("https://mapi.storyblok.com/v1/spaces/606/ideas");
var request = new RestRequest(Method.POST);

request.AddHeader("Content-Type", "application/json");
request.AddHeader("Authorization", "YOUR_OAUTH_TOKEN");
request.AddParameter("application/json", "{\"idea\": {\"name\": \"My first idea\",\"description\": \"First idea\",\"content\": {},\"deleted_at\": null,\"status\": \"draft\",\"story_ids\": [],\"is_private\": true,\"bookmarks\": [],\"internal_tags_list\": [{\"id\": 12345,\"name\": \"docs\"}],\"internal_tag_ids\": [\"12345\"],\"author\": {\"id\": 67891,\"userid\": \"test@email.com\",\"friendly_name\": \"Jon Doe\",\"avatar\": \"avatars/67891/838dcb304c/avatar.jpg\"},\"assignee\": null,\"stories\": []}}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Request
import Foundation

let headers = [
  "Content-Type": "application/json",
  "Authorization": "YOUR_OAUTH_TOKEN"
]

let postData = NSData(data: "{\"idea\": {\"name\": \"My first idea\",\"description\": \"First idea\",\"content\": {},\"deleted_at\": null,\"status\": \"draft\",\"story_ids\": [],\"is_private\": true,\"bookmarks\": [],\"internal_tags_list\": [{\"id\": 12345,\"name\": \"docs\"}],\"internal_tag_ids\": [\"12345\"],\"author\": {\"id\": 67891,\"userid\": \"test@email.com\",\"friendly_name\": \"Jon Doe\",\"avatar\": \"avatars/67891/838dcb304c/avatar.jpg\"},\"assignee\": null,\"stories\": []}}".data(using: String.Encoding.utf8)!)
let request = NSMutableURLRequest(url: NSURL(string: "https://mapi.storyblok.com/v1/spaces/606/ideas")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0)

request.method = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
Request
import requests

url = "https://mapi.storyblok.com/v1/spaces/606/ideas"

querystring = {}

payload = "{\"idea\": {\"name\": \"My first idea\",\"description\": \"First idea\",\"content\": {},\"deleted_at\": null,\"status\": \"draft\",\"story_ids\": [],\"is_private\": true,\"bookmarks\": [],\"internal_tags_list\": [{\"id\": 12345,\"name\": \"docs\"}],\"internal_tag_ids\": [\"12345\"],\"author\": {\"id\": 67891,\"userid\": \"test@email.com\",\"friendly_name\": \"Jon Doe\",\"avatar\": \"avatars/67891/838dcb304c/avatar.jpg\"},\"assignee\": null,\"stories\": []}}"
headers = {
  'Content-Type': "application/json",
  'Authorization': "YOUR_OAUTH_TOKEN"
}

response = requests.request("POST", url, data=payload, headers=headers, params=querystring)

print(response.text)