🏷️ API version: 2025-10

You can now query export_markdown_from_doc to return a specific document’s content, or selected blocks, as Markdown via the API.

query {
  export_markdown_from_doc(
    docId: 12345, 
    blockIds: ["e4b1c79a-5f2d-4c83-b1a7-0f9e2d6c3a58", "3a7f2c18-91d4-4b6e-a3f2-7c9e12b4d5a6"]
  ){
    error
    markdown
    success
  }
}
🏷️ API version: 2025-10

We've added two new mutations to update status and dropdown columns. These mutations are strongly typed to better validate complex settings.

mutation {
  update_status_column(
    board_id: 1234567890,
    id: "project_status",
    title: "Updated Project Status",
    revision: "09606bfd3334eb88084f310fb4aef0cb",
    settings: {
      labels: [
        { color: peach, label: "On Hold", index: 1, is_deactivated: true},
        { color: river, label: "Done", index: 2},
        { color: grass_green, label: "Working On It", index: 3}
      ]
    },
    description: "The project's updated status."
  ) {
    description
    id
  }
}
mutation {
  update_dropdown_column(
    board_id: 1234567890,
    id: "project_category",
    title: "Updated Project Category",
    revision: "09606bfd3334eb88084f310fb4aef0cb",
    description: "The project's updated category."
  ) {
    description
    id
    title
  }
}
🏷️ API version: 2025-10

When creating a new board via the API, you can now set the item nickname configuration for items on a board using the item_nickname argument.

mutation {
  create_board(
    board_name: "my board",
    board_kind: public,
    item_nickname: { 
      preset_type: "item" 
    }
  ) { 
    id 
  }
}
🏷️ API version: 2025-10

We've added two new mutations to create status and dropdown columns. These mutations are strongly typed to better validate complex settings.

mutation {
  create_dropdown_column(
    board_id: 1234567890,
    id: "project_category",
    title: "Project Category",
    defaults: {
      label_limit_count: 1, 
      limit_select: true,
      labels: [
        {label: "HR"},
        {label: "R&D"},
        {label: "IT"}
      ]
    },
    description: "The project's category."
  ) {
    description
    id
    title
  }
}
mutation {
  create_status_column(
    board_id: 1234567890,
    id: "project_status",
    title: "Project Status",
    defaults: {
      labels: [
        { color: working_orange, label: "On Hold", index: 2},
        { color: done_green, label: "Done", index: 1},
        { color: sky, label: "Working On It", index: 3}
      ]
    },
    description: "The project's status."
  ) {
    description
    id
		title
  }
}
🏷️ API version: 2025-10

You can now return additional data about apps via the API using the following new fields:

  • account_id
  • collaborators
  • created_by
  • description
  • permissions
  • slug
  • status
  • webhook_url
query {
  app (id: 123456) {
    account_id
    collaborators {
      id
      name
    }
    created_by
    description
    permissions
    slug
    status
    webhook_url
  }
}
🏷️ API version: 2025-10

You can now use the delete_widget mutation to delete a widget on a dashboard or board view via the API.

mutation {
  delete_widget (id: 12345)
}
{
  "data": {
    "delete_widget": true
  },
  "extensions": {
    "request_id": "YOUR_REQUEST_ID"
  }
}
🏷️ API version: 2025-10

You can now update an existing column using the new update_column mutation.

mutation{
  update_column(
    board_id: 1234567890, 
    id: "status", 
    title: "Work Status", 
    revision: "a73d19e54f82c0b7d1e348f5ac92b6de", 
    description: "This is my updated work status column", 
    column_type:status
	) {
    id
    title
    description
  }
}
{
  "data": {
    "update_column": {
      "id": "status",
      "title": "Work Status",
      "description": "This is my work status column"
    }
  },
  "extensions": {
    "request_id": "YOUR_REQUEST_ID"
  }
}
🏷️ API version: 2025-10

The platform API now supports boards with multiple levels of subitems and rollup columns that summarize values across child items. This guide provides a detailed explanation of the functionality and how to adapt your queries

Initially, only project boards within the Portfolio solution will support this board layout.

Related API schema changes

Backwards compatibility

No breaking changes. Until 2026-04, boards returns only classic boards by default. Use the hierarchy_types argument to include multi-level boards.

Other changes

The behavior of some endpoints depends on the board type (e.g., on multi-level boards, rollup columns on parent items are read-only when subitems exist). See the full guide for details.

🏷️ API version: 2025-10

The settings_str field on columns queries is now deprecated. You can use the new settings field to return the column's settings as a JSON object.

query {
  boards (ids: 1234567890) {
    columns {
      settings
    }
  }
}
{
  "data": {
    "boards": [
      {
        "columns": [
          {
            "settings": {}
          },
          {
            "settings": {}
          },
          {
            "settings": {
              "labels": [
                {
                  "id": 0,
                  "color": 0,
                  "label": "Working on it",
                  "index": 0,
                  "is_done": false,
                  "is_deactivated": false
                },
                {
                  "id": 1,
                  "color": 1,
                  "label": "Done",
                  "index": 2,
                  "is_done": false,
                  "is_deactivated": false
                },
                {
                  "id": 2,
                  "color": 2,
                  "label": "Stuck",
                  "index": 1,
                  "is_done": false,
                  "is_deactivated": false
                }
              ]
            }
          },
          {
            "settings": {}
          },
          {
            "settings": {}
          },
          {
            "settings": {
              "hide_footer": false
            }
          },
          {
            "settings": {}
          }
        ]
      }
    ]
  },
  "extensions": {
    "request_id": "YOUR_REQUEST_ID"
  }
}