# Criteria for retrieving log events

The `criteria` object specifies what log event information is returned.

The `criteria` object has two main properties: `Type` and `Filter`. These are described in the following table. Properties enclosed in brackets are optional.

Table: Criteria object properties
Property | Description | Type | Value
--- | --- | --- | ---
`criteria.Type` | Specifies the type of content. | string | Possible values: `"Log"`
`[criteria.Filter]` | Specifies the criteria to search for specific events in the log database. If `Filter` is not specified, all of the events from the log database are retrieved. | object | Object with the properties specified below
`[criteria.Filter.id]` | Specifies a unique identifier of an event in the log database. Note: When `[id]` is specified, all other keys are ignored. |  | string
`[criteria.Filter.RecentList]` | Creates a view of the most recent 20 events in the specified recent call list. The recent call list derives from recent log entries (a subset of all log entries). On successful completion, the view is positioned at the first (most recent) event in the recent call list. Recent lists do not contain individual entries for duplicate events, such as two outgoing calls to the same number. Note: When `[RecentList]` is specified, all other keys are ignored. If `[id]` is specified, it takes precedence and `[RecentList]` is ignored. | Value - Description: `-1` - EKLogNullRecentList `1` - EKLogRecentIncomingCalls `2` - EKLogRecentOutgoingCalls `3` - EKLogRecentMissedCalls A value of `-1` - EKLogNullRecentList results in a view that includes events from all of the recent event lists. | number
`[criteria.Filter.EventType]` | Specifies a unique identifier for the type of event; such as call, fax, etc. | Value - Description: `0` - EKLogCallEventType `1` - EKLogDataEventType `2` - EKLogFaxEventType `3` - EKLogShortMessageEventType `4` - EKLogPacketDataEventType | number
`[criteria.Filter.PhoneNumber]` | Specifies the phone number associated with the event. Note: This is used when the number cannot be stored in any other key. For example, if there is an entry in the contacts database for a person named Prakash, then `RemoteParty` is specified as "Prakash" and `PhoneNumber` is needed to specify the phone number. If there is no entry for Prakash, `RemoteParty` is specified as the phone number. | Up to 100 characters. If the length of the specified string is greater than 100 characters, the number is truncated. | string
`[criteria.Filter.RemoteParty]` | Specifies the destination of the outgoing event or the source of incoming event. | Up to 64 characters. If the length of the specified string is greater than 64 characters, the data is truncated. | string
`[criteria.Filter.Direction]` | Specifies whether the event is incoming, outgoing, or missed and if it came in on an alternate line. Alternate line refers to the second phone call on the mobile device. Alternate line values, such as `2` - EIncomingEventAlternateline, are valid for call events only. | Value - Description: `0` - EIncomingEvent `1` - EOutgoingEvent `2` - EIncomingEventAlternateline `3` - EOutgoingEventAlternateline `4` - EFetchedEvent `5` - EMissedEvent `6` - EMissedEventAlternateline | number
`[criteria.Filter.DeliveryStatus]` | Specifies whether the event was delivered, is pending, failed to be delivered, etc. | Value - Description: `0` - EStatusPending `1` - EStatusSent `2` - EStatusFailed `3` - EStatusNone `4` - EStatusDone `5` - EStatusSent `6` - EStatusScheduled | number
`[criteria.Filter.EndTime]` | Events added to the log after this time will not be retrieved. |  | date object
`[criteria.Filter.LogFlags]` | Specifies the flags for this event. This method does not change any other flag bit settings. | Value - Description: `0` - EKLogEventContactSearched Note: The EKLogEventContactSearched flag is set when the user searches the contact database for any operation such as a voice call or SMS. `1` - EKLogEventRead Note: The EKLogEventRead flag is set when the user "reads" the event in the log database. |