openapi: 3.0.1 info: title: App Store Connect AccessibilityDeclarations AppEvents 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: AppEvents paths: /v1/appEvents: post: tags: - AppEvents operationId: appEvents_createInstance requestBody: description: AppEvent representation content: application/json: schema: $ref: '#/components/schemas/AppEventCreateRequest' 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 AppEvent content: application/json: schema: $ref: '#/components/schemas/AppEventResponse' '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 App Events /v1/appEvents/{id}: parameters: - name: id in: path description: the id of the requested resource schema: type: string style: simple required: true get: tags: - AppEvents operationId: appEvents_getInstance parameters: - name: fields[appEvents] in: query description: the fields to include for returned resources of type appEvents schema: type: array items: type: string enum: - referenceName - badge - eventState - deepLink - purchaseRequirement - primaryLocale - priority - purpose - territorySchedules - archivedTerritorySchedules - localizations style: form explode: false required: false - name: fields[appEventLocalizations] in: query description: the fields to include for returned resources of type appEventLocalizations schema: type: array items: type: string enum: - locale - name - shortDescription - longDescription - appEvent - appEventScreenshots - appEventVideoClips 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: - localizations style: form explode: false required: false - name: limit[localizations] in: query description: maximum number of related localizations 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 AppEvent content: application/json: schema: $ref: '#/components/schemas/AppEventResponse' '429': description: Rate limit exceeded error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' summary: Get App Events patch: tags: - AppEvents operationId: appEvents_updateInstance requestBody: description: AppEvent representation content: application/json: schema: $ref: '#/components/schemas/AppEventUpdateRequest' 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 AppEvent content: application/json: schema: $ref: '#/components/schemas/AppEventResponse' '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 App Events delete: tags: - AppEvents operationId: appEvents_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 App Events /v1/appEvents/{id}/relationships/localizations: parameters: - name: id in: path description: the id of the requested resource schema: type: string style: simple required: true get: tags: - AppEvents operationId: appEvents_localizations_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/AppEventLocalizationsLinkagesResponse' '429': description: Rate limit exceeded error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' summary: List Related App Events / Localizations /v1/appEvents/{id}/localizations: parameters: - name: id in: path description: the id of the requested resource schema: type: string style: simple required: true get: tags: - AppEvents operationId: appEvents_localizations_getToManyRelated parameters: - name: fields[appEventLocalizations] in: query description: the fields to include for returned resources of type appEventLocalizations schema: type: array items: type: string enum: - locale - name - shortDescription - longDescription - appEvent - appEventScreenshots - appEventVideoClips style: form explode: false - name: fields[appEvents] in: query description: the fields to include for returned resources of type appEvents schema: type: array items: type: string enum: - referenceName - badge - eventState - deepLink - purchaseRequirement - primaryLocale - priority - purpose - territorySchedules - archivedTerritorySchedules - localizations style: form explode: false - name: fields[appEventScreenshots] in: query description: the fields to include for returned resources of type appEventScreenshots schema: type: array items: type: string enum: - fileSize - fileName - imageAsset - assetToken - uploadOperations - assetDeliveryState - appEventAssetType - appEventLocalization style: form explode: false - name: fields[appEventVideoClips] in: query description: the fields to include for returned resources of type appEventVideoClips schema: type: array items: type: string enum: - fileSize - fileName - previewFrameTimeCode - videoUrl - previewFrameImage - previewImage - uploadOperations - assetDeliveryState - videoDeliveryState - appEventAssetType - appEventLocalization 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: - appEvent - appEventScreenshots - appEventVideoClips style: form explode: false - name: limit[appEventScreenshots] in: query description: maximum number of related appEventScreenshots returned (when they are included) schema: type: integer maximum: 50 style: form - name: limit[appEventVideoClips] in: query description: maximum number of related appEventVideoClips 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 AppEventLocalizations content: application/json: schema: $ref: '#/components/schemas/AppEventLocalizationsResponse' '429': description: Rate limit exceeded error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' summary: List Related App Events / Localizations components: schemas: 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 AppEventLocalizationsResponse: type: object title: AppEventLocalizationsResponse properties: data: type: array items: $ref: '#/components/schemas/AppEventLocalization' included: type: array items: oneOf: - $ref: '#/components/schemas/AppEventScreenshot' - $ref: '#/components/schemas/AppEventVideoClip' - $ref: '#/components/schemas/AppEvent' discriminator: propertyName: type mapping: appEvents: '#/components/schemas/AppEvent' appEventVideoClips: '#/components/schemas/AppEventVideoClip' appEventScreenshots: '#/components/schemas/AppEventScreenshot' links: $ref: '#/components/schemas/PagedDocumentLinks' meta: $ref: '#/components/schemas/PagingInformation' required: - data - links ResourceLinks: type: object properties: self: type: string format: uri-reference 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 AppEventLocalizationsLinkagesResponse: type: object properties: data: type: array items: type: object properties: type: type: string enum: - appEventLocalizations id: type: string required: - id - type links: $ref: '#/components/schemas/PagedDocumentLinks' meta: $ref: '#/components/schemas/PagingInformation' required: - data - links AppEventResponse: type: object title: AppEventResponse properties: data: $ref: '#/components/schemas/AppEvent' included: type: array items: $ref: '#/components/schemas/AppEventLocalization' links: $ref: '#/components/schemas/DocumentLinks' required: - data - links AppEvent: type: object title: AppEvent properties: type: type: string enum: - appEvents id: type: string attributes: type: object properties: referenceName: type: string badge: type: string enum: - LIVE_EVENT - PREMIERE - CHALLENGE - COMPETITION - NEW_SEASON - MAJOR_UPDATE - SPECIAL_EVENT eventState: type: string enum: - DRAFT - READY_FOR_REVIEW - WAITING_FOR_REVIEW - IN_REVIEW - REJECTED - ACCEPTED - APPROVED - PUBLISHED - PAST - ARCHIVED deepLink: type: string format: uri purchaseRequirement: type: string primaryLocale: type: string priority: type: string enum: - HIGH - NORMAL purpose: type: string enum: - APPROPRIATE_FOR_ALL_USERS - ATTRACT_NEW_USERS - KEEP_ACTIVE_USERS_INFORMED - BRING_BACK_LAPSED_USERS territorySchedules: type: array items: type: object properties: territories: type: array items: type: string publishStart: type: string format: date-time eventStart: type: string format: date-time eventEnd: type: string format: date-time archivedTerritorySchedules: type: array items: type: object properties: territories: type: array items: type: string publishStart: type: string format: date-time eventStart: type: string format: date-time eventEnd: type: string format: date-time relationships: type: object properties: localizations: type: object properties: links: $ref: '#/components/schemas/RelationshipLinks' meta: $ref: '#/components/schemas/PagingInformation' data: type: array items: type: object properties: type: type: string enum: - appEventLocalizations id: type: string required: - id - type links: $ref: '#/components/schemas/ResourceLinks' required: - id - type AppMediaAssetState: type: object properties: errors: type: array items: $ref: '#/components/schemas/AppMediaStateError' warnings: type: array items: $ref: '#/components/schemas/AppMediaStateError' state: type: string enum: - AWAITING_UPLOAD - UPLOAD_COMPLETE - COMPLETE - FAILED AppMediaPreviewFrameImageState: type: object properties: errors: type: array items: $ref: '#/components/schemas/AppMediaStateError' warnings: type: array items: $ref: '#/components/schemas/AppMediaStateError' state: type: string enum: - PROCESSING - COMPLETE - FAILED DocumentLinks: type: object properties: self: type: string format: uri-reference required: - self PreviewFrameImage: type: object properties: image: $ref: '#/components/schemas/ImageAsset' state: $ref: '#/components/schemas/AppMediaPreviewFrameImageState' AppEventScreenshot: type: object title: AppEventScreenshot properties: type: type: string enum: - appEventScreenshots id: type: string attributes: type: object properties: fileSize: type: integer fileName: type: string imageAsset: $ref: '#/components/schemas/ImageAsset' assetToken: type: string uploadOperations: type: array items: $ref: '#/components/schemas/UploadOperation' assetDeliveryState: $ref: '#/components/schemas/AppMediaAssetState' appEventAssetType: $ref: '#/components/schemas/AppEventAssetType' relationships: type: object properties: appEventLocalization: type: object properties: data: type: object properties: type: type: string enum: - appEventLocalizations id: type: string required: - id - type links: $ref: '#/components/schemas/ResourceLinks' required: - id - type UploadOperation: type: object properties: method: type: string url: type: string length: type: integer offset: type: integer requestHeaders: type: array items: $ref: '#/components/schemas/HttpHeader' AppMediaVideoState: type: object properties: errors: type: array items: $ref: '#/components/schemas/AppMediaStateError' warnings: type: array items: $ref: '#/components/schemas/AppMediaStateError' state: type: string enum: - AWAITING_UPLOAD - UPLOAD_COMPLETE - PROCESSING - COMPLETE - FAILED 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 RelationshipLinks: type: object properties: self: type: string format: uri-reference related: type: string format: uri-reference HttpHeader: type: object properties: name: type: string value: type: string ErrorSourcePointer: type: object title: JsonPointer properties: pointer: type: string required: - pointer AppEventVideoClip: type: object title: AppEventVideoClip properties: type: type: string enum: - appEventVideoClips id: type: string attributes: type: object properties: fileSize: type: integer fileName: type: string previewFrameTimeCode: type: string videoUrl: type: string previewFrameImage: $ref: '#/components/schemas/PreviewFrameImage' previewImage: deprecated: true $ref: '#/components/schemas/ImageAsset' uploadOperations: type: array items: $ref: '#/components/schemas/UploadOperation' assetDeliveryState: deprecated: true $ref: '#/components/schemas/AppMediaAssetState' videoDeliveryState: $ref: '#/components/schemas/AppMediaVideoState' appEventAssetType: $ref: '#/components/schemas/AppEventAssetType' relationships: type: object properties: appEventLocalization: type: object properties: data: type: object properties: type: type: string enum: - appEventLocalizations id: type: string required: - id - type links: $ref: '#/components/schemas/ResourceLinks' required: - id - type PagingInformation: type: object properties: paging: type: object properties: total: type: integer limit: type: integer nextCursor: type: string required: - limit required: - paging AppEventLocalization: type: object title: AppEventLocalization properties: type: type: string enum: - appEventLocalizations id: type: string attributes: type: object properties: locale: type: string name: type: string shortDescription: type: string longDescription: type: string relationships: type: object properties: appEvent: type: object properties: data: type: object properties: type: type: string enum: - appEvents id: type: string required: - id - type appEventScreenshots: type: object properties: links: $ref: '#/components/schemas/RelationshipLinks' meta: $ref: '#/components/schemas/PagingInformation' data: type: array items: type: object properties: type: type: string enum: - appEventScreenshots id: type: string required: - id - type appEventVideoClips: type: object properties: links: $ref: '#/components/schemas/RelationshipLinks' meta: $ref: '#/components/schemas/PagingInformation' data: type: array items: type: object properties: type: type: string enum: - appEventVideoClips id: type: string required: - id - type links: $ref: '#/components/schemas/ResourceLinks' required: - id - type AppEventUpdateRequest: type: object title: AppEventUpdateRequest properties: data: type: object properties: type: type: string enum: - appEvents id: type: string attributes: type: object properties: referenceName: type: string nullable: true badge: type: string nullable: true enum: - LIVE_EVENT - PREMIERE - CHALLENGE - COMPETITION - NEW_SEASON - MAJOR_UPDATE - SPECIAL_EVENT deepLink: type: string format: uri nullable: true purchaseRequirement: type: string nullable: true primaryLocale: type: string nullable: true priority: type: string nullable: true enum: - HIGH - NORMAL purpose: type: string nullable: true enum: - APPROPRIATE_FOR_ALL_USERS - ATTRACT_NEW_USERS - KEEP_ACTIVE_USERS_INFORMED - BRING_BACK_LAPSED_USERS territorySchedules: type: array items: type: object properties: territories: type: array items: type: string publishStart: type: string format: date-time eventStart: type: string format: date-time eventEnd: type: string format: date-time nullable: true required: - id - type required: - data AppMediaStateError: type: object properties: code: type: string description: type: string AppEventAssetType: type: string enum: - EVENT_CARD - EVENT_DETAILS_PAGE AppEventCreateRequest: type: object title: AppEventCreateRequest properties: data: type: object properties: type: type: string enum: - appEvents attributes: type: object properties: referenceName: type: string badge: type: string nullable: true enum: - LIVE_EVENT - PREMIERE - CHALLENGE - COMPETITION - NEW_SEASON - MAJOR_UPDATE - SPECIAL_EVENT deepLink: type: string format: uri nullable: true purchaseRequirement: type: string nullable: true primaryLocale: type: string nullable: true priority: type: string nullable: true enum: - HIGH - NORMAL purpose: type: string nullable: true enum: - APPROPRIATE_FOR_ALL_USERS - ATTRACT_NEW_USERS - KEEP_ACTIVE_USERS_INFORMED - BRING_BACK_LAPSED_USERS territorySchedules: type: array items: type: object properties: territories: type: array items: type: string publishStart: type: string format: date-time eventStart: type: string format: date-time eventEnd: type: string format: date-time nullable: true required: - referenceName relationships: type: object properties: app: type: object properties: data: type: object properties: type: type: string enum: - apps id: type: string required: - id - type required: - data required: - app required: - relationships - attributes - type required: - data securitySchemes: itc-bearer-token: type: http scheme: bearer bearerFormat: JWT