view JSON の取得(1) : hkob の雑記録 (486)

はじめに

hkob の雑記録の第488回目(連続61日目)は、各 View の JSON を取得します。今回は前半で5つの view を取得してみます。

Board view

まずは board view です。スクリプトは table view と同じです。

curl 'https://api.notion.com/v1/views/32fd8e4e98ab80e2b3f8000c6da330b4' \
    -H 'Authorization: Bearer '"$NOTION_API_KEY"'' \
    -H 'Notion-Version: 2026-03-11'

取得した JSON はこちらです。Board view は group_by が特殊ですね。hide_empty_groups で空のグループを隠すかどうかも設定できるようです。

{
  "object": "view",
  "id": "32fd8e4e-98ab-80e2-b3f8-000c6da330b4",
  "parent": {
    "type": "database_id",
    "database_id": "32fd8e4e-98ab-80e7-a807-f8fbbf48612d"
  },
  "data_source_id": "32fd8e4e-98ab-8166-98e8-000b4292b61f",
  "name": "BoardView",
  "type": "board",
  "created_time": "2026-03-26T11:35:18.598+00:00",
  "created_by": {
    "object": "user",
    "id": "2200a911-6a96-44bb-bd38-6bfb1e01b9f6"
  },
  "last_edited_time": "2026-03-26T11:35:25.675+00:00",
  "last_edited_by": {
    "object": "user",
    "id": "2200a911-6a96-44bb-bd38-6bfb1e01b9f6"
  },
  "url": "https://www.notion.so/32fd8e4e98ab80e7a807f8fbbf48612d?v=32fd8e4e98ab80e2b3f8000c6da330b4",
  "filter": null,
  "sorts": null,
  "quick_filters": {
    "IFyg": {
      "relation": {
        "is_empty": true
      }
    }
  },
  "configuration": {
    "type": "board",
    "group_by": {
      "type": "status",
      "property_id": "MNV~",
      "group_by": "option",
      "sort": {
        "type": "ascending"
      },
      "property_name": "StatusTitle",
      "hide_empty_groups": false
    },
    "properties": [
      {
        "property_id": "AVX=",
        "property_name": "SubItemTitle",
        "visible": true
      }
    ]
  },
  "request_id": "59e144d0-f6fa-45fe-af1c-b0c691bbc861"
}

List view

スクリプトは view_id 以外は全く同じなので省略します。List の場合はそれぞれのプロパティに対して、visible のフラグがあるだけのようです。

{
  "object": "view",
  "id": "32fd8e4e-98ab-8025-a0d2-000c9f44eee8",
  "parent": {
    "type": "database_id",
    "database_id": "32fd8e4e-98ab-80e7-a807-f8fbbf48612d"
  },
  "data_source_id": "32fd8e4e-98ab-8166-98e8-000b4292b61f",
  "name": "ListView",
  "type": "list",
  "created_time": "2026-03-26T11:36:07.327+00:00",
  "created_by": {
    "object": "user",
    "id": "2200a911-6a96-44bb-bd38-6bfb1e01b9f6"
  },
  "last_edited_time": "2026-05-10T12:27:43.083+00:00",
  "last_edited_by": {
    "object": "user",
    "id": "2200a911-6a96-44bb-bd38-6bfb1e01b9f6"
  },
  "url": "https://www.notion.so/32fd8e4e98ab80e7a807f8fbbf48612d?v=32fd8e4e98ab8025a0d2000c9f44eee8",
  "filter": null,
  "sorts": null,
  "quick_filters": null,
  "configuration": {
    "type": "list",
    "properties": [
      {
        "property_id": "title",
        "visible": true
      },
      {
        "property_id": "Kjx}",
        "visible": true
      },
      {
        "property_id": "SPrp",
        "visible": true
      },
      {
        "property_id": "verification_owner",
        "visible": true
      },
      {
        "property_id": "ZifK",
        "visible": false
      },
      {
        "property_id": "Gx?d",
        "visible": false
      },
      {
        "property_id": "Lbi]",
        "visible": false
      },
      {
        "property_id": "eR=~",
        "visible": false
      },
      {
        "property_id": "WsEj",
        "visible": false
      },
      {
        "property_id": "qEdK",
        "visible": false
      },
      {
        "property_id": "]~iZ",
        "visible": false
      },
      {
        "property_id": "{GE|",
        "visible": false
      },
      {
        "property_id": "LQGa",
        "visible": false
      },
      {
        "property_id": "X>@X",
        "visible": false
      },
      {
        "property_id": "p|i?",
        "visible": false
      },
      {
        "property_id": "swq\\",
        "visible": false
      },
      {
        "property_id": "IFyg",
        "visible": false
      },
      {
        "property_id": "Uw=a",
        "visible": false
      },
      {
        "property_id": "<nJT",
        "visible": false
      },
      {
        "property_id": "STe_",
        "visible": false
      },
      {
        "property_id": "zE|?",
        "visible": false
      },
      {
        "property_id": "MNV~",
        "visible": false
      },
      {
        "property_id": "AVX=",
        "visible": false
      },
      {
        "property_id": "|NHO",
        "visible": false
      },
      {
        "property_id": "flUp",
        "visible": false
      },
      {
        "property_id": "tvis",
        "visible": false
      },
      {
        "property_id": "_x>=",
        "visible": false
      },
      {
        "property_id": "verification",
        "visible": false
      }
    ]
  },
  "request_id": "2be2b8ce-e128-41f2-b9c7-6b1de657cfab"
}

Gallery view

