iOS

iOS SubscriptionOfferCodes API

The SubscriptionOfferCodes API from iOS — 8 operation(s) for subscriptionoffercodes.

Operations 9

POST /v1/subscriptionOfferCodes Create Subscription Offer Codes #
GET /v1/subscriptionOfferCodes/{id} Get Subscription Offer Codes #
PATCH /v1/subscriptionOfferCodes/{id} Update Subscription Offer Codes #
GET /v1/subscriptionOfferCodes/{id}/relationships/customCodes List Related Subscription Offer Codes / Custom Codes #
GET /v1/subscriptionOfferCodes/{id}/customCodes List Related Subscription Offer Codes / Custom Codes #
GET /v1/subscriptionOfferCodes/{id}/relationships/oneTimeUseCodes List Related Subscription Offer Codes / One Time Use Codes #
GET /v1/subscriptionOfferCodes/{id}/oneTimeUseCodes List Related Subscription Offer Codes / One Time Use Codes #
GET /v1/subscriptionOfferCodes/{id}/relationships/prices List Related Subscription Offer Codes / Prices #
GET /v1/subscriptionOfferCodes/{id}/prices List Related Subscription Offer Codes / Prices #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/ios-subscriptionoffercodes-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

ios-subscriptionoffercodes-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: App Store Connect AccessibilityDeclarations Subscription Offer Codes 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: SubscriptionOfferCodes
paths:
  /v1/subscriptionOfferCodes:
    post:
      tags:
      - SubscriptionOfferCodes
      operationId: subscriptionOfferCodes_createInstance
      requestBody:
        description: SubscriptionOfferCode representation
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SubscriptionOfferCodeCreateRequest'
        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 SubscriptionOfferCode
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriptionOfferCodeResponse'
        '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 Offer Codes
  /v1/subscriptionOfferCodes/{id}:
    parameters:
    - name: id
      in: path
      description: the id of the requested resource
      schema:
        type: string
      style: simple
      required: true
    get:
      tags:
      - SubscriptionOfferCodes
      operationId: subscriptionOfferCodes_getInstance
      parameters:
      - 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[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[subscriptionOfferCodeOneTimeUseCodes]
        in: query
        description: the fields to include for returned resources of type subscriptionOfferCodeOneTimeUseCodes
        schema:
          type: array
          items:
            type: string
            enum:
            - numberOfCodes
            - createdDate
            - expirationDate
            - active
            - environment
            - offerCode
            - values
        style: form
        explode: false
        required: false
      - name: fields[subscriptionOfferCodeCustomCodes]
        in: query
        description: the fields to include for returned resources of type subscriptionOfferCodeCustomCodes
        schema:
          type: array
          items:
            type: string
            enum:
            - customCode
            - numberOfCodes
            - createdDate
            - expirationDate
            - active
            - offerCode
        style: form
        explode: false
        required: false
      - name: fields[subscriptionOfferCodePrices]
        in: query
        description: the fields to include for returned resources of type subscriptionOfferCodePrices
        schema:
          type: array
          items:
            type: string
            enum:
            - territory
            - subscriptionPricePoint
        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:
            - subscription
            - oneTimeUseCodes
            - customCodes
            - prices
        style: form
        explode: false
        required: false
      - name: limit[customCodes]
        in: query
        description: maximum number of related customCodes returned (when they are included)
        schema:
          type: integer
          maximum: 50
        style: form
        required: false
      - name: limit[oneTimeUseCodes]
        in: query
        description: maximum number of related oneTimeUseCodes 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
      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 SubscriptionOfferCode
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriptionOfferCodeResponse'
        '429':
          description: Rate limit exceeded error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      summary: Get Subscription Offer Codes
    patch:
      tags:
      - SubscriptionOfferCodes
      operationId: subscriptionOfferCodes_updateInstance
      requestBody:
        description: SubscriptionOfferCode representation
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SubscriptionOfferCodeUpdateRequest'
        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 SubscriptionOfferCode
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriptionOfferCodeResponse'
        '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 Offer Codes
  /v1/subscriptionOfferCodes/{id}/relationships/customCodes:
    parameters:
    - name: id
      in: path
      description: the id of the requested resource
      schema:
        type: string
      style: simple
      required: true
    get:
      tags:
      - SubscriptionOfferCodes
      operationId: subscriptionOfferCodes_customCodes_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/SubscriptionOfferCodeCustomCodesLinkagesResponse'
        '429':
          description: Rate limit exceeded error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      summary: List Related Subscription Offer Codes / Custom Codes
  /v1/subscriptionOfferCodes/{id}/customCodes:
    parameters:
    - name: id
      in: path
      description: the id of the requested resource
      schema:
        type: string
      style: simple
      required: true
    get:
      tags:
      - SubscriptionOfferCodes
      operationId: subscriptionOfferCodes_customCodes_getToManyRelated
      parameters:
      - name: fields[subscriptionOfferCodeCustomCodes]
        in: query
        description: the fields to include for returned resources of type subscriptionOfferCodeCustomCodes
        schema:
          type: array
          items:
            type: string
            enum:
            - customCode
            - numberOfCodes
            - createdDate
            - expirationDate
            - active
            - offerCode
        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: 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:
            - offerCode
        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 SubscriptionOfferCodeCustomCodes
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriptionOfferCodeCustomCodesResponse'
        '429':
          description: Rate limit exceeded error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      summary: List Related Subscription Offer Codes / Custom Codes
  /v1/subscriptionOfferCodes/{id}/relationships/oneTimeUseCodes:
    parameters:
    - name: id
      in: path
      description: the id of the requested resource
      schema:
        type: string
      style: simple
      required: true
    get:
      tags:
      - SubscriptionOfferCodes
      operationId: subscriptionOfferCodes_oneTimeUseCodes_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/SubscriptionOfferCodeOneTimeUseCodesLinkagesResponse'
        '429':
          description: Rate limit exceeded error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      summary: List Related Subscription Offer Codes / One Time Use Codes
  /v1/subscriptionOfferCodes/{id}/oneTimeUseCodes:
    parameters:
    - name: id
      in: path
      description: the id of the requested resource
      schema:
        type: string
      style: simple
      required: true
    get:
      tags:
      - SubscriptionOfferCodes
      operationId: subscriptionOfferCodes_oneTimeUseCodes_getToManyRelated
      parameters:
      - name: fields[subscriptionOfferCodeOneTimeUseCodes]
        in: query
        description: the fields to include for returned resources of type subscriptionOfferCodeOneTimeUseCodes
        schema:
          type: array
          items:
            type: string
            enum:
            - numberOfCodes
            - createdDate
            - expirationDate
            - active
            - environment
            - offerCode
            - values
        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: 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:
            - offerCode
        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 SubscriptionOfferCodeOneTimeUseCodes
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriptionOfferCodeOneTimeUseCodesResponse'
        '429':
          description: Rate limit exceeded error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      summary: List Related Subscription Offer Codes / One Time Use Codes
  /v1/subscriptionOfferCodes/{id}/relationships/prices:
    parameters:
    - name: id
      in: path
      description: the id of the requested resource
      schema:
        type: string
      style: simple
      required: true
    get:
      tags:
      - SubscriptionOfferCodes
      operationId: subscriptionOfferCodes_prices_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/SubscriptionOfferCodePricesLinkagesResponse'
        '429':
          description: Rate limit exceeded error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      summary: List Related Subscription Offer Codes / Prices
  /v1/subscriptionOfferCodes/{id}/prices:
    parameters:
    - name: id
      in: path
      description: the id of the requested resource
      schema:
        type: string
      style: simple
      required: true
    get:
      tags:
      - SubscriptionOfferCodes
      operationId: subscriptionOfferCodes_prices_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[subscriptionOfferCodePrices]
        in: query
        description: the fields to include for returned resources of type subscriptionOfferCodePrices
        schema:
          type: array
          items:
            type: string
            enum:
            - territory
            - subscriptionPricePoint
        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:
          type: array
          items:
            type: string
            enum:
            - territory
            - subscriptionPricePoint
        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 SubscriptionOfferCodePrices
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriptionOfferCodePricesResponse'
        '429':
          description: Rate limit exceeded error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      summary: List Related Subscription Offer Codes / Prices
components:
  schemas:
    SubscriptionOfferCodePriceInlineCreate:
      type: object
      properties:
        type:
          type: string
          enum:
          - subscriptionOfferCodePrices
        id:
          type: string
        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
      required:
      - type
    SubscriptionOfferCodeCustomCodesLinkagesResponse:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              type:
                type: string
                enum:
                - subscriptionOfferCodeCustomCodes
              id:
                type: string
            required:
            - id
            - type
        links:
          $ref: '#/components/schemas/PagedDocumentLinks'
        meta:
          $ref: '#/components/schemas/PagingInformation'
      required:
      - data
      - links
    Territory:
      type: object
      title: Territory
      properties:
        type:
          type: string
          enum:
          - territories
        id:
          type: string
        attributes:
          type: object
          properties:
            currency:
              type: string
        links:
          $ref: '#/components/schemas/ResourceLinks'
      required:
      - id
      - type
    SubscriptionOfferEligibility:
      type: string
      enum:
      - STACK_WITH_INTRO_OFFERS
      - REPLACE_INTRO_OFFERS
    SubscriptionOfferMode:
      type: string
      enum:
      - PAY_AS_YOU_GO
      - PAY_UP_FRONT
      - FREE_TRIAL
    ErrorResponse:
      type: object
      properties:
        errors:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              status:
                type: string
              code:
                type: string
              title:
                type: string
              detail:
                type: string
              source:
                oneOf:
                - $ref: '#/components/schemas/ErrorSourcePointer'
                - $ref: '#/components/schemas/ErrorSourceParameter'
              links:
                $ref: '#/components/schemas/ErrorLinks'
              meta:
                type: object
                additionalProperties: {}
            required:
            - code
            - detail
            - status
            - title
    SubscriptionOfferCodeCustomCode:
      type: object
      title: SubscriptionOfferCodeCustomCode
      properties:
        type:
          type: string
          enum:
          - subscriptionOfferCodeCustomCodes
        id:
          type: string
        attributes:
          type: object
          properties:
            customCode:
              type: string
            numberOfCodes:
              type: integer
            createdDate:
              type: string
              format: date-time
            expirationDate:
              type: string
              format: date
            active:
              type: boolean
        relationships:
          type: object
          properties:
            offerCode:
              type: object
              properties:
                data:
                  type: object
                  properties:
                    type:
                      type: string
                      enum:
                      - subscriptionOfferCodes
                    id:
                      type: string
                  required:
                  - id
                  - type
        links:
          $ref: '#/components/schemas/ResourceLinks'
      required:
      - id
      - type
    SubscriptionOfferCodePricesResponse:
      type: object
      title: SubscriptionOfferCodePricesResponse
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/SubscriptionOfferCodePrice'
        included:
          type: array
          items:
            oneOf:
            - $ref: '#/components/schemas/SubscriptionPricePoint'
            - $ref: '#/components/schemas/Territory'
            discriminator:
              propertyName: type
              mapping:
                territories: '#/components/schemas/Territory'
                subscriptionPricePoints: '#/components/schemas/SubscriptionPricePoint'
        links:
          $ref: '#/components/schemas/PagedDocumentLinks'
        meta:
          $ref: '#/components/schemas/PagingInformation'
      required:
      - data
      - links
    RelationshipLinks:
      type: object
      properties:
        self:
          type: string
          format: uri-reference
        related:
          type: string
          format: uri-reference
    Subscription:
      type: object
      title: Subscription
      properties:
        type:
          type: string
          enum:
          - subscriptions
        id:
          type: string
        attributes:
          type: object
          properties:
            name:
              type: string
            productId:
              type: string
            familySharable:
              type: boolean
            state:
              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
            subscriptionPeriod:
              type: string
              enum:
              - ONE_WEEK
              - ONE_MONTH
              - TWO_MONTHS
              - THREE_MONTHS
              - SIX_MONTHS
              - ONE_YEAR
            reviewNote:
              type: string
            groupLevel:
              type: integer
        relationships:
          type: object
          properties:
            subscriptionLocalizations:
              type: object
              properties:
                links:
                  $ref: '#/components/schem

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