<!--
{
  "documentType" : "article",
  "framework" : "CloudKitJS",
  "identifier" : "/documentation/CloudKitJS/cloudkit-js-data-types",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "CloudKit JS Data Types"
}
-->

# CloudKit JS Data Types

This document describes the CloudKit JS data types that are not described in individual class reference documents.

## Topics

### Dictionaries

[`dictionary CloudKit.CloudKitConfig {
	CloudKit.ContainerConfig[] containers;
	Object services;
};`](/documentation/CloudKitJS/CloudKit.CloudKitConfig)

Dictionary used to configure the CloudKit environment.

[`dictionary CloudKit.ContainerConfig {
	String containerIdentifier;
	String environment;
	String apnsEnvironment;
	Object apiTokenAuth;
	Object serverToServerKeyAuth;
};`](/documentation/CloudKitJS/CloudKit.ContainerConfig)

A configuration for a container.

[`dictionary CloudKit.NameComponents {
	String givenName;
	String familyName;
};`](/documentation/CloudKitJS/CloudKit.NameComponents)

The parts of the user’s name.

[`dictionary CloudKit.NotificationInfo {
	String alertBody;
	String alertLocalizationKey;
	String[] alertLocalizationArgs;
	String alertActionLocalizationKey;
	String alertLaunchImage;
	String soundName;
	Boolean shouldBadge;
	Boolean shouldSendContentAvailable;
	String[] additionalFields;
	String category;
};`](/documentation/CloudKitJS/CloudKit.NotificationInfo)

Information about a notification.

[`dictionary CloudKit.Query {
	String recordType;
	Object[] filterBy;
	Object[] sortBy;
};`](/documentation/CloudKitJS/CloudKit.Query)

Search parameters to use when fetching records from the database.

[`dictionary CloudKit.Record {
	Object created;
	Object modified;
	String recordType;
	String recordName;
	String recordChangeTag;
	Boolean deleted;
	Boolean createShortGUID;
	String shortGUID;
	CKReference parent;
	CKReference share;
	Object<string, CloudKit.RecordField> fields;
};`](/documentation/CloudKitJS/CloudKit.Record)

A record in the database.

[`dictionary CloudKit.RecordField {
	String type;
	Object value;
};`](/documentation/CloudKitJS/CloudKit.RecordField)

A field value of a record.

[`dictionary CloudKit.RecordInfo {
	CloudKit.Record rootRecord;
	CloudKit.Share share;
};`](/documentation/CloudKitJS/CloudKit.RecordInfo)

Encapsulates the results of fetching information about a record.

[`dictionary CloudKit.RecordZone {
	CloudKit.ZoneID zoneID;
};`](/documentation/CloudKitJS/CloudKit.RecordZone)

Represents a record zone.

[`dictionary CloudKit.RecordZoneChanges {
	CloudKit.ZoneID zoneID;
	Boolean resultsLimit;
	String[] desiredKeys;
	String[] desiredRecordTypes;
	Boolean moreComing;
	String syncToken;
	CloudKit.Record[] records;
	CloudKit.CKError[] errors;
};`](/documentation/CloudKitJS/CloudKit.RecordZoneChanges)

Represents the changes in a record zone.

[`dictionary CloudKit.RecordZoneChangesOptions {
	CloudKit.ZoneID zoneID;
	String[] desiredKeys;
	String[] desiredRecordTypes;
	String syncToken;
};`](/documentation/CloudKitJS/CloudKit.RecordZoneChangesOptions)

Options about fetching changes in a record zone.

[`dictionary CloudKit.Share {
	String recordType;
	CloudKit.ShareParticipantPermission publicPermission;
	CloudKit.ShareParticipant[] participants;
};`](/documentation/CloudKitJS/CloudKit.Share)

Represents a shared record.

[`dictionary CloudKit.ShareParticipant {
	CloudKit.ShareParticipantPermission permission;
	CloudKit.ShareParticipantAcceptanceStatus acceptanceStatus;
	CloudKit.ShareParticipantType type;
};`](/documentation/CloudKitJS/CloudKit.ShareParticipant)

Represents a user who accepted a shared record.

[`dictionary CloudKit.SharingUIResult {
	CloudKit.Share share;
};`](/documentation/CloudKitJS/CloudKit.SharingUIResult)

Represents the results of sharing a record with other users.

[`dictionary CloudKit.Subscription {
	String subscriptionType;
	String subscriptionID;
	CloudKit.ZoneID zoneID;
	CloudKit.NotificationInfo notificationInfo;
	Boolean zoneWide;
	String[] firesOn;
	Boolean firesOnce;
	Query query;
};`](/documentation/CloudKitJS/CloudKit.Subscription)

A subscription, which is a persistent query on the server that tracks the creation, deletion, and modification of records.

[`dictionary CloudKit.UserIdentity {
	CloudKit.NameComponents nameComponents;
	String userRecordName;
	CloudKit.UserLookupInfo lookupInfo;
};`](/documentation/CloudKitJS/CloudKit.UserIdentity)

Information to identify a user.

[`dictionary CloudKit.UserLookupInfo {
	String userRecordName;
	String emailAddress;
	String phoneNumber;
};`](/documentation/CloudKitJS/CloudKit.UserLookupInfo)

Information that can be used to fetch a user.

[`dictionary CloudKit.ZoneID {
	String zoneName;
};`](/documentation/CloudKitJS/CloudKit.ZoneID)

An identifier for a zone, which is an area in a database for organizing related records.



---

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)