Skip to main content

Python client library for Pollinations.AI API

Project description

PollinationsAPI Python Client

A developer-friendly Python SDK for interacting with the Pollinations API, supporting multimodal AI features: image generation, text generation (including OpenAI-compatible chat), vision (image analysis), speech-to-text, and text-to-speech.


Features

  • Image Generation: Create images from text prompts with multiple model options.
  • Text Generation: Generate or complete text, including OpenAI-compatible chat and streaming.
  • Vision (Image Analysis): Describe or answer questions about images (from URL or local files).
  • Speech-to-Text: Transcribe audio files to text.
  • Text-to-Speech: Synthesize speech from text, save as MP3.
  • Model Listing: List available image, text, and voice models.
  • Real-time Feeds: Subscribe to live image/text generation events via SSE.

Installation

Install via pip:

pip install pollinations-api
pip install requests
# For SSE real-time feeds (not needed for streaming chat/text completions):
pip install sseclient-py

Quick Start

from pollinations_api import PollinationsAPI, PollinationsAPIError

api = PollinationsAPI(referrer="my-app")  # Optionally add a backend Bearer token

# Image Generation
try:
    img_bytes = api.generate_image("A beautiful sunset over ocean", width=512, height=512, nologo=True, save_to="sunset.jpg")
    print("Image saved to sunset.jpg")
except PollinationsAPIError as e:
    print(e)

# Text Generation
try:
    text = api.generate_text("Explain quantum computing simply", model="openai")
    print("Text generation result:", text)
except PollinationsAPIError as e:
    print(e)

# OpenAI-Compatible Chat (non-streaming)
try:
    response = api.openai_chat_completion(
        model="openai",
        messages=[
            {"role": "system", "content": "You are an assistant."},
            {"role": "user", "content": "Who won the world cup in 2018?"}
        ]
    )
    print("Chat completion:", response['choices'][0]['message']['content'])
except PollinationsAPIError as e:
    print(e)

Usage Examples

1. Image Generation

api.generate_image(
    prompt="A cyberpunk cityscape at night",
    width=768,
    height=512,
    nologo=True,
    model="flux",
    save_to="cityscape.png"
)

2. Text Generation

  • Simple completion:

    result = api.generate_text("Write a haiku about AI")
    print(result)
    
  • Streaming responses:

    for chunk in api.generate_text("Tell a story about a robot", stream=True):
        print(chunk, end="", flush=True)
    

3. OpenAI-Compatible Chat Completion

Non-streaming:

response = api.openai_chat_completion(
    model="openai",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Summarize the plot of Inception."}
    ]
)
print(response['choices'][0]['message']['content'])

Streaming:

for chunk in api.openai_chat_completion(
    model="openai",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Summarize the plot of Inception."}
    ],
    stream=True
):
    print(chunk, end="", flush=True)

No sseclient-py is needed for OpenAI-style streaming!

4. Vision (Image Analysis)

  • Analyze an image URL:

    result = api.analyze_image_url(
        image_url="https://example.com/cat.jpg",
        question="What is in this image?"
    )
    print(result)
    
  • Analyze a local image:

    result = api.analyze_local_image("local_image.png")
    print(result)
    

5. Speech-to-Text

transcript = api.transcribe_audio("sample.wav")
print("Transcription:", transcript)

6. Text-to-Speech

  • GET (short texts):

    api.tts_get("Hello world!", voice="nova", save_to="hello.mp3")
    
  • POST (longer texts):

    api.tts_post("This is a long text to synthesize.", voice="alloy", save_to="long.mp3")
    

7. List Models

print("Image models:", api.list_image_models())
print("Text models:", api.list_text_models())

8. Real-time Feeds (SSE)

  • Image feed: (Requires sseclient-py)

    for event in api.connect_image_feed():
        print(event)
    
  • Text feed: (Requires sseclient-py)

    for event in api.connect_text_feed():
        print(event)
    

Authentication

  • Backend Token: Pass a Bearer token to the constructor.
  • Frontend Referrer: Pass a referrer string to the constructor.

Error Handling

All API errors are raised as PollinationsAPIError. Use try-except blocks to handle errors gracefully.

Requirements

  • Python 3.7+
  • requests
  • sseclient-py (only for real-time GET feeds, not for chat streaming)

License

MIT


Notes


Special Notes:

  • For OpenAI-style streaming (chat completions), you do not need sseclient-py, as the SDK parses streamed events directly.
  • For real-time image/text feeds (connect_image_feed, connect_text_feed), sseclient-py is required.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pollinations_api-0.1.5.tar.gz (11.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pollinations_api-0.1.5-py3-none-any.whl (10.0 kB view details)

Uploaded Python 3

File details

Details for the file pollinations_api-0.1.5.tar.gz.

File metadata

  • Download URL: pollinations_api-0.1.5.tar.gz
  • Upload date:
  • Size: 11.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for pollinations_api-0.1.5.tar.gz
Algorithm Hash digest
SHA256 d0b07ad1ddf91d7d0018ce237502d5a20db6d2df6181ea6a155b24b236a5576f
MD5 9073bc9b74ebe53ebb7cbf6611668abb
BLAKE2b-256 2947ce2253298fafa5867f3e4a2d10193d5163ea1ce35acd853ea1e5d0991f91

See more details on using hashes here.

File details

Details for the file pollinations_api-0.1.5-py3-none-any.whl.

File metadata

File hashes

Hashes for pollinations_api-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 7bcd8a0e55cbad06108bc69613cea97a94314db3972abea25ea971df91b57f88
MD5 d15136bbdde66ad8e2112f9df04a44e9
BLAKE2b-256 aafbfb4ed59e3e251f85e89072531b364f4f923a267817951723528474ad77a4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page