Skip to content

kanban

← All modules

23 endpoints.

GET /api/v1/kanban/boards

List Boards

Parameters

NameInRequiredTypeDescription
include_archivedquerynoboolean

200 — Successful Response

json
{
  "type": "array",
  "items": {
    "properties": {
      "id": {
        "type": "string",
        "title": "Id"
      },
      "name": {
        "type": "string",
        "title": "Name"
      },
      "color": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "Color"
      },
      "position": {
        "type": "integer",
        "title": "Position"
      },
      "archived": {
        "type": "boolean",
        "title": "Archived"
      },
      "card_count": {
        "type": "integer",
        "title": "Card Count"
      },
      "created_at": {
        "type": "string",
        "format": "date-time",
        "title": "Created At"
      },
      "assigned_to": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "Assigned To"
      },
      "assigned_name": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "Assigned Name"
      },
      "project_id": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "Project Id"
      },
      "project_name": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "Project Name"
      }
    },
    "type": "object",
    "required": [
      "id",
      "name",
      "color",
      "position",
      "archived",
      "card_count",
      "created_at"
    ],
    "title": "BoardSummary"
  },
  "title": "Response List Boards Api V1 Kanban Boards Get"
}

422 — Validation Error

json
{
  "properties": {
    "detail": {
      "items": {
        "properties": {
          "loc": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "type": "array",
            "title": "Location"
          },
          "msg": {
            "type": "string",
            "title": "Message"
          },
          "type": {
            "type": "string",
            "title": "Error Type"
          }
        },
        "type": "object",
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "title": "ValidationError"
      },
      "type": "array",
      "title": "Detail"
    }
  },
  "type": "object",
  "title": "HTTPValidationError"
}

POST /api/v1/kanban/boards

Create Board

Request body

json
{
  "properties": {
    "name": {
      "type": "string",
      "maxLength": 255,
      "minLength": 1,
      "title": "Name"
    },
    "color": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Color"
    }
  },
  "type": "object",
  "required": [
    "name"
  ],
  "title": "BoardCreate"
}

201 — Successful Response

json
{
  "properties": {
    "id": {
      "type": "string",
      "title": "Id"
    },
    "name": {
      "type": "string",
      "title": "Name"
    },
    "color": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Color"
    },
    "position": {
      "type": "integer",
      "title": "Position"
    },
    "archived": {
      "type": "boolean",
      "title": "Archived"
    },
    "card_count": {
      "type": "integer",
      "title": "Card Count"
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "title": "Created At"
    },
    "assigned_to": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Assigned To"
    },
    "assigned_name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Assigned Name"
    },
    "project_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Project Id"
    },
    "project_name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Project Name"
    },
    "columns": {
      "items": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id"
          },
          "name": {
            "type": "string",
            "title": "Name"
          },
          "color": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Color"
          },
          "position": {
            "type": "integer",
            "title": "Position"
          },
          "cards": {
            "items": {
              "properties": {
                "id": {
                  "type": "string",
                  "title": "Id"
                },
                "column_id": {
                  "type": "string",
                  "title": "Column Id"
                },
                "title": {
                  "type": "string",
                  "title": "Title"
                },
                "description": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "title": "Description"
                },
                "recurrence": {
                  "type": "string",
                  "title": "Recurrence"
                },
                "priority": {
                  "type": "string",
                  "title": "Priority"
                },
                "status": {
                  "type": "string",
                  "title": "Status"
                },
                "position": {
                  "type": "integer",
                  "title": "Position"
                },
                "total_seconds": {
                  "type": "integer",
                  "title": "Total Seconds"
                },
                "running": {
                  "type": "boolean",
                  "title": "Running"
                },
                "running_since": {
                  "anyOf": [
                    {
                      "type": "string",
                      "format": "date-time"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "title": "Running Since"
                },
                "created_at": {
                  "type": "string",
                  "format": "date-time",
                  "title": "Created At"
                }
              },
              "type": "object",
              "required": [
                "id",
                "column_id",
                "title",
                "description",
                "recurrence",
                "priority",
                "status",
                "position",
                "total_seconds",
                "running",
                "running_since",
                "created_at"
              ],
              "title": "CardResponse"
            },
            "type": "array",
            "title": "Cards",
            "default": []
          }
        },
        "type": "object",
        "required": [
          "id",
          "name",
          "color",
          "position"
        ],
        "title": "ColumnResponse"
      },
      "type": "array",
      "title": "Columns",
      "default": []
    }
  },
  "type": "object",
  "required": [
    "id",
    "name",
    "color",
    "position",
    "archived",
    "card_count",
    "created_at"
  ],
  "title": "BoardDetail"
}

422 — Validation Error

json
{
  "properties": {
    "detail": {
      "items": {
        "properties": {
          "loc": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "type": "array",
            "title": "Location"
          },
          "msg": {
            "type": "string",
            "title": "Message"
          },
          "type": {
            "type": "string",
            "title": "Error Type"
          }
        },
        "type": "object",
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "title": "ValidationError"
      },
      "type": "array",
      "title": "Detail"
    }
  },
  "type": "object",
  "title": "HTTPValidationError"
}

GET /api/v1/kanban/boards/{board_id}

Get Board

Parameters

NameInRequiredTypeDescription
board_idpathyesstring

200 — Successful Response

