Skip to content

todos show --json omits several fields present in the raw API (completion_subscribers, due_on, starts_on, description_attachments, …) #449

@vmpn

Description

@vmpn

Summary

basecamp todos show <id> --json returns a data object with fewer fields than the underlying Basecamp 3 API endpoint (GET /buckets/{bucket}/todos/{id}.json), making the CLI output an incomplete view of a to-do.

CLI version

basecamp 0.7.2

Reproduction

ID=<some-todo-id>
PROJECT=<project-id>
BUCKET=<bucket-id>

# Fields surfaced by the CLI:
basecamp todos show "$ID" --in "$PROJECT" --json --jq '.data | keys'

# Fields the API actually returns:
basecamp api get "/buckets/$BUCKET/todos/$ID.json" --agent | jq 'keys'

Observed difference

Data-carrying fields present in the raw API but absent from todos show:

  • completion_subscribers — the "When done, notify…" recipients shown in the web UI
  • due_on — due date
  • starts_on — start date
  • description_attachments — file attachments embedded in the description
  • comments_count — comment count on the to-do
  • boosts_count — boost (reaction) count

A few hypermedia fields (completion_url, comments_url, boosts_url, subscription_url) are also absent — likely intentional, mentioning for completeness.

Impact

The missing fields aren't obviously absent — the call returns ok: true and a data object that looks complete. Automated callers (scripts, AI agents, downstream tooling) querying those fields via --jq get back null or [] with no way to distinguish "field omitted by the CLI" from "field genuinely empty on the server". For interactive use this is usually fine because the user can cross-check in the web UI, but for non-interactive callers it can lead to acting on incomplete information.

Workaround

Use basecamp api get "/buckets/<bucket>/todos/<id>.json" --agent and parse with jq directly.


Created with assistance of AI agent with human review.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions