workspaceToken (see Authentication) and goes to
the single GraphQL endpoint:
The binder belongs to a client, so there is no top-level
binder query. Reach
it through
me { ... on WorkspaceUser { workspace { clients(filters: { ids: [$clientId] }) { binder { ... } } } } }.
The workspaceToken already identifies the workspace, so you never pass a
workspace ID to read the binder.1. List the files in the binder
Readbinder.subdocuments to list the files Filed filed for the client. This is
the most common read against the binder and backs the binder’s Documents screen.
Pass a SubDocumentsFilter to narrow to unreviewed, flagged, or files under one
parent document; pass null to list everything. See
List the files in a binder for the full
SubDocumentsFilter arguments.
2. Check the missing-item checklist
Readbinder.missingItemsAssessment to learn whether the missing-document
check is ready and list the checklist the run produced. Each item carries a
severity (CRITICAL, MEDIUM, LOW), a status (OPEN, IGNORED,
RESOLVED), and a reason. Filter by status to read only the open items, which
is what a reviewer-facing UI shows first. See
List missing items for the full
BinderMissingItemsFilter argument.
The assessment returns PENDING, AVAILABLE, or UNAVAILABLE, an optional
reason, a count, and the filtered items. Treat an empty list as an all-clear
only when the status is AVAILABLE.
BinderMissingItemsAssessmentStatus!
Whether the missing-document check is pending, available, or unavailable.
String
Why the assessment is pending or unavailable. It is
null when available.Int!
The number of items matching the requested status filter.
[BinderMissingItem!]!
The filtered missing-document checklist rows.
3. Ignore or restore a missing item
When a reviewer dismisses a missing item, move it fromOPEN to IGNORED with
ignoreBinderMissingItem. When they change
their mind, move it back to OPEN with
restoreBinderMissingItem. Both mutations
take the missing-item id (from step 2) and a workspaceId: String!, and
return the updated BinderMissingItem with its new status.
restoreBinderMissingItem with the same id and workspaceId;
the item’s status returns to OPEN.
4. Search the binder
Readbinder.search to search across bookmarks (subdocuments by file name,
issuer, type, or category), annotations, marks, and document contents in one
call. Pass the clientId, the query string, and an optional limit (defaults
to 20). See Search the binder for the full
BinderSearchResults shape.
The web app debounces the input and requires at least two characters before
firing the query; mirror that to avoid noisy partial queries.
Next steps
From here you can go deeper on the binder’s related surfaces:- Annotations and sign-offs: when search surfaces an annotation you want to
reply to, or you want to leave a new note on a file, use the
Document messages API. Sign-offs on a
leadsheet sheet or row use the same
createDocumentMessagemutation withtype: "activity",markType: "signoff"; see Sign off on a sheet or row. - Leadsheets and review: the binder also carries a
leadsheetsfield that returns the leadsheets tree for aTAX_PREPorTAX_REVIEWrun. See Read a client’s leadsheets for that flow. - Badge counts: for a quick badge without fetching the full missing-items
list, read
binder.messageCountsvia Read message counts. - Full reference: every binder field, type, and mutation is documented on Binder.