Cogram · Schema

BoardItemDetailV1

Single board item with its full history embedded. ``history`` is ordered oldest-first, matching the internal history endpoint so external consumers see the same timeline ordering.

Artificial IntelligenceArchitectureEngineeringDocumentationCollaboration

Properties

Name Type Description
id string
project_id string
project_name string
title string
body object Markdown.
status string
priority object
due_date object Calendar date, no time component.
assignee object Free-text name; may differ from the linked user's name.
assignee_user_id object Set only when the assignee name matched a Cogram user.
source_meeting_id object
source_meeting_name object
meeting_series_uid object
archived boolean
created_at string
updated_at object Null if never updated.
last_status_changed_at object Timestamp of the newest history entry.
history array Oldest first.
View JSON Schema on GitHub

JSON Schema

cogram-com-board-item-detail-v1-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/cogram-com/json-schema/cogram-com-board-item-detail-v1-schema.json",
  "title": "BoardItemDetailV1",
  "description": "Single board item with its full history embedded.\n\n``history`` is ordered oldest-first, matching the internal history\nendpoint so external consumers see the same timeline ordering.",
  "x-generated": "2026-11-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/api.cogram.com-v1-openapi.json#/components/schemas/BoardItemDetailV1",
  "properties": {
    "id": {
      "type": "string",
      "title": "Id"
    },
    "project_id": {
      "type": "string",
      "title": "Project Id"
    },
    "project_name": {
      "type": "string",
      "title": "Project Name"
    },
    "title": {
      "type": "string",
      "title": "Title"
    },
    "body": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Body",
      "description": "Markdown."
    },
    "status": {
      "type": "string",
      "enum": [
        "TODO",
        "IN_PROGRESS",
        "DONE",
        "DISMISSED"
      ],
      "title": "BoardItemStatus"
    },
    "priority": {
      "anyOf": [
        {
          "type": "string",
          "enum": [
            "URGENT",
            "HIGH",
            "NORMAL",
            "LOW"
          ],
          "title": "BoardItemPriority"
        },
        {
          "type": "null"
        }
      ],
      "title": "Priority"
    },
    "due_date": {
      "anyOf": [
        {
          "type": "string",
          "format": "date"
        },
        {
          "type": "null"
        }
      ],
      "title": "Due Date",
      "description": "Calendar date, no time component."
    },
    "assignee": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Assignee",
      "description": "Free-text name; may differ from the linked user's name."
    },
    "assignee_user_id": {
      "anyOf": [
        {
          "type": "string",
          "format": "uuid"
        },
        {
          "type": "null"
        }
      ],
      "title": "Assignee User Id",
      "description": "Set only when the assignee name matched a Cogram user."
    },
    "source_meeting_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Source Meeting Id"
    },
    "source_meeting_name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Source Meeting Name"
    },
    "meeting_series_uid": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Meeting Series Uid"
    },
    "archived": {
      "type": "boolean",
      "title": "Archived"
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "title": "Created At"
    },
    "updated_at": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time"
        },
        {
          "type": "null"
        }
      ],
      "title": "Updated At",
      "description": "Null if never updated."
    },
    "last_status_changed_at": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time"
        },
        {
          "type": "null"
        }
      ],
      "title": "Last Status Changed At",
      "description": "Timestamp of the newest history entry."
    },
    "history": {
      "items": {
        "$ref": "#/$defs/BoardItemHistoryEntryV1"
      },
      "type": "array",
      "title": "History",
      "description": "Oldest first."
    }
  },
  "type": "object",
  "required": [
    "id",
    "project_id",
    "project_name",
    "title",
    "body",
    "status",
    "priority",
    "due_date",
    "assignee",
    "assignee_user_id",
    "source_meeting_id",
    "source_meeting_name",
    "meeting_series_uid",
    "archived",
    "created_at",
    "updated_at",
    "last_status_changed_at",
    "history"
  ],
  "$defs": {
    "BoardItemHistoryEntryV1": {
      "properties": {
        "id": {
          "type": "string",
          "title": "Id"
        },
        "changed_at": {
          "type": "string",
          "format": "date-time",
          "title": "Changed At"
        },
        "changed_by_user_id": {
          "anyOf": [
            {
              "type": "string",
              "format": "uuid"
            },
            {
              "type": "null"
            }
          ],
          "title": "Changed By User Id",
          "description": "Null for automated (LLM) changes, and also for a user-made change whose user has since been deleted. Null plus a set `triggered_by_meeting_id` is what identifies an automated change."
        },
        "changed_by_user_name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Changed By User Name"
        },
        "triggered_by_meeting_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Triggered By Meeting Id"
        },
        "triggered_by_meeting_name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Triggered By Meeting Name"
        },
        "previous_status": {
          "anyOf": [
            {
              "type": "string",
              "enum": [
                "TODO",
                "IN_PROGRESS",
                "DONE",
                "DISMISSED"
              ],
              "title": "BoardItemStatus"
            },
            {
              "type": "null"
            }
          ],
          "title": "Previous Status",
          "description": "Null on the creation entry and on non-status rows."
        },
        "new_status": {
          "anyOf": [
            {
              "type": "string",
              "enum": [
                "TODO",
                "IN_PROGRESS",
                "DONE",
                "DISMISSED"
              ],
              "title": "BoardItemStatus"
            },
            {
              "type": "null"
            }
          ],
          "title": "New Status",
          "description": "Null on non-status rows."
        },
        "previous_assignee": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Previous Assignee"
        },
        "new_assignee": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "New Assignee"
        },
        "previous_assignee_user_id": {
          "anyOf": [
            {
              "type": "string",
              "format": "uuid"
            },
            {
              "type": "null"
            }
          ],
          "title": "Previous Assignee User Id"
        },
        "new_assignee_user_id": {
          "anyOf": [
            {
              "type": "string",
              "format": "uuid"
            },
            {
              "type": "null"
            }
          ],
          "title": "New Assignee User Id"
        },
        "previous_priority": {
          "anyOf": [
            {
              "type": "string",
              "enum": [
                "URGENT",
                "HIGH",
                "NORMAL",
                "LOW"
              ],
              "title": "BoardItemPriority"
            },
            {
              "type": "null"
            }
          ],
          "title": "Previous Priority"
        },
        "new_priority": {
          "anyOf": [
            {
              "type": "string",
              "enum": [
                "URGENT",
                "HIGH",
                "NORMAL",
                "LOW"
              ],
              "title": "BoardItemPriority"
            },
            {
              "type": "null"
            }
          ],
          "title": "New Priority"
        },
        "previous_due_date": {
          "anyOf": [
            {
              "type": "string",
              "format": "date"
            },
            {
              "type": "null"
            }
          ],
          "title": "Previous Due Date"
        },
        "new_due_date": {
          "anyOf": [
            {
              "type": "string",
              "format": "date"
            },
            {
              "type": "null"
            }
          ],
          "title": "New Due Date"
        },
        "reason": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Reason",
          "description": "LLM-authored; only on reconciliation-triggered rows."
        },
        "comment": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Comment",
          "description": "User-authored; null on pure status/assignee rows."
        }
      },
      "type": "object",
      "required": [
        "id",
        "changed_at",
        "changed_by_user_id",
        "changed_by_user_name",
        "triggered_by_meeting_id",
        "triggered_by_meeting_name",
        "previous_status",
        "new_status",
        "previous_assignee",
        "new_assignee",
        "previous_assignee_user_id",
        "new_assignee_user_id",
        "previous_priority",
        "new_priority",
        "previous_due_date",
        "new_due_date",
        "reason",
        "comment"
      ],
      "title": "BoardItemHistoryEntryV1",
      "description": "A single history entry on a board item.\n\nEach entry is backed by a ``BoardItemHistoryEntry`` row, which may\nrepresent a status transition, an assignee change, a priority shift,\na due-date move, a comment, or any combination thereof. Consumers\ncan distinguish the case by inspecting:\n\n    * ``previous_status != new_status`` — status transition\n    * ``new_assignee != previous_assignee`` (or ``*_user_id`` equivalents)\n      — assignee change\n    * ``new_priority != previous_priority`` — priority change\n    * ``new_due_date != previous_due_date`` — due-date change\n    * ``comment is not None`` and no other delta — pure comment\n\n``changed_by_user_id == None`` combined with a set ``triggered_by_meeting_id``\nindicates the change was applied automatically by LLM-driven reconciliation."
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/cogram-com-board-item-detail-v1"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.