json
{
  "properties": {
    "id": {
      "type": "string",
      "title": "Id"
    },
    "name": {
      "type": "string",
      "title": "Name"
    },
    "color": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Color"
    },
    "position": {
      "type": "integer",
      "title": "Position"
    },
    "archived": {
      "type": "boolean",
      "title": "Archived"
    },
    "card_count": {
      "type": "integer",
      "title": "Card Count"
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "title": "Created At"
    },
    "assigned_to": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Assigned To"
    },
    "assigned_name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Assigned Name"
    },
    "project_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Project Id"
    },
    "project_name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Project Name"
    },
    "columns": {
      "items": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id"
          },
          "name": {
            "type": "string",
            "title": "Name"
          },
          "color": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Color"
          },
          "position": {
            "type": "integer",
            "title": "Position"
          },
          "cards": {
            "items": {
              "properties": {
                "id": {
                  "type": "string",
                  "title": "Id"
                },
                "column_id": {
                  "type": "string",
                  "title": "Column Id"
                },
                "title": {
                  "type": "string",
                  "title": "Title"
                },
                "description": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "title": "Description"
                },
                "recurrence": {
                  "type": "string",
                  "title": "Recurrence"
                },
                "priority": {
                  "type": "string",
                  "title": "Priority"
                },
                "status": {
                  "type": "string",
                  "title": "Status"
                },
                "position": {
                  "type": "integer",
                  "title": "Position"
                },
                "total_seconds": {
                  "type": "integer",
                  "title": "Total Seconds"
                },
                "running": {
                  "type": "boolean",
                  "title": "Running"
                },
                "running_since": {
                  "anyOf": [
                    {
                      "type": "string",
                      "format": "date-time"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "title": "Running Since"
                },
                "created_at": {
                  "type": "string",
                  "format": "date-time",
                  "title": "Created At"
                }
              },
              "type": "object",
              "required": [
                "id",
                "column_id",
                "title",
                "description",
                "recurrence",
                "priority",
                "status",
                "position",
                "total_seconds",
                "running",
                "running_since",
                "created_at"
              ],
              "title": "CardResponse"
            },
            "type": "array",
            "title": "Cards",
            "default": []
          }
        },
        "type": "object",
        "required": [
          "id",
          "name",
          "color",
          "position"
        ],
        "title": "ColumnResponse"
      },
      "type": "array",
      "title": "Columns",
      "default": []
    }
  },
  "type": "object",
  "required": [
    "id",
    "name",
    "color",
    "position",
    "archived",
    "card_count",
    "created_at"
  ],
  "title": "BoardDetail"
}

422 — Validation Error

json
{
  "properties": {
    "detail": {
      "items": {
        "properties": {
          "loc": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "type": "array",
            "title": "Location"
          },
          "msg": {
            "type": "string",
            "title": "Message"
          },
          "type": {
            "type": "string",
            "title": "Error Type"
          }
        },
        "type": "object",
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "title": "ValidationError"
      },
      "type": "array",
      "title": "Detail"
    }
  },
  "type": "object",
  "title": "HTTPValidationError"
}

PATCH /api/v1/kanban/boards/{board_id}

Update Board

Parameters

NameInRequiredTypeDescription
board_idpathyesstring

Request body

json
{
  "properties": {
    "name": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 255,
          "minLength": 1
        },
        {
          "type": "null"
        }
      ],
      "title": "Name"
    },
    "color": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Color"
    },
    "position": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Position"
    },
    "archived": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "title": "Archived"
    },
    "assigned_to": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Assigned To"
    },
    "project_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Project Id"
    }
  },
  "type": "object",
  "title": "BoardUpdate"
}

200 — Successful Response

json
{
  "properties": {
    "id": {
      "type": "string",
      "title": "Id"
    },
    "name": {
      "type": "string",
      "title": "Name"
    },
    "color": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Color"
    },
    "position": {
      "type": "integer",
      "title": "Position"
    },
    "archived": {
      "type": "boolean",
      "title": "Archived"
    },
    "card_count": {
      "type": "integer",
      "title": "Card Count"
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "title": "Created At"
    },
    "assigned_to": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Assigned To"
    },
    "assigned_name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Assigned Name"
    },
    "project_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Project Id"
    },
    "project_name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Project Name"
    }
  },
  "type": "object",
  "required": [
    "id",
    "name",
    "color",
    "position",
    "archived",
    "card_count",
    "created_at"
  ],
  "title": "BoardSummary"
}

422 — Validation Error

json
{
  "properties": {
    "detail": {
      "items": {
        "properties": {
          "loc": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "type": "array",
            "title": "Location"
          },
          "msg": {
            "type": "string",
            "title": "Message"
          },
          "type": {
            "type": "string",
            "title": "Error Type"
          }
        },
        "type": "object",
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "title": "ValidationError"
      },
      "type": "array",
      "title": "Detail"
    }
  },
  "type": "object",
  "title": "HTTPValidationError"
}

DELETE /api/v1/kanban/boards/{board_id}

Delete Board

Parameters

NameInRequiredTypeDescription
board_idpathyesstring

204 — Successful Response

422 — Validation Error

json
{
  "properties": {
    "detail": {
      "items": {
        "properties": {
          "loc": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "type": "array",
            "title": "Location"
          },
          "msg": {
            "type": "string",
            "title": "Message"
          },
          "type": {
            "type": "string",
            "title": "Error Type"
          }
        },
        "type": "object",
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "title": "ValidationError"
      },
      "type": "array",
      "title": "Detail"
    }
  },
  "type": "object",
  "title": "HTTPValidationError"
}