Gallery view の JSON は以下のようになります。Gallery なので cover 画像を設定する cover キーが特異なところになります。

{
  "object": "view",
  "id": "32fd8e4e-98ab-8047-b896-000c33b8b7d9",
  "parent": {
    "type": "database_id",
    "database_id": "32fd8e4e-98ab-80e7-a807-f8fbbf48612d"
  },
  "data_source_id": "32fd8e4e-98ab-8166-98e8-000b4292b61f",
  "name": "GalleryView",
  "type": "gallery",
  "created_time": "2026-03-26T11:35:36.912+00:00",
  "created_by": {
    "object": "user",
    "id": "2200a911-6a96-44bb-bd38-6bfb1e01b9f6"
  },
  "last_edited_time": "2026-03-26T11:36:03.131+00:00",
  "last_edited_by": {
    "object": "user",
    "id": "2200a911-6a96-44bb-bd38-6bfb1e01b9f6"
  },
  "url": "https://www.notion.so/32fd8e4e98ab80e7a807f8fbbf48612d?v=32fd8e4e98ab8047b896000c33b8b7d9",
  "filter": null,
  "sorts": null,
  "quick_filters": {
    "IFyg": {
      "relation": {
        "is_empty": true
      }
    }
  },
  "configuration": {
    "type": "gallery",
    "properties": [
      {
        "property_id": "AVX=",
        "visible": true
      }
    ],
    "cover": {
      "type": "page_content_first"
    }
  },
  "request_id": "33760110-9fb3-4f4a-8855-e28d32d1fac3"
}

Chart view

Chart view も同様です。Chart view は軸の設定などが細かく設定が必要です。この後クラスの設定はかなり大変そうです。

{
  "object": "view",
  "id": "32fd8e4e-98ab-8063-b337-000c3a48f7b5",
  "parent": {
    "type": "database_id",
    "database_id": "32fd8e4e-98ab-80e7-a807-f8fbbf48612d"
  },
  "data_source_id": "32fd8e4e-98ab-8166-98e8-000b4292b61f",
  "name": "ChartView",
  "type": "chart",
  "created_time": "2026-03-26T11:36:18.461+00:00",
  "created_by": {
    "object": "user",
    "id": "2200a911-6a96-44bb-bd38-6bfb1e01b9f6"
  },
  "last_edited_time": "2026-03-26T11:36:22.011+00:00",
  "last_edited_by": {
    "object": "user",
    "id": "2200a911-6a96-44bb-bd38-6bfb1e01b9f6"
  },
  "url": "https://www.notion.so/32fd8e4e98ab80e7a807f8fbbf48612d?v=32fd8e4e98ab8063b337000c3a48f7b5",
  "filter": null,
  "sorts": null,
  "quick_filters": {
    "IFyg": {
      "relation": {
        "is_empty": true
      }
    }
  },
  "configuration": {
    "type": "chart",
    "chart_type": "column",
    "x_axis": {
      "type": "multi_select",
      "property_id": "Kjx}",
      "sort": {
        "type": "manual"
      },
      "property_name": "MultiSelectTitle",
      "hide_empty_groups": false
    },
    "y_axis": {
      "aggregator": "count"
    },
    "sort": "manual",
    "hide_empty_groups": false
  },
  "request_id": "2e082d62-2ada-48c4-9b82-fab3543f5fcc"
}

Dashboard view

Dashboard view は複数の view を内包する view です。このため、view_id を持つ widget を複数所有する形になります。

{
  "object": "view",
  "id": "32fd8e4e-98ab-8031-8eae-000cf60a1a79",
  "parent": {
    "type": "database_id",
    "database_id": "32fd8e4e-98ab-80e7-a807-f8fbbf48612d"
  },
  "data_source_id": null,
  "name": "DashboardView",
  "type": "dashboard",
  "created_time": "2026-03-26T11:36:26.394+00:00",
  "created_by": {
    "object": "user",
    "id": "2200a911-6a96-44bb-bd38-6bfb1e01b9f6"
  },
  "last_edited_time": "2026-05-10T12:42:12.433+00:00",
  "last_edited_by": {
    "object": "user",
    "id": "2200a911-6a96-44bb-bd38-6bfb1e01b9f6"
  },
  "url": "https://www.notion.so/32fd8e4e98ab80e7a807f8fbbf48612d?v=32fd8e4e98ab80318eae000cf60a1a79",
  "filter": null,
  "sorts": null,
  "quick_filters": null,
  "configuration": {
    "type": "dashboard",
    "rows": [
      {
        "id": "76906e96-e409-404f-b398-26ba23956b97",
        "widgets": [
          {
            "id": "42ee1aae-a404-4bb3-bee6-2690a1646644",
            "view_id": "35cd8e4e-98ab-8018-bc3c-000ccb1ec8aa",
            "row_index": 0
          }
        ]
      },
      {
        "id": "cabc2fbc-396c-4378-ae87-cc410d97bed8",
        "widgets": [
          {
            "id": "458bad31-1e9d-4b39-bbf4-799ac18169db",
            "view_id": "35cd8e4e-98ab-8065-b233-000c21c28822",
            "row_index": 1
          }
        ]
      }
    ]
  },
  "request_id": "230d9800-d9b6-4dbd-b901-ed7664d8d272"
}

おわりに

とりあえず今回は 5 つの view の JSON を取得しました。次は残りの view について取得していきます。

https://hkob.notion.site/hkob-16dd8e4e98ab807cbe3cf3cc94cdfe0f?pvs=4hkob.notion.site