CrewSheetRow
One user you may keep sheets for, together with that user's sheet in each
entry type for the period containing the requested sheet_date.
The collection is a list of users, not of sheets. A user appears once per
page even when they have three sheets, and appears even when they have none
yet, so long as they match the filters. When a user matches but no sheet
block can be built for them, the row still carries id_user and the
fullname and user_login properties, so that page counts stay correct.
Beyond the fields listed here, a row carries one additional property for
each user custom field configured as a column on the Crew Entry screen. The
property name is the literal prefix users_attribs: followed by the custom
field's ID, and the value is that user's value for the field. For example, a
row might include "users_attribs:users_dept": "Sales". The same name works
as a $filter key, whether or not the field is configured as a column.
The internal ID of the user this row describes.
aliceid_user_properties objectrequired
Details of the user the row describes. These are properties of the user, not of any one sheet, so they are returned whether or not the user has sheets in the period.
The entry screen name fields (time_gui_pname and friends) and the approval
plan name fields are only returned when a matching column is configured on
the Crew Entry screen, because each one costs an extra lookup. Configure
columns through the
Screen settings endpoints.
The user's full name.
Alice DevThe user's sign-in name.
aliceThe user's preferred time zone as an IANA name, or an empty string when the user has not set one, in which case the server's zone applies. Use this when displaying punch times from the user's sheets.
America/New_YorkThe name of the approval plan that governs the user's time sheets, or an
empty string when none applies. Only returned when the
id_user_properties.time_approvals_pname column is configured on the
Crew Entry screen.
Weekly Manager ApprovalThe name of the approval plan that governs the user's expense sheets, or
an empty string when none applies. Only returned when the
id_user_properties.expense_approvals_pname column is configured on the
Crew Entry screen.
Expense ReviewThe name of the approval plan that governs the user's custom entry
sheets, or an empty string when none applies. Only returned when the
id_user_properties.custom_approvals_pname column is configured on the
Crew Entry screen.
Mileage ReviewThe ID of the time entry screen assigned to the user. Only returned when
the id_user_properties.time_gui_pname column is configured on the Crew
Entry screen.
4C1D9F0A78B94E1C8E5B2D6F3A70C915The name of the time entry screen assigned to the user. Only returned when this column is configured on the Crew Entry screen.
Standard Weekly TimeThe ID of the expense entry screen assigned to the user. Only returned
when the id_user_properties.expense_gui_pname column is configured on
the Crew Entry screen.
9E2F4B7C15D8402A93C6E1B84F70D3A2The name of the expense entry screen assigned to the user. Only returned when this column is configured on the Crew Entry screen.
Standard ExpenseThe ID of the custom entry screen assigned to the user. Only returned
when the id_user_properties.custom_gui_pname column is configured on
the Crew Entry screen.
B7D3169E4A0C42F5810B9C2E7D45A836The name of the custom entry screen assigned to the user. Only returned when this column is configured on the Crew Entry screen.
Standard Mileagetime object
The state of one user's sheet of a single entry type, for the period that
contains the requested sheet_date.
A block is present for an entry type only when all of the following are
true: the type is enabled on the Crew Entry screen, you hold that type's
keeper ability, you share a group with the user that carries the role
granting it, and the type was not excluded by the sheet_types parameter.
A block describes a period, not necessarily a saved sheet. When the user has
no sheet for the period, the block is still returned but the sheet-specific
fields (id_sheet, status_int, status_str, pname, dates) are all
absent. Test for id_sheet to tell the two apart. If the sheet_state
filter is in use, a block is only returned when its own state is one of the
requested states, so a user can appear with fewer blocks than you asked for.
A block also carries a few fields that exist to drive the Journyx web interface, such as display classes and a link into a server-rendered screen. They are deliberately left out of this reference, are not part of the supported interface, and may change or disappear in any release. Build against the fields documented below.
The internal ID of the user's sheet. Absent when the user has no sheet for this period yet. Pass this to the Submit crew sheets endpoint.
6C5469825DAE4ABF9654B7A567141CD8The entry type this block describes. Note that the third type is called
custom here (it is the Custom Entry / mileage type); elsewhere in the
API and in the product's history it is sometimes called mileage.
Possible values: [time, expense, custom]
timeThe administrator-configurable display label for this entry type, for
example Time. Site labels are renameable, so do not test against this
value; use sheettype instead.
TimeThe sheet's state as a number: 0 open, 1 submitted, 2 approved,
3 rejected. Absent when no sheet exists for the period.
This is the field to test in code. The sheet_state filter uses the
equivalent names (open, submitted, approved, rejected), plus
no_sheet for a period with no sheet, which has no numeric form.
Possible values: [0, 1, 2, 3]
0A human-readable label for the sheet's state, suitable for display.
Absent when no sheet exists for the period. Do not test against this
value; use status_int.
Open for EntryThe sheet's name, which for a period sheet is normally its date range. Absent when no sheet exists for the period.
03/09/2025 - 03/15/2025The sheet's date range as displayed, in the signed-in user's date format. Absent when no sheet exists for the period.
03/09/2025 - 03/15/2025Why an approver rejected the sheet. Present only when status_int is
3 (rejected).
Please split the Friday hours across the two tasks.The full name of the user who owns the sheet. This repeats
id_user_properties.fullname on the enclosing row, and exists so that
a submit request echoed back from a block can be labeled in an error
message.
Alice Devexpense object
The state of one user's sheet of a single entry type, for the period that
contains the requested sheet_date.
A block is present for an entry type only when all of the following are
true: the type is enabled on the Crew Entry screen, you hold that type's
keeper ability, you share a group with the user that carries the role
granting it, and the type was not excluded by the sheet_types parameter.
A block describes a period, not necessarily a saved sheet. When the user has
no sheet for the period, the block is still returned but the sheet-specific
fields (id_sheet, status_int, status_str, pname, dates) are all
absent. Test for id_sheet to tell the two apart. If the sheet_state
filter is in use, a block is only returned when its own state is one of the
requested states, so a user can appear with fewer blocks than you asked for.
A block also carries a few fields that exist to drive the Journyx web interface, such as display classes and a link into a server-rendered screen. They are deliberately left out of this reference, are not part of the supported interface, and may change or disappear in any release. Build against the fields documented below.
The internal ID of the user's sheet. Absent when the user has no sheet for this period yet. Pass this to the Submit crew sheets endpoint.
6C5469825DAE4ABF9654B7A567141CD8The entry type this block describes. Note that the third type is called
custom here (it is the Custom Entry / mileage type); elsewhere in the
API and in the product's history it is sometimes called mileage.
Possible values: [time, expense, custom]
timeThe administrator-configurable display label for this entry type, for
example Time. Site labels are renameable, so do not test against this
value; use sheettype instead.
TimeThe sheet's state as a number: 0 open, 1 submitted, 2 approved,
3 rejected. Absent when no sheet exists for the period.
This is the field to test in code. The sheet_state filter uses the
equivalent names (open, submitted, approved, rejected), plus
no_sheet for a period with no sheet, which has no numeric form.
Possible values: [0, 1, 2, 3]
0A human-readable label for the sheet's state, suitable for display.
Absent when no sheet exists for the period. Do not test against this
value; use status_int.
Open for EntryThe sheet's name, which for a period sheet is normally its date range. Absent when no sheet exists for the period.
03/09/2025 - 03/15/2025The sheet's date range as displayed, in the signed-in user's date format. Absent when no sheet exists for the period.
03/09/2025 - 03/15/2025Why an approver rejected the sheet. Present only when status_int is
3 (rejected).
Please split the Friday hours across the two tasks.The full name of the user who owns the sheet. This repeats
id_user_properties.fullname on the enclosing row, and exists so that
a submit request echoed back from a block can be labeled in an error
message.
Alice Devcustom object
The state of one user's sheet of a single entry type, for the period that
contains the requested sheet_date.
A block is present for an entry type only when all of the following are
true: the type is enabled on the Crew Entry screen, you hold that type's
keeper ability, you share a group with the user that carries the role
granting it, and the type was not excluded by the sheet_types parameter.
A block describes a period, not necessarily a saved sheet. When the user has
no sheet for the period, the block is still returned but the sheet-specific
fields (id_sheet, status_int, status_str, pname, dates) are all
absent. Test for id_sheet to tell the two apart. If the sheet_state
filter is in use, a block is only returned when its own state is one of the
requested states, so a user can appear with fewer blocks than you asked for.
A block also carries a few fields that exist to drive the Journyx web interface, such as display classes and a link into a server-rendered screen. They are deliberately left out of this reference, are not part of the supported interface, and may change or disappear in any release. Build against the fields documented below.
The internal ID of the user's sheet. Absent when the user has no sheet for this period yet. Pass this to the Submit crew sheets endpoint.
6C5469825DAE4ABF9654B7A567141CD8The entry type this block describes. Note that the third type is called
custom here (it is the Custom Entry / mileage type); elsewhere in the
API and in the product's history it is sometimes called mileage.
Possible values: [time, expense, custom]
timeThe administrator-configurable display label for this entry type, for
example Time. Site labels are renameable, so do not test against this
value; use sheettype instead.
TimeThe sheet's state as a number: 0 open, 1 submitted, 2 approved,
3 rejected. Absent when no sheet exists for the period.
This is the field to test in code. The sheet_state filter uses the
equivalent names (open, submitted, approved, rejected), plus
no_sheet for a period with no sheet, which has no numeric form.
Possible values: [0, 1, 2, 3]
0A human-readable label for the sheet's state, suitable for display.
Absent when no sheet exists for the period. Do not test against this
value; use status_int.
Open for EntryThe sheet's name, which for a period sheet is normally its date range. Absent when no sheet exists for the period.
03/09/2025 - 03/15/2025The sheet's date range as displayed, in the signed-in user's date format. Absent when no sheet exists for the period.
03/09/2025 - 03/15/2025Why an approver rejected the sheet. Present only when status_int is
3 (rejected).
Please split the Friday hours across the two tasks.The full name of the user who owns the sheet. This repeats
id_user_properties.fullname on the enclosing row, and exists so that
a submit request echoed back from a block can be labeled in an error
message.
Alice Dev{
"id_user": "alice",
"id_user_properties": {
"fullname": "Alice Dev",
"user_login": "alice",
"default_timezone": "America/New_York",
"time_approvals_pname": "Weekly Manager Approval",
"expense_approvals_pname": "Expense Review",
"custom_approvals_pname": "Mileage Review",
"time_gui_id": "4C1D9F0A78B94E1C8E5B2D6F3A70C915",
"time_gui_pname": "Standard Weekly Time",
"expense_gui_id": "9E2F4B7C15D8402A93C6E1B84F70D3A2",
"expense_gui_pname": "Standard Expense",
"custom_gui_id": "B7D3169E4A0C42F5810B9C2E7D45A836",
"custom_gui_pname": "Standard Mileage"
},
"time": {
"id_sheet": "6C5469825DAE4ABF9654B7A567141CD8",
"sheettype": "time",
"sheettype_label": "Time",
"status_int": 0,
"status_str": "Open for Entry",
"pname": "03/09/2025 - 03/15/2025",
"dates": "03/09/2025 - 03/15/2025",
"reject_reason": "Please split the Friday hours across the two tasks.",
"user_name": "Alice Dev"
},
"expense": {
"id_sheet": "6C5469825DAE4ABF9654B7A567141CD8",
"sheettype": "time",
"sheettype_label": "Time",
"status_int": 0,
"status_str": "Open for Entry",
"pname": "03/09/2025 - 03/15/2025",
"dates": "03/09/2025 - 03/15/2025",
"reject_reason": "Please split the Friday hours across the two tasks.",
"user_name": "Alice Dev"
},
"custom": {
"id_sheet": "6C5469825DAE4ABF9654B7A567141CD8",
"sheettype": "time",
"sheettype_label": "Time",
"status_int": 0,
"status_str": "Open for Entry",
"pname": "03/09/2025 - 03/15/2025",
"dates": "03/09/2025 - 03/15/2025",
"reject_reason": "Please split the Friday hours across the two tasks.",
"user_name": "Alice Dev"
}
}