Skip to main content

Suggestion

One suggested entry: an event from a calendar, a feed, or another integration, together with the entry codes the Suggestion Engine predicts for it.

A suggestion is a record of an event, not of a proposed time record. The same suggestion can be offered on a time sheet, an expense sheet, or a custom sheet; which one is a property of the request that processes it, not of the suggestion. That is why entry_type is a query parameter on writes and never a field here.

creatorstring

The internal User ID of the user who created the object.

Example: 64BBA147B9AC41D9978062300826C89F
creator_fullnamestring

The full name of the user who created the object.

Example: John Doe
creator_properties object

Extended information about the User who created the object. This field is only included if the $keys parameter requests it.

idstring

The internal ID of the resource or object. This is a 32-character hexadecimal string (UUID without hyphens).

In general, the id field is the primary key of the object and cannot be changed or updated.

Example: 64BBA147B9AC41D9978062300826C89F
uriuri-reference

The URI associated with this resource. This is usually a relative URL that can be used to access the resource. Typically it incorporates the Unique ID of the resource.

Example: /api/v1/objects/64BBA147B9AC41D9978062300826C89F
tablenamestring

The name of the internal database table associated with this resource.

Example: users
table_labelstring

The user-visible label of the database table associated with this object.

Example: codes_pay_types
custom_fields object

An object with Custom Fields for this record. The key is the field ID and the value a description of the field. Additional details here: CustomFields Schema

tip

Updating Custom Field values

When creating or updating an existing object that uses Custom Fields, for example a User record, you can follow this custom_field key structure to update the custom field values. The value field is the only required field for updating a custom field value; other fields such as pname will be ignored.

info

Important: depending on the endpoint, this may only be included in the response if $keys=custom_fields or $keys=$extended was set as a query parameter.

There is also a more compact representation available in most object types, where each custom field value is a separate key in the main object (not under custom_fields).

See the CustomFields Schema page for more detailed information on these topics.

property name* CustomFieldValue

A specific instance (value) of a Custom field for a particular object.

id_attr_typestring

The unique internal ID of this Custom Field definition (same as id field)

Example: 2DDD372DC4D3422D9E73F6DE936C4265
attr_typestring

Datatype of the custom field. The basic types available are:

  • STRING - a variable-length string.
  • CHAR - a fixed-length string. (The value may be padded with spaces.)
  • NUMBER - a floating-point number.
  • INTEGER - an integer (whole number).
  • TIMESTAMP - a date and time, stored in Unix epoch format.
  • DATE - a YYYYMMDD (F8) date.

In addition, most types can be modified with a prefix to indicate whether they are "select lists" (ENUM or enumerated) or "multi-select lists" (M_ENUM) which can take on multiple values.

Strings and char may also have a maximum length specified, such as STRING_100.

Example: STRING_100
descriptionstring

Description of custom field

pnamestring

Name of custom field

Example: Pay Group
id_attr_type_uristring

URI of the custom field to get more information about the custom field definition.

Example: /api/v1/custom_fields/E07526A217164D1B94188279A8A0E4D9
valuestring

Value of the custom field for this object. To update the value, see the note on the CustomFields schema page.

Note that when modifying Custom Fields of objects like Users or Projects, only the value key will be checked; other fields like the Custom Field pname will be ignored.

Example: XYZ Pay Group
group_names object[]

A list of Groups (names and IDs) that the object belongs to.

This is a read-only list. To change the Groups that an object belongs to, use the groups field.

