<!--
{
  "availability" : [
    "iOS: 8.0.0 -",
    "iPadOS: 8.0.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "HomeKit",
  "identifier" : "/documentation/HomeKit/HMAddAccessoryRequest",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "HomeKit"
    ],
    "preciseIdentifier" : "c:objc(cs)HMAddAccessoryRequest"
  },
  "title" : "HMAddAccessoryRequest"
}
-->

# HMAddAccessoryRequest

A request to add an accessory to a particular home.

```
class HMAddAccessoryRequest
```

## Overview

An [`HMAddAccessoryRequest`](/documentation/HomeKit/HMAddAccessoryRequest) instance describes an accessory that your app should add to a home. HomeKit calls your home manager delegate’s [`homeManager(_:didReceiveAddAccessoryRequest:)`](/documentation/HomeKit/HMHomeManagerDelegate/homeManager(_:didReceiveAddAccessoryRequest:)) method with a request.

Use the request’s [`accessoryName`](/documentation/HomeKit/HMAddAccessoryRequest/accessoryName) and [`accessoryCategory`](/documentation/HomeKit/HMAddAccessoryRequest/accessoryCategory) properties to obtain a token by negotiating with the accessory outside of HomeKit. If the [`requiresSetupPayloadURL`](/documentation/HomeKit/HMAddAccessoryRequest/requiresSetupPayloadURL) property is `true`, also prepare a setup payload URL. Then create a setup payload with either the [`makePayload(url:ownershipToken:)`](/documentation/HomeKit/HMAddAccessoryRequest/makePayload(url:ownershipToken:)) or [`makePayload(ownershipToken:)`](/documentation/HomeKit/HMAddAccessoryRequest/makePayload(ownershipToken:)) method. Complete the request by calling the [`addAndSetupAccessories(with:completionHandler:)`](/documentation/HomeKit/HMHome/addAndSetupAccessories(with:completionHandler:)) method on the request’s [`home`](/documentation/HomeKit/HMAddAccessoryRequest/home) property.

## Topics

### Characterizing the Request

[`home`](/documentation/HomeKit/HMAddAccessoryRequest/home)

The home to which to add the accessory.

[`accessoryCategory`](/documentation/HomeKit/HMAddAccessoryRequest/accessoryCategory)

The category of the accessory to add.

[`accessoryName`](/documentation/HomeKit/HMAddAccessoryRequest/accessoryName)

The name of the accessory to add.

[`requiresOwnershipToken`](/documentation/HomeKit/HMAddAccessoryRequest/requiresOwnershipToken)

An indication of whether the add operation requires an ownership token.

[`requiresSetupPayloadURL`](/documentation/HomeKit/HMAddAccessoryRequest/requiresSetupPayloadURL)

An indication of whether the add operation requires a setup payload URL.

### Creating a Payload

[`-  payloadWithOwnershipToken:`](/documentation/HomeKit/HMAddAccessoryRequest/makePayload(ownershipToken:))

Builds an accessory setup payload with the given ownership token.

[`-  payloadWithURL:ownershipToken:`](/documentation/HomeKit/HMAddAccessoryRequest/makePayload(url:ownershipToken:))

Builds an accessory setup payload with the given setup payload URL and ownership token.

## Relationships

### Conforms To

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

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

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

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

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

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

### Inherits From

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

---

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)