Skip to main content

Boards

List all boards

copera boards list
Output:
[
  {
    "_id": "64a1b2c3d4e5f6a7b8c9d0e1",
    "name": "Engineering Roadmap",
    "description": "Track features, bugs, and milestones across the engineering team.",
    "createdAt": "2025-03-10T09:15:42.301Z",
    "updatedAt": "2026-02-18T11:30:05.128Z"
  },
  {
    "_id": "64b3c4d5e6f7a8b9c0d1e2f3",
    "name": "Sales Pipeline",
    "description": "Manage deals from lead to close.",
    "createdAt": "2025-05-22T14:08:33.712Z",
    "updatedAt": "2026-01-05T08:42:19.455Z"
  }
]

Get board details

copera boards get <board-id>
Output:
{
  "_id": "64a1b2c3d4e5f6a7b8c9d0e1",
  "name": "Engineering Roadmap",
  "description": "Track features, bugs, and milestones across the engineering team.",
  "createdAt": "2025-03-10T09:15:42.301Z",
  "updatedAt": "2026-02-18T11:30:05.128Z"
}
Use copera bases list as an alias for copera boards list.

Tables

List tables in a board

copera tables list --board <board-id>
Output:
[
  {
    "_id": "65d4e5f6a7b8c9d0e1f2a3b4",
    "name": "QA Tests",
    "board": "64a1b2c3d4e5f6a7b8c9d0e1",
    "createdAt": "2025-04-12T10:22:45.189Z",
    "updatedAt": "2026-01-28T16:05:37.640Z",
    "columns": [
      { "columnId": "65d4e5f6a7b8c9d0e1f2a3b6", "label": "ID", "type": "NUMBER" },
      { "columnId": "65d7f8a1b2c3d4e5f6a7b8c9", "label": "Related Tasks", "type": "LINK" },
      { "columnId": "65d8a9b0c1d2e3f4a5b6c7d8", "label": "Test Date", "type": "DATE" },
      { "columnId": "65d4e5f6a7b8c9d0e1f2a3b7", "label": "Assignee", "type": "TEXT" }
    ]
  },
  {
    "_id": "64a1b2c3d4e5f6a7b8c9d0e5",
    "name": "Tasks",
    "board": "64a1b2c3d4e5f6a7b8c9d0e1",
    "columns": [
      { "columnId": "64a1b2c3d4e5f6a7b8c9d0e7", "label": "ID", "type": "NUMBER" },
      { "columnId": "64a1b2c3d4e5f6a7b8c9d0e8", "label": "Task Title", "type": "TEXT" },
      { "columnId": "64a1b2c3d4e5f6a7b8c9d0e9", "label": "Status", "type": "STATUS" },
      { "columnId": "64a1b2c3d4e5f6a7b8c9d0ea", "label": "Priority", "type": "DROPDOWN" },
      { "columnId": "64a1b2c3d4e5f6a7b8c9d0eb", "label": "Owner", "type": "USERS" }
    ]
  }
]
Each table includes its full column schema with column IDs, labels, and types. Use these columnId values when creating rows.

Get a specific table

copera tables get <table-id> --board <board-id>
Returns the full table schema including all columns and their options (for STATUS, DROPDOWN, and similar types):
{
  "_id": "64a1b2c3d4e5f6a7b8c9d0e5",
  "name": "Tasks",
  "board": "64a1b2c3d4e5f6a7b8c9d0e1",
  "columns": [
    {
      "columnId": "64a1b2c3d4e5f6a7b8c9d0e9",
      "label": "Status",
      "type": "STATUS",
      "options": [
        { "optionId": "64a1b2c3d4e5f6a7b8c9d101", "label": "Not Started", "color": "GRAY", "statusGroup": "TODO" },
        { "optionId": "64a1b2c3d4e5f6a7b8c9d102", "label": "In Progress", "color": "BLUE", "statusGroup": "IN_PROGRESS" },
        { "optionId": "64a1b2c3d4e5f6a7b8c9d103", "label": "Done", "color": "GREEN", "statusGroup": "DONE" }
      ]
    },
    {
      "columnId": "64a1b2c3d4e5f6a7b8c9d0ea",
      "label": "Priority",
      "type": "DROPDOWN",
      "options": [
        { "optionId": "64a1b2c3d4e5f6a7b8c9d104", "label": "High", "color": "RED" },
        { "optionId": "64a1b2c3d4e5f6a7b8c9d105", "label": "Medium", "color": "ORANGE" },
        { "optionId": "64a1b2c3d4e5f6a7b8c9d106", "label": "Low", "color": "NAVY_BLUE" }
      ]
    }
  ]
}
Use tables get to discover column IDs and option IDs before creating rows — you’ll need these IDs for the columns array.

Rows

List rows

copera rows list --board <board-id> --table <table-id>
Output:
[
  {
    "_id": "66c2d3e4f5a6b7c8d9e0f1a2",
    "rowId": 3,
    "owner": "64f1a2b3c4d5e6f7a8b9c0d1",
    "table": "64a1b2c3d4e5f6a7b8c9d0e5",
    "board": "64a1b2c3d4e5f6a7b8c9d0e1",
    "createdAt": "2025-06-15T12:44:18.302Z",
    "updatedAt": "2025-06-15T13:10:52.741Z",
    "columns": [
      { "columnId": "64a1b2c3d4e5f6a7b8c9d0e8", "value": "Implement OAuth flow" },
      { "columnId": "64a1b2c3d4e5f6a7b8c9d0eb", "value": "https://app.copera.ai/..." }
    ]
  }
]

Get a specific row

copera rows get <row-id>
Output:
{
  "_id": "66c2d3e4f5a6b7c8d9e0f1a2",
  "rowId": 3,
  "owner": "64f1a2b3c4d5e6f7a8b9c0d1",
  "table": "64a1b2c3d4e5f6a7b8c9d0e5",
  "board": "64a1b2c3d4e5f6a7b8c9d0e1",
  "createdAt": "2025-06-15T12:44:18.302Z",
  "updatedAt": "2025-06-15T13:10:52.741Z",
  "columns": [
    { "columnId": "64a1b2c3d4e5f6a7b8c9d0e8", "value": "Implement OAuth flow" },
    { "columnId": "64a1b2c3d4e5f6a7b8c9d0eb", "value": "https://app.copera.ai/..." }
  ]
}

Create a row

copera rows create --board <board-id> --table <table-id> \
  --data '{"columns":[{"columnId":"col_id","value":"My Value"}]}'
You can also pipe JSON from stdin:
echo '{"columns":[{"columnId":"col_id","value":"Piped Value"}]}' | copera rows create

Common Workflows

Find column IDs then create a row

A typical flow for creating a row programmatically:
1

List boards to find the board ID

copera boards list
2

List tables to find the table ID

copera tables list --board <board-id>
3

Get table schema to find column IDs

copera tables get <table-id> --board <board-id>
4

Create a row using the column IDs

copera rows create --board <board-id> --table <table-id> \
  --data '{
    "columns": [
      { "columnId": "64a1b2c3...", "value": "New Task" },
      { "columnId": "64a1b2c4...", "value": "High" }
    ],
    "description": "Created via CLI"
  }'

Using default board and table

If your profile or .copera.toml defines board_id and table_id, you can omit them:
# With defaults configured
copera rows list
copera rows create --data '{"columns":[{"columnId":"col_1","value":"Quick entry"}]}'