POST /api/v1/kanban/boards/{board_id}/columns

Create Column

Parameters

NameInRequiredTypeDescription
board_idpathyesstring

Request body

json
{
  "properties": {
    "name": {
      "type": "string",
      "maxLength": 255,
      "minLength": 1,
      "title": "Name"
    },
    "color": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Color"
    }
  },
  "type": "object",
  "required": [
    "name"
  ],
  "title": "ColumnCreate"
}

201 — Successful Response

json
{
  "properties": {
    "id": {
      "type": "string",
      "title": "Id"
    },
    "name": {
      "type": "string",
      "title": "Name"
    },
    "color": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Color"
    },
    "position": {
      "type": "integer",
      "title": "Position"
    },
    "cards": {
      "items": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id"
          },
          "column_id": {
            "type": "string",
            "title": "Column Id"
          },
          "title": {
            "type": "string",
            "title": "Title"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "recurrence": {
            "type": "string",
            "title": "Recurrence"
          },
          "priority": {
            "type": "string",
            "title": "Priority"
          },
          "status": {
            "type": "string",
            "title": "Status"
          },
          "position": {
            "type": "integer",
            "title": "Position"
          },
          "total_seconds": {
            "type": "integer",
            "title": "Total Seconds"
          },
          "running": {
            "type": "boolean",
            "title": "Running"
          },
          "running_since": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Running Since"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          }
        },
        "type": "object",
        "required": [
          "id",
          "column_id",
          "title",
          "description",
          "recurrence",
          "priority",
          "status",
          "position",
          "total_seconds",
          "running",
          "running_since",
          "created_at"
        ],
        "title": "CardResponse"
      },
      "type": "array",
      "title": "Cards",
      "default": []
    }
  },
  "type": "object",
  "required": [
    "id",
    "name",
    "color",
    "position"
  ],
  "title": "ColumnResponse"
}

422 — Validation Error

json
{
  "properties": {
    "detail": {
      "items": {
        "properties": {
          "loc": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "type": "array",
            "title": "Location"
          },
          "msg": {
            "type": "string",
            "title": "Message"
          },
          "type": {
            "type": "string",
            "title": "Error Type"
          }
        },
        "type": "object",
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "title": "ValidationError"
      },
      "type": "array",
      "title": "Detail"
    }
  },
  "type": "object",
  "title": "HTTPValidationError"
}

PATCH /api/v1/kanban/columns/{column_id}

Update Column

Parameters

NameInRequiredTypeDescription
column_idpathyesstring

Request body

json
{
  "properties": {
    "name": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 255,
          "minLength": 1
        },
        {
          "type": "null"
        }
      ],
      "title": "Name"
    },
    "color": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Color"
    },
    "position": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Position"
    }
  },
  "type": "object",
  "title": "ColumnUpdate"
}

200 — Successful Response

json
{
  "properties": {
    "id": {
      "type": "string",
      "title": "Id"
    },
    "name": {
      "type": "string",
      "title": "Name"
    },
    "color": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Color"
    },
    "position": {
      "type": "integer",
      "title": "Position"
    },
    "cards": {
      "items": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id"
          },
          "column_id": {
            "type": "string",
            "title": "Column Id"
          },
          "title": {
            "type": "string",
            "title": "Title"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "recurrence": {
            "type": "string",
            "title": "Recurrence"
          },
          "priority": {
            "type": "string",
            "title": "Priority"
          },
          "status": {
            "type": "string",
            "title": "Status"
          },
          "position": {
            "type": "integer",
            "title": "Position"
          },
          "total_seconds": {
            "type": "integer",
            "title": "Total Seconds"
          },
          "running": {
            "type": "boolean",
            "title": "Running"
          },
          "running_since": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Running Since"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          }
        },
        "type": "object",
        "required": [
          "id",
          "column_id",
          "title",
          "description",
          "recurrence",
          "priority",
          "status",
          "position",
          "total_seconds",
          "running",
          "running_since",
          "created_at"
        ],
        "title": "CardResponse"
      },
      "type": "array",
      "title": "Cards",
      "default": []
    }
  },
  "type": "object",
  "required": [
    "id",
    "name",
    "color",
    "position"
  ],
  "title": "ColumnResponse"
}

422 — Validation Error

json
{
  "properties": {
    "detail": {
      "items": {
        "properties": {
          "loc": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "type": "array",
            "title": "Location"
          },
          "msg": {
            "type": "string",
            "title": "Message"
          },
          "type": {
            "type": "string",
            "title": "Error Type"
          }
        },
        "type": "object",
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "title": "ValidationError"
      },
      "type": "array",
      "title": "Detail"
    }
  },
  "type": "object",
  "title": "HTTPValidationError"
}

DELETE /api/v1/kanban/columns/{column_id}

Delete Column

Parameters

NameInRequiredTypeDescription
column_idpathyesstring

204 — Successful Response

422 — Validation Error

json
{
  "properties": {
    "detail": {
      "items": {
        "properties": {
          "loc": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "type": "array",
            "title": "Location"
          },
          "msg": {
            "type": "string",
            "title": "Message"
          },
          "type": {
            "type": "string",
            "title": "Error Type"
          }
        },
        "type": "object",
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "title": "ValidationError"
      },
      "type": "array",
      "title": "Detail"
    }
  },
  "type": "object",
  "title": "HTTPValidationError"
}

