<!--
{
  "availability" : [
    "iOS: 3.0.0 - 18.0.0",
    "iPadOS: 3.0.0 - 18.0.0",
    "macCatalyst: 13.1.0 - 18.0.0",
    "macOS: 10.7.0 - 15.0.0",
    "tvOS: -",
    "visionOS: 1.0.0 - 2.0.0",
    "watchOS: 6.2.0 - 11.0.0"
  ],
  "documentType" : "symbol",
  "framework" : "StoreKit",
  "identifier" : "/documentation/StoreKit/SKRequest",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "StoreKit"
    ],
    "preciseIdentifier" : "c:objc(cs)SKRequest"
  },
  "title" : "SKRequest"
}
-->

# SKRequest

An abstract class that represents a request to the App Store.

```
class SKRequest
```

## Overview

To make a request, initialize a subclass of [`SKRequest`](/documentation/StoreKit/SKRequest)—such as [`SKProductsRequest`](/documentation/StoreKit/SKProductsRequest) or [`SKReceiptRefreshRequest`](/documentation/StoreKit/SKReceiptRefreshRequest)—set the [`delegate`](/documentation/StoreKit/SKRequest/delegate) property, and call the [`start()`](/documentation/StoreKit/SKRequest/start()) method.

## Topics

### Controlling the Request

[`start()`](/documentation/StoreKit/SKRequest/start())

Sends the request to the Apple App Store.

[`cancel()`](/documentation/StoreKit/SKRequest/cancel())

Cancels a previously started request.

### Accessing the Delegate

[`delegate`](/documentation/StoreKit/SKRequest/delegate)

The delegate of the request object.

[`SKRequestDelegate`](/documentation/StoreKit/SKRequestDelegate)

Common methods that are implemented by delegates for any subclass of the `SKRequest` abstract 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)