openapi: 3.0.1 info: title: App Store Connect AccessibilityDeclarations AppPreviews 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: AppPreviews paths: /v1/appPreviews: post: tags: - AppPreviews operationId: appPreviews_createInstance requestBody: description: AppPreview representation content: application/json: schema: $ref: '#/components/schemas/AppPreviewCreateRequest' 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 AppPreview content: application/json: schema: $ref: '#/components/schemas/AppPreviewResponse' '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 Previews /v1/appPreviews/{id}: parameters: - name: id in: path description: the id of the requested resource schema: type: string style: simple required: true get: tags: - AppPreviews operationId: appPreviews_getInstance parameters: - name: fields[appPreviews] in: query description: the fields to include for returned resources of type appPreviews schema: type: array items: type: string enum: - fileSize - fileName - sourceFileChecksum - previewFrameTimeCode - mimeType - videoUrl - previewFrameImage - previewImage - uploadOperations - assetDeliveryState - videoDeliveryState - appPreviewSet style: form explode: false required: false - name: fields[appPreviewSets] in: query description: the fields to include for returned resources of type appPreviewSets schema: type: array items: type: string enum: - previewType - appStoreVersionLocalization - appCustomProductPageLocalization - appStoreVersionExperimentTreatmentLocalization - appPreviews 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: - appPreviewSet style: form explode: false 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 AppPreview content: application/json: schema: $ref: '#/components/schemas/AppPreviewResponse' '429': description: Rate limit exceeded error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' summary: Get App Previews patch: tags: - AppPreviews operationId: appPreviews_updateInstance requestBody: description: AppPreview representation content: application/json: schema: $ref: '#/components/schemas/AppPreviewUpdateRequest' 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 AppPreview content: application/json: schema: $ref: '#/components/schemas/AppPreviewResponse' '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 Previews delete: tags: - AppPreviews operationId: appPreviews_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 Previews components: schemas: AppPreviewCreateRequest: type: object title: AppPreviewCreateRequest properties: data: type: object properties: type: type: string enum: - appPreviews attributes: type: object properties: fileSize: type: integer fileName: type: string previewFrameTimeCode: type: string nullable: true mimeType: type: string nullable: true required: - fileName - fileSize relationships: type: object properties: appPreviewSet: type: object properties: data: type: object properties: type: type: string enum: - appPreviewSets id: type: string required: - id - type required: - data required: - appPreviewSet required: - relationships - attributes - type required: - data ImageAsset: type: object properties: templateUrl: type: string width: type: integer height: type: integer 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 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 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 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' UploadOperation: type: object properties: method: type: string url: type: string length: type: integer offset: type: integer requestHeaders: type: array items: $ref: '#/components/schemas/HttpHeader' PreviewType: type: string enum: - IPHONE_67 - IPHONE_61 - IPHONE_65 - IPHONE_58 - IPHONE_55 - IPHONE_47 - IPHONE_40 - IPHONE_35 - IPAD_PRO_3GEN_129 - IPAD_PRO_3GEN_11 - IPAD_PRO_129 - IPAD_105 - IPAD_97 - DESKTOP - APPLE_TV - APPLE_VISION_PRO 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 AppPreviewResponse: type: object title: AppPreviewResponse properties: data: $ref: '#/components/schemas/AppPreview' included: type: array items: $ref: '#/components/schemas/AppPreviewSet' links: $ref: '#/components/schemas/DocumentLinks' required: - data - links 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 AppPreviewUpdateRequest: type: object title: AppPreviewUpdateRequest properties: data: type: object properties: type: type: string enum: - appPreviews id: type: string attributes: type: object properties: sourceFileChecksum: type: string nullable: true previewFrameTimeCode: type: string nullable: true uploaded: type: boolean nullable: true required: - id - type required: - data RelationshipLinks: type: object properties: self: type: string format: uri-reference related: type: string format: uri-reference 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 AppPreviewSet: type: object title: AppPreviewSet properties: type: type: string enum: - appPreviewSets id: type: string attributes: type: object properties: previewType: $ref: '#/components/schemas/PreviewType' relationships: type: object properties: appStoreVersionLocalization: type: object properties: data: type: object properties: type: type: string enum: - appStoreVersionLocalizations id: type: string required: - id - type appCustomProductPageLocalization: type: object properties: data: type: object properties: type: type: string enum: - appCustomProductPageLocalizations id: type: string required: - id - type appStoreVersionExperimentTreatmentLocalization: type: object properties: data: type: object properties: type: type: string enum: - appStoreVersionExperimentTreatmentLocalizations id: type: string required: - id - type appPreviews: type: object properties: links: $ref: '#/components/schemas/RelationshipLinks' meta: $ref: '#/components/schemas/PagingInformation' data: type: array items: type: object properties: type: type: string enum: - appPreviews id: type: string required: - id - type links: $ref: '#/components/schemas/ResourceLinks' required: - id - type AppMediaStateError: type: object properties: code: type: string description: type: string AppPreview: type: object title: AppPreview properties: type: type: string enum: - appPreviews id: type: string attributes: type: object properties: fileSize: type: integer fileName: type: string sourceFileChecksum: type: string previewFrameTimeCode: type: string mimeType: 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' relationships: type: object properties: appPreviewSet: type: object properties: data: type: object properties: type: type: string enum: - appPreviewSets id: type: string required: - id - type links: $ref: '#/components/schemas/ResourceLinks' required: - id - type HttpHeader: type: object properties: name: type: string value: type: string securitySchemes: itc-bearer-token: type: http scheme: bearer bearerFormat: JWT