POST /api/v1/kanban/columns/{column_id}/cards

Create Card

Parameters

NameInRequiredTypeDescription
column_idpathyesstring

Request body

json
{
  "properties": {
    "title": {
      "type": "string",
      "maxLength": 512,
      "minLength": 1,
      "title": "Title"
    },
    "description": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Description"
    },
    "recurrence": {
      "type": "string",
      "title": "Recurrence",
      "default": "none"
    },
    "priority": {
      "type": "string",
      "title": "Priority",
      "default": "medium"
    }
  },
  "type": "object",
  "required": [
    "title"
  ],
  "title": "CardCreate"
}

201 — Successful Response

json
{
  "properties": {
    "id": {
      "type": "string",
      "title": "Id"
    },
    "column_id": {
      "type": "string",
      "title": "Column Id"
    },
    "title": {
      "type": "string",
      "title": "Title"
    },
    "description": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Description"
    },
    "recurrence": {
      "type": "string",
      "title": "Recurrence"
    },
    "priority": {
      "type": "string",
      "title": "Priority"
    },
    "status": {
      "type": "string",
      "title": "Status"
    },
    "position": {
      "type": "integer",
      "title": "Position"
    },
    "total_seconds": {
      "type": "integer",
      "title": "Total Seconds"
    },
    "running": {
      "type": "boolean",
      "title": "Running"
    },
    "running_since": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time"
        },
        {
          "type": "null"
        }
      ],
      "title": "Running Since"
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "title": "Created At"
    }
  },
  "type": "object",
  "required": [
    "id",
    "column_id",
    "title",
    "description",
    "recurrence",
    "priority",
    "status",
    "position",
    "total_seconds",
    "running",
    "running_since",
    "created_at"
  ],
  "title": "CardResponse"
}

422 — Validation Error

json
{
  "properties": {
    "detail": {
      "items": {
        "properties": {
          "loc": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "type": "array",
            "title": "Location"
          },
          "msg": {
            "type": "string",
            "title": "Message"
          },
          "type": {
            "type": "string",
            "title": "Error Type"
          }
        },
        "type": "object",
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "title": "ValidationError"
      },
      "type": "array",
      "title": "Detail"
    }
  },
  "type": "object",
  "title": "HTTPValidationError"
}

PATCH /api/v1/kanban/cards/{card_id}

Update Card

Parameters

NameInRequiredTypeDescription
card_idpathyesstring

Request body

json
{
  "properties": {
    "title": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 512,
          "minLength": 1
        },
        {
          "type": "null"
        }
      ],
      "title": "Title"
    },
    "description": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Description"
    },
    "recurrence": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Recurrence"
    },
    "priority": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Priority"
    },
    "status": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Status"
    }
  },
  "type": "object",
  "title": "CardUpdate"
}

200 — Successful Response

json
{
  "properties": {
    "id": {
      "type": "string",
      "title": "Id"
    },
    "column_id": {
      "type": "string",
      "title": "Column Id"
    },
    "title": {
      "type": "string",
      "title": "Title"
    },
    "description": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Description"
    },
    "recurrence": {
      "type": "string",
      "title": "Recurrence"
    },
    "priority": {
      "type": "string",
      "title": "Priority"
    },
    "status": {
      "type": "string",
      "title": "Status"
    },
    "position": {
      "type": "integer",
      "title": "Position"
    },
    "total_seconds": {
      "type": "integer",
      "title": "Total Seconds"
    },
    "running": {
      "type": "boolean",
      "title": "Running"
    },
    "running_since": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time"
        },
        {
          "type": "null"
        }
      ],
      "title": "Running Since"
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "title": "Created At"
    }
  },
  "type": "object",
  "required": [
    "id",
    "column_id",
    "title",
    "description",
    "recurrence",
    "priority",
    "status",
    "position",
    "total_seconds",
    "running",
    "running_since",
    "created_at"
  ],
  "title": "CardResponse"
}

422 — Validation Error

json
{
  "properties": {
    "detail": {
      "items": {
        "properties": {
          "loc": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "type": "array",
            "title": "Location"
          },
          "msg": {
            "type": "string",
            "title": "Message"
          },
          "type": {
            "type": "string",
            "title": "Error Type"
          }
        },
        "type": "object",
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "title": "ValidationError"
      },
      "type": "array",
      "title": "Detail"
    }
  },
  "type": "object",
  "title": "HTTPValidationError"
}

DELETE /api/v1/kanban/cards/{card_id}

Delete Card

Parameters

NameInRequiredTypeDescription
card_idpathyesstring

204 — Successful Response

422 — Validation Error

json
{
  "properties": {
    "detail": {
      "items": {
        "properties": {
          "loc": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "type": "array",
            "title": "Location"
          },
          "msg": {
            "type": "string",
            "title": "Message"
          },
          "type": {
            "type": "string",
            "title": "Error Type"
          }
        },
        "type": "object",
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "title": "ValidationError"
      },
      "type": "array",
      "title": "Detail"
    }
  },
  "type": "object",
  "title": "HTTPValidationError"
}

POST /api/v1/kanban/cards/{card_id}/move

Move Card

Parameters

NameInRequiredTypeDescription
card_idpathyesstring

Request body

json
{
  "properties": {
    "column_id": {
      "type": "string",
      "title": "Column Id"
    },
    "position": {
      "type": "integer",
      "title": "Position",
      "default": 0
    }
  },
  "type": "object",
  "required": [
    "column_id"
  ],
  "title": "CardMove"
}