See GroupFields for additional information about Groups and this field.

  • Array [
  • idstring

    The Group ID (32-character hexadecimal string).

    pnamestring

    The Group name.

    uristring

    The URI of the Group.

    WARNING: this field is planned in a future release but is not yet available.

  • ]
  • groupsstring[]

    A list of Group IDs that the object belongs to. See GroupFields for additional information about Groups and this field.

    Example: ["5088C427E8B64EBEBE1C5B5961DB1902","3553F715A6F54DAB95D0D25B08468195"]
    user_loginstringrequired

    The login name of the user.

    Example: john.smith@example.com
    fullnamestringrequired

    The full name of the user.

    Example: John Smith
    u_commentstring

    The default comment on the user's time entry screen.

    statusstring

    The status of the user; either active, inactive, or hidden.

    This is a write-enabled field if you have the appropriate permissions.

    This field can also be used in a $filter expression, e.g. $filter=status eq "active" or $filter=status intersects ["active","inactive"].

    Note: unlike most other objects, users do not use the generic visibility statuses (Loggable and Reportable, Reportable Only), and User records do not include a status_code field.

    Possible values: [active, inactive, hidden]

    Example: active
    default_memorized_sheetstring

    The ID of the user's default memorized timesheet.

    default_timezonestringnullable

    The user's default IANA timezone name (e.g. America/Chicago). Used as a fallback when the client does not supply a timezone with a save request. Set to null or empty string to clear. Must be a valid IANA timezone name or a Windows timezone name (which will be converted to the canonical IANA name). Invalid values will cause a 400 Bad Request error.

    The Timezones endpoint provides a searchable list of valid timezone values.

    Example: America/Chicago
    dropdownthresholdinteger

    The number of items in a selection list to trigger a forced search.

    hideboolean

    Indicates whether the user is hidden.

    Note: the User object is the only one that uses this field; other objects use is_hidden.

    expire_new_pwboolean

    Whether the user's new password should expire after the first login.

    This is a write-only field that does not appear in User object responses.

    new_pwstring

    The new password for the user.

    The password must also be set in the new_pw2 field to confirm the change.

    This is a write-only field that does not appear in User object responses.

    new_pw2string

    The new password for the user, repeated to confirm the change.

    The password must also be set in the new_pw field to confirm the change.

    This is a write-only field that does not appear in User object responses.

    rolesstring[]

    A list of role IDs belonging to this user.

    This list can be modified to change the user's roles.

    timerecs_ininteger

    The number of blank rows to show on the entry screen.

    Example: 3
    time_periodstring

    The "Entry Screen period" (time-span) associated with the user's Time Entry screen.

    Example: default_weekly
    expense_periodstring

    The "Entry Screen period" (time-span) associated with the user's Expense Entry screen.

    Example: default_weekly
    custom_periodstring

    The "Entry Screen period" (time-span) associated with the user's Custom Entry screen.

    Example: default_weekly
    expense_guistring

    The ID of the user's assigned Expense entry screen configuration.

    time_guistring

    The ID of the user's assigned time entry screen configuration.

    travel_guistring

    The ID of the user's assigned Custom Entry (a.k.a. Mileage or Travel) entry screen configuration.

    create_timestampfloat

    The timestamp when the object was created, in Unix epoch format. This is the number of seconds since 1970-01-01T00:00:00Z.

    Example: 1696021987.01375
    create_timestamp_date_longstring

    The object creation date in the "long date" format defined in the system settings.

    Example: Wednesday, March 22, 2023
    create_timestamp_date_shortstring

    The object creation date in the "short date" format defined in the system settings.

    Example: 03/22/2023
    create_timestamp_datetime_longstring

    The object creation date and time in the "long date" format defined in the system settings.

    Example: Wednesday, March 22, 2023 12:18:46 CDT
    create_timestamp_datetime_shortstring

    The object creation date and time in the "short date" format defined in the system settings.

    Example: 03/22/2023 12:18:46 CDT
    create_timestamp_isodate-time

    The creation timestamp in ISO 8601 format.

    Example: 2023-03-22T12:18:46-05:00
    modifierstring

    The internal User ID of the user who most recently modified the object.

    Example: 64BBA147B9AC41D9978062300826C89F
    modifier_fullnamestring

    The full name of the user who most recently modified the object.

    Example: John Doe
    modifier_propertiesobject

    Extended information about the User who last modified the object. This field is only included if the $keys parameter requests it.

    modify_timestampfloat

    The timestamp when the object was most recently modified, in Unix epoch format. This is the number of seconds since 1970-01-01T00:00:00Z.

    Example: 1696021987.01375
    modify_timestamp_date_longstring

    The last modification date in the "long date" format defined in the system settings.

    Example: Wednesday, March 22, 2023
    modify_timestamp_date_shortstring

    The last modification date in the "short date" format defined in the system settings.

    Example: 03/22/2023
    modify_timestamp_datetime_longstring

    The last modification date and time in the "long date" format defined in the system settings.

    Example: Wednesday, March 22, 2023 12:18:46 CDT
    modify_timestamp_datetime_shortstring

    The last modification date and time in the "short date" format defined in the system settings.

    Example: 03/22/2023 12:18:46 CDT
    modify_timestamp_isodate-time

    The last modification timestamp in ISO 8601 format.

    Example: 2023-03-22T12:18:46-05:00
    id_domainstring

    The internal Domain ID of the resource or object. In general, this field is deprecated and not in use and can be ignored.

    Example: install_root_dom
    daysinlistinteger

    UNUSED FIELD This is a legacy field that is no longer used.

    emailstring

    The email address of the user.

    Note: This is a read-only field. To change the user's email address, you must modify the users_attribs:users_email field, or custom_fields.users_email.value.

    first_namestring

    The first name of the user.

    Note: read-only; set via the fullname field.

    id_userstring

    The unique internal ID of this user. (Same as id.)

    Example: 5CD906A3941C463B9CC98F49DBCC25AA
    is_hiddenboolean

    Indicates whether the user is hidden.

    See also status. To hide or un-hide a user, write the hide or status field instead.

    hiddenboolean

    Indicates whether the user is hidden.

    Read-only alias for is_hidden; only included when requested via $keys (e.g. $keys=$extended).

    last_namestring

    The last name of the user.

    Note: read-only; set via the fullname field.

    memorized_sheet_choices object[]

    A list of memorized timesheets associated with the user.

    These are the choices available to set in the default_memorized_sheet field.

  • Array [
  • valuestring

    The internal ID of the memorized timesheet.

    textstring

    The name of the memorized timesheet.

  • ]
  • reserved1string

    UNUSED FIELD This is a legacy field that is no longer used.

    reserved2float

    UNUSED FIELD This is a legacy field that is no longer used.

    reserved3float

    UNUSED FIELD This is a legacy field that is no longer used.

    timerecs_outinteger

    UNUSED FIELD This is a legacy field that is no longer used.

    time_gui_propertiesobject

    Details about the user's assigned time entry screen configuration.

    travel_gui_propertiesobject

    Details about the user's assigned Custom Entry (a.k.a. Mileage or Travel) entry screen configuration.

    expense_gui_propertiesobject

    Details about the user's assigned Expense entry screen configuration.

    create_timestampfloat

    The timestamp when the object was created, in Unix epoch format. This is the number of seconds since 1970-01-01T00:00:00Z.

    Example: 1696021987.01375
    create_timestamp_date_longstring

    The object creation date in the "long date" format defined in the system settings.

    Example: Wednesday, March 22, 2023
    create_timestamp_date_shortstring

    The object creation date in the "short date" format defined in the system settings.

    Example: 03/22/2023
    create_timestamp_datetime_longstring

    The object creation date and time in the "long date" format defined in the system settings.

    Example: Wednesday, March 22, 2023 12:18:46 CDT
    create_timestamp_datetime_shortstring

    The object creation date and time in the "short date" format defined in the system settings.

    Example: 03/22/2023 12:18:46 CDT
    create_timestamp_isodate-time

    The creation timestamp in ISO 8601 format.

    Example: 2023-03-22T12:18:46-05:00
    modifierstring

    The internal User ID of the user who most recently modified the object.

    Example: 64BBA147B9AC41D9978062300826C89F
    modifier_fullnamestring

    The full name of the user who most recently modified the object.

    Example: John Doe
    modifier_properties object

    Extended information about the User who last modified the object. This field is only included if the $keys parameter requests it.

    idstring

    The internal ID of the resource or object. This is a 32-character hexadecimal string (UUID without hyphens).

    In general, the id field is the primary key of the object and cannot be changed or updated.

    Example: 64BBA147B9AC41D9978062300826C89F
    uriuri-reference

    The URI associated with this resource. This is usually a relative URL that can be used to access the resource. Typically it incorporates the Unique ID of the resource.

    Example: /api/v1/objects/64BBA147B9AC41D9978062300826C89F
    tablenamestring

    The name of the internal database table associated with this resource.

    Example: users
    table_labelstring

    The user-visible label of the database table associated with this object.

    Example: codes_pay_types
    custom_fields object

    An object with Custom Fields for this record. The key is the field ID and the value a description of the field. Additional details here: CustomFields Schema

    tip

    Updating Custom Field values

    When creating or updating an existing object that uses Custom Fields, for example a User record, you can follow this custom_field key structure to update the custom field values. The value field is the only required field for updating a custom field value; other fields such as pname will be ignored.

    info

    Important: depending on the endpoint, this may only be included in the response if $keys=custom_fields or $keys=$extended was set as a query parameter.

    There is also a more compact representation available in most object types, where each custom field value is a separate key in the main object (not under custom_fields).

    See the CustomFields Schema page for more detailed information on these topics.

    property name* CustomFieldValue

    A specific instance (value) of a Custom field for a particular object.

    id_attr_typestring

    The unique internal ID of this Custom Field definition (same as id field)

    Example: 2DDD372DC4D3422D9E73F6DE936C4265
    attr_typestring

    Datatype of the custom field. The basic types available are:

    • STRING - a variable-length string.
    • CHAR - a fixed-length string. (The value may be padded with spaces.)
    • NUMBER - a floating-point number.
    • INTEGER - an integer (whole number).
    • TIMESTAMP - a date and time, stored in Unix epoch format.
    • DATE - a YYYYMMDD (F8) date.

    In addition, most types can be modified with a prefix to indicate whether they are "select lists" (ENUM or enumerated) or "multi-select lists" (M_ENUM) which can take on multiple values.

    Strings and char may also have a maximum length specified, such as STRING_100.

    Example: STRING_100
    descriptionstring

    Description of custom field

    pnamestring

    Name of custom field

    Example: Pay Group
    id_attr_type_uristring

    URI of the custom field to get more information about the custom field definition.

    Example: /api/v1/custom_fields/E07526A217164D1B94188279A8A0E4D9
    valuestring

    Value of the custom field for this object. To update the value, see the note on the CustomFields schema page.

    Note that when modifying Custom Fields of objects like Users or Projects, only the value key will be checked; other fields like the Custom Field pname will be ignored.

    Example: XYZ Pay Group
    group_names object[]

    A list of Groups (names and IDs) that the object belongs to.

    This is a read-only list. To change the Groups that an object belongs to, use the groups field.

    See GroupFields for additional information about Groups and this field.

  • Array [
  • idstring

    The Group ID (32-character hexadecimal string).

    pnamestring

    The Group name.

    uristring

    The URI of the Group.

    WARNING: this field is planned in a future release but is not yet available.

  • ]
  • groupsstring[]

    A list of Group IDs that the object belongs to. See GroupFields for additional information about Groups and this field.

    Example: ["5088C427E8B64EBEBE1C5B5961DB1902","3553F715A6F54DAB95D0D25B08468195"]
    user_loginstringrequired

    The login name of the user.

    Example: john.smith@example.com
    fullnamestringrequired

    The full name of the user.

    Example: John Smith
    u_commentstring

    The default comment on the user's time entry screen.

    statusstring

    The status of the user; either active, inactive, or hidden.

    This is a write-enabled field if you have the appropriate permissions.

    This field can also be used in a $filter expression, e.g. $filter=status eq "active" or $filter=status intersects ["active","inactive"].

    Note: unlike most other objects, users do not use the generic visibility statuses (Loggable and Reportable, Reportable Only), and User records do not include a status_code field.

    Possible values: [active, inactive, hidden]

    Example: active
    default_memorized_sheetstring

    The ID of the user's default memorized timesheet.

    default_timezonestringnullable

    The user's default IANA timezone name (e.g. America/Chicago). Used as a fallback when the client does not supply a timezone with a save request. Set to null or empty string to clear. Must be a valid IANA timezone name or a Windows timezone name (which will be converted to the canonical IANA name). Invalid values will cause a 400 Bad Request error.

    The Timezones endpoint provides a searchable list of valid timezone values.

    Example: America/Chicago
    dropdownthresholdinteger

    The number of items in a selection list to trigger a forced search.

    hideboolean

    Indicates whether the user is hidden.

    Note: the User object is the only one that uses this field; other objects use is_hidden.

    expire_new_pwboolean

    Whether the user's new password should expire after the first login.

    This is a write-only field that does not appear in User object responses.

    new_pwstring

    The new password for the user.

    The password must also be set in the new_pw2 field to confirm the change.

    This is a write-only field that does not appear in User object responses.

    new_pw2string

    The new password for the user, repeated to confirm the change.

    The password must also be set in the new_pw field to confirm the change.

    This is a write-only field that does not appear in User object responses.

    rolesstring[]

    A list of role IDs belonging to this user.

    This list can be modified to change the user's roles.

    timerecs_ininteger

    The number of blank rows to show on the entry screen.

    Example: 3
    time_periodstring

    The "Entry Screen period" (time-span) associated with the user's Time Entry screen.

    Example: default_weekly
    expense_periodstring

    The "Entry Screen period" (time-span) associated with the user's Expense Entry screen.

    Example: default_weekly
    custom_periodstring

    The "Entry Screen period" (time-span) associated with the user's Custom Entry screen.

    Example: default_weekly
    expense_guistring

    The ID of the user's assigned Expense entry screen configuration.

    time_guistring

    The ID of the user's assigned time entry screen configuration.

    travel_guistring

    The ID of the user's assigned Custom Entry (a.k.a. Mileage or Travel) entry screen configuration.

    creatorstring

    The internal User ID of the user who created the object.

    Example: 64BBA147B9AC41D9978062300826C89F
    creator_fullnamestring

    The full name of the user who created the object.

    Example: John Doe
    creator_propertiesobject

    Extended information about the User who created the object. This field is only included if the $keys parameter requests it.

    create_timestampfloat

    The timestamp when the object was created, in Unix epoch format. This is the number of seconds since 1970-01-01T00:00:00Z.

    Example: 1696021987.01375
    create_timestamp_date_longstring

    The object creation date in the "long date" format defined in the system settings.

    Example: Wednesday, March 22, 2023
    create_timestamp_date_shortstring

    The object creation date in the "short date" format defined in the system settings.

    Example: 03/22/2023
    create_timestamp_datetime_longstring

    The object creation date and time in the "long date" format defined in the system settings.

    Example: Wednesday, March 22, 2023 12:18:46 CDT
    create_timestamp_datetime_shortstring

    The object creation date and time in the "short date" format defined in the system settings.

    Example: 03/22/2023 12:18:46 CDT
    create_timestamp_isodate-time

    The creation timestamp in ISO 8601 format.

    Example: 2023-03-22T12:18:46-05:00
    modify_timestampfloat

    The timestamp when the object was most recently modified, in Unix epoch format. This is the number of seconds since 1970-01-01T00:00:00Z.

    Example: 1696021987.01375
    modify_timestamp_date_longstring

    The last modification date in the "long date" format defined in the system settings.

    Example: Wednesday, March 22, 2023
    modify_timestamp_date_shortstring

    The last modification date in the "short date" format defined in the system settings.

    Example: 03/22/2023
    modify_timestamp_datetime_longstring

    The last modification date and time in the "long date" format defined in the system settings.

    Example: Wednesday, March 22, 2023 12:18:46 CDT
    modify_timestamp_datetime_shortstring

    The last modification date and time in the "short date" format defined in the system settings.

    Example: 03/22/2023 12:18:46 CDT
    modify_timestamp_isodate-time

    The last modification timestamp in ISO 8601 format.

    Example: 2023-03-22T12:18:46-05:00
    id_domainstring

    The internal Domain ID of the resource or object. In general, this field is deprecated and not in use and can be ignored.

    Example: install_root_dom
    daysinlistinteger

    UNUSED FIELD This is a legacy field that is no longer used.

    emailstring

    The email address of the user.

    Note: This is a read-only field. To change the user's email address, you must modify the users_attribs:users_email field, or custom_fields.users_email.value.

    first_namestring

    The first name of the user.

    Note: read-only; set via the fullname field.

    id_userstring

    The unique internal ID of this user. (Same as id.)

    Example: 5CD906A3941C463B9CC98F49DBCC25AA
    is_hiddenboolean

    Indicates whether the user is hidden.

    See also status. To hide or un-hide a user, write the hide or status field instead.

    hiddenboolean

    Indicates whether the user is hidden.

    Read-only alias for is_hidden; only included when requested via $keys (e.g. $keys=$extended).

    last_namestring

    The last name of the user.

    Note: read-only; set via the fullname field.

    memorized_sheet_choices object[]

    A list of memorized timesheets associated with the user.

    These are the choices available to set in the default_memorized_sheet field.

  • Array [
  • valuestring

    The internal ID of the memorized timesheet.

    textstring

    The name of the memorized timesheet.

  • ]
  • reserved1string

    UNUSED FIELD This is a legacy field that is no longer used.

    reserved2float

    UNUSED FIELD This is a legacy field that is no longer used.

    reserved3float

    UNUSED FIELD This is a legacy field that is no longer used.

    timerecs_outinteger

    UNUSED FIELD This is a legacy field that is no longer used.

    time_gui_propertiesobject

    Details about the user's assigned time entry screen configuration.

    travel_gui_propertiesobject

    Details about the user's assigned Custom Entry (a.k.a. Mileage or Travel) entry screen configuration.

    expense_gui_propertiesobject

    Details about the user's assigned Expense entry screen configuration.

    modify_timestampfloat

    The timestamp when the object was most recently modified, in Unix epoch format. This is the number of seconds since 1970-01-01T00:00:00Z.

    Example: 1696021987.01375
    modify_timestamp_date_longstring

    The last modification date in the "long date" format defined in the system settings.

    Example: Wednesday, March 22, 2023
    modify_timestamp_date_shortstring

    The last modification date in the "short date" format defined in the system settings.

    Example: 03/22/2023
    modify_timestamp_datetime_longstring

    The last modification date and time in the "long date" format defined in the system settings.

    Example: Wednesday, March 22, 2023 12:18:46 CDT
    modify_timestamp_datetime_shortstring

    The last modification date and time in the "short date" format defined in the system settings.

    Example: 03/22/2023 12:18:46 CDT
    modify_timestamp_isodate-time

    The last modification timestamp in ISO 8601 format.

    Example: 2023-03-22T12:18:46-05:00
    idinteger

    The internal ID of the suggestion, and the same value as id_suggestion.

    Note this is an integer, unlike the 32-character hexadecimal IDs most Journyx resources use. A non-numeric ID in the URL is rejected with a 400.

    Example: 23
    id_suggestioninteger

    The internal ID of the suggestion. Same value as id.

    Example: 23
    uriuri-reference

    The relative URL of this suggestion.

    Example: /api/v1/suggestions/23
    tablenamestring

    The internal database table backing this resource.

    Example: suggestions
    table_labelstring

    The user-visible label of that table.

    Example: suggestions
    id_userstring

    The user whose Suggested Entries this belongs to. A suggestion cannot be moved to a different user; delete it and create one for the other user instead.

    Example: alice
    source_categorystring

    Which source produced the suggestion. Suggestions created through this API are always generic; the Exchange/Outlook calendar integration writes exchange_rest.

    Read-only: it identifies the writer, so a client cannot claim to be another source.

    Possible values: [generic, exchange_rest]

    Example: generic
    source_idstring

    Your own identifier for the event. This is the upsert key: a POST carrying a source_id already stored under the same source_category updates that suggestion instead of adding a second one. Re-sending a calendar feed is therefore safe.

    Use whatever stable identifier your source has for the event. If your source has none, omit it and each POST will create a new suggestion.

    Example: jxfeed-alice-20260914-a91c3f
    commentstring

    The event's readable text — its subject, title, or body, whichever the source supplied. This is the text the engine reads to predict entry codes, and the text shown to the user.

    Example: Sprint planning with the platform team
    stateinteger

    The raw disposition column: 0 active, 1 dismissed, 2 actualized. Prefer the dismissed and actualized booleans below, which are easier to read and are what $filter accepts.

    Possible values: [0, 1, 2]

    Example: 0
    dismissedboolean

    True when the user has set this suggestion aside. Dismissing is the reversible way to make a suggestion go away — set it back to false with a PUT to restore it.

    Set this through PUT; it is the one disposition a client may change.

    Example: false
    actualizedboolean

    True once someone has accepted this suggestion into a real entry.

    Read-only. It is set by the entry-save path, not by this API, and an actualized suggestion cannot be deleted. dismissed and actualized are never both true.

    Example: false
    record_datestring

    The first date the event covers, as YYYYMMDD in the user's zone. This is the default sort column (descending).

    Example: 20260914
    record_date_endstring

    The last date the event covers, as YYYYMMDD. Equal to record_date for an event inside a single day. A multi-day event does not necessarily occur on every day of the span — see occurrences under properties.

    Example: 20260914
    start_timestampnumber

    The start of the event as a UTC epoch timestamp, for sorting and range filters. The zone-carrying value is properties.start_datetime.

    Example: 1789736400
    end_timestampnumber

    The end of the event as a UTC epoch timestamp.

    Example: 1789741800
    series_idstringnullable

    The recurring series this event belongs to, if any, as the source identifies it. Occurrences of one series share this value, which is what lets a whole series be dismissed at once.

    Example: null
    properties object

    Everything about a suggestion that is not a database column of its own, including the predicted entry codes.

    Two naming conventions live side by side here, and telling them apart is the key to reading a suggestion:

    • A plain name such as id_project is a chosen value. It is what the client supplied on the event, or what the person picked when they accepted the suggestion into an entry.
    • A _predict name such as id_project_predict is what the Suggestion Engine guessed. It is read-only, and it is a ranked list rather than a single value.

    A field absent from this object simply has no value; the engine writes only what it has. Nothing inside properties can be used with $filter or $orderBy — see the filtering notes on List suggestions.

    start_datetimestring

    When the event starts, as an ISO 8601 string carrying the offset of the zone it was supplied in. This is the authoritative start; the start_timestamp column is the same instant as a UTC epoch value, for sorting.

    Example: 2026-09-14T09:00:00-05:00
    end_datetimestring

    When the event ends, in the same form as start_datetime.

    Example: 2026-09-14T10:30:00-05:00
    is_all_dayboolean

    True for an all-day event, which has no meaningful clock time.

    Example: false
    subtypestringnullable

    A source-specific kind, where the source distinguishes them. The Exchange source uses Event and Task. Suggestions fed through this API have no subtype unless the event supplies one.

    Note that the engine re-derives this on every write, so a value you send may be replaced.

    Example: null
    occurrencesarray[]

    For a recurring event, the start/end pairs that fall inside the entry period, as [start_datetime, end_datetime]. The rest of the suggestion describes the first occurrence.

    commentstring

    The comment as chosen, once someone has accepted this suggestion and edited its text. Until then the readable text lives in the top-level comment column.

    Example: Sprint planning with the platform team
    comment_predictstring

    The comment the engine proposes for the entry. Unlike the entry-code predictions this is a plain string, not a ranked list: it is derived from the event's own text rather than chosen from a set of candidates.

    Example: Sprint planning with the platform team
    id_projectstring

    The project this suggestion is for, when a value has been chosen — by the client on the way in, or by the person who accepted it.

    Example: 8A2F4B3D5E6C7891A2B3C4D5E6F78901
    id_project_predictarray[]

    The engine's ranked guesses at the project, best first. Each element is a two-item array of [id, confidence], where confidence runs from 0.0 to 1.0.

    Every _predict field in this object has this shape, except comment_predict.

    Example: [["8A2F4B3D5E6C7891A2B3C4D5E6F78901",1]]
    id_code_taskstring

    The chosen task code, if any.

    id_code_task_predictarray[]

    Ranked [id, confidence] guesses at the task code.

    Example: [["Debugging",0.41]]
    id_code_pay_typestring

    The chosen pay type, if any.

    id_code_pay_type_predictarray[]

    Ranked [id, confidence] guesses at the pay type.

    id_code_bill_typestring

    The chosen bill type, if any.

    id_code_bill_type_predictarray[]

    Ranked [id, confidence] guesses at the bill type.

    id_groupstring

    The chosen group, if any.

    id_group_predictarray[]

    Ranked [id, confidence] guesses at the group.

    time_amountnumber

    Hours to suggest for a time entry. When absent, the entry screen derives the duration from start_datetime and end_datetime.

    Example: 1.5
    match_codeinteger

    How the prediction was reached. Useful for telling a confident match from a fallback:

    CodeMeaning
    10Matched a previously accepted event in the same recurring series.
    20Matched the subject or title of a previous event.
    30Matched the comment of a previous event.
    40Matched the source ID of a previous event.
    50Text similar to a previous event.
    60Text similar to an entry code's name or description.
    70No close match; the codes shown are frequent or default choices.
    75Matched entry-code wording, or the person's most-used codes.
    80Chosen by the trained model.
    90Chosen by a language model.

    New codes may be added. Treat an unrecognized value as "matched somehow" rather than failing.

    Example: 60
    match_descriptionstring

    A short human-readable account of the match, suitable for showing next to the suggestion. Its wording is not stable across releases; do not parse it.

    Example: Tf-Idf: id_project=top id_code_task=0.410
    auto_hiddenboolean

    True when the suggestion was dismissed automatically by one of the user's auto-hide phrase rules rather than by hand.

    Example: false
    auto_hide_ruleobjectnullable

    The auto-hide rule that dismissed it, when auto_hidden.

    id_time_recstring

    The time record created when this suggestion was accepted. Present only on an actualized suggestion. There are id_expense_rec and id_travel_rec equivalents for the other entry types.

    time_updatednumber

    Epoch timestamp of the last time the engine processed this suggestion for time entry. expense_updated and custom_updated are the equivalents for the other entry types.

    Example: 1788893391.803951
    property name*any

    Everything about a suggestion that is not a database column of its own, including the predicted entry codes.

    Two naming conventions live side by side here, and telling them apart is the key to reading a suggestion:

    • A plain name such as id_project is a chosen value. It is what the client supplied on the event, or what the person picked when they accepted the suggestion into an entry.
    • A _predict name such as id_project_predict is what the Suggestion Engine guessed. It is read-only, and it is a ranked list rather than a single value.

    A field absent from this object simply has no value; the engine writes only what it has. Nothing inside properties can be used with $filter or $orderBy — see the filtering notes on List suggestions.

    source_dataobject

    The raw event exactly as the source supplied it, before Journyx parsed it. Useful when debugging a feed.

    Returned only when named explicitly in $keys — never by default, and not included by $keys=$extended. It can hold an entire meeting body and attendee list, so it is kept out of collection responses on purpose.

    Suggestion
    {
    "id": 23,
    "id_suggestion": 23,
    "uri": "/api/v1/suggestions/23",
    "tablename": "suggestions",
    "table_label": "suggestions",
    "id_user": "alice",
    "source_category": "generic",
    "source_id": "jxfeed-alice-20260914-a91c3f",
    "comment": "Sprint planning with the platform team",
    "state": 0,
    "dismissed": false,
    "actualized": false,
    "record_date": "20260914",
    "record_date_end": "20260914",
    "start_timestamp": 1789736400,
    "end_timestamp": 1789741800,
    "series_id": null,
    "properties": {
    "start_datetime": "2026-09-14T09:00:00-05:00",
    "end_datetime": "2026-09-14T10:30:00-05:00",
    "is_all_day": false,
    "subtype": null,
    "occurrences": [
    "string"
    ],
    "comment": "Sprint planning with the platform team",
    "comment_predict": "Sprint planning with the platform team",
    "id_project": "8A2F4B3D5E6C7891A2B3C4D5E6F78901",
    "id_project_predict": [
    [
    "8A2F4B3D5E6C7891A2B3C4D5E6F78901",
    1
    ]
    ],
    "id_code_task": "string",
    "id_code_task_predict": [
    [
    "Debugging",
    0.41
    ]
    ],
    "id_code_pay_type": "string",
    "id_code_pay_type_predict": [
    null
    ],
    "id_code_bill_type": "string",
    "id_code_bill_type_predict": [
    null
    ],
    "id_group": "string",
    "id_group_predict": [
    null
    ],
    "time_amount": 1.5,
    "match_code": 60,
    "match_description": "Tf-Idf: id_project=top id_code_task=0.410",
    "auto_hidden": false,
    "auto_hide_rule": {},
    "id_time_rec": "string",
    "time_updated": 1788893391.803951
    },
    "source_data": {},
    "creator": "64BBA147B9AC41D9978062300826C89F",
    "creator_fullname": "John Doe",
    "creator_properties": {
    "id": "64BBA147B9AC41D9978062300826C89F",
    "uri": "/api/v1/objects/64BBA147B9AC41D9978062300826C89F",
    "tablename": "users",
    "table_label": "codes_pay_types",
    "custom_fields": {
    "C41B2DDA662F4EF6B730F9CB6DB04696": {
    "attr_type": "ENUM_STRING_252",
    "description": "Employee pay group.",
    "id_attr_type": "C41B2DDA662F4EF6B730F9CB6DB04696",
    "id_attr_type_uri": "/api/v1/custom_fields/C41B2DDA662F4EF6B730F9CB6DB04696",
    "pname": "Pay Group",
    "value": "XYZ Pay Group"
    },
    "users_email": {
    "attr_type": "STRING_252",
    "description": "Email address",
    "id_attr_type": "users_email",
    "id_attr_type_uri": "/api/v1/custom_fields/users_email",
    "pname": "Email Address",
    "value": "username@example.com"
    }
    },
    "group_names": [
    {
    "id": "5088C427E8B64EBEBE1C5B5961DB1902",
    "pname": "Sales"
    },
    {
    "id": "3553F715A6F54DAB95D0D25B08468195",
    "pname": "Accounting"
    }
    ],
    "groups": [
    "5088C427E8B64EBEBE1C5B5961DB1902",
    "3553F715A6F54DAB95D0D25B08468195"
    ],
    "user_login": "john.smith@example.com",
    "fullname": "John Smith",
    "u_comment": "string",
    "status": "active",
    "default_memorized_sheet": "string",
    "default_timezone": "America/Chicago",
    "dropdownthreshold": 0,
    "hide": true,
    "expire_new_pw": true,
    "new_pw": "string",
    "new_pw2": "string",
    "roles": [
    "string"
    ],
    "timerecs_in": 3,
    "time_period": "default_weekly",
    "expense_period": "default_weekly",
    "custom_period": "default_weekly",
    "expense_gui": "string",
    "time_gui": "string",
    "travel_gui": "string",
    "create_timestamp": 1696021987.01375,
    "create_timestamp_date_long": "Wednesday, March 22, 2023",
    "create_timestamp_date_short": "03/22/2023",
    "create_timestamp_datetime_long": "Wednesday, March 22, 2023 12:18:46 CDT",
    "create_timestamp_datetime_short": "03/22/2023 12:18:46 CDT",
    "create_timestamp_iso": "2023-03-22T12:18:46-05:00",
    "modifier": "64BBA147B9AC41D9978062300826C89F",
    "modifier_fullname": "John Doe",
    "modifier_properties": {},
    "modify_timestamp": 1696021987.01375,
    "modify_timestamp_date_long": "Wednesday, March 22, 2023",
    "modify_timestamp_date_short": "03/22/2023",
    "modify_timestamp_datetime_long": "Wednesday, March 22, 2023 12:18:46 CDT",
    "modify_timestamp_datetime_short": "03/22/2023 12:18:46 CDT",
    "modify_timestamp_iso": "2023-03-22T12:18:46-05:00",
    "id_domain": "install_root_dom",
    "daysinlist": 0,
    "email": "string",
    "first_name": "string",
    "id_user": "5CD906A3941C463B9CC98F49DBCC25AA",
    "is_hidden": true,
    "hidden": true,
    "last_name": "string",
    "memorized_sheet_choices": [
    {
    "value": "string",
    "text": "string"
    }
    ],
    "reserved1": "string",
    "reserved2": 0,
    "reserved3": 0,
    "timerecs_out": 0,
    "time_gui_properties": {},
    "travel_gui_properties": {},
    "expense_gui_properties": {}
    },
    "create_timestamp": 1696021987.01375,
    "create_timestamp_date_long": "Wednesday, March 22, 2023",
    "create_timestamp_date_short": "03/22/2023",
    "create_timestamp_datetime_long": "Wednesday, March 22, 2023 12:18:46 CDT",
    "create_timestamp_datetime_short": "03/22/2023 12:18:46 CDT",
    "create_timestamp_iso": "2023-03-22T12:18:46-05:00",
    "modifier": "64BBA147B9AC41D9978062300826C89F",
    "modifier_fullname": "John Doe",
    "modifier_properties": {
    "id": "64BBA147B9AC41D9978062300826C89F",
    "uri": "/api/v1/objects/64BBA147B9AC41D9978062300826C89F",
    "tablename": "users",
    "table_label": "codes_pay_types",
    "custom_fields": {
    "C41B2DDA662F4EF6B730F9CB6DB04696": {
    "attr_type": "ENUM_STRING_252",
    "description": "Employee pay group.",
    "id_attr_type": "C41B2DDA662F4EF6B730F9CB6DB04696",
    "id_attr_type_uri": "/api/v1/custom_fields/C41B2DDA662F4EF6B730F9CB6DB04696",
    "pname": "Pay Group",
    "value": "XYZ Pay Group"
    },
    "users_email": {
    "attr_type": "STRING_252",
    "description": "Email address",
    "id_attr_type": "users_email",
    "id_attr_type_uri": "/api/v1/custom_fields/users_email",
    "pname": "Email Address",
    "value": "username@example.com"
    }
    },
    "group_names": [
    {
    "id": "5088C427E8B64EBEBE1C5B5961DB1902",
    "pname": "Sales"
    },
    {
    "id": "3553F715A6F54DAB95D0D25B08468195",
    "pname": "Accounting"
    }
    ],
    "groups": [
    "5088C427E8B64EBEBE1C5B5961DB1902",
    "3553F715A6F54DAB95D0D25B08468195"
    ],
    "user_login": "john.smith@example.com",
    "fullname": "John Smith",
    "u_comment": "string",
    "status": "active",
    "default_memorized_sheet": "string",
    "default_timezone": "America/Chicago",
    "dropdownthreshold": 0,
    "hide": true,
    "expire_new_pw": true,
    "new_pw": "string",
    "new_pw2": "string",
    "roles": [
    "string"
    ],
    "timerecs_in": 3,
    "time_period": "default_weekly",
    "expense_period": "default_weekly",
    "custom_period": "default_weekly",
    "expense_gui": "string",
    "time_gui": "string",
    "travel_gui": "string",
    "creator": "64BBA147B9AC41D9978062300826C89F",
    "creator_fullname": "John Doe",
    "creator_properties": {},
    "create_timestamp": 1696021987.01375,
    "create_timestamp_date_long": "Wednesday, March 22, 2023",
    "create_timestamp_date_short": "03/22/2023",
    "create_timestamp_datetime_long": "Wednesday, March 22, 2023 12:18:46 CDT",
    "create_timestamp_datetime_short": "03/22/2023 12:18:46 CDT",
    "create_timestamp_iso": "2023-03-22T12:18:46-05:00",
    "modify_timestamp": 1696021987.01375,
    "modify_timestamp_date_long": "Wednesday, March 22, 2023",
    "modify_timestamp_date_short": "03/22/2023",
    "modify_timestamp_datetime_long": "Wednesday, March 22, 2023 12:18:46 CDT",
    "modify_timestamp_datetime_short": "03/22/2023 12:18:46 CDT",
    "modify_timestamp_iso": "2023-03-22T12:18:46-05:00",
    "id_domain": "install_root_dom",
    "daysinlist": 0,
    "email": "string",
    "first_name": "string",
    "id_user": "5CD906A3941C463B9CC98F49DBCC25AA",
    "is_hidden": true,
    "hidden": true,
    "last_name": "string",
    "memorized_sheet_choices": [
    {
    "value": "string",
    "text": "string"
    }
    ],
    "reserved1": "string",
    "reserved2": 0,
    "reserved3": 0,
    "timerecs_out": 0,
    "time_gui_properties": {},
    "travel_gui_properties": {},
    "expense_gui_properties": {}
    },
    "modify_timestamp": 1696021987.01375,
    "modify_timestamp_date_long": "Wednesday, March 22, 2023",
    "modify_timestamp_date_short": "03/22/2023",
    "modify_timestamp_datetime_long": "Wednesday, March 22, 2023 12:18:46 CDT",
    "modify_timestamp_datetime_short": "03/22/2023 12:18:46 CDT",
    "modify_timestamp_iso": "2023-03-22T12:18:46-05:00"
    }