Open Source · TypeScript · Event-Driven
Index 2,000+ URLs Per Day — Not Just 200
Open-source bulk URL submission for Google Indexing API & IndexNow. Multi-key rotation, quota tracking, and smart retry — all in one CLI tool.
- ✓ Rotate across 10+ GCP service accounts automatically
- ✓ Submit to Google & IndexNow simultaneously
- ✓ Smart retry with exponential backoff + daily quota reset
$ git clone https://github.com/uditgoenka/indexer.git $ cd indexer && npm install $ iii -c iii-config.yaml
→ How It Works
Three steps. Zero complexity.
Configure Your Keys
Add GCP service account JSON files. Each project gives you 200 requests/day.
Submit URLs
POST to the API or use the Next.js dashboard. URLs fan out to both Google and IndexNow.
Auto-Rotate & Retry
Keys rotate automatically. Failed requests retry with exponential backoff. Overflow queues drain at midnight.
→ Features
Everything you need to index at scale.
Multi-Key Rotation
Distribute requests across 10+ GCP service accounts. Picks the least-used key to balance load.
Dual Submission
Every URL goes to both Google Indexing API and IndexNow simultaneously.
Quota Tracking
Real-time per-key usage monitoring with automatic overflow queuing.
Smart Retry
Exponential backoff with jitter. Max 3 attempts for transient 429/5xx failures.
Daily Reset
Cron job at midnight UTC resets all quotas and drains the pending queue.
Next.js Dashboard
Submit URLs, view quota usage with visual progress bars, browse submission history.
→ Architecture
Event-driven. Type-safe. Built on Motia.
→ Quick Start
Up and running in 5 minutes.
1. Clone & Install
git clone https://github.com/uditgoenka/indexer.git cd indexer && npm install
2. Configure Environment
cp .env.example .env # Set INDEXNOW_API_KEY, GOOGLE_APPLICATION_CREDENTIALS path
3. Add GCP Service Account Keys
# Drop JSON key files into /keys directory # Each file = one GCP project = 200 requests/day ls keys/ project-a.json project-b.json project-c.json
4. Run
# Start the backend iii -c iii-config.yaml # Start the dashboard (separate terminal) cd frontend && npm run dev
→ FAQ
Common questions about Indexer.