200 — Successful Response

json
{
  "properties": {
    "id": {
      "type": "string",
      "title": "Id"
    },
    "column_id": {
      "type": "string",
      "title": "Column Id"
    },
    "title": {
      "type": "string",
      "title": "Title"
    },
    "description": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Description"
    },
    "recurrence": {
      "type": "string",
      "title": "Recurrence"
    },
    "priority": {
      "type": "string",
      "title": "Priority"
    },
    "status": {
      "type": "string",
      "title": "Status"
    },
    "position": {
      "type": "integer",
      "title": "Position"
    },
    "total_seconds": {
      "type": "integer",
      "title": "Total Seconds"
    },
    "running": {
      "type": "boolean",
      "title": "Running"
    },
    "running_since": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time"
        },
        {
          "type": "null"
        }
      ],
      "title": "Running Since"
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "title": "Created At"
    }
  },
  "type": "object",
  "required": [
    "id",
    "column_id",
    "title",
    "description",
    "recurrence",
    "priority",
    "status",
    "position",
    "total_seconds",
    "running",
    "running_since",
    "created_at"
  ],
  "title": "CardResponse"
}

422 — Validation Error

json
{
  "properties": {
    "detail": {
      "items": {
        "properties": {
          "loc": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "type": "array",
            "title": "Location"
          },
          "msg": {
            "type": "string",
            "title": "Message"
          },
          "type": {
            "type": "string",
            "title": "Error Type"
          }
        },
        "type": "object",
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "title": "ValidationError"
      },
      "type": "array",
      "title": "Detail"
    }
  },
  "type": "object",
  "title": "HTTPValidationError"
}

POST /api/v1/kanban/cards/{card_id}/start

Start Card

Parameters

NameInRequiredTypeDescription
card_idpathyesstring

200 — Successful Response

json
{
  "properties": {
    "id": {
      "type": "string",
      "title": "Id"
    },
    "column_id": {
      "type": "string",
      "title": "Column Id"
    },
    "title": {
      "type": "string",
      "title": "Title"
    },
    "description": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Description"
    },
    "recurrence": {
      "type": "string",
      "title": "Recurrence"
    },
    "priority": {
      "type": "string",
      "title": "Priority"
    },
    "status": {
      "type": "string",
      "title": "Status"
    },
    "position": {
      "type": "integer",
      "title": "Position"
    },
    "total_seconds": {
      "type": "integer",
      "title": "Total Seconds"
    },
    "running": {
      "type": "boolean",
      "title": "Running"
    },
    "running_since": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time"
        },
        {
          "type": "null"
        }
      ],
      "title": "Running Since"
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "title": "Created At"
    }
  },
  "type": "object",
  "required": [
    "id",
    "column_id",
    "title",
    "description",
    "recurrence",
    "priority",
    "status",
    "position",
    "total_seconds",
    "running",
    "running_since",
    "created_at"
  ],
  "title": "CardResponse"
}

422 — Validation Error

json
{
  "properties": {
    "detail": {
      "items": {
        "properties": {
          "loc": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "type": "array",
            "title": "Location"
          },
          "msg": {
            "type": "string",
            "title": "Message"
          },
          "type": {
            "type": "string",
            "title": "Error Type"
          }
        },
        "type": "object",
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "title": "ValidationError"
      },
      "type": "array",
      "title": "Detail"
    }
  },
  "type": "object",
  "title": "HTTPValidationError"
}

POST /api/v1/kanban/cards/{card_id}/stop

Stop Card

Parameters

NameInRequiredTypeDescription
card_idpathyesstring

200 — Successful Response

json
{
  "properties": {
    "id": {
      "type": "string",
      "title": "Id"
    },
    "column_id": {
      "type": "string",
      "title": "Column Id"
    },
    "title": {
      "type": "string",
      "title": "Title"
    },
    "description": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Description"
    },
    "recurrence": {
      "type": "string",
      "title": "Recurrence"
    },
    "priority": {
      "type": "string",
      "title": "Priority"
    },
    "status": {
      "type": "string",
      "title": "Status"
    },
    "position": {
      "type": "integer",
      "title": "Position"
    },
    "total_seconds": {
      "type": "integer",
      "title": "Total Seconds"
    },
    "running": {
      "type": "boolean",
      "title": "Running"
    },
    "running_since": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time"
        },
        {
          "type": "null"
        }
      ],
      "title": "Running Since"
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "title": "Created At"
    }
  },
  "type": "object",
  "required": [
    "id",
    "column_id",
    "title",
    "description",
    "recurrence",
    "priority",
    "status",
    "position",
    "total_seconds",
    "running",
    "running_since",
    "created_at"
  ],
  "title": "CardResponse"
}

422 — Validation Error

json
{
  "properties": {
    "detail": {
      "items": {
        "properties": {
          "loc": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "type": "array",
            "title": "Location"
          },
          "msg": {
            "type": "string",
            "title": "Message"
          },
          "type": {
            "type": "string",
            "title": "Error Type"
          }
        },
        "type": "object",
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "title": "ValidationError"
      },
      "type": "array",
      "title": "Detail"
    }
  },
  "type": "object",
  "title": "HTTPValidationError"
}

POST /api/v1/kanban/cards/{card_id}/done

Done Card

Parameters

NameInRequiredTypeDescription
card_idpathyesstring

200 — Successful Response

