# Ideas

### What are Ideas?

Ideas are unfinished posts or content templates that aren’t linked to any specific social account yet. You can create them, work on them over time, collaborate with your team, and turn them into real posts whenever you’re ready.

### Idea States

* `draft_public`: visible to the entire workspace and editable by teammates (based on permissions)
* `draft_private`: visible only to the creator

### Endpoint

Ideas are created using the same bulk scheduling endpoint, but with an Idea state and **no social accounts**.

```bash
POST /api/v1/posts/schedule
```

### Request Headers

| Header              | Required | Value                        |
| ------------------- | -------: | ---------------------------- |
| Authorization       |      Yes | `Bearer-API YOUR_API_KEY`    |
| Publer-Workspace-Id |      Yes | Workspace ID                 |
| Content-Type        |      Yes | `application/json`           |
| Accept              |       No | `application/json` (default) |

### Rules / Requirements

* `bulk.state` must be `draft_public` or `draft_private`
* Use `networks.default`
* Ideas support two input modes:
  1. **Rich content mode** (recommended): `type = "article"` with `title`, `content` blocks, and optional `media`
  2. **Simple content types**: you can also submit `status`, `photo`, `video`, or `link` payloads; Publer will **convert them automatically** into the Idea content format (with tags) behind the scenes
* At least one of `title`, `content`, or `media` must be present (for `type: "article"`)

#### Rich content mode: Content blocks format

When using `type: "article"`, `content` must be an array of blocks:

* `id`: randomly generated string
* `type`: one of the supported block types
* `data`: object depending on block type

### Example: Create an Idea (Public) — Rich Content (`article`)

```json
{
  "bulk": {
    "state": "draft_public",
    "posts": [
      {
        "networks": {
          "default": {
            "type": "article",
            "content": [
              {
                "id": "YbGFey6MEB",
                "type": "header",
                "data": {
                  "text": "Header",
                  "level": 2
                }
              },
              {
                "id": "zqVkpTFkho",
                "type": "list",
                "data": {
                  "style": "ordered",
                  "items": [
                    "list 1",
                    "list 2"
                  ]
                }
              },
              {
                "id": "QuAHevc2WU",
                "type": "paragraph",
                "data": {
                  "text": "<b>bold</b>"
                }
              },
              {
                "id": "dV4AN6yEA8",
                "type": "paragraph",
                "data": {
                  "text": "<i>italic</i>"
                }
              },
              {
                "id": "tlk38yADuj",
                "type": "paragraph",
                "data": {
                  "text": "<a href=\"https://publer.com\" target=\"_blank\">publer.com</a>" // link
                }
              },
              {
                "id": "hmy78yADuj",
                "type": "paragraph",
                "data": {
                  "text": "This is a simple paragraph"
                }
              }
            ],
            "title": "Title of the idea",
            "media": [
              {
                "id": "69415914c507c632c080d1e4",
                "name": "",
                "caption": "photo.by.unsplach:\n\nhttps://unsplash.com/photos/a-decorated-christmas-tree-with-merry-christmas-sign-92PZ2FVPhDE",
                "favorite": null,
                "path": "https://cdn.publer.com/uploads/photos/69415914c507c632c080d1e4.jpg",
                "type": "photo",
                "created_at": "2025-12-16T14:05:24.095+01:00",
                "labels": [],
                "in_library": true,
                "width": 2000.0,
                "height": 3000.0,
                "size": 1384790.0,
                "source": "unsplash",
                "folder_id": null,
                "thumbnail": "https://cdn.publer.com/uploads/photos/thumb_69415914c507c632c080d1e4.jpg"
              }
            ]
          }
        }
      }
    ]
  }
}
```

### Example: Create an Idea from a Simple Type (Auto-converted)

You can also create an Idea using other [content types](/docs/posting/create-posts/content-types.md) (for example `status`, `photo`, `video`, `link`). Publer will convert the payload into the Idea content format automatically (including tags).

```json
{
  "bulk": {
    "state": "draft_public",
    "posts": [
      {
        "networks": {
          "default": {
            "type": "status",
            "text": "A public idea"
          }
        }
      }
    ]
  }
}
```

### Media Attachments (Ideas)

You can attach media to an Idea using `networks.default.media`.

**Notes**

* `media` is an array.
* Multiple attachments are supported for **photos only**.
* Supported media types include `photo` and `video` (see network/provider specifics).

To attach media, first fetch/upload media using the [Media](/docs/api-reference/media.md) or [Media Handling](/docs/posting/create-posts/media-handling.md), then reference the returned media objects in your payload.

### Parameters

#### Bulk

<table><thead><tr><th width="121.46875">Field</th><th width="112.418701171875">Type</th><th width="116.0234375" align="right">Required</th><th>Description</th></tr></thead><tbody><tr><td><code>bulk.state</code></td><td>string</td><td align="right">Yes</td><td><code>draft_public</code> or <code>draft_private</code></td></tr><tr><td><code>bulk.posts</code></td><td>array</td><td align="right">Yes</td><td>List of ideas to create</td></tr></tbody></table>

#### Post Object (Idea)

<table><thead><tr><th width="294.0845947265625">Field</th><th width="86.466552734375">Type</th><th width="193.9029541015625" align="right">Required</th><th>Description</th></tr></thead><tbody><tr><td><code>posts[].networks</code></td><td>object</td><td align="right">Yes</td><td>Must contain <code>default</code></td></tr><tr><td><code>posts[].networks.default.type</code></td><td>string</td><td align="right">Yes</td><td><code>article</code> (rich content) or a simple type like <code>status</code>, <code>photo</code>, <code>video</code>, <code>link</code> (auto-converted)</td></tr><tr><td><code>posts[].networks.default.title</code></td><td>string</td><td align="right">Conditional</td><td>Used with <code>type: "article"</code></td></tr><tr><td><code>posts[].networks.default.content</code></td><td>array</td><td align="right">Conditional</td><td>Used with <code>type: "article"</code></td></tr><tr><td><code>posts[].networks.default.text</code></td><td>string</td><td align="right">Conditional</td><td>Used with <code>type: "status"</code> (and other simple types as applicable)</td></tr><tr><td><code>posts[].networks.default.media</code></td><td>array</td><td align="right">No</td><td>Media attachments</td></tr></tbody></table>

### Network Configuration

For Ideas (`draft_public`, `draft_private`):

* Use `default` as the network key.
* You can send either:
  * **Rich content**: `type: "article"` with `title`, `content`, and optional `media`, or
  * **Simple types** (e.g., `status`, `photo`, `video`, `link`) which are **auto-converted** into the Idea content format.

### Best Practices

* Save ideas early to avoid losing inspiration.
* Use `draft_public` for collaboration and feedback.
* Use `draft_private` for personal planning.

### Related Topics

* [Content Types](/docs/posting/create-posts/content-types.md)
* [Media Handling](/docs/posting/create-posts/media-handling.md)
* [Publishing Methods](/docs/posting/create-posts/publishing-methods.md)
* [Media](/docs/api-reference/media.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://publer.com/docs/posting/create-posts/publishing-methods/ideas.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
