iOS

iOS Subscriptions API

The Subscriptions API from iOS — 24 operation(s) for subscriptions.

OpenAPI Specification

ios-subscriptions-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: App Store Connect AccessibilityDeclarations Subscriptions API
  version: 4.3.1
  x-platforms:
    app_store_connect_api: App Store Connect API
  description: The App Store Connect API is the standards-based REST API Apple provides to automate tasks across App Store Connect, Xcode, and Certificates, Identifiers & Profiles. It covers apps, builds, TestFlight, in-app purchases, subscriptions, Game Center, Xcode Cloud, provisioning, pricing and availability, and the full reporting surface (analytics, sales and trends, financial reports, power and performance). This spec is the official OpenAPI 3.0 document published by Apple at https://developer.apple.com/app-store-connect/api/ — mirrored here unmodified except for title-cased operation summaries.
servers:
- url: https://api.appstoreconnect.apple.com/
security:
- itc-bearer-token: []
tags:
- name: Subscriptions
paths:
  /v1/subscriptions:
    post:
      tags:
      - Subscriptions
      operationId: subscriptions_createInstance
      requestBody:
        description: Subscription representation
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SubscriptionCreateRequest'
        required: true
      responses:
        '400':
          description: Parameter error(s)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized error(s)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Unprocessable request entity error(s)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '201':
          description: Single Subscription
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriptionResponse'
        '409':
          description: Request entity error(s)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: Rate limit exceeded error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      summary: Create Subscriptions
  /v1/subscriptions/{id}:
    parameters:
    - name: id
      in: path
      description: the id of the requested resource
      schema:
        type: string
      style: simple
      required: true
    get:
      tags:
      - Subscriptions
      operationId: subscriptions_getInstance
      parameters:
      - name: fields[subscriptions]
        in: query
        description: the fields to include for returned resources of type subscriptions
        schema:
          type: array
          items:
            type: string
            enum:
            - name
            - productId
            - familySharable
            - state
            - subscriptionPeriod
            - reviewNote
            - groupLevel
            - subscriptionLocalizations
            - appStoreReviewScreenshot
            - group
            - introductoryOffers
            - promotionalOffers
            - offerCodes
            - prices
            - pricePoints
            - promotedPurchase
            - subscriptionAvailability
            - winBackOffers
            - images
        style: form
        explode: false
        required: false
      - name: fields[subscriptionLocalizations]
        in: query
        description: the fields to include for returned resources of type subscriptionLocalizations
        schema:
          type: array
          items:
            type: string
            enum:
            - name
            - locale
            - description
            - state
            - subscription
        style: form
        explode: false
        required: false
      - name: fields[subscriptionAppStoreReviewScreenshots]
        in: query
        description: the fields to include for returned resources of type subscriptionAppStoreReviewScreenshots
        schema:
          type: array
          items:
            type: string
            enum:
            - fileSize
            - fileName
            - sourceFileChecksum
            - imageAsset
            - assetToken
            - assetType
            - uploadOperations
            - assetDeliveryState
            - subscription
        style: form
        explode: false
        required: false
      - name: fields[subscriptionGroups]
        in: query
        description: the fields to include for returned resources of type subscriptionGroups
        schema:
          type: array
          items:
            type: string
            enum:
            - referenceName
            - subscriptions
            - subscriptionGroupLocalizations
        style: form
        explode: false
        required: false
      - name: fields[subscriptionIntroductoryOffers]
        in: query
        description: the fields to include for returned resources of type subscriptionIntroductoryOffers
        schema:
          type: array
          items:
            type: string
            enum:
            - startDate
            - endDate
            - duration
            - offerMode
            - numberOfPeriods
            - subscription
            - territory
            - subscriptionPricePoint
        style: form
        explode: false
        required: false
      - name: fields[subscriptionPromotionalOffers]
        in: query
        description: the fields to include for returned resources of type subscriptionPromotionalOffers
        schema:
          type: array
          items:
            type: string
            enum:
            - duration
            - name
            - numberOfPeriods
            - offerCode
            - offerMode
            - subscription
            - prices
        style: form
        explode: false
        required: false
      - name: fields[subscriptionOfferCodes]
        in: query
        description: the fields to include for returned resources of type subscriptionOfferCodes
        schema:
          type: array
          items:
            type: string
            enum:
            - name
            - customerEligibilities
            - offerEligibility
            - duration
            - offerMode
            - numberOfPeriods
            - totalNumberOfCodes
            - productionCodeCount
            - sandboxCodeCount
            - active
            - autoRenewEnabled
            - subscription
            - oneTimeUseCodes
            - customCodes
            - prices
        style: form
        explode: false
        required: false
      - name: fields[subscriptionPrices]
        in: query
        description: the fields to include for returned resources of type subscriptionPrices
        schema:
          type: array
          items:
            type: string
            enum:
            - startDate
            - preserved
            - territory
            - subscriptionPricePoint
        style: form
        explode: false
        required: false
      - name: fields[promotedPurchases]
        in: query
        description: the fields to include for returned resources of type promotedPurchases
        schema:
          type: array
          items:
            type: string
            enum:
            - visibleForAllUsers
            - enabled
            - state
            - inAppPurchaseV2
            - subscription
        style: form
        explode: false
        required: false
      - name: fields[subscriptionAvailabilities]
        in: query
        description: the fields to include for returned resources of type subscriptionAvailabilities
        schema:
          type: array
          items:
            type: string
            enum:
            - availableInNewTerritories
            - availableTerritories
        style: form
        explode: false
        required: false
      - name: fields[winBackOffers]
        in: query
        description: the fields to include for returned resources of type winBackOffers
        schema:
          type: array
          items:
            type: string
            enum:
            - referenceName
            - offerId
            - duration
            - offerMode
            - periodCount
            - customerEligibilityPaidSubscriptionDurationInMonths
            - customerEligibilityTimeSinceLastSubscribedInMonths
            - customerEligibilityWaitBetweenOffersInMonths
            - startDate
            - endDate
            - priority
            - promotionIntent
            - prices
        style: form
        explode: false
        required: false
      - name: fields[subscriptionImages]
        in: query
        description: the fields to include for returned resources of type subscriptionImages
        schema:
          type: array
          items:
            type: string
            enum:
            - fileSize
            - fileName
            - sourceFileChecksum
            - assetToken
            - imageAsset
            - uploadOperations
            - state
            - subscription
        style: form
        explode: false
        required: false
      - name: include
        in: query
        description: comma-separated list of relationships to include
        schema:
          type: array
          items:
            type: string
            enum:
            - subscriptionLocalizations
            - appStoreReviewScreenshot
            - group
            - introductoryOffers
            - promotionalOffers
            - offerCodes
            - prices
            - promotedPurchase
            - subscriptionAvailability
            - winBackOffers
            - images
        style: form
        explode: false
        required: false
      - name: limit[images]
        in: query
        description: maximum number of related images returned (when they are included)
        schema:
          type: integer
          maximum: 50
        style: form
        required: false
      - name: limit[introductoryOffers]
        in: query
        description: maximum number of related introductoryOffers returned (when they are included)
        schema:
          type: integer
          maximum: 50
        style: form
        required: false
      - name: limit[offerCodes]
        in: query
        description: maximum number of related offerCodes returned (when they are included)
        schema:
          type: integer
          maximum: 50
        style: form
        required: false
      - name: limit[prices]
        in: query
        description: maximum number of related prices returned (when they are included)
        schema:
          type: integer
          maximum: 50
        style: form
        required: false
      - name: limit[promotionalOffers]
        in: query
        description: maximum number of related promotionalOffers returned (when they are included)
        schema:
          type: integer
          maximum: 50
        style: form
        required: false
      - name: limit[subscriptionLocalizations]
        in: query
        description: maximum number of related subscriptionLocalizations returned (when they are included)
        schema:
          type: integer
          maximum: 50
        style: form
        required: false
      - name: limit[winBackOffers]
        in: query
        description: maximum number of related winBackOffers returned (when they are included)
        schema:
          type: integer
          maximum: 50
        style: form
        required: false
      responses:
        '400':
          description: Parameter error(s)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized error(s)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not found error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '200':
          description: Single Subscription
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriptionResponse'
        '429':
          description: Rate limit exceeded error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      summary: Get Subscriptions
    patch:
      tags:
      - Subscriptions
      operationId: subscriptions_updateInstance
      requestBody:
        description: Subscription representation
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SubscriptionUpdateRequest'
        required: true
      responses:
        '400':
          description: Parameter error(s)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized error(s)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not found error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Unprocessable request entity error(s)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '200':
          description: Single Subscription
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriptionResponse'
        '409':
          description: Request entity error(s)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: Rate limit exceeded error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      summary: Update Subscriptions
    delete:
      tags:
      - Subscriptions
      operationId: subscriptions_deleteInstance
      responses:
        '400':
          description: Parameter error(s)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized error(s)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not found error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '204':
          description: Success (no content)
        '429':
          description: Rate limit exceeded error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      summary: Delete Subscriptions
  /v1/subscriptions/{id}/relationships/appStoreReviewScreenshot:
    parameters:
    - name: id
      in: path
      description: the id of the requested resource
      schema:
        type: string
      style: simple
      required: true
    get:
      tags:
      - Subscriptions
      operationId: subscriptions_appStoreReviewScreenshot_getToOneRelationship
      parameters: []
      responses:
        '400':
          description: Parameter error(s)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized error(s)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not found error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '200':
          description: Related linkage
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriptionAppStoreReviewScreenshotLinkageResponse'
        '429':
          description: Rate limit exceeded error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      summary: Get Related Subscriptions / App Store Review Screenshot
  /v1/subscriptions/{id}/appStoreReviewScreenshot:
    parameters:
    - name: id
      in: path
      description: the id of the requested resource
      schema:
        type: string
      style: simple
      required: true
    get:
      tags:
      - Subscriptions
      operationId: subscriptions_appStoreReviewScreenshot_getToOneRelated
      parameters:
      - name: fields[subscriptionAppStoreReviewScreenshots]
        in: query
        description: the fields to include for returned resources of type subscriptionAppStoreReviewScreenshots
        schema:
          type: array
          items:
            type: string
            enum:
            - fileSize
            - fileName
            - sourceFileChecksum
            - imageAsset
            - assetToken
            - assetType
            - uploadOperations
            - assetDeliveryState
            - subscription
        style: form
        explode: false
      - name: fields[subscriptions]
        in: query
        description: the fields to include for returned resources of type subscriptions
        schema:
          type: array
          items:
            type: string
            enum:
            - name
            - productId
            - familySharable
            - state
            - subscriptionPeriod
            - reviewNote
            - groupLevel
            - subscriptionLocalizations
            - appStoreReviewScreenshot
            - group
            - introductoryOffers
            - promotionalOffers
            - offerCodes
            - prices
            - pricePoints
            - promotedPurchase
            - subscriptionAvailability
            - winBackOffers
            - images
        style: form
        explode: false
      - name: include
        in: query
        description: comma-separated list of relationships to include
        schema:
          type: array
          items:
            type: string
            enum:
            - subscription
        style: form
        explode: false
      responses:
        '400':
          description: Parameter error(s)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized error(s)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not found error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '200':
          description: Single SubscriptionAppStoreReviewScreenshot
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriptionAppStoreReviewScreenshotResponse'
        '429':
          description: Rate limit exceeded error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      summary: Get Related Subscriptions / App Store Review Screenshot
  /v1/subscriptions/{id}/relationships/images:
    parameters:
    - name: id
      in: path
      description: the id of the requested resource
      schema:
        type: string
      style: simple
      required: true
    get:
      tags:
      - Subscriptions
      operationId: subscriptions_images_getToManyRelationship
      parameters:
      - name: limit
        in: query
        description: maximum resources per page
        schema:
          type: integer
          maximum: 200
        style: form
      responses:
        '400':
          description: Parameter error(s)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized error(s)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not found error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '200':
          description: List of related linkages
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriptionImagesLinkagesResponse'
        '429':
          description: Rate limit exceeded error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      summary: List Related Subscriptions / Images
  /v1/subscriptions/{id}/images:
    parameters:
    - name: id
      in: path
      description: the id of the requested resource
      schema:
        type: string
      style: simple
      required: true
    get:
      tags:
      - Subscriptions
      operationId: subscriptions_images_getToManyRelated
      parameters:
      - name: fields[subscriptionImages]
        in: query
        description: the fields to include for returned resources of type subscriptionImages
        schema:
          type: array
          items:
            type: string
            enum:
            - fileSize
            - fileName
            - sourceFileChecksum
            - assetToken
            - imageAsset
            - uploadOperations
            - state
            - subscription
        style: form
        explode: false
      - name: fields[subscriptions]
        in: query
        description: the fields to include for returned resources of type subscriptions
        schema:
          type: array
          items:
            type: string
            enum:
            - name
            - productId
            - familySharable
            - state
            - subscriptionPeriod
            - reviewNote
            - groupLevel
            - subscriptionLocalizations
            - appStoreReviewScreenshot
            - group
            - introductoryOffers
            - promotionalOffers
            - offerCodes
            - prices
            - pricePoints
            - promotedPurchase
            - subscriptionAvailability
            - winBackOffers
            - images
        style: form
        explode: false
      - name: limit
        in: query
        description: maximum resources per page
        schema:
          type: integer
          maximum: 200
        style: form
      - name: include
        in: query
        description: comma-separated list of relationships to include
        schema:
          type: array
          items:
            type: string
            enum:
            - subscription
        style: form
        explode: false
      responses:
        '400':
          description: Parameter error(s)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized error(s)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not found error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '200':
          description: List of SubscriptionImages
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriptionImagesResponse'
        '429':
          description: Rate limit exceeded error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      summary: List Related Subscriptions / Images
  /v1/subscriptions/{id}/relationships/introductoryOffers:
    parameters:
    - name: id
      in: path
      description: the id of the requested resource
      schema:
        type: string
      style: simple
      required: true
    get:
      tags:
      - Subscriptions
      operationId: subscriptions_introductoryOffers_getToManyRelationship
      parameters:
      - name: limit
        in: query
        description: maximum resources per page
        schema:
          type: integer
          maximum: 200
        style: form
      responses:
        '400':
          description: Parameter error(s)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized error(s)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not found error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '200':
          description: List of related linkages
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriptionIntroductoryOffersLinkagesResponse'
        '429':
          description: Rate limit exceeded error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      summary: List Related Subscriptions / Introductory Offers
    delete:
      tags:
      - Subscriptions
      operationId: subscriptions_introductoryOffers_deleteToManyRelationship
      requestBody:
        description: List of related linkages
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SubscriptionIntroductoryOffersLinkagesRequest'
        required: true
      responses:
        '400':
          description: Parameter error(s)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized error(s)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not found error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Unprocessable request entity error(s)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '409':
          description: Request entity error(s)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '204':
          description: Success (no content)
        '429':
          description: Rate limit exceeded error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      summary: Remove Related Subscriptions / Introductory Offers
  /v1/subscriptions/{id}/introductoryOffers:
    parameters:
    - name: id
      in: path
      description: the id of the requested resource
      schema:
        type: string
      style: simple
      required: true
    get:
      tags:
      - Subscriptions
      operationId: subscriptions_introductoryOffers_getToManyRelated
      parameters:
      - name: filter[territory]
        in: query
        description: filter by id(s) of related 'territory'
        schema:
          type: array
          items:
            type: string
        style: form
        explode: false
      - name: fields[subscriptionIntroductoryOffers]
        in: query
        description: the fields to include for returned resources of type subscriptionIntroductoryOffers
        schema:
          type: array
          items:
            type: string
            enum:
            - startDate
            - endDate
            - duration
            - offerMode
            - numberOfPeriods
            - subscription
            - territory
            - subscriptionPricePoint
        style: form
        explode: false
      - name: fields[subscriptions]
        in: query
        description: the fields to include for returned resources of type subscriptions
        schema:
          type: array
          items:
            type: string
            enum:
            - name
            - productId
            - familySharable
            - state
            - subscriptionPeriod
            - reviewNote
            - groupLevel
            - subscriptionLocalizations
            - appStoreReviewScreenshot
            - group
            - introductoryOffers
            - promotionalOffers
            - offerCodes
            - prices
            - pricePoints
            - promotedPurchase
            - subscriptionAvailability
            - winBackOffers
            - images
        style: form
        explode: false
      - name: fields[territories]
        in: query
        description: the fields to include for returned resources of type territories
        schema:
          type: array
          items:
            type: string
            enum:
            - currency
        style: form
        explode: false
      - name: fields[subscriptionPricePoints]
        in: query
        description: the fields to include for returned resources of type subscriptionPricePoints
        schema:
          type: array
          items:
            type: string
            enum:
            - customerPrice
            - proceeds
            - proceedsYear2
            - territory
            - equalizations
        style: form
        explode: false
      - name: limit
        in: query
        description: maximum resources per page
        schema:
          type: integer
          maximum: 200
        style: form
      - name: include
        in: query
        description: comma-separated list of relationships to include
        schema:
      

# --- truncated at 32 KB (152 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/ios/refs/heads/main/openapi/ios-subscriptions-api-openapi.yml