← ClaudeAtlas

free-tier-scraper-apislisted

Use when building zero-cost scraping or data-enrichment pipelines on free API tiers. Covers Gemini free-tier model IDs and rate limits, the generativelanguage REST endpoint and payload, Notion API property JSON shapes, model fallback, and scraping-method choice.
Mixard/fable-pack · ★ 1 · API & Backend · score 74
Install: claude install-skill Mixard/fable-pack
# Free-Tier APIs for Scraper Pipelines Reference for the common free stack: `requests`/BeautifulSoup or Playwright for collection, Gemini free tier for enrichment, Notion API for storage. ## Gemini free tier Model IDs and free-tier limits (API key from AI Studio, no billing): | Model | RPM | RPD | |---|---|---| | `gemini-2.0-flash-lite` | 30 | 1500 | | `gemini-2.0-flash` | 15 | 1500 | | `gemini-2.5-flash` | 10 | 500 | | `gemini-flash-lite-latest` | alias, tracks current flash-lite | - | ### REST endpoint ``` POST https://generativelanguage.googleapis.com/v1beta/models/{MODEL}:generateContent?key={API_KEY} ``` Payload for JSON-out enrichment: ```json { "contents": [{"parts": [{"text": "your prompt"}]}], "generationConfig": { "responseMimeType": "application/json", "temperature": 0.3, "maxOutputTokens": 2048 } } ``` Response text lives at `candidates[0].content.parts[0].text`. Even with `responseMimeType: application/json` some models wrap output in ` ```json ` fences; strip them before `json.loads`. Keep `maxOutputTokens` at 2048+ for batch responses, otherwise truncated JSON fails to parse. ### Fallback chain and batching - On HTTP 429 (quota) or 404 (model retired), retry the same prompt on the next model: `gemini-2.0-flash-lite -> gemini-2.0-flash -> gemini-2.5-flash -> gemini-flash-lite-latest`. Model IDs churn; the `-latest` alias survives retirements. - Batch items into one prompt (about 5 per call, response as `{"analyses": [...]}` in input