Images

Your AI assistant uses this tool to add images to your slides from any public URL. Just describe what image you want and where — the assistant handles fetching, uploading, and positioning.

Images are added with slides_add_image, which fetches an image from a URL, uploads it to Rideful's storage, and places it on your slide as an element. The image is stored permanently — the original URL doesn't need to stay accessible after upload.

For other element types (shapes, text, lines), see Element Operations. To update an existing image's crop or alt text after it's been added, use slides_bulk_update_elements (documented on the Element Operations page).

Adding an Image to a Slide

When you ask to “add a photo of the team” or “put the revenue chart on slide 3,” your assistant uses slides_add_image to fetch the image and place it on the slide. The image is fetched server-side, so CORS restrictions don't apply.

Parameters

ParameterTypeRequiredDescription
deckIdstringYesThe deck ID
slideIdstringYesThe slide to add the image to
sourceUrlstringYesHTTPS URL of the image. Supported formats: PNG, JPEG, GIF, WebP. No SVG. Maximum file size: 10MB
x, ynumberNoPosition in pixels from top-left. Defaults to centered on the slide
widthnumberNoDisplay width in pixels. Set only width to auto-calculate height and preserve aspect ratio
heightnumberNoDisplay height in pixels. Set only height to auto-calculate width and preserve aspect ratio
altTextstringNoAlt text for accessibility
cropobjectNoCrop from each edge as percentages: { left, top, right, bottom } (each 0–95, left+right ≤ 95, top+bottom ≤ 95)

Sizing & Aspect Ratio

How your assistant sizes images depends on what you specify:

  • Set only width — height is calculated automatically to preserve the original aspect ratio
  • Set only height — width is calculated automatically to preserve the original aspect ratio
  • Set both — the image is displayed at the exact dimensions you specify. If the ratio doesn't match the original, the response will note the adjustment
  • Omit both — the image is automatically sized to fit within the slide

The response always includes the original image dimensions (imageWidth, imageHeight) so the assistant can make informed layout decisions.

What It Returns

  • elementId — the image element's ID (use for updates or deletion)
  • position { x, y } final position in pixels
  • size { width, height } final display size in pixels
  • imageWidth, imageHeight — original image dimensions
  • imageMimeType — detected format (e.g., image/png)
  • zIndex — layer order on the slide

Examples

Add an Image with Width

Setting only width preserves the aspect ratio — height is calculated automatically.

slides_add_image({
  deckId: "deck_abc123",
  slideId: "slide_002",
  sourceUrl: "https://example.com/charts/revenue-q4.png",
  x: 640, y: 160,
  width: 560,
  altText: "Q4 revenue chart showing 18% growth"
})

// Response:
// {
//   elementId: "elem_img001",
//   type: "image",
//   slideId: "slide_002",
//   position: { x: 640, y: 160 },
//   size: { width: 560, height: 420 },
//   imageWidth: 1600,
//   imageHeight: 1200,
//   imageMimeType: "image/png",
//   zIndex: 3
// }

Auto-Center and Auto-Fit

Omit position and size to let Rideful center the image and fit it within the slide.

// Omit x, y, width, and height to auto-center and auto-fit
slides_add_image({
  deckId: "deck_abc123",
  slideId: "slide_003",
  sourceUrl: "https://example.com/photos/team.jpg"
})

// The image is centered on the slide and sized to fit

Crop an Image

Use crop to trim edges of the image by percentage. This is useful for removing unwanted borders or focusing on a specific area.

// Crop 10% from the top and 15% from the right
slides_add_image({
  deckId: "deck_abc123",
  slideId: "slide_004",
  sourceUrl: "https://example.com/photos/office.jpg",
  x: 0, y: 0,
  width: 640, height: 720,
  crop: {
    top: 10,
    right: 15,
    left: 0,
    bottom: 0
  },
  altText: "Office panoramic view"
})

Updating Images After Adding

Once an image is on a slide, your assistant can modify its position, size, crop, and alt text using slides_bulk_update_elements. To replace an image entirely, delete the existing one and add a new one.

Updatable Image Properties

PropertyTypeDescription
x, ynumberReposition the image
width, heightnumberResize the image
altTextstringUpdate accessibility text
cropobjectAdjust crop: { left, top, right, bottom } as percentages (0–95)
rotation, opacitynumberRotation in degrees, opacity 0–100

Example

// Update an existing image's crop and alt text
// (use slides_bulk_update_elements)
slides_bulk_update_elements({
  deckId: "deck_abc123",
  updates: [
    {
      elementId: "elem_img001",
      altText: "Updated Q4 revenue chart",
      crop: { left: 5, top: 0, right: 5, bottom: 10 }
    }
  ]
})

Requirements & Limits

  • HTTPS only — HTTP URLs are not supported
  • Supported formats — PNG, JPEG, GIF, WebP
  • No SVG — SVG images are not supported
  • Maximum file size — 10MB
  • Redirects — up to 3 redirects are followed, but all must use HTTPS
  • Crop limits left + right and top + bottom must each be ≤ 95% (at least 5% of the image must remain visible)

Related