openapi: 3.0.3 info: title: Apple Keynote iCloud Export Presentations API description: The Apple Keynote iCloud API provides programmatic access to Keynote presentations stored in iCloud. It enables creating, reading, updating, and exporting presentations, slides, and their elements. This specification is generated from Apple documentation and iCloud web interface analysis. version: 1.0.0 contact: name: Apple Developer Support url: https://developer.apple.com/contact/ x-generated-from: documentation servers: - url: https://p00-keynote.icloud.com description: Apple iCloud Keynote server tags: - name: Presentations description: Keynote presentation document management paths: /presentations: get: operationId: listPresentations summary: Apple Keynote List Presentations description: Returns a list of Keynote presentations in the user's iCloud account. tags: - Presentations parameters: - name: limit in: query description: Maximum number of presentations to return required: false schema: type: integer minimum: 1 maximum: 200 default: 50 example: 50 - name: offset in: query description: Number of presentations to skip for pagination required: false schema: type: integer minimum: 0 default: 0 example: 0 responses: '200': description: List of presentations returned successfully content: application/json: schema: $ref: '#/components/schemas/PresentationList' examples: ListPresentations200Example: summary: Default listPresentations 200 response x-microcks-default: true value: presentations: - id: pres-001 title: Q4 Business Review slideCount: 24 modifiedDate: '2025-03-15T14:30:00Z' total: 1 x-microcks-operation: delay: 0 dispatcher: FALLBACK post: operationId: createPresentation summary: Apple Keynote Create Presentation description: Creates a new Keynote presentation in iCloud. tags: - Presentations requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreatePresentationRequest' examples: CreatePresentationRequestExample: summary: Default createPresentation request x-microcks-default: true value: title: My New Presentation theme: White responses: '201': description: Presentation created successfully content: application/json: schema: $ref: '#/components/schemas/Presentation' examples: CreatePresentation201Example: summary: Default createPresentation 201 response x-microcks-default: true value: id: pres-002 title: My New Presentation slideCount: 1 createdDate: '2025-03-15T14:30:00Z' modifiedDate: '2025-03-15T14:30:00Z' x-microcks-operation: delay: 0 dispatcher: FALLBACK /presentations/{presentationId}: get: operationId: getPresentation summary: Apple Keynote Get Presentation description: Returns metadata and content for a specific Keynote presentation. tags: - Presentations parameters: - $ref: '#/components/parameters/PresentationId' responses: '200': description: Presentation returned successfully content: application/json: schema: $ref: '#/components/schemas/Presentation' examples: GetPresentation200Example: summary: Default getPresentation 200 response x-microcks-default: true value: id: pres-001 title: Q4 Business Review slideCount: 24 createdDate: '2025-01-10T09:00:00Z' modifiedDate: '2025-03-15T14:30:00Z' '404': description: Presentation not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' x-microcks-operation: delay: 0 dispatcher: FALLBACK put: operationId: updatePresentation summary: Apple Keynote Update Presentation description: Updates the metadata of a Keynote presentation such as its title. tags: - Presentations parameters: - $ref: '#/components/parameters/PresentationId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdatePresentationRequest' responses: '200': description: Presentation updated successfully content: application/json: schema: $ref: '#/components/schemas/Presentation' examples: UpdatePresentation200Example: summary: Default updatePresentation 200 response x-microcks-default: true value: id: pres-001 title: Q4 Business Review - Final slideCount: 24 modifiedDate: '2025-03-16T10:00:00Z' x-microcks-operation: delay: 0 dispatcher: FALLBACK delete: operationId: deletePresentation summary: Apple Keynote Delete Presentation description: Deletes a Keynote presentation from iCloud. tags: - Presentations parameters: - $ref: '#/components/parameters/PresentationId' responses: '204': description: Presentation deleted successfully x-microcks-operation: delay: 0 dispatcher: FALLBACK components: parameters: PresentationId: name: presentationId in: path required: true description: The unique identifier of the presentation schema: type: string example: pres-001 schemas: PresentationList: title: PresentationList description: A paginated list of Keynote presentations type: object properties: presentations: type: array items: $ref: '#/components/schemas/Presentation' total: type: integer description: Total number of presentations example: 1 offset: type: integer description: Current pagination offset example: 0 CreatePresentationRequest: title: CreatePresentationRequest description: Request body for creating a new Keynote presentation type: object required: - title properties: title: type: string description: The title for the new presentation example: My New Presentation theme: type: string description: The theme to apply to the new presentation example: White ErrorResponse: title: ErrorResponse description: API error response type: object properties: error: type: string description: Error code example: not_found message: type: string description: Human-readable error description example: The requested presentation was not found. Presentation: title: Presentation description: A Keynote presentation document stored in iCloud type: object properties: id: type: string description: Unique identifier for the presentation example: pres-001 title: type: string description: The title of the presentation example: Q4 Business Review slideCount: type: integer description: Total number of slides in the presentation example: 24 theme: type: string description: The theme applied to the presentation example: White createdDate: type: string format: date-time description: When the presentation was created example: '2025-01-10T09:00:00Z' modifiedDate: type: string format: date-time description: When the presentation was last modified example: '2025-03-15T14:30:00Z' author: type: string description: The author of the presentation example: jsmith@example.com UpdatePresentationRequest: title: UpdatePresentationRequest description: Request body for updating a Keynote presentation type: object properties: title: type: string description: New title for the presentation example: Q4 Business Review - Final