Apple Keynote Presentations API

Keynote presentation document management

OpenAPI Specification

apple-keynote-presentations-api-openapi.yml Raw ↑
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