openapi: 3.0.1 info: title: App Store Connect AccessibilityDeclarations AppStoreReviewDetails 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: AppStoreReviewDetails paths: /v1/appStoreReviewDetails: post: tags: - AppStoreReviewDetails operationId: appStoreReviewDetails_createInstance requestBody: description: AppStoreReviewDetail representation content: application/json: schema: $ref: '#/components/schemas/AppStoreReviewDetailCreateRequest' 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 AppStoreReviewDetail content: application/json: schema: $ref: '#/components/schemas/AppStoreReviewDetailResponse' '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 Store Review Details /v1/appStoreReviewDetails/{id}: parameters: - name: id in: path description: the id of the requested resource schema: type: string style: simple required: true get: tags: - AppStoreReviewDetails operationId: appStoreReviewDetails_getInstance parameters: - name: fields[appStoreReviewDetails] in: query description: the fields to include for returned resources of type appStoreReviewDetails schema: type: array items: type: string enum: - contactFirstName - contactLastName - contactPhone - contactEmail - demoAccountName - demoAccountPassword - demoAccountRequired - notes - appStoreVersion - appStoreReviewAttachments style: form explode: false required: false - name: fields[appStoreVersions] in: query description: the fields to include for returned resources of type appStoreVersions schema: type: array items: type: string enum: - platform - versionString - appStoreState - appVersionState - copyright - reviewType - releaseType - earliestReleaseDate - usesIdfa - downloadable - createdDate - app - appStoreVersionLocalizations - build - appStoreVersionPhasedRelease - gameCenterAppVersion - routingAppCoverage - appStoreReviewDetail - appStoreVersionSubmission - appClipDefaultExperience - appStoreVersionExperiments - appStoreVersionExperimentsV2 - customerReviews - alternativeDistributionPackage style: form explode: false required: false - name: fields[appStoreReviewAttachments] in: query description: the fields to include for returned resources of type appStoreReviewAttachments schema: type: array items: type: string enum: - fileSize - fileName - sourceFileChecksum - uploadOperations - assetDeliveryState - appStoreReviewDetail 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: - appStoreVersion - appStoreReviewAttachments style: form explode: false required: false - name: limit[appStoreReviewAttachments] in: query description: maximum number of related appStoreReviewAttachments 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 AppStoreReviewDetail content: application/json: schema: $ref: '#/components/schemas/AppStoreReviewDetailResponse' '429': description: Rate limit exceeded error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' summary: Get App Store Review Details patch: tags: - AppStoreReviewDetails operationId: appStoreReviewDetails_updateInstance requestBody: description: AppStoreReviewDetail representation content: application/json: schema: $ref: '#/components/schemas/AppStoreReviewDetailUpdateRequest' 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 AppStoreReviewDetail content: application/json: schema: $ref: '#/components/schemas/AppStoreReviewDetailResponse' '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 Store Review Details /v1/appStoreReviewDetails/{id}/relationships/appStoreReviewAttachments: parameters: - name: id in: path description: the id of the requested resource schema: type: string style: simple required: true get: tags: - AppStoreReviewDetails operationId: appStoreReviewDetails_appStoreReviewAttachments_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/AppStoreReviewDetailAppStoreReviewAttachmentsLinkagesResponse' '429': description: Rate limit exceeded error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' summary: List Related App Store Review Details / App Store Review Attachments /v1/appStoreReviewDetails/{id}/appStoreReviewAttachments: parameters: - name: id in: path description: the id of the requested resource schema: type: string style: simple required: true get: tags: - AppStoreReviewDetails operationId: appStoreReviewDetails_appStoreReviewAttachments_getToManyRelated parameters: - name: fields[appStoreReviewAttachments] in: query description: the fields to include for returned resources of type appStoreReviewAttachments schema: type: array items: type: string enum: - fileSize - fileName - sourceFileChecksum - uploadOperations - assetDeliveryState - appStoreReviewDetail style: form explode: false - name: fields[appStoreReviewDetails] in: query description: the fields to include for returned resources of type appStoreReviewDetails schema: type: array items: type: string enum: - contactFirstName - contactLastName - contactPhone - contactEmail - demoAccountName - demoAccountPassword - demoAccountRequired - notes - appStoreVersion - appStoreReviewAttachments 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: - appStoreReviewDetail 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 AppStoreReviewAttachments content: application/json: schema: $ref: '#/components/schemas/AppStoreReviewAttachmentsResponse' '429': description: Rate limit exceeded error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' summary: List Related App Store Review Details / App Store Review Attachments components: schemas: 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 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 AppStoreReviewAttachmentsResponse: type: object title: AppStoreReviewAttachmentsResponse properties: data: type: array items: $ref: '#/components/schemas/AppStoreReviewAttachment' included: type: array items: $ref: '#/components/schemas/AppStoreReviewDetail' links: $ref: '#/components/schemas/PagedDocumentLinks' meta: $ref: '#/components/schemas/PagingInformation' required: - data - links AppVersionState: type: string enum: - ACCEPTED - DEVELOPER_REJECTED - IN_REVIEW - INVALID_BINARY - METADATA_REJECTED - PENDING_APPLE_RELEASE - PENDING_DEVELOPER_RELEASE - PREPARE_FOR_SUBMISSION - PROCESSING_FOR_DISTRIBUTION - READY_FOR_DISTRIBUTION - READY_FOR_REVIEW - REJECTED - REPLACED_WITH_NEW_VERSION - WAITING_FOR_EXPORT_COMPLIANCE - WAITING_FOR_REVIEW 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 Platform: type: string enum: - IOS - MAC_OS - TV_OS - VISION_OS DocumentLinks: type: object properties: self: type: string format: uri-reference required: - self AppStoreReviewAttachment: type: object title: AppStoreReviewAttachment properties: type: type: string enum: - appStoreReviewAttachments id: type: string attributes: type: object properties: fileSize: type: integer fileName: type: string sourceFileChecksum: type: string uploadOperations: type: array items: $ref: '#/components/schemas/UploadOperation' assetDeliveryState: $ref: '#/components/schemas/AppMediaAssetState' relationships: type: object properties: appStoreReviewDetail: type: object properties: data: type: object properties: type: type: string enum: - appStoreReviewDetails 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' 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 AppStoreReviewDetail: type: object title: AppStoreReviewDetail properties: type: type: string enum: - appStoreReviewDetails id: type: string attributes: type: object properties: contactFirstName: type: string contactLastName: type: string contactPhone: type: string contactEmail: type: string demoAccountName: type: string demoAccountPassword: type: string demoAccountRequired: type: boolean notes: type: string relationships: type: object properties: appStoreVersion: type: object properties: data: type: object properties: type: type: string enum: - appStoreVersions id: type: string required: - id - type appStoreReviewAttachments: type: object properties: links: $ref: '#/components/schemas/RelationshipLinks' meta: $ref: '#/components/schemas/PagingInformation' data: type: array items: type: object properties: type: type: string enum: - appStoreReviewAttachments id: type: string required: - id - type links: $ref: '#/components/schemas/ResourceLinks' required: - id - type RelationshipLinks: type: object properties: self: type: string format: uri-reference related: type: string format: uri-reference AppStoreReviewDetailAppStoreReviewAttachmentsLinkagesResponse: type: object properties: data: type: array items: type: object properties: type: type: string enum: - appStoreReviewAttachments id: type: string required: - id - type links: $ref: '#/components/schemas/PagedDocumentLinks' meta: $ref: '#/components/schemas/PagingInformation' required: - data - links AppStoreVersion: type: object title: AppStoreVersion properties: type: type: string enum: - appStoreVersions id: type: string attributes: type: object properties: platform: $ref: '#/components/schemas/Platform' versionString: type: string appStoreState: deprecated: true $ref: '#/components/schemas/AppStoreVersionState' appVersionState: $ref: '#/components/schemas/AppVersionState' copyright: type: string reviewType: type: string enum: - APP_STORE - NOTARIZATION releaseType: type: string enum: - MANUAL - AFTER_APPROVAL - SCHEDULED earliestReleaseDate: type: string format: date-time usesIdfa: type: boolean deprecated: true downloadable: type: boolean createdDate: type: string format: date-time relationships: type: object properties: app: type: object properties: data: type: object properties: type: type: string enum: - apps id: type: string required: - id - type appStoreVersionLocalizations: type: object properties: links: $ref: '#/components/schemas/RelationshipLinks' meta: $ref: '#/components/schemas/PagingInformation' data: type: array items: type: object properties: type: type: string enum: - appStoreVersionLocalizations id: type: string required: - id - type build: type: object properties: links: $ref: '#/components/schemas/RelationshipLinks' data: type: object properties: type: type: string enum: - builds id: type: string required: - id - type appStoreVersionPhasedRelease: type: object properties: links: $ref: '#/components/schemas/RelationshipLinks' data: type: object properties: type: type: string enum: - appStoreVersionPhasedReleases id: type: string required: - id - type gameCenterAppVersion: type: object properties: links: $ref: '#/components/schemas/RelationshipLinks' data: type: object properties: type: type: string enum: - gameCenterAppVersions id: type: string required: - id - type routingAppCoverage: type: object properties: links: $ref: '#/components/schemas/RelationshipLinks' data: type: object properties: type: type: string enum: - routingAppCoverages id: type: string required: - id - type appStoreReviewDetail: type: object properties: links: $ref: '#/components/schemas/RelationshipLinks' data: type: object properties: type: type: string enum: - appStoreReviewDetails id: type: string required: - id - type appStoreVersionSubmission: type: object properties: links: $ref: '#/components/schemas/RelationshipLinks' data: type: object properties: type: type: string enum: - appStoreVersionSubmissions id: type: string required: - id - type appClipDefaultExperience: type: object properties: links: $ref: '#/components/schemas/RelationshipLinks' data: type: object properties: type: type: string enum: - appClipDefaultExperiences id: type: string required: - id - type appStoreVersionExperiments: type: object properties: links: $ref: '#/components/schemas/RelationshipLinks' meta: $ref: '#/components/schemas/PagingInformation' data: type: array items: type: object properties: type: type: string enum: - appStoreVersionExperiments id: type: string required: - id - type appStoreVersionExperimentsV2: type: object properties: links: $ref: '#/components/schemas/RelationshipLinks' meta: $ref: '#/components/schemas/PagingInformation' data: type: array items: type: object properties: type: type: string enum: - appStoreVersionExperiments id: type: string required: - id - type customerReviews: type: object properties: links: $ref: '#/components/schemas/RelationshipLinks' alternativeDistributionPackage: type: object properties: links: $ref: '#/components/schemas/RelationshipLinks' data: type: object properties: type: type: string enum: - alternativeDistributionPackages id: type: string required: - id - type links: $ref: '#/components/schemas/ResourceLinks' required: - id - type 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 AppStoreReviewDetailResponse: type: object title: AppStoreReviewDetailResponse properties: data: $ref: '#/components/schemas/AppStoreReviewDetail' included: type: array items: oneOf: - $ref: '#/components/schemas/AppStoreReviewAttachment' - $ref: '#/components/schemas/AppStoreVersion' discriminator: propertyName: type mapping: appStoreVersions: '#/components/schemas/AppStoreVersion' appStoreReviewAttachments: '#/components/schemas/AppStoreReviewAttachment' links: $ref: '#/components/schemas/DocumentLinks' required: - data - links AppStoreReviewDetailCreateRequest: type: object title: AppStoreReviewDetailCreateRequest properties: data: type: object properties: type: type: string enum: - appStoreReviewDetails attributes: type: object properties: contactFirstName: type: string nullable: true contactLastName: type: string nullable: true contactPhone: type: string nullable: true contactEmail: type: string nullable: true demoAccountName: type: string nullable: true demoAccountPassword: type: string nullable: true demoAccountRequired: type: boolean nullable: true notes: type: string nullable: true relationships: type: object properties: appStoreVersion: type: object properties: data: type: object properties: type: type: string enum: - appStoreVersions id: type: string required: - id - type required: - data required: - appStoreVersion required: - relationships - type required: - data AppMediaStateError: type: object properties: code: type: string description: type: string AppStoreReviewDetailUpdateRequest: type: object title: AppStoreReviewDetailUpdateRequest properties: data: type: object properties: type: type: string enum: - appStoreReviewDetails id: type: string attributes: type: object properties: contactFirstName: type: string nullable: true contactLastName: type: string nullable: true contactPhone: type: string nullable: true contactEmail: type: string nullable: true demoAccountName: type: string nullable: true demoAccountPassword: type: string nullable: true demoAccountRequired: type: boolean nullable: true notes: type: string nullable: true required: - id - type required: - data AppStoreVersionState: type: string enum: - ACCEPTED - DEVELOPER_REMOVED_FROM_SALE - DEVELOPER_REJECTED - IN_REVIEW - INVALID_BINARY - METADATA_REJECTED - PENDING_APPLE_RELEASE - PENDING_CONTRACT - PENDING_DEVELOPER_RELEASE - PREPARE_FOR_SUBMISSION - PREORDER_READY_FOR_SALE - PROCESSING_FOR_APP_STORE - READY_FOR_REVIEW - READY_FOR_SALE - REJECTED - REMOVED_FROM_SALE - WAITING_FOR_EXPORT_COMPLIANCE - WAITING_FOR_REVIEW - REPLACED_WITH_NEW_VERSION - NOT_APPLICABLE HttpHeader: type: object properties: name: type: string value: type: string securitySchemes: itc-bearer-token: type: http scheme: bearer bearerFormat: JWT