← Back to Skills
Media

pollinations

isaacgounton By isaacgounton 👁 17 views ▲ 0 votes

Pollinations.ai API for AI generation - text, images, videos

GitHub
---
name: pollinations
description: Pollinations.ai API for AI generation - text, images, videos, audio, and analysis. Use when user requests AI-powered generation (text completion, images, videos, audio, vision/analysis, transcription) or mentions Pollinations. Supports 25+ models (OpenAI, Claude, Gemini, Flux, Veo, etc.) with OpenAI-compatible chat endpoint and specialized generation endpoints.
---

# Pollinations 🧬

Unified AI platform for text, images, videos, and audio generation with 25+ models.

## API Key

Get free or paid keys at https://enter.pollinations.ai
- Secret Keys (`sk_`): Server-side, no rate limits (recommended)
- Optional for many operations (free tier available)

Store key in environment variable:
```bash
export POLLINATIONS_API_KEY="sk_your_key_here"
```

## Quick Start

### Text Generation

**Simple text generation:**
```bash
curl "https://gen.pollinations.ai/text/Hello%20world"
```

**Chat completions (OpenAI-compatible):**
```bash
curl -X POST https://gen.pollinations.ai/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $POLLINATIONS_API_KEY" \
  -d '{
    "model": "openai",
    "messages": [{"role": "user", "content": "Hello"}]
  }'
```

**Use script:** `scripts/chat.sh` for easy chat completions

### Image Generation

```bash
curl "https://gen.pollinations.ai/image/A%20sunset%20over%20mountains?model=flux&width=1024&height=1024"
```

**Use script:** `scripts/image.sh` for image generation

### Audio Generation (TTS)

```bash
curl -X POST https://gen.pollinations.ai/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai-audio",
    "messages": [
      {"role": "system", "content": "You are a text reader. Read the user text exactly without responding, adding conversation, or changing anything."},
      {"role": "user", "content": "Say: Hello world"}
    ],
    "modalities": ["text", "audio"],
    "audio": {"voice": "nova", "format": "mp3"}
  }'
```

**Use script:** `scripts/tts.sh` for text-to-speech

## API Endpoints

### Base URLs
- Chat/Text: `https://gen.pollinations.ai/v1/chat/completions`
- Simple Text: `https://gen.pollinations.ai/text/{prompt}`
- Image: `https://gen.pollinations.ai/image/{prompt}?{params}`
- Video: `https://gen.pollinations.ai/image/{prompt}?{params}` (generates video)

### Supported Operations

#### 1. Text/Chat Generation

**Models:** OpenAI, Claude, Gemini, Mistral, DeepSeek, Grok, Qwen Coder, Perplexity, and 20+ more

**Common models:** `openai`, `claude`, `gemini`, `mistral`, `deepseek`, `qwen`, `gpt-4`, `o1`, `o3`

**Parameters:**
- `model` (string): Model name/ID
- `messages` (array): Chat messages with roles (system/user/assistant)
- `temperature` (number): 0-2, default 1
- `max_tokens` (number): Max response length
- `top_p` (number): Nucleus sampling, default 1
- `seed` (number): Reproducibility (-1 for random)
- `jsonMode` (boolean): Force JSON response
- `reasoning_effort` (string): For o1/o3/R1 (high/medium/low/minimal/none)
- `thinking_budget` (number): Tokens for reasoning (thinking models)

**Vision support:** Include `image_url` in message content for multi-modal:
```json
{
  "role": "user",
  "content": [
    {"type": "text", "text": "Describe this image"},
    {"type": "image_url", "image_url": {"url": "https://example.com/image.jpg"}}
  ]
}
```

#### 2. Image Generation

**Models:** `flux` (default), `turbo`, `gptimage`, `kontext`, `seedream`, `nanobanana`, `nanobanana-pro`

**Parameters:**
- `model` (string): Model selection
- `width`/`height` (number): 16-2048px, default 1024
- `seed` (number): Reproducibility
- `negative_prompt` (string): What to avoid
- `nologo` (boolean): Remove watermark
- `private` (boolean): Private generation
- `safe` (boolean): Enable NSFW filter
- `enhance` (boolean): AI prompt enhancement
- `quality` (string): low/medium/high/hd (gptimage)
- `transparent` (boolean): Transparent background (gptimage)
- `count` (number): 1-4 images (premium)
- `image` (string): Input image URL (image-to-image)

**Format:** Returns binary image data (determined by Content-Type header)

#### 3. Image to Image

Use same image endpoint with `image` parameter:
```
https://gen.pollinations.ai/image/make%20it%20blue?image={source_url}
```

#### 4. Video Generation

**Models:** `veo` (4-8s), `seedance` (2-10s)

**Parameters:**
- `model` (string): veo or seedance
- `width`/`height` (number): Dimensions
- `duration` (number): Seconds (veo: 4/6/8, seedance: 2-10)
- `aspectRatio` (string): 16:9 or 9:16
- `audio` (boolean): Enable audio (veo only)
- `image` (string): Input image URL (frame interpolation: image[0]=first, image[1]=last)
- `negative_prompt` (string): What to avoid
- `seed` (number): Reproducibility
- `private`/`safe` (boolean): Privacy/safety options

**Format:** Returns binary video data

#### 5. Audio Generation (TTS)

**Models:** `openai-audio`

**Voices:** alloy, echo, fable, onyx, nova, shimmer, coral, verse, ballad, ash, sage, amuch, dan

**Formats:** mp3, wav, flac, opus, pcm16

**Parameters:**
- `model`: openai-audio
- `modalities`: ["text", "audio"]
- `audio.voice`: Voice selection
- `audio.format`: Output format

**Note:** Use "Say:" prefix in user message for direct text reading

#### 6. Audio Transcription

Use chat completions endpoint with vision/audio-capable models:
- **Models:** gemini, gemini-large, gemini-legacy, openai-audio
- Upload audio file as binary input
- Include transcription prompt in system message

#### 7. Image Analysis

Use chat completions with vision models:
- **Models:** Any vision-capable model (gemini, claude, openai)
- Include `image_url` in message content

#### 8. Video Analysis

Use chat completions with video-capable models:
- **Models:** gemini, claude, openai
- Upload video file as binary input
- Include analysis prompt

## Scripts

### `scripts/chat.sh`
Interactive chat completions with model selection and options.

**Usage:**
```bash
scripts/chat.sh "your message here"
scripts/chat.sh "your message" --model claude --temp 0.7
```

### `scripts/image.sh`
Generate images from text prompts.

**Usage:**
```bash
scripts/image.sh "a sunset over mountains"
scripts/image.sh "a sunset" --model flux --width 1024 --height 1024 --seed 123
```

### `scripts/tts.sh`
Convert text to speech.

**Usage:**
```bash
scripts/tts.sh "Hello world"
scripts/tts.sh "Hello world" --voice nova --format mp3 --output hello.mp3
```

## Tips

1. **Free tier available**: Many operations work without an API key (rate limited)
2. **OpenAI-compatible**: Use chat endpoint with existing OpenAI integrations
3. **Reproducibility**: Use `seed` parameter for consistent outputs
4. **Image enhancement**: Enable `enhance=true` for AI-improved prompts
5. **Video interpolation**: Pass two images with `image[0]=first&image[1]=last` for veo
6. **Audio reading**: Always use "Say:" prefix and proper system prompt for TTS

## API Documentation

Full docs: https://enter.pollinations.ai/api/docs
media

Comments

Sign in to leave a comment

Loading comments...