Moondream

moondream3-preview
Free budget$5/month shared workspace usage credits tokens/mo
Rate limitsnot published
Shared $5 monthly hosted usage credits info
Moondream Cloud Free includes $5 per workspace in recurring monthly usage credits, shared across models; usage beyond that allowance is metered. Both listed routes passed live vision and streaming tests through the adapter on 2026-09-22. Images must be base64 data URLs; remote image URLs, tool calling and stop sequences are unsupported. Output is limited by the upstream API to 4096 tokens including reasoning. Context and request-rate limits are not claimed without verification. This uses the hosted BYOK API, not self-hosted weights. Sources: https://moondream.ai/pricing and https://docs.moondream.ai/openai/.

Get this model the moment it changes

Limits move, models get replaced, better ones launch. Premium routers see this page's data live. Free routers see last month's.

Go live · $19/yr →

Use it

FreeLLMAPI is a self-hosted router you run yourself. Install it, paste in your free Moondream key, and moondream3-preview answers on an OpenAI-compatible endpoint at http://localhost:3001/v1. No credit card, no hosted middleman: your prompts and your provider keys never leave your machine.

Install the router (macOS, Linux, WSL)
curl -fsSL https://freellmapi.co/install.sh | bash
Install the router (Windows PowerShell)
iwr -useb https://freellmapi.co/install.ps1 | iex
Call moondream3-preview with curl
curl http://localhost:3001/v1/chat/completions \
  -H "Authorization: Bearer freellmapi-your-unified-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "moondream3-preview",
    "messages": [{"role": "user", "content": "Say hi in five words."}]
  }'
The same request in Python (openai)
from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:3001/v1",
    api_key="freellmapi-your-unified-key",
)

resp = client.chat.completions.create(
    model="moondream3-preview",
    messages=[{"role": "user", "content": "Say hi in five words."}],
)
print(resp.choices[0].message.content)

The router answers on /v1/chat/completions and every other OpenAI surface, plus the Anthropic Messages API, so existing clients need only a new base_url. Swap the model id for auto and the router picks the best free model that is still under its limits. Full reference: docs/api.md.