json
{
  "properties": {
    "id": {
      "type": "string",
      "title": "Id"
    },
    "column_id": {
      "type": "string",
      "title": "Column Id"
    },
    "title": {
      "type": "string",
      "title": "Title"
    },
    "description": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Description"
    },
    "recurrence": {
      "type": "string",
      "title": "Recurrence"
    },
    "priority": {
      "type": "string",
      "title": "Priority"
    },
    "status": {
      "type": "string",
      "title": "Status"
    },
    "position": {
      "type": "integer",
      "title": "Position"
    },
    "total_seconds": {
      "type": "integer",
      "title": "Total Seconds"
    },
    "running": {
      "type": "boolean",
      "title": "Running"
    },
    "running_since": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time"
        },
        {
          "type": "null"
        }
      ],
      "title": "Running Since"
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "title": "Created At"
    }
  },
  "type": "object",
  "required": [
    "id",
    "column_id",
    "title",
    "description",
    "recurrence",
    "priority",
    "status",
    "position",
    "total_seconds",
    "running",
    "running_since",
    "created_at"
  ],
  "title": "CardResponse"
}

422 — Validation Error

json
{
  "properties": {
    "detail": {
      "items": {
        "properties": {
          "loc": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "type": "array",
            "title": "Location"
          },
          "msg": {
            "type": "string",
            "title": "Message"
          },
          "type": {
            "type": "string",
            "title": "Error Type"
          }
        },
        "type": "object",
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "title": "ValidationError"
      },
      "type": "array",
      "title": "Detail"
    }
  },
  "type": "object",
  "title": "HTTPValidationError"
}

GET /api/v1/kanban/track/status

Track Status

200 — Successful Response

json
{
  "properties": {
    "board_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Board Id"
    },
    "running": {
      "items": {
        "properties": {
          "card_id": {
            "type": "string",
            "title": "Card Id"
          },
          "title": {
            "type": "string",
            "title": "Title"
          },
          "started_at": {
            "type": "string",
            "format": "date-time",
            "title": "Started At"
          }
        },
        "type": "object",
        "required": [
          "card_id",
          "title",
          "started_at"
        ],
        "title": "TrackedTimer"
      },
      "type": "array",
      "title": "Running",
      "default": []
    }
  },
  "type": "object",
  "title": "TrackStatusResponse"
}

POST /api/v1/kanban/track/start

Track Start

Request body

json
{
  "properties": {
    "title": {
      "type": "string",
      "maxLength": 512,
      "minLength": 1,
      "title": "Title"
    }
  },
  "type": "object",
  "required": [
    "title"
  ],
  "title": "TrackRequest",
  "description": "Start/stop tracking against a dashboard stat card. ``title`` is the\nkanban card title the time books to (e.g. \"CRM: Phone Calls\")."
}

200 — Successful Response

json
{
  "properties": {
    "board_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Board Id"
    },
    "running": {
      "items": {
        "properties": {
          "card_id": {
            "type": "string",
            "title": "Card Id"
          },
          "title": {
            "type": "string",
            "title": "Title"
          },
          "started_at": {
            "type": "string",
            "format": "date-time",
            "title": "Started At"
          }
        },
        "type": "object",
        "required": [
          "card_id",
          "title",
          "started_at"
        ],
        "title": "TrackedTimer"
      },
      "type": "array",
      "title": "Running",
      "default": []
    }
  },
  "type": "object",
  "title": "TrackStatusResponse"
}

422 — Validation Error

json
{
  "properties": {
    "detail": {
      "items": {
        "properties": {
          "loc": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "type": "array",
            "title": "Location"
          },
          "msg": {
            "type": "string",
            "title": "Message"
          },
          "type": {
            "type": "string",
            "title": "Error Type"
          }
        },
        "type": "object",
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "title": "ValidationError"
      },
      "type": "array",
      "title": "Detail"
    }
  },
  "type": "object",
  "title": "HTTPValidationError"
}

POST /api/v1/kanban/track/stop

Track Stop

Request body

json
{
  "properties": {
    "title": {
      "type": "string",
      "maxLength": 512,
      "minLength": 1,
      "title": "Title"
    }
  },
  "type": "object",
  "required": [
    "title"
  ],
  "title": "TrackRequest",
  "description": "Start/stop tracking against a dashboard stat card. ``title`` is the\nkanban card title the time books to (e.g. \"CRM: Phone Calls\")."
}

200 — Successful Response

json
{
  "properties": {
    "board_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Board Id"
    },
    "running": {
      "items": {
        "properties": {
          "card_id": {
            "type": "string",
            "title": "Card Id"
          },
          "title": {
            "type": "string",
            "title": "Title"
          },
          "started_at": {
            "type": "string",
            "format": "date-time",
            "title": "Started At"
          }
        },
        "type": "object",
        "required": [
          "card_id",
          "title",
          "started_at"
        ],
        "title": "TrackedTimer"
      },
      "type": "array",
      "title": "Running",
      "default": []
    }
  },
  "type": "object",
  "title": "TrackStatusResponse"
}

422 — Validation Error

json
{
  "properties": {
    "detail": {
      "items": {
        "properties": {
          "loc": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "type": "array",
            "title": "Location"
          },
          "msg": {
            "type": "string",
            "title": "Message"
          },
          "type": {
            "type": "string",
            "title": "Error Type"
          }
        },
        "type": "object",
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "title": "ValidationError"
      },
      "type": "array",
      "title": "Detail"
    }
  },
  "type": "object",
  "title": "HTTPValidationError"
}

