openapi: 3.0.1 info: title: App Store Connect AccessibilityDeclarations WinBackOffers 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: WinBackOffers paths: /v1/winBackOffers: post: tags: - WinBackOffers operationId: winBackOffers_createInstance requestBody: description: WinBackOffer representation content: application/json: schema: $ref: '#/components/schemas/WinBackOfferCreateRequest' 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 WinBackOffer content: application/json: schema: $ref: '#/components/schemas/WinBackOfferResponse' '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 Win Back Offers /v1/winBackOffers/{id}: parameters: - name: id in: path description: the id of the requested resource schema: type: string style: simple required: true get: tags: - WinBackOffers operationId: winBackOffers_getInstance parameters: - 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[winBackOfferPrices] in: query description: the fields to include for returned resources of type winBackOfferPrices 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: - prices style: form explode: false 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 WinBackOffer content: application/json: schema: $ref: '#/components/schemas/WinBackOfferResponse' '429': description: Rate limit exceeded error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' summary: Get Win Back Offers patch: tags: - WinBackOffers operationId: winBackOffers_updateInstance requestBody: description: WinBackOffer representation content: application/json: schema: $ref: '#/components/schemas/WinBackOfferUpdateRequest' 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 WinBackOffer content: application/json: schema: $ref: '#/components/schemas/WinBackOfferResponse' '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 Win Back Offers delete: tags: - WinBackOffers operationId: winBackOffers_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 Win Back Offers /v1/winBackOffers/{id}/relationships/prices: parameters: - name: id in: path description: the id of the requested resource schema: type: string style: simple required: true get: tags: - WinBackOffers operationId: winBackOffers_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/WinBackOfferPricesLinkagesResponse' '429': description: Rate limit exceeded error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' summary: List Related Win Back Offers / Prices /v1/winBackOffers/{id}/prices: parameters: - name: id in: path description: the id of the requested resource schema: type: string style: simple required: true get: tags: - WinBackOffers operationId: winBackOffers_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[winBackOfferPrices] in: query description: the fields to include for returned resources of type winBackOfferPrices 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 WinBackOfferPrices content: application/json: schema: $ref: '#/components/schemas/WinBackOfferPricesResponse' '429': description: Rate limit exceeded error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' summary: List Related Win Back Offers / Prices components: schemas: SubscriptionOfferDuration: type: string enum: - THREE_DAYS - ONE_WEEK - TWO_WEEKS - ONE_MONTH - TWO_MONTHS - THREE_MONTHS - SIX_MONTHS - ONE_YEAR SubscriptionOfferMode: type: string enum: - PAY_AS_YOU_GO - PAY_UP_FRONT - FREE_TRIAL PagedDocumentLinks: type: object properties: self: type: string format: uri-reference first: type: string format: uri-reference next: type: string format: uri-reference required: - self ResourceLinks: type: object properties: self: type: string format: uri-reference WinBackOfferPriceInlineCreate: type: object properties: type: type: string enum: - winBackOfferPrices id: type: string required: - type ErrorSourceParameter: type: object title: Parameter properties: parameter: type: string required: - parameter ErrorLinks: type: object properties: about: type: string format: uri-reference associated: oneOf: - type: string format: uri-reference - type: object properties: href: type: string format: uri-reference meta: type: object properties: source: type: string WinBackOfferPricesLinkagesResponse: type: object properties: data: type: array items: type: object properties: type: type: string enum: - winBackOfferPrices id: type: string required: - id - type links: $ref: '#/components/schemas/PagedDocumentLinks' meta: $ref: '#/components/schemas/PagingInformation' required: - data - links WinBackOfferPrice: type: object title: WinBackOfferPrice properties: type: type: string enum: - winBackOfferPrices 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 links: $ref: '#/components/schemas/ResourceLinks' required: - id - type SubscriptionPricePoint: type: object title: SubscriptionPricePoint properties: type: type: string enum: - subscriptionPricePoints id: type: string attributes: type: object properties: customerPrice: type: string proceeds: type: string proceedsYear2: 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 equalizations: type: object properties: links: $ref: '#/components/schemas/RelationshipLinks' links: $ref: '#/components/schemas/ResourceLinks' required: - id - type DocumentLinks: type: object properties: self: type: string format: uri-reference required: - self WinBackOfferUpdateRequest: type: object title: WinBackOfferUpdateRequest properties: data: type: object properties: type: type: string enum: - winBackOffers id: type: string attributes: type: object properties: customerEligibilityPaidSubscriptionDurationInMonths: type: integer nullable: true customerEligibilityTimeSinceLastSubscribedInMonths: nullable: true $ref: '#/components/schemas/IntegerRange' customerEligibilityWaitBetweenOffersInMonths: type: integer nullable: true startDate: type: string format: date nullable: true endDate: type: string format: date nullable: true priority: type: string nullable: true enum: - HIGH - NORMAL promotionIntent: type: string nullable: true enum: - NOT_PROMOTED - USE_AUTO_GENERATED_ASSETS required: - id - type required: - data WinBackOffer: type: object title: WinBackOffer properties: type: type: string enum: - winBackOffers id: type: string attributes: type: object properties: referenceName: type: string offerId: type: string duration: $ref: '#/components/schemas/SubscriptionOfferDuration' offerMode: $ref: '#/components/schemas/SubscriptionOfferMode' periodCount: type: integer customerEligibilityPaidSubscriptionDurationInMonths: type: integer customerEligibilityTimeSinceLastSubscribedInMonths: $ref: '#/components/schemas/IntegerRange' customerEligibilityWaitBetweenOffersInMonths: type: integer startDate: type: string format: date endDate: type: string format: date priority: type: string enum: - HIGH - NORMAL promotionIntent: type: string enum: - NOT_PROMOTED - USE_AUTO_GENERATED_ASSETS relationships: type: object properties: prices: type: object properties: links: $ref: '#/components/schemas/RelationshipLinks' meta: $ref: '#/components/schemas/PagingInformation' data: type: array items: type: object properties: type: type: string enum: - winBackOfferPrices id: type: string required: - id - type links: $ref: '#/components/schemas/ResourceLinks' required: - id - type IntegerRange: type: object properties: minimum: type: integer maximum: type: integer 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 WinBackOfferResponse: type: object title: WinBackOfferResponse properties: data: $ref: '#/components/schemas/WinBackOffer' included: type: array items: $ref: '#/components/schemas/WinBackOfferPrice' links: $ref: '#/components/schemas/DocumentLinks' required: - data - links RelationshipLinks: type: object properties: self: type: string format: uri-reference related: type: string format: uri-reference WinBackOfferCreateRequest: type: object title: WinBackOfferCreateRequest properties: data: type: object properties: type: type: string enum: - winBackOffers attributes: type: object properties: referenceName: type: string offerId: type: string duration: $ref: '#/components/schemas/SubscriptionOfferDuration' offerMode: $ref: '#/components/schemas/SubscriptionOfferMode' periodCount: type: integer customerEligibilityPaidSubscriptionDurationInMonths: type: integer customerEligibilityTimeSinceLastSubscribedInMonths: $ref: '#/components/schemas/IntegerRange' customerEligibilityWaitBetweenOffersInMonths: type: integer nullable: true startDate: type: string format: date endDate: type: string format: date nullable: true priority: type: string enum: - HIGH - NORMAL promotionIntent: type: string nullable: true enum: - NOT_PROMOTED - USE_AUTO_GENERATED_ASSETS required: - duration - customerEligibilityTimeSinceLastSubscribedInMonths - periodCount - offerId - offerMode - priority - customerEligibilityPaidSubscriptionDurationInMonths - startDate - referenceName relationships: type: object properties: subscription: type: object properties: data: type: object properties: type: type: string enum: - subscriptions id: type: string required: - id - type required: - data prices: type: object properties: data: type: array items: type: object properties: type: type: string enum: - winBackOfferPrices id: type: string required: - id - type required: - data required: - subscription - prices required: - relationships - attributes - type included: type: array items: $ref: '#/components/schemas/WinBackOfferPriceInlineCreate' required: - data ErrorSourcePointer: type: object title: JsonPointer properties: pointer: type: string required: - pointer PagingInformation: type: object properties: paging: type: object properties: total: type: integer limit: type: integer nextCursor: type: string required: - limit required: - paging WinBackOfferPricesResponse: type: object title: WinBackOfferPricesResponse properties: data: type: array items: $ref: '#/components/schemas/WinBackOfferPrice' 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 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 securitySchemes: itc-bearer-token: type: http scheme: bearer bearerFormat: JWT