Developer Documentation

Integration guides for automating icon generation in your workflows

Quick Start

CLI Installation

npm install -g @icogenie/cli

Generate Your First Icon

# Authenticate once
icogenie auth

# Generate an icon
icogenie generate "rocket ship launching"

# Generate with variations
icogenie generate "settings gear" --variations 4

# Generate with specific style
icogenie generate "home icon" --style outline

CLI Usage

Authentication

IcoGenie uses browser-based authentication. Run the auth command and approve access in your browser.

icogenie auth
# Opens browser for approval
# Token stored in ~/.icogenie/config.json

Generate Icons

# Basic generation
icogenie generate "search magnifying glass"

# With options
icogenie generate "user profile avatar" \
  --variations 2 \
  --style solid \
  --output ./icons/

# Bundle generation
icogenie bundle \
  --icons "home, search, profile, settings" \
  --output ./icon-set/

Library Management

# List saved icons
icogenie library list

# Download from library
icogenie library download <generation-id>

# Save generation to library
icogenie generate "calendar icon" --save

Check Credits

icogenie credits
# Output: 42 credits remaining

API Integration

Node.js Example

import fetch from 'node-fetch';

// Generate preview
const response = await fetch('https://www.icogenie.xyz/api/generate-preview', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Cookie': 'session_token=your_token_here' // From auth flow
  },
  body: JSON.stringify({
    prompt: 'rocket ship launching to space',
    variations: 4,
    style: 'solid'
  })
});

const data = await response.json();
// data.sessionId - Use for download
// data.preview - Base64 watermarked preview
// data.previews - Array of all variations

Python Example

import requests

# Generate preview
response = requests.post(
    'https://www.icogenie.xyz/api/generate-preview',
    json={
        'prompt': 'user profile avatar',
        'variations': 2,
        'style': 'outline'
    },
    cookies={'session_token': 'your_token_here'}
)

data = response.json()
session_id = data['sessionId']

# Download production files
download = requests.get(
    f'https://www.icogenie.xyz/api/download?generation_id={session_id}',
    cookies={'session_token': 'your_token_here'}
)

with open('icon-bundle.zip', 'wb') as f:
    f.write(download.content)

Bash/cURL Example

# Generate preview
SESSION_ID=$(curl -s -X POST https://www.icogenie.xyz/api/generate-preview \
  -H "Content-Type: application/json" \
  -b "session_token=your_token" \
  -d '{"prompt":"settings gear","variations":1,"style":"solid"}' \
  | jq -r '.sessionId')

# Download
curl -X GET "https://www.icogenie.xyz/api/download?generation_id=$SESSION_ID" \
  -b "session_token=your_token" \
  -o icon-bundle.zip

Automation Workflows

GitHub Actions

name: Generate Icons
on:
  workflow_dispatch:
    inputs:
      icon_name:
        description: 'Icon description'
        required: true

jobs:
  generate:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Install IcoGenie CLI
        run: npm install -g @icogenie/cli

      - name: Generate Icon
        env:
          ICOGENIE_TOKEN: ${{ secrets.ICOGENIE_TOKEN }}
        run: |
          icogenie generate "${{ github.event.inputs.icon_name }}" \
            --output ./public/icons/

      - name: Commit Changes
        run: |
          git config user.name "github-actions"
          git add public/icons/
          git commit -m "Add icon: ${{ github.event.inputs.icon_name }}"
          git push

CI/CD Pipeline

# .gitlab-ci.yml
generate-icons:
  stage: build
  script:
    - npm install -g @icogenie/cli
    - icogenie bundle --icons "$ICON_LIST" --output ./dist/icons/
  artifacts:
    paths:
      - dist/icons/
  only:
    - main

Build Script Integration

// scripts/generate-icons.mjs
import { spawnSync } from 'child_process';
import { readFileSync } from 'fs';

const icons = JSON.parse(readFileSync('./icon-manifest.json', 'utf8'));

for (const icon of icons) {
  console.log(`Generating ${icon.name}...`);
  spawnSync('icogenie', ['generate', icon.description, '--output', './public/icons/'], {
    stdio: 'inherit'
  });
}

// package.json
{
  "scripts": {
    "icons": "node scripts/generate-icons.mjs",
    "build": "npm run icons && next build"
  }
}

Output Formats

Every icon download includes production-ready files:

  • SVGScalable vector graphic, optimized and minified
  • PNG16px, 32px, 192px, 512px raster files
  • JSXReact component with TypeScript types
  • HTMLMeta tags for favicons and app icons
icon-bundle.zip
├── icon.svg
├── icon-16.png
├── icon-32.png
├── icon-192.png
├── icon-512.png
├── Icon.jsx
└── meta.html

API Reference

Complete OpenAPI 3.0 specification for programmatic access and AI agent integration.

Rate Limits & Credits

ActionCostNotes
Preview (single)1 creditWatermarked preview
Preview (bundle)1 creditFlat rate, any size
Download (single)5 creditsFull production files
Download (bundle 5-9)4 credits/icon20% discount
Download (bundle 10+)3.5 credits/icon30% discount
Regenerate variation1 creditPer variation

New users receive 8 free credits. Credits never expire.

Developer Documentation - IcoGenie