Developer Documentation
Integration guides for automating icon generation in your workflows
Quick Start
CLI Installation
npm install -g @icogenie/cliGenerate 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 outlineCLI 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.jsonGenerate 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" --saveCheck Credits
icogenie credits
# Output: 42 credits remainingAPI 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 variationsPython 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.zipAutomation 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 pushCI/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:
- mainBuild 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.htmlAPI Reference
Complete OpenAPI 3.0 specification for programmatic access and AI agent integration.
Rate Limits & Credits
| Action | Cost | Notes |
|---|---|---|
| Preview (single) | 1 credit | Watermarked preview |
| Preview (bundle) | 1 credit | Flat rate, any size |
| Download (single) | 5 credits | Full production files |
| Download (bundle 5-9) | 4 credits/icon | 20% discount |
| Download (bundle 10+) | 3.5 credits/icon | 30% discount |
| Regenerate variation | 1 credit | Per variation |
New users receive 8 free credits. Credits never expire.