Apple Keynote Slides API

Slide operations within a presentation

Operations 4

GET /presentations/{presentationId}/slides Apple Keynote List Slides #
POST /presentations/{presentationId}/slides Apple Keynote Add Slide #
GET /presentations/{presentationId}/slides/{slideNumber} Apple Keynote Get Slide #
DELETE /presentations/{presentationId}/slides/{slideNumber} Apple Keynote Delete Slide #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/apple-keynote-slides-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

apple-keynote-slides-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Apple Keynote iCloud Export Slides 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: Slides
  description: Slide operations within a presentation
paths:
  /presentations/{presentationId}/slides:
    get:
      operationId: listSlides
      summary: Apple Keynote List Slides
      description: Returns all slides in a Keynote presentation.
      tags:
      - Slides
      parameters:
      - $ref: '#/components/parameters/PresentationId'
      responses:
        '200':
          description: Slides returned successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SlideList'
              examples:
                ListSlides200Example:
                  summary: Default listSlides 200 response
                  x-microcks-default: true
                  value:
                    slides:
                    - slideNumber: 1
                      title: Q4 Business Review
                      layout: Title - Center
                      skipped: false
                    total: 24
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      operationId: addSlide
      summary: Apple Keynote Add Slide
      description: Adds a new slide to a Keynote presentation at a specified position.
      tags:
      - Slides
      parameters:
      - $ref: '#/components/parameters/PresentationId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddSlideRequest'
      responses:
        '201':
          description: Slide added successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Slide'
              examples:
                AddSlide201Example:
                  summary: Default addSlide 201 response
                  x-microcks-default: true
                  value:
                    slideNumber: 25
                    title: New Slide
                    layout: Title & Bullets
                    skipped: false
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /presentations/{presentationId}/slides/{slideNumber}:
    get:
      operationId: getSlide
      summary: Apple Keynote Get Slide
      description: Returns the content and properties of a specific slide.
      tags:
      - Slides
      parameters:
      - $ref: '#/components/parameters/PresentationId'
      - $ref: '#/components/parameters/SlideNumber'
      responses:
        '200':
          description: Slide returned successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Slide'
              examples:
                GetSlide200Example:
                  summary: Default getSlide 200 response
                  x-microcks-default: true
                  value:
                    slideNumber: 1
                    title: Q4 Business Review
                    layout: Title - Center
                    skipped: false
                    notes: Welcome everyone to the Q4 review.
        '404':
          description: Slide not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    delete:
      operationId: deleteSlide
      summary: Apple Keynote Delete Slide
      description: Removes a slide from a presentation.
      tags:
      - Slides
      parameters:
      - $ref: '#/components/parameters/PresentationId'
      - $ref: '#/components/parameters/SlideNumber'
      responses:
        '204':
          description: Slide 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
    SlideNumber:
      name: slideNumber
      in: path
      required: true
      description: The 1-based slide number within the presentation
      schema:
        type: integer
        minimum: 1
      example: 1
  schemas:
    Slide:
      title: Slide
      description: A single slide within a Keynote presentation
      type: object
      properties:
        slideNumber:
          type: integer
          description: The 1-based position of the slide
          example: 1
        title:
          type: string
          description: The title displayed on the slide
          example: Q4 Business Review
        layout:
          type: string
          description: The slide layout name
          example: Title - Center
        skipped:
          type: boolean
          description: Whether this slide is skipped during playback
          example: false
        notes:
          type: string
          description: Presenter notes for this slide
          example: Welcome everyone to the Q4 review.
    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.
    SlideList:
      title: SlideList
      description: A list of slides in a presentation
      type: object
      properties:
        slides:
          type: array
          items:
            $ref: '#/components/schemas/Slide'
        total:
          type: integer
          description: Total number of slides
          example: 24
    AddSlideRequest:
      title: AddSlideRequest
      description: Request body for adding a new slide to a presentation
      type: object
      properties:
        layout:
          type: string
          description: The slide layout to use
          example: Title & Bullets
        position:
          type: integer
          description: Where to insert the slide (1-based). Defaults to end.
          example: 5
        title:
          type: string
          description: Initial title text for the slide
          example: New Slide