<!--
{
  "availability" : [
    "iOS: 11.0.0 -",
    "iPadOS: 11.0.0 -",
    "macCatalyst: 13.1.0 -",
    "macOS: 12.0.0 -",
    "visionOS: 1.0.0 -",
    "watchOS: 4.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "SiriKit",
  "identifier" : "/documentation/Intents/INCallRecord",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "Intents"
    ],
    "preciseIdentifier" : "c:objc(cs)INCallRecord"
  },
  "title" : "INCallRecord"
}
-->

# INCallRecord

The details about a call handled by your app.

```
class INCallRecord
```

## Overview

An `INCallRecord` object stores details about calls made by the user through your app. You use call record objects to communicate basic information about calls to SiriKit. A call record identifies the type of call, the duration of the call, the date and time of the call, and the person on the other end of the call. You create call record objects when reporting search results back to SiriKit and when identifying voicemails to play.

## Topics

### Initializing a Call Record

[`convenience init(identifier: String, dateCreated: Date?, caller: INPerson?, callRecordType: INCallRecordType, callCapability: INCallCapability, callDuration: Double?, unseen: Bool?, numberOfCalls: Int?)`](/documentation/Intents/INCallRecord/init(identifier:dateCreated:caller:callRecordType:callCapability:callDuration:unseen:numberOfCalls:))

Creates a call record with the details about the call.

[`- (instancetype) initWithIdentifier:(NSString *) identifier dateCreated:(NSDate *) dateCreated caller:(INPerson *) caller callRecordType:(INCallRecordType) callRecordType callCapability:(INCallCapability) callCapability callDuration:(NSNumber *) callDuration unseen:(NSNumber *) unseen numberOfCalls:(NSNumber *) numberOfCalls;`](/documentation/Intents/INCallRecord/initWithIdentifier:dateCreated:caller:callRecordType:callCapability:callDuration:unseen:numberOfCalls:)

Initializes a call record with the details about the call.

[`- (instancetype) initWithIdentifier:(NSString *) identifier dateCreated:(NSDate *) dateCreated caller:(INPerson *) caller callRecordType:(INCallRecordType) callRecordType callCapability:(INCallCapability) callCapability callDuration:(NSNumber *) callDuration unseen:(NSNumber *) unseen;`](/documentation/Intents/INCallRecord/initWithIdentifier:dateCreated:caller:callRecordType:callCapability:callDuration:unseen:)

Initializes a call record with the details about the call.

[`- (instancetype) initWithIdentifier:(NSString *) identifier dateCreated:(NSDate *) dateCreated callRecordType:(INCallRecordType) callRecordType callCapability:(INCallCapability) callCapability callDuration:(NSNumber *) callDuration unseen:(NSNumber *) unseen;`](/documentation/Intents/INCallRecord/initWithIdentifier:dateCreated:callRecordType:callCapability:callDuration:unseen:)

Creates a call record with the details about the call.

[`- (instancetype) initWithIdentifier:(NSString *) identifier dateCreated:(NSDate *) dateCreated callRecordType:(INCallRecordType) callRecordType callCapability:(INCallCapability) callCapability callDuration:(NSNumber *) callDuration unseen:(NSNumber *) unseen numberOfCalls:(NSNumber *) numberOfCalls;`](/documentation/Intents/INCallRecord/initWithIdentifier:dateCreated:callRecordType:callCapability:callDuration:unseen:numberOfCalls:)

Creates a call record with the details about the call.

[`- (instancetype) initWithIdentifier:(NSString *) identifier dateCreated:(NSDate *) dateCreated callRecordType:(INCallRecordType) callRecordType callCapability:(INCallCapability) callCapability callDuration:(NSNumber *) callDuration unseen:(NSNumber *) unseen participants:(NSArray<INPerson *> *) participants numberOfCalls:(NSNumber *) numberOfCalls isCallerIdBlocked:(NSNumber *) isCallerIdBlocked;`](/documentation/Intents/INCallRecord/initWithIdentifier:dateCreated:callRecordType:callCapability:callDuration:unseen:participants:numberOfCalls:isCallerIdBlocked:)

Creates a call record with the details about the call.

### Identifying the Call

[`var identifier: String`](/documentation/Intents/INCallRecord/identifier)

A unique string that you can use to locate the call in your app.

### Identifying the Caller

[`var caller: INPerson?`](/documentation/Intents/INCallRecord/caller)

The person who participated in the call with the current user.

### Getting the Call Details

[`var callRecordType: INCallRecordType`](/documentation/Intents/INCallRecord/callRecordType)

The type of call that resulted from the attempt.

[`var callCapability: INCallCapability`](/documentation/Intents/INCallRecord/callCapability)

The audio and video capabilities of the call.

[`enum INCallCapability`](/documentation/Intents/INCallCapability)

Constants indicating the capabilities of the call.

[`var dateCreated: Date?`](/documentation/Intents/INCallRecord/dateCreated)

The date and time at which the call was initiated.

[`var callDuration: Double?`](/documentation/Intents/INCallRecord/callDuration-47iud)

The duration (measured in seconds) of the call.

[`var unseen: Bool?`](/documentation/Intents/INCallRecord/unseen-2m7sz)

A Boolean value indicating whether the user has seen the call.

[`var numberOfCalls: Int?`](/documentation/Intents/INCallRecord/numberOfCalls-r8kl)

The number of calls in the call record.

[`@property (nonatomic, copy, readonly, nullable) NSNumber * callDuration;`](/documentation/Intents/INCallRecord/callDuration-2d9u1)

The duration (measured in seconds) of the call.

[`@property (nonatomic, copy, readonly, nullable) NSNumber * unseen;`](/documentation/Intents/INCallRecord/unseen-8qab3)

A Boolean value indicating whether the user has seen the call.

[`@property (nonatomic, copy, readonly, nullable) NSNumber * numberOfCalls;`](/documentation/Intents/INCallRecord/numberOfCalls-7vv6o)

The number of calls in the call record.

[`var participants: [INPerson]?`](/documentation/Intents/INCallRecord/participants)

The recipient of the user’s call request.

[`@property (nonatomic, copy, readonly, nullable) NSNumber * isCallerIdBlocked;`](/documentation/Intents/INCallRecord/isCallerIdBlocked)

A Boolean value indicating if user’s callerID is showing during a call.

### Initializers

[`init?(coder: NSCoder)`](/documentation/Intents/INCallRecord/init(coder:))

## Relationships

### Inherits From

[`NSObject-swift.class`](/documentation/ObjectiveC/NSObject-swift.class)

### Conforms To

[`NSCoding`](/documentation/Foundation/NSCoding)

[`CustomStringConvertible`](/documentation/Swift/CustomStringConvertible)

[`NSObjectProtocol`](/documentation/ObjectiveC/NSObjectProtocol)

[`CustomDebugStringConvertible`](/documentation/Swift/CustomDebugStringConvertible)

[`NSSecureCoding`](/documentation/Foundation/NSSecureCoding)

[`NSCopying`](/documentation/Foundation/NSCopying)

[`CVarArg`](/documentation/Swift/CVarArg)

[`Equatable`](/documentation/Swift/Equatable)

[`Hashable`](/documentation/Swift/Hashable)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)