iOS

iOS SubscriptionGroups API

The SubscriptionGroups API from iOS — 6 operation(s) for subscriptiongroups.

OpenAPI Specification

ios-subscriptiongroups-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: App Store Connect AccessibilityDeclarations SubscriptionGroups 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: SubscriptionGroups
paths:
  /v1/subscriptionGroups:
    post:
      tags:
      - SubscriptionGroups
      operationId: subscriptionGroups_createInstance
      requestBody:
        description: SubscriptionGroup representation
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SubscriptionGroupCreateRequest'
        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 SubscriptionGroup
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriptionGroupResponse'
        '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 Subscription Groups
  /v1/subscriptionGroups/{id}:
    parameters:
    - name: id
      in: path
      description: the id of the requested resource
      schema:
        type: string
      style: simple
      required: true
    get:
      tags:
      - SubscriptionGroups
      operationId: subscriptionGroups_getInstance
      parameters:
      - 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[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[subscriptionGroupLocalizations]
        in: query
        description: the fields to include for returned resources of type subscriptionGroupLocalizations
        schema:
          type: array
          items:
            type: string
            enum:
            - name
            - customAppName
            - locale
            - state
            - subscriptionGroup
        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:
            - subscriptions
            - subscriptionGroupLocalizations
        style: form
        explode: false
        required: false
      - name: limit[subscriptionGroupLocalizations]
        in: query
        description: maximum number of related subscriptionGroupLocalizations returned (when they are included)
        schema:
          type: integer
          maximum: 50
        style: form
        required: false
      - name: limit[subscriptions]
        in: query
        description: maximum number of related subscriptions 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 SubscriptionGroup
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriptionGroupResponse'
        '429':
          description: Rate limit exceeded error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      summary: Get Subscription Groups
    patch:
      tags:
      - SubscriptionGroups
      operationId: subscriptionGroups_updateInstance
      requestBody:
        description: SubscriptionGroup representation
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SubscriptionGroupUpdateRequest'
        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 SubscriptionGroup
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriptionGroupResponse'
        '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 Subscription Groups
    delete:
      tags:
      - SubscriptionGroups
      operationId: subscriptionGroups_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 Subscription Groups
  /v1/subscriptionGroups/{id}/relationships/subscriptionGroupLocalizations:
    parameters:
    - name: id
      in: path
      description: the id of the requested resource
      schema:
        type: string
      style: simple
      required: true
    get:
      tags:
      - SubscriptionGroups
      operationId: subscriptionGroups_subscriptionGroupLocalizations_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/SubscriptionGroupSubscriptionGroupLocalizationsLinkagesResponse'
        '429':
          description: Rate limit exceeded error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      summary: List Related Subscription Groups / Subscription Group Localizations
  /v1/subscriptionGroups/{id}/subscriptionGroupLocalizations:
    parameters:
    - name: id
      in: path
      description: the id of the requested resource
      schema:
        type: string
      style: simple
      required: true
    get:
      tags:
      - SubscriptionGroups
      operationId: subscriptionGroups_subscriptionGroupLocalizations_getToManyRelated
      parameters:
      - name: fields[subscriptionGroupLocalizations]
        in: query
        description: the fields to include for returned resources of type subscriptionGroupLocalizations
        schema:
          type: array
          items:
            type: string
            enum:
            - name
            - customAppName
            - locale
            - state
            - subscriptionGroup
        style: form
        explode: 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
      - 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:
            - subscriptionGroup
        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 SubscriptionGroupLocalizations
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriptionGroupLocalizationsResponse'
        '429':
          description: Rate limit exceeded error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      summary: List Related Subscription Groups / Subscription Group Localizations
  /v1/subscriptionGroups/{id}/relationships/subscriptions:
    parameters:
    - name: id
      in: path
      description: the id of the requested resource
      schema:
        type: string
      style: simple
      required: true
    get:
      tags:
      - SubscriptionGroups
      operationId: subscriptionGroups_subscriptions_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/SubscriptionGroupSubscriptionsLinkagesResponse'
        '429':
          description: Rate limit exceeded error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      summary: List Related Subscription Groups / Subscriptions
  /v1/subscriptionGroups/{id}/subscriptions:
    parameters:
    - name: id
      in: path
      description: the id of the requested resource
      schema:
        type: string
      style: simple
      required: true
    get:
      tags:
      - SubscriptionGroups
      operationId: subscriptionGroups_subscriptions_getToManyRelated
      parameters:
      - name: filter[productId]
        in: query
        description: filter by attribute 'productId'
        schema:
          type: array
          items:
            type: string
        style: form
        explode: false
      - name: filter[name]
        in: query
        description: filter by attribute 'name'
        schema:
          type: array
          items:
            type: string
        style: form
        explode: false
      - name: filter[state]
        in: query
        description: filter by attribute 'state'
        schema:
          type: array
          items:
            type: string
            enum:
            - MISSING_METADATA
            - READY_TO_SUBMIT
            - WAITING_FOR_REVIEW
            - IN_REVIEW
            - DEVELOPER_ACTION_NEEDED
            - PENDING_BINARY_APPROVAL
            - APPROVED
            - DEVELOPER_REMOVED_FROM_SALE
            - REMOVED_FROM_SALE
            - REJECTED
        style: form
        explode: false
      - name: sort
        in: query
        description: comma-separated list of sort expressions; resources will be sorted as specified
        schema:
          type: array
          items:
            type: string
            enum:
            - name
            - -name
        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[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
      - 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[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
      - 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[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
      - 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
      - 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
      - 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
      - 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
      - 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
      - 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: 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:
            - subscriptionLocalizations
            - appStoreReviewScreenshot
            - group
            - introductoryOffers
            - promotionalOffers
            - offerCodes
            - prices
            - promotedPurchase
            - subscriptionAvailability
            - winBackOffers
            - images
        style: form
        explode: false
      - name: limit[subscriptionLocalizations]
        in: query
        description: maximum number of related subscriptionLocalizations returned (when they are included)
        schema:
          type: integer
          maximum: 50
        style: form
      - name: limit[introductoryOffers]
        in: query
        description: maximum number of related introductoryOffers returned (when they are included)
        schema:
          type: integer
          maximum: 50
        style: form
      - name: limit[promotionalOffers]
        in: query
        description: maximum number of related promotionalOffers returned (when they are included)
        schema:
          type: integer
          maximum: 50
        style: form
      - name: limit[offerCodes]
        in: query
        description: maximum number of related offerCodes returned (when they are included)
        schema:
          type: integer
          maximum: 50
        style: form
      - name: limit[prices]
        in: query
        description: maximum number of related prices returned (when they are included)
        schema:
          type: integer
          maximum: 50
        style: form
      - name: limit[winBackOffers]
        in: query
        description: maximum number of related winBackOffers returned (when they are included)
        schema:
          type: integer
          maximum: 50
        style: form
      - name: limit[images]
        in: query
        description: maximum number of related images returned (when they are included)
        schema:
          type: integer
          maximum: 50
        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 Subscriptions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriptionsResponse'
        '429':
          description: Rate limit exceeded error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      summary: List Related Subscription Groups / Subscriptions
components:
  schemas:
    SubscriptionPrice:
      type: object
      title: SubscriptionPrice
      properties:
        type:
          type: string
          enum:
          - subscriptionPrices
        id:
          type: string
        attributes:
          type: object
          properties:
            startDate:
              type: string
              format: date
            preserved:
              type: boolean
        relationships:
          type: object
          properties:
            territory:
              type: object
              properties:
                data:
                  type: object
                  properties:
                    type:
                      type: string
                      enum:
                      - territories
                    id:
                      type: string
                  required:
                  - id
                  - type
            subscriptionPricePoint:
              type: object
              properties:
                data:
                  type: object
                  properties:
                    type:
                      type: string
                      enum:
                      - subscriptionPricePoints
                    id:
                      type: string
                  required:
                  - id
                  - type
        links:
          $ref: '#/components/schemas/ResourceLinks'
      required:
      - id
      - type
    SubscriptionAppStoreReviewScreenshot:
      type: object
      title: SubscriptionAppStoreReviewScreenshot
      properties:
        type:
          type: string
          enum:
          - subscriptionAppStoreReviewScreenshots
        id:
          type: string
        attributes:
          type: object
          properties:
            fileSize:
              type: integer
            fileName:
              type: string
            sourceFileChecksum:
              type: string
            imageAsset:
              $ref: '#/components/schemas/ImageAsset'
            assetToken:
              type: string
            assetType:
              type: string
            uploadOperations:
              type: array
              items:
                $ref: '#/components/schemas/UploadOperation'
            assetDeliveryState:
              $ref: '#/components/schemas/AppMediaAssetState'
        relationships:
          type: object
          properties:
            subscription:
              type: object
              properties:
                data:
                  type: object
                  properties:
                    type:
                      type: string
                      enum:
                      - subscriptions
                    id:
                      type: string
                  required:
                  - id
                  - type
        links:
          $ref: '#/components/schemas/ResourceLinks'
      required:
      - id
      - type
    ImageAsset:
      type: object
      properties:
        templateUrl:
          type: string
        width:
          type: integer
        height:
          type: integer
    PagedDocumentLinks:
      type: object
      properties:
        self:
          type: string
          format: uri-reference
        first:
          type: string
          format: uri-reference
        next:
          type: string
          format: uri-reference
      required:
      - self
    SubscriptionOfferMode:
      type: string
      enum:
      - PAY_AS_YOU_GO
      - PAY_UP_FRONT
      - FREE_TRIAL
    SubscriptionOfferDuration:
      type: string
      enum:
      - THREE_DAYS
      - ONE_WEEK
      - TWO_WEEKS
      - ONE_MONTH
      - TWO_MONTHS
      - THREE_MONTHS
      - SIX_MONTHS
      - ONE_YEAR
    SubscriptionGroupCreateRequest:
      type: object
      title: SubscriptionGroupCreateRequest
      properties:
        data:
          type: object
          properties:
            type:
              type: string
              enum:
              - subscriptionGroups
            attributes:
              type: object
              properties:
                referenceName:
                  type: string
              required:
              - referenceName
            relationships:
              type: object
              properties:
                app:
                  type: object
                  properties:
                    data:
                      type: object
                      properties:
                        type:
                          type: string
                          enum:
                          - apps
                   

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