GET /api/v1/kanban/tasks

List Tasks

Every open (non-done) tasklist card of the tenant in one flat list — the ERP dashboard's Tasks panel, where task timers are started/stopped. include_done=true adds the completed ones too (the panel's "Show done" toggle); the panel sorts them below the open ones. Skips archived boards and the auto-created "Dashboard" tracking board: its cards mirror stat cards that carry their own play buttons. Like the board list, non-superusers only get cards from boards assigned to them.

Parameters

NameInRequiredTypeDescription
include_donequerynoboolean

200 — Successful Response

json
{
  "type": "array",
  "items": {
    "properties": {
      "id": {
        "type": "string",
        "title": "Id"
      },
      "column_id": {
        "type": "string",
        "title": "Column Id"
      },
      "title": {
        "type": "string",
        "title": "Title"
      },
      "description": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "Description"
      },
      "recurrence": {
        "type": "string",
        "title": "Recurrence"
      },
      "priority": {
        "type": "string",
        "title": "Priority"
      },
      "status": {
        "type": "string",
        "title": "Status"
      },
      "position": {
        "type": "integer",
        "title": "Position"
      },
      "total_seconds": {
        "type": "integer",
        "title": "Total Seconds"
      },
      "running": {
        "type": "boolean",
        "title": "Running"
      },
      "running_since": {
        "anyOf": [
          {
            "type": "string",
            "format": "date-time"
          },
          {
            "type": "null"
          }
        ],
        "title": "Running Since"
      },
      "created_at": {
        "type": "string",
        "format": "date-time",
        "title": "Created At"
      },
      "board_id": {
        "type": "string",
        "title": "Board Id"
      },
      "board_name": {
        "type": "string",
        "title": "Board Name"
      },
      "board_assigned_name": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "Board Assigned Name"
      },
      "board_project_name": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "Board Project Name"
      },
      "column_name": {
        "type": "string",
        "title": "Column Name"
      }
    },
    "type": "object",
    "required": [
      "id",
      "column_id",
      "title",
      "description",
      "recurrence",
      "priority",
      "status",
      "position",
      "total_seconds",
      "running",
      "running_since",
      "created_at",
      "board_id",
      "board_name",
      "column_name"
    ],
    "title": "TaskItem",
    "description": "A card plus its board/column context — the ERP dashboard's Tasks panel\nlists every open task across all tasklists in one flat feed, and its\nStart/Stop buttons are where task timers are driven from."
  },
  "title": "Response List Tasks Api V1 Kanban Tasks Get"
}

422 — Validation Error

json
{
  "properties": {
    "detail": {
      "items": {
        "properties": {
          "loc": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "type": "array",
            "title": "Location"
          },
          "msg": {
            "type": "string",
            "title": "Message"
          },
          "type": {
            "type": "string",
            "title": "Error Type"
          }
        },
        "type": "object",
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "title": "ValidationError"
      },
      "type": "array",
      "title": "Detail"
    }
  },
  "type": "object",
  "title": "HTTPValidationError"
}

GET /api/v1/kanban/projects

List Projects

The tenant's projects (id + name + status), for the Tasklists page's board→project picker. Full project management lives on /g/projects.

200 — Successful Response

json
{
  "items": {
    "properties": {
      "id": {
        "type": "string",
        "title": "Id"
      },
      "name": {
        "type": "string",
        "title": "Name"
      },
      "status": {
        "type": "string",
        "title": "Status"
      }
    },
    "type": "object",
    "required": [
      "id",
      "name",
      "status"
    ],
    "title": "ProjectOption",
    "description": "A Project Management project, as the Tasklists board→project picker\nneeds it (full management lives on the /g/projects grid)."
  },
  "type": "array",
  "title": "Response List Projects Api V1 Kanban Projects Get"
}

GET /api/v1/kanban/boards/{board_id}/time-report

Time Report

Parameters

NameInRequiredTypeDescription
board_idpathyesstring

200 — Successful Response

json
{
  "properties": {
    "total_seconds": {
      "type": "integer",
      "title": "Total Seconds"
    },
    "rows": {
      "items": {
        "properties": {
          "user_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "User Id"
          },
          "user_name": {
            "type": "string",
            "title": "User Name"
          },
          "seconds": {
            "type": "integer",
            "title": "Seconds"
          }
        },
        "type": "object",
        "required": [
          "user_id",
          "user_name",
          "seconds"
        ],
        "title": "TimeReportRow"
      },
      "type": "array",
      "title": "Rows"
    },
    "running": {
      "items": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id"
          },
          "user_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "User Id"
          },
          "user_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "User Name"
          },
          "started_at": {
            "type": "string",
            "format": "date-time",
            "title": "Started At"
          },
          "ended_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ended At"
          },
          "seconds": {
            "type": "integer",
            "title": "Seconds"
          }
        },
        "type": "object",
        "required": [
          "id",
          "user_id",
          "started_at",
          "ended_at",
          "seconds"
        ],
        "title": "TimeEntryResponse"
      },
      "type": "array",
      "title": "Running"
    }
  },
  "type": "object",
  "required": [
    "total_seconds",
    "rows",
    "running"
  ],
  "title": "TimeReportResponse"
}

422 — Validation Error

json
{
  "properties": {
    "detail": {
      "items": {
        "properties": {
          "loc": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "type": "array",
            "title": "Location"
          },
          "msg": {
            "type": "string",
            "title": "Message"
          },
          "type": {
            "type": "string",
            "title": "Error Type"
          }
        },
        "type": "object",
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "title": "ValidationError"
      },
      "type": "array",
      "title": "Detail"
    }
  },
  "type": "object",
  "title": "HTTPValidationError"
}

GET /api/v1/kanban/time-report/detailed

Tenant Timesheet

The tenant's single timesheet — every board's tracked time (dashboard card timers and tasklist timers) in one per-user/day report.

Parameters

NameInRequiredTypeDescription
date_fromqueryno
date_toqueryno

200 — Successful Response

json
{
  "properties": {
    "from_date": {
      "type": "string",
      "title": "From Date"
    },
    "to_date": {
      "type": "string",
      "title": "To Date"
    },
    "groups": {
      "items": {
        "properties": {
          "user_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "User Id"
          },
          "user_name": {
            "type": "string",
            "title": "User Name"
          },
          "date": {
            "type": "string",
            "title": "Date"
          },
          "total_seconds": {
            "type": "integer",
            "title": "Total Seconds"
          },
          "tasks": {
            "items": {
              "properties": {
                "card_id": {
                  "type": "string",
                  "title": "Card Id"
                },
                "title": {
                  "type": "string",
                  "title": "Title"
                },
                "seconds": {
                  "type": "integer",
                  "title": "Seconds"
                },
                "status": {
                  "type": "string",
                  "title": "Status"
                },
                "status_label": {
                  "type": "string",
                  "title": "Status Label"
                },
                "board_name": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "title": "Board Name"
                }
              },
              "type": "object",
              "required": [
                "card_id",
                "title",
                "seconds",
                "status",
                "status_label"
              ],
              "title": "DetailedTask"
            },
            "type": "array",
            "title": "Tasks"
          }
        },
        "type": "object",
        "required": [
          "user_id",
          "user_name",
          "date",
          "total_seconds",
          "tasks"
        ],
        "title": "DetailedGroup"
      },
      "type": "array",
      "title": "Groups"
    },
    "grand_total_seconds": {
      "type": "integer",
      "title": "Grand Total Seconds"
    }
  },
  "type": "object",
  "required": [
    "from_date",
    "to_date",
    "groups",
    "grand_total_seconds"
  ],
  "title": "DetailedReportResponse"
}

422 — Validation Error

json
{
  "properties": {
    "detail": {
      "items": {
        "properties": {
          "loc": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "type": "array",
            "title": "Location"
          },
          "msg": {
            "type": "string",
            "title": "Message"
          },
          "type": {
            "type": "string",
            "title": "Error Type"
          }
        },
        "type": "object",
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "title": "ValidationError"
      },
      "type": "array",
      "title": "Detail"
    }
  },
  "type": "object",
  "title": "HTTPValidationError"
}

GET /api/v1/kanban/boards/{board_id}/time-report/detailed

Detailed Time Report

Same breakdown scoped to one board (kept for API compatibility — the UI's dialogs now open the tenant-wide timesheet above).

Parameters

NameInRequiredTypeDescription
board_idpathyesstring
date_fromqueryno
date_toqueryno

200 — Successful Response

json
{
  "properties": {
    "from_date": {
      "type": "string",
      "title": "From Date"
    },
    "to_date": {
      "type": "string",
      "title": "To Date"
    },
    "groups": {
      "items": {
        "properties": {
          "user_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "User Id"
          },
          "user_name": {
            "type": "string",
            "title": "User Name"
          },
          "date": {
            "type": "string",
            "title": "Date"
          },
          "total_seconds": {
            "type": "integer",
            "title": "Total Seconds"
          },
          "tasks": {
            "items": {
              "properties": {
                "card_id": {
                  "type": "string",
                  "title": "Card Id"
                },
                "title": {
                  "type": "string",
                  "title": "Title"
                },
                "seconds": {
                  "type": "integer",
                  "title": "Seconds"
                },
                "status": {
                  "type": "string",
                  "title": "Status"
                },
                "status_label": {
                  "type": "string",
                  "title": "Status Label"
                },
                "board_name": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "title": "Board Name"
                }
              },
              "type": "object",
              "required": [
                "card_id",
                "title",
                "seconds",
                "status",
                "status_label"
              ],
              "title": "DetailedTask"
            },
            "type": "array",
            "title": "Tasks"
          }
        },
        "type": "object",
        "required": [
          "user_id",
          "user_name",
          "date",
          "total_seconds",
          "tasks"
        ],
        "title": "DetailedGroup"
      },
      "type": "array",
      "title": "Groups"
    },
    "grand_total_seconds": {
      "type": "integer",
      "title": "Grand Total Seconds"
    }
  },
  "type": "object",
  "required": [
    "from_date",
    "to_date",
    "groups",
    "grand_total_seconds"
  ],
  "title": "DetailedReportResponse"
}

422 — Validation Error

json
{
  "properties": {
    "detail": {
      "items": {
        "properties": {
          "loc": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "type": "array",
            "title": "Location"
          },
          "msg": {
            "type": "string",
            "title": "Message"
          },
          "type": {
            "type": "string",
            "title": "Error Type"
          }
        },
        "type": "object",
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "title": "ValidationError"
      },
      "type": "array",
      "title": "Detail"
    }
  },
  "type": "object",
  "title": "HTTPValidationError"
}

Lubb ERP Documentation