Skip to content
Last updated

The Icon Management API allows you to upload custom icons, browse system icons, and assign icons to assistants. Icons support multiple formats (SVG, PNG, JPG) and quality levels for optimal performance.

Overview

Icons in Freddy can be:

  • System icons: 24 curated icons available to all users across business, creative, and technical categories
  • Custom icons: Organization-specific icons uploaded by users

Key Features

  • Upload custom icons in SVG, PNG, or JPG format (max 5MB)
  • Browse and search through system and custom icons
  • Serve icons with quality transformations (thumbnail, small, medium, large, original)
  • Assign icons to assistants via icon_id field
  • Organize icons with tags and categories
  • Soft-delete custom icons

System Icons

24 curated icons are available to all users:

  • Business (9): briefcase, building, chart-bar, chart, dollar-sign, presentation, target, trending-up, users
  • Creative (7): camera, image, music, palette, pen-tool, sparkles, video
  • Technical (8): cloud, code, cpu, database, git-branch, server, settings, terminal

Recommended for Assistants: sparkles, users, briefcase, code, palette, target, cpu, terminal, pen-tool, chart-bar

Quality Levels

Icons can be served at different quality levels:

  • thumbnail - 64x64px
  • small - 128x128px
  • medium - 256x256px (default)
  • large - 512x512px
  • original - Original size

Note: SVG icons always return original regardless of quality parameter.

Best Practices

  • Use recommended icons when listing icons for assistant selection (?recommended_for=assistants)
  • Request appropriate quality - Use thumbnail for lists, medium for detail views, original for downloads
  • Cache icon URLs - Icons are cached for 1 hour, safe to cache on client
  • SVG preferred - SVG icons scale perfectly at any size
  • Optimize uploads - Keep custom icons under 1MB for best performance

Assistant Integration

Assign icons to assistants by including the icon_id field when creating or updating:

{
  "name": "My Assistant",
  "icon_id": "icon_abc123...",
  ...
}

The assistant response will include both icon_id and icon_url for easy access.