
exa
io.github.pollinations/exa
Search the live web and fetch clean content from source pages.
Documentation
Open-source AI for people who make things.
Website · Dashboard · Playground · Guides · API Docs · For AI Agents · Discord
🆕 Recent Apps
| Name | Description | Author |
|---|---|---|
| ✍️ Voiceprint | Map the recognizable LLM voice in any passage, inspect six concrete style markers, and rewrite it with a more specific human cadence using Pollinations. Includes a zero-Pollen local scan. | @ismailbanouigu |
| 💬 Ask Them All | Ask one question and several labs answer it in parallel through a single Pollinations key, side by side, with a summary of where they agree and differ. | @mhmdrizzzki |
| 🎮 Vaultwright | A heist game AI agents play over a remote MCP server: five locks a day, an alarm budget, a signed handle, and a live spectator board. Pollinations writes the hints. | @rekty |
| 🎮 Empty Room | Three AI agents in a plain room with nothing to do. Each turn they speak and act; drop an object in and watch what they make of it. The page checks every move. | @rekty |
| 🖼️ Cover Story | Hides a message in a picture's pixels with a checksum, then Pollinations writes the innocent caption for posting it and reads the note back. Own Pollen. No build step, tested. | @rekty |
| 📚 Phenomena Lab | Turn any science topic into a clickable systems map, four explorable scenes and a prediction quiz. Uses GPT-5.4 Nano through Bring Your Own Pollen; includes a full offline demo. | @ismailbanouigu |
| 📚 Unfold | Name a science topic and a Pollinations model draws it: parts, links and the steps that read the figure. Walk the diagram step by step, or click a part and ask about it. | @Sugamdeol |
| 🎮 Model Machine | A computer with no CPU: a Pollinations model returns each next machine state, one instruction per call, while a reference core runs beside it to show where it drifts. | @Sugamdeol |
| 📚 Pixel Letter | Pollinations LLM-designed PNG postcards with locally hidden messages, optional AES-GCM encryption and OAuth BYOP. Secrets stay on the device; recipients decode without API calls. Includes a free demo. | @CristopherSalazar |
| 💬 Crosscheck | Ask multiple Pollinations text models the same question. Compare their answers side by side, vote before revealing identities, and pay with your own Pollen. | @Chappoo974 |
🚀 Unified API
https://gen.pollinations.ai provides one API for text, images, audio, video, 3D, and embeddings.
What's Included
- Unified endpoint: single API at
gen.pollinations.aifor all generation - Pollen credits: simple pay-as-you-go system ($1 ≈ 1 Pollen)
- All models, one place: Flux, GPT, Claude, Gemini, Seedream, and more
- API keys: secret keys for model usage, app keys for tracking BYOP apps.
- CLI:
npx @pollinations/clifor humans and AI agents (source) - Agent discovery: gen.pollinations.ai/llms.txt indexes the CLI skill, MCP server catalog, OpenAPI schema, and Agent Skills in one request
Get started at enter.pollinations.ai and check out the API docs
🆕 Latest News
Animated GIFs with Flare Nov 12
GPT Image 2.6 Flare can return PNG, WebP, or animated GIF. For GIFs, setframe_countfrom 2 to 16 andframe_duration_msfrom 20 to 2000, within a 10-second total.Model resolutions in the API Nov 12
/v1/modelsand/v1/models/:modelnow includeresolutionswhen a model declares supported output sizes. Clients can use the field to choose a validresolution.Research papers for agents Nov 12
Research MCP can search arXiv papers and Crossref works, then look up a paper by arXiv ID or a work by DOI.Voice tools in MCP Nov 12
The Pollinations MCP server gainedisolateSpeechandchangeVoice. Pass a public HTTPS audio URL, or a video URL for speech isolation, and get an audio resource link back.Check npm download counts Nov 12
The Packages MCPpackage_downloadstool retrieves daily npm downloads for a package. Choose a preset period or a custom date range of up to 18 months.Look up Go and PHP packages Nov 12
Packages MCP can now look up Go modules and PHP Composer packages throughpackage_lookup. Results include version details and links to the relevant package registry.Inspect MAC addresses Nov 12
Network MCP'sinspect_macaccepts common MAC address formats and reports normalized forms, the OUI prefix, and address flags. It runs locally without a network call.History on this day Nov 12
News MCP'shistory_on_this_daylooks up selected events, deaths, or holidays for a calendar date using Wikimedia's public feed.Exact calculations for agents Nov 12
Calculators MCP gainedto_fractionfor exact decimal and fraction reduction,diff_textfor unified diffs, andcompare_versionsfor SemVer ordering.First auto top-up Quest Nov 12
One paid auto top-up completed on or after October 13, 2026 qualifies an account for a one-time reward of 20 Quest Pollen. Existing auto top-up users can qualify with their next paid refill.
More news on enter.pollinations.ai →
🌱 Introduction
pollinations.ai is an open-source generative AI platform based in Berlin, used by 500+ community projects. It provides APIs for text, image, video, audio, 3D, and embeddings generation. Our code and development discussions are public. Supporters help fund the project.
🚀 Key Features
- 🔓 100% Open Source: code, decisions, roadmap all public
- 🤝 Community-Built: 500+ projects already using our APIs
- 🌱 Pollen Quests: earn Pollen by completing Quests
- 🖼️ Image Generation: Text-to-image and image editing
- 📝 Text Generation: Chat, reasoning, vision, function calling, structured outputs
- 🎬 Video Generation: Text-to-video and image-to-video
- 🎵 Audio: Text-to-speech and speech-to-text
- 🧊 3D Generation: Text-to-3D and image-to-3D
- 🎙️ Real-time API: OpenAI-compatible WebSocket for streaming conversations
- 🔢 Embeddings Creation: Semantic search, retrieval, similarity matching
- 🤖 Managed Agents: Turn a prompt, base model, and optional Pollinations tools into a reusable model
- 📦 Sandboxes: Cloud Linux computers for you or your agents, opened with SSH or VS Code
- 🌐 Sites: Free static hosting at
<name>.pollinations.app - 🎣 Easy-to-use Packages (Packages)
Guides
| Guide | Purpose |
|---|---|
| Pollinations Pay (BYOP) | Let users pay with their own Pollen |
| Publish an Agent | Publish a hosted agent |
| Publish a Model | Connect your model endpoint |
| Sandboxes | Run code in a virtual machine |
| Sites | Host a static site at |
| Coding Harnesses | Connect a coding assistant |
| MCP Servers | Give agents access to tools |
| CLI | Use Pollinations from a terminal |
🤖 Managed Agents
Build a reusable text agent without hosting an agent server. Choose a system prompt and base model, optionally give it Pollinations tools, then call it through the same OpenAI-compatible API as any other model.
- Private or public: keep an agent owner-only or publish it after receiving community publisher access.
- Normal model API: call a registered agent by its
owner/agent-namemodel ID. - Dashboard, CLI, or API: manage agents in My listings, with
polli agents, or through/account/agents.
See Publish an Agent for setup and billing behavior.
🛠️ Coding Harnesses
Run tools such as Bloom CLI, DeepSeek Harness, Hermes Agent, Mistral Vibe, OpenCode, Pi, Prime Agent, and tgpt on Pollinations models. polli harness edits the tool's own config so it calls Pollinations with a dedicated key, and restores it on off.
npx @pollinations/cli harness dsh on
See Coding Harnesses for supported harnesses and how to add one.
🧩 Community Models
Community members connect their own OpenAI-compatible text, image, image-editing, and speech-to-text endpoints to Pollinations.
- Host your own model: follow Publish a Model to test and register an upstream endpoint, then keep it private or publish it to the catalog.
- Automatic fallback routing: nominate up to three compatible backup models so generations keep moving when an upstream model goes down.
- Discover and monitor: browse community models via gen.pollinations.ai/v1/models and watch live health and community leaderboards at model-monitor.pollinations.ai.
For billing details when building apps on top, see Pollinations Pay.
🚀 Getting Started
Quick Start (3 Steps)
1️⃣ Get your API key
Sign up at enter.pollinations.ai to generate your key.
2️⃣ Choose what you want to generate
Pollinations supports:
- 🖼 Images
- 📝 Text
- 🔊 Audio
- 🎬 Video
- 🧊 3D
- 🔢 Embeddings
3️⃣ Make your first request
Use one of the examples below to generate your first AI output in seconds.
Image Generation
curl -H "Authorization: Bearer YOUR_API_KEY" 'https://gen.pollinations.ai/image/a%20beautiful%20sunset' -o image.jpg
Or visit pollinations.ai/play for an interactive experience.
Text Generation
curl 'https://gen.pollinations.ai/text/Hello%20world?key=YOUR_API_KEY'
Audio Generation
Simple GET endpoint:
curl 'https://gen.pollinations.ai/audio/Hello%20from%20Pollinations?voice=nova&key=YOUR_API_KEY' -o speech.mp3
OpenAI TTS compatible:
curl 'https://gen.pollinations.ai/v1/audio/speech' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-d '{"model": "openai/tts-1", "input": "Hello from Pollinations!", "voice": "nova"}' \
-o speech.mp3
Available voices: alloy, echo, fable, onyx, nova, shimmer, plus 30+ ElevenLabs voices.
Speech-to-text:
curl 'https://gen.pollinations.ai/v1/audio/transcriptions' \
-H "Authorization: Bearer YOUR_API_KEY" \
-F file=@audio.mp3 \
-F model=openai/whisper-large-v3
Video Generation
curl 'https://gen.pollinations.ai/video/a%20sunset%20timelapse%20over%20the%20ocean?key=YOUR_API_KEY' -o video.mp4
Use duration to set video length, aspectRatio for orientation, and image[0]/image[1] to pass start/end reference frames. See available video models and capabilities at gen.pollinations.ai/video/models.
3D Generation
curl 'https://gen.pollinations.ai/3d/a%20low-poly%20treasure%20chest?model=microsoft/trellis-2&resolution=low&key=YOUR_API_KEY&image=IMAGE_URL' -o model.glb
Pass reference image URL(s) via the image parameter for image-to-3D models (put image= last in the URL, or URL-encode it). See available 3D models at gen.pollinations.ai/3d/models.
Embeddings
curl 'https://gen.pollinations.ai/v1/embeddings' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-d '{"model": "openai/text-embedding-3-small", "input": "Hello world!"}'
Pass a string or an array of up to 32 strings (text or multimodal content parts). See available embedding models at gen.pollinations.ai/embeddings/models.
Pollinations CLI
Generate text, images, audio, video, and more right from your terminal:
npx @pollinations/cli gen image "cyberpunk city at night" --model black-forest-labs/flux.1-schnell --output city.png
npx @pollinations/cli gen text "Explain quantum tunneling in one sentence"
npx @pollinations/cli gen audio "Hello world" --voice nova --output speech.mp3
npx @pollinations/cli gen video "a waterfall in slow motion" --duration 5 --output clip.mp4
npx @pollinations/cli gen transcribe speech.mp3
Install globally and use the shorter polli command: npm install -g @pollinations/cli. Run polli models to list models, polli auth login to authenticate, and polli docs for the full API reference in your terminal.
Real-time API
Stream AI responses over an OpenAI-compatible WebSocket:
wss://gen.pollinations.ai/v1/realtime?model=openai/gpt-realtime-2.1&key=sk_YOUR_API_KEY
Browser clients pass a user-authorized key from Pollinations Pay as a query parameter (?key=); server clients can use the Authorization: Bearer header instead.
MCP Servers
Connect Streamable HTTP clients to the hosted Pollinations MCP server:
https://gen.pollinations.ai/mcp/pollinations
Send your Pollinations API key as an Authorization: Bearer header. See the
MCP Servers documentation
for the full hosted catalog.
🔐 Authentication
Get your API key at enter.pollinations.ai
Key Types
| Key | Prefix | Use Case | Rate Limits | Status |
|---|---|---|---|---|
| App Key | pk_ | Identifies your app in Pollinations Connect | Can't authenticate requests | Stable |
| Secret | sk_ | Server-side only | No rate limits | Stable |
⚠️ Never expose
sk_keys in client-side code, git repos, or public URLs
💡 Building an app? Use Pollinations Pay: users pay for their own usage, you pay $0
Model Restrictions
Each API key can be scoped to model categories or specific models. When creating a key at enter.pollinations.ai, you can:
- Allow all models: key works with any available model
- Restrict to categories: e.g. only
image, orimageandtext. A key allows every model in its categories, including models added later - Restrict to specific models: through the API or
polli keys update <id> --models black-forest-labs/flux.1-schnell tongyi-mai/z-image-turbo; a model ID allows only that model
Usage
curl 'https://gen.pollinations.ai/image/a%20cat?key=YOUR_KEY'
Environment variable (best practice):
export POLLINATIONS_API_KEY=sk_...
See full API docs for detailed authentication information.
🖥️ How to Use
Web Interface
Visit the playground to generate content in your browser.
Here are some examples of what you can generate:
🛠️ Integration
SDK
Check out our Pollinations SDK for Node.js, browser, and React integration.
OpenAI SDK Compatibility
The API is OpenAI-compatible. Set the base URL in an official OpenAI SDK to https://gen.pollinations.ai/v1.
Node.js:
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://gen.pollinations.ai/v1",
apiKey: "YOUR_API_KEY",
});
const response = await client.chat.completions.create({
model: "openai/gpt-5.4-nano",
messages: [{ role: "user", content: "Hello!" }],
});
console.log(response.choices[0].message.content);
Python:
from openai import OpenAI
client = OpenAI(base_url="https://gen.pollinations.ai/v1", api_key="YOUR_API_KEY")
response = client.chat.completions.create(
model="openai/gpt-5.4-nano",
messages=[{"role": "user", "content": "Hello!"}],
)
print(response.choices[0].message.content)
Other OpenAI SDKs work too: Go, Java, .NET, Rust (async-openai, community), plus compatible frameworks like Vercel AI SDK.
Vercel AI SDK:
import { createOpenAICompatible } from "@ai-sdk/openai-compatible";
import { generateText } from "ai";
const pollinations = createOpenAICompatible({
name: "pollinations",
baseURL: "https://gen.pollinations.ai/v1",
apiKey: "YOUR_API_KEY",
});
const { text } = await generateText({
model: pollinations.chatModel("openai/gpt-5.4-nano"),
prompt: "Hello!",
});
console.log(text);
Streaming, image, and embedding examples: API docs → Vercel AI SDK.
Architecture
%%{init: {'theme': 'dark', 'themeVariables': { 'background': '#1a1a1a', 'primaryColor': '#2a2a2a', 'primaryBorderColor': '#555555', 'primaryTextColor': '#eeeeee', 'lineColor': '#00e5ff', 'clusterBkg': 'transparent', 'clusterBorder': '#888888', 'fontSize': '13px', 'fontFamily': 'Inter, system-ui, sans-serif'}}}%%
graph LR
subgraph CLIENTS["Clients / Apps"]
Q[Bots - Discord, Telegram, WhatsApp]
N[30+ Mobile and Web Apps]
A[pollinations.ai Web Frontend]
R[AI Agents - Qwen, Sillytavern, ...]
AI[AI Assistants - Claude]
MCP[MCP Server]
end
AI --> MCP
Q --> GEN
N --> GEN
A --> GEN
R --> GEN
MCP --> GEN
GEN["gen.pollinations.ai: Edge Router + Generation Worker"]:::cfWorker -->|auth and billing| ENTER["enter.pollinations.ai: Auth Gateway + Billing"]:::cfWorker
GEN --> IMG["Image: gen Worker dispatch to providers / GPU backends"]:::cfWorkerLight
IMG --> D["Flux, Z-Image, Seedream, ...: GPU VMs"]:::gpuNode
GEN --> TXT["Text: Portkey multi-provider"]:::provider
GEN --> VID["Video: Wan / Veo / Seedance"]:::provider
GEN --> AUD["Audio: ElevenLabs / OVH (Whisper)"]:::provider
style CLIENTS fill:none,stroke:#888,stroke-width:2px,stroke-dasharray: 5 5
linkStyle default stroke-width:3px,stroke:#00E5FF
classDef cfWorker fill:#E65100,color:#fff,stroke:#FFB300,stroke-width:2px,font-weight:bold
classDef cfWorkerLight fill:#BF360C,color:#fff,stroke:#FFB300,stroke-width:1px
classDef gpuNode fill:#064E3B,stroke:#34D399,color:#ECFDF5,stroke-width:2px
classDef provider fill:#1E3A8A,stroke:#60A5FA,color:#EFF6FF,stroke-width:1px
🔮 Future Developments
We're exploring:
- Digital Twins: Creating interactive AI-driven avatars
- Music Video Generation: Combining AI-generated visuals with music
- Real-time AI-driven Visual Experiences: Projects like our Dreamachine
🌍 Our Vision
We want AI tools to be:
-
Open & Accessible: Earn Pollen by contributing, without a credit card
-
Transparent & Ethical: Inspect our code and discuss how the platform works
-
Community-Driven: Build tools with other developers, creators, and AI enthusiasts
-
Interconnected: Combine models and services through shared APIs
-
Evolving: Add new capabilities while keeping the platform open and accessible
🤝 Community and Development
You can contribute to pollinations.ai in several ways:
-
Coding Assistant: Create a GitHub issue describing a feature for the Polli assistant to work on. You can propose a change without writing code.
-
Project Submissions: Have you built something with pollinations.ai? Use our app submission template to share it with the community and get it featured in our README.
-
Feature Requests & Bug Reports: Have an idea or found a bug? Open an issue and let us know. Our team and the Polli assistant will review it.
-
Community Engagement: Join our Discord community to:
- Share your creations
- Get support and help others
- Collaborate with fellow AI enthusiasts
- Discuss feature ideas before creating issues
For any questions or support, please visit our Discord channel or create an issue on our GitHub repository.
🗂️ Project Structure
The main folders are:
-
pollinations.ai/: The main React application for the Pollinations.ai website. -
gen.pollinations.ai/: Cloudflare Worker for API routing, auth handoff, text generation, and caching. -
enter.pollinations.ai/: Auth gateway and billing: API keys, Pollen credits, and pack checkout. -
shared/: Auth, model registries, IP queue, and utilities shared across the services. -
apps/: Applications maintained in this repository. -
operations/: Internal dashboards, monitoring, economics, and infrastructure, including the GPU fleet. -
media.pollinations.ai/: Media upload service: upload files and get a URL to use with Pollinations models, with public tag galleries. -
operations/news/: Automated social media pipeline (X, LinkedIn, Instagram, Reddit, Discord). -
packages/polli-cli/: The Pollinations CLI for people and AI agents. -
packages/sdk/: SDK NPM library with pollinations ready functions for Pollinations.ai. -
packages/mcp/: Model Context Protocol (MCP) server for AI assistants like Claude to generate images directly. -
opencode-pollinations-plugin: A community plugin that connects OpenCode to Pollinations models, built by @fkom13.
For development setup and environment management, see DEVELOP.md.
🏢 Supported By
pollinations.ai is supported by:
- Perplexity AI: AI-powered search and conversational answer engine
- AWS Activate: GPU Cloud Credits
- io.net: Decentralized GPU network for AI compute
- BytePlus: Official ByteDance cloud services and AI solutions
- Google Cloud for Startups: GPU Cloud Credits
- NVIDIA Inception: AI startup support
- Azure (MS for Startups): OpenAI credits
- Cloudflare: Put the connectivity cloud to work for you.
- Scaleway: Europe's empowering cloud provider
- Modal: High-performance AI infrastructure
- Nebius: AI-optimized cloud infrastructure with NVIDIA GPU clusters
- OpenAI: Frontier AI models and APIs
- OpenRouter: Unified API for LLMs
- Fireworks AI: Fast inference platform for open models
- Replicate: Run AI models with an API
- RunPod: GPU cloud built for AI workloads
- OVHcloud: European cloud and GPU infrastructure
- Lambda Labs: GPU cloud for AI training and inference
- ElevenLabs: AI voice generation and text-to-speech
- AssemblyAI: Speech-to-text and speech understanding models
- Alibaba Cloud: Cloud computing and AI services
💚 Support Us
The best way to support pollinations.ai is by using our product! Get your API key and start building at enter.pollinations.ai.
📣 Stay Connected
Status · News & FAQ · 𝕏 Twitter · Instagram · LinkedIn · Facebook · Reddit · YouTube
📜 License
pollinations.ai is open-source software licensed under the MIT license.
Made with ❤️ by the pollinations.ai team
No installation packages available.
Remote
Related Servers
io.github.pollinations/ask-jev
Evaluate state with typed choice, score, and probability questions.
io.github.pollinations/composio
Read Gmail, read and commit to GitHub, update Sheets, and post to Slack through Composio.
io.github.pollinations/computer
A private persistent computer: files that survive between runs, a bash shell and JavaScript.