首页 > AI Tools > 正文

Pollinations Free API Batch Tagging: 2 of 7 Calls Hit the Rate Limit

2026-10-26 AI Tools

This is a hands-on test: on 2026-10-26 I made 10 real requests from my own machine against Pollinations.AI’s free text API. Every number below comes from those calls, not from a rehash of the docs. The workflow I tested is a common one in content operations — batch-tagging tech news headlines.

Bottom line first:

  • Personal automation with a few runs a day and zero budget (auto-tagging a blog, short RSS summaries): usable, the free anonymous tier is enough.
  • Batch-processing hundreds of items in one pass: do not use the free tier. The measured limit is 1 request per 30 seconds per IP, so 300 items need at least 2.5 hours.
  • The bottleneck of this setup is not money (it is free) — it is throughput and output stability.

What problem it solves

Pollinations.AI is a generative AI API with no signup and no API key. Its text endpoint is OpenAI-compatible (POST https://text.pollinations.ai/openai) and supports structured JSON output. It suits automatic classification, tagging or short summaries of a few dozen items a day at most; it does not suit a production pipeline that needs stable throughput and a fixed category vocabulary.

Three steps to get started

  1. Check the models: visit GET https://text.pollinations.ai/models. Without an account, the anonymous tier returns a single model, openai-fast (officially listed as a GPT-OSS 20B reasoning model).
  2. Send the request — this is the command actually used in the test:
curl -s https://text.pollinations.ai/openai 
  -H "Content-Type: application/json" 
  -d '{"model":"openai-fast","response_format":{"type":"json_object"},"max_tokens":300,"messages":[{"role":"system","content":"你是内容编辑。给标题打标签,只输出 JSON:{"category":"...","tags":["..."]}"},{"role":"user","content":"小米 17 Ultra 影像旗舰发布,起售价 6999 元"}]}'
  1. Read the result: message.content in the response is a JSON string — parse it a second time, then take category and tags. A real successful response looked like this:
{"category":"科技","tags":["小米","小米 17 Ultra","影像旗舰","手机","新品发布","6999元起售价"]}

Measured results (7 batch calls)

Test data was seven real headlines from IT之家 posted that day, sent 16 seconds apart:

Item Measured
Success 5 / 7
Failures 2 × HTTP 402 (free rate limit hit)
Average prompt tokens 123
Average completion tokens 174
Average time per call ~9 s
One timed call (with JSON output) 17.3 s

What broke (all of it really happened)

  1. The real rate limit is stricter than the docs. The official docs say the anonymous tier allows 1 request per 15 seconds; at 16-second intervals I still got 402s. The exact error text was “Free limit reached: 1 reply every 30 seconds per IP” — treat 30 seconds as the truth, the docs lag behind actual behaviour.
  2. A wrong model name returns 404, and the error text tells you to check the /models list — that one is reasonably friendly.
  3. Firing requests back to back returns straight 402s, and one follow-up call timed out during the connection stage with no HTTP status at all. A batch script must schedule 30-second gaps and handle 402 retries.
  4. Categories do not converge. The five successful outputs produced four different categories: 安全与健康 / 铁路行业资讯 / Finance / Tech / 科技 — Chinese and English mixed. There is no controlled vocabulary, so before writing to a CMS you must pin the candidate categories in the system prompt or map them before storing.
  5. The reasoning model is slow, and completion tokens are often larger than prompt tokens (the thinking is billed as output). For a light job such as tagging, a reasoning model is overkill.

Cost

Pollinations’ anonymous tier costs 0. As a comparison, at the measured token counts (about 123 + 174 tokens per call), running 300 headlines through OpenRouter’s cheapest pay-as-you-go model mistralai/mistral-nemo ($0.029 per 1M input, $0.030 per 1M output, taken from the OpenRouter models API on 2026-10-26) comes to roughly $0.0026 — effectively free as well, but without a 30-second-per-IP limit and with an order of magnitude more throughput.

Pollinations’ official tiers (from APIDOCS.md): anonymous 15 s (basic models only), Seed 5 s after signup, Flower 3 s paid, Nectar unlimited for enterprise. Note that the anonymous figure in the docs (15 s) does not match the measured behaviour (30 s).

Downsides

  • Quota is per IP with no SLA — a batch can be rejected at any time.
  • The anonymous tier is locked to one model; switching models requires signup or payment.
  • Output language is unstable, so pin a mapping before storing.
  • Free-generated images may carry a watermark (stated in the docs; the image endpoint was not tested here).

Alternatives

  • OpenRouter pay-as-you-go API: same workflow code, only the base URL and the key change; cost as computed above, negligible.
  • Gemini API free tier: registered free quota with looser rate limits than Pollinations.
  • A local ollama 8B model: no API cost, no rate limits — the cost is that the machine has to stay on.

Conclusion

For a few to a few dozen tags a day on personal projects, the Pollinations free tier works — schedule 30-second gaps and handle 402 retries. For a content site running batch pipelines, or when you need a fixed category vocabulary, skip the free tier: use a pay-as-you-go API (well under one cent per 1,000 items) and pin the vocabulary in the prompt.

Data sources: Pollinations’ official APIDOCS.md (GitHub), 10 real calls made from this machine on 2026-10-26, and OpenRouter models API pricing captured on 2026-10-26. Related on this site: AI daily digest (2026-10-23); to run the batch script on a server with a scheduler, see Install Docker on Ubuntu: three steps after install.