Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@

<table>
<tr>
<td align="center"><b>🌐 Free APIs</b><br><code>100</code></td>
<td align="center"><b>🌐 Free APIs</b><br><code>101</code></td>
<td align="center"><b>🤖 AI & LLMs</b><br><code>90</code></td>
<td align="center"><b>⚡ CLI Tools</b><br><code>116</code></td>
<td align="center"><b>🧪 Testing & QA</b><br><code>62</code></td>
Expand All @@ -47,7 +47,7 @@
### 🎯 The Race to 1,000 Verified Tools (Hacktoberfest Milestone)

```text
[███████████░░░░░░░░░] 531 / 1,000 Tools Verified (53% • 469 to go!)
[███████████░░░░░░░░░] 532 / 1,000 Tools Verified (53% • 468 to go!)
```

*Help us curate the definitive zero-paywall index! [Submit your favorite developer tool, API, or AI framework →](#-how-to-submit-your-project-or-api)*
Expand All @@ -66,7 +66,7 @@ DevShelf isn't a static markdown list. It runs directly inside your terminal, in
┌─────────────────────────────────────────────────────────────────────────────────┐
│ $ npx devshelf search "postgres" │
│ │
│ 📚 DevShelf CLI v1.1.0 — 531 Curated Tools (Live CI Audited) │
│ 📚 DevShelf CLI v1.1.0 — 532 Curated Tools (Live CI Audited) │
│ │
│ [1] Neon (Database / Serverless) │
│ Serverless Postgres with autoscaling, branching, and generous free tier. │
Expand Down Expand Up @@ -156,11 +156,11 @@ npx devshelf stats

## 📂 Browse Catalog by Category

Explore our curated collections of **531+ zero-paywall developer tools**, categorized into dedicated guides with subcategory indexing:
Explore our curated collections of **532+ zero-paywall developer tools**, categorized into dedicated guides with subcategory indexing:

| Category | Resources | Description & Subcategories | Guide |
| :--- | :---: | :--- | :---: |
| 🌐 **Free & Public APIs** | **100** | Weather, Finance, Mock/Dev APIs, Geocoding, AI/ML, Media, Entertainment | [**Browse APIs →**](docs/apis.md) |
| 🌐 **Free & Public APIs** | **101** | Weather, Finance, Mock/Dev APIs, Geocoding, AI/ML, Media, Entertainment | [**Browse APIs →**](docs/apis.md) |
| 🤖 **AI Agents & Local LLMs** | **90** | Local LLM Runtimes, Autonomous Agents, Coding Assistants, Orchestration | [**Browse AI Tools →**](docs/ai-tools.md) |
| ⚡ **CLI & Productivity Tools** | **116** | Terminal Utilities, Git Power Tools, Docker & DevOps, Benchmarking, DBs | [**Browse CLI Tools →**](docs/cli-tools.md) |
| 🧪 **Testing & QA Reliability** | **62** | E2E Testing, Mock Servers, Contract Testing, Security Auditing, Performance | [**Browse Testing Tools →**](docs/testing-qa.md) |
Expand Down
5 changes: 3 additions & 2 deletions docs/apis.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

[← Back to Main Directory](../README.md) • [🌐 Live Search App](https://devshelf.ritualdev.in) • [➕ Submit New Resource](../README.md#-how-to-submit-your-project-or-api)

[![Total APIs](https://img.shields.io/badge/APIs-100_Curated-blueviolet?style=for-the-badge)](https://devshelf.ritualdev.in)
[![Total APIs](https://img.shields.io/badge/APIs-101_Curated-blueviolet?style=for-the-badge)](https://devshelf.ritualdev.in)

**Jump to Subcategory:**
[AI & Machine Learning](#ai-machine-learning) • [Animals & Fun](#animals-fun) • [Books & Literature](#books-literature) • [Development & Testing](#development-testing) • [Entertainment & Media](#entertainment-media) • [Finance & Crypto](#finance-crypto) • [Food & Health](#food-health) • [Games & Media](#games-media) • [Geocoding & IP](#geocoding-ip) • [Media & Images](#media-images) • [News & Media](#news-media) • [Other](#other) • [Science & Astronomy](#science-astronomy) • [Travel & Transit](#travel-transit) • [Weather & Climate](#weather-climate)
Expand Down Expand Up @@ -54,7 +54,7 @@
| [**Open Library Covers API**](https://openlibrary.org/dev/docs/api/covers) | 🟢 No Key | `Unlimited` | Retrieve book cover images and author portraits using ISBN, OCLC, LCCN, or OLID identifiers. |
| [**Free Dictionary**](https://dictionaryapi.dev) | 🟢 No Key | `Unlimited` | Free developer-friendly English vocabulary API providing word origins, examples, and synonyms. |

### <a id="development-testing"></a>Development & Testing (24)
### <a id="development-testing"></a>Development & Testing (25)

| API & URL | Auth | Rate Limit | Description |
| :--- | :---: | :---: | :--- |
Expand Down Expand Up @@ -82,6 +82,7 @@
| [**Agify API**](https://api.agify.io) | 🟢 No Key | `1,000 req/day` | Predict age from first names based on statistical demographic modeling. |
| [**Nationalize API**](https://api.nationalize.io) | 🟢 No Key | `1,000 req/day` | Predict nationality from names returning top country codes and confidence scores. |
| [**Public APIs Index**](https://api.publicapis.org) | 🟢 No Key | `Unlimited` | Queryable directory of hundreds of free public APIs categorized by topic and authentication requirements. |
| [**CurlShot**](https://curlshot.com/docs) | 🔑 Free Key | `100 screenshots/month (resets monthly), 10 requests/minute; failed renders and cache hits not counted` | Screenshot API: one GET request renders a URL, HTML, or Markdown to PNG, JPEG, WebP, PDF, or scrolling video (MP4/WebM/GIF), with full-page and element capture, device presets, dark mode, and ad/cookie-banner blocking. Free plan: 100 screenshots/month that resets monthly, no credit card. |

### <a id="entertainment-media"></a>Entertainment & Media (1)

Expand Down
10 changes: 10 additions & 0 deletions shelf/apis.json
Original file line number Diff line number Diff line change
Expand Up @@ -1095,5 +1095,15 @@
"cors": "Yes",
"rateLimit": "500 calls/month; MCP trial 25/day per IP",
"https": true
},
{
"name": "CurlShot",
"url": "https://curlshot.com/docs",
"category": "Development & Testing",
"description": "Screenshot API: one GET request renders a URL, HTML, or Markdown to PNG, JPEG, WebP, PDF, or scrolling video (MP4/WebM/GIF), with full-page and element capture, device presets, dark mode, and ad/cookie-banner blocking. Free plan: 100 screenshots/month that resets monthly, no credit card.",
"auth": "Free API Key",
"cors": "Yes",
"rateLimit": "100 screenshots/month (resets monthly), 10 requests/minute; failed renders and cache hits not counted",
"https": true
}
]
4 changes: 2 additions & 2 deletions site/api/v1/categories.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"version": "1.1.2",
"updatedAt": "2026-10-15T03:29:43.494Z",
"updatedAt": "2026-10-15T05:59:32.286Z",
"totalCategories": 8,
"categories": [
{
Expand All @@ -18,7 +18,7 @@
{
"slug": "apis",
"name": "Free Public APIs",
"count": 100,
"count": 101,
"endpoint": "https://devshelf.ritualdev.in/api/v1/categories/apis.json"
},
{
Expand Down
2 changes: 1 addition & 1 deletion site/api/v1/categories/ai.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"version": "1.1.2",
"updatedAt": "2026-10-15T03:29:43.494Z",
"updatedAt": "2026-10-15T05:59:32.286Z",
"slug": "ai",
"name": "AI Agents & Local LLMs",
"count": 90,
Expand Down
16 changes: 14 additions & 2 deletions site/api/v1/categories/apis.json
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
{
"version": "1.1.2",
"updatedAt": "2026-10-15T03:29:43.494Z",
"updatedAt": "2026-10-15T05:59:32.286Z",
"slug": "apis",
"name": "Free Public APIs",
"count": 100,
"count": 101,
"items": [
{
"name": "Open-Meteo",
Expand Down Expand Up @@ -1597,6 +1597,18 @@
"https": true,
"type": "api",
"section": "Free & Public APIs"
},
{
"name": "CurlShot",
"url": "https://curlshot.com/docs",
"category": "Development & Testing",
"description": "Screenshot API: one GET request renders a URL, HTML, or Markdown to PNG, JPEG, WebP, PDF, or scrolling video (MP4/WebM/GIF), with full-page and element capture, device presets, dark mode, and ad/cookie-banner blocking. Free plan: 100 screenshots/month that resets monthly, no credit card.",
"auth": "Free API Key",
"cors": "Yes",
"rateLimit": "100 screenshots/month (resets monthly), 10 requests/minute; failed renders and cache hits not counted",
"https": true,
"type": "api",
"section": "Free & Public APIs"
}
]
}
2 changes: 1 addition & 1 deletion site/api/v1/categories/boilerplates.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"version": "1.1.2",
"updatedAt": "2026-10-15T03:29:43.494Z",
"updatedAt": "2026-10-15T05:59:32.286Z",
"slug": "boilerplates",
"name": "1-Click Deploy Boilerplates",
"count": 41,
Expand Down
2 changes: 1 addition & 1 deletion site/api/v1/categories/cli.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"version": "1.1.2",
"updatedAt": "2026-10-15T03:29:43.494Z",
"updatedAt": "2026-10-15T05:59:32.286Z",
"slug": "cli",
"name": "CLI & Developer Productivity",
"count": 116,
Expand Down
2 changes: 1 addition & 1 deletion site/api/v1/categories/cloud.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"version": "1.1.2",
"updatedAt": "2026-10-15T03:29:43.494Z",
"updatedAt": "2026-10-15T05:59:32.286Z",
"slug": "cloud",
"name": "Free Cloud & Databases",
"count": 71,
Expand Down
2 changes: 1 addition & 1 deletion site/api/v1/categories/contributors.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"version": "1.1.2",
"updatedAt": "2026-10-15T03:29:43.494Z",
"updatedAt": "2026-10-15T05:59:32.286Z",
"slug": "contributors",
"name": "Contributors Wanted / Up for Grabs",
"count": 21,
Expand Down
2 changes: 1 addition & 1 deletion site/api/v1/categories/perks.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"version": "1.1.2",
"updatedAt": "2026-10-15T03:29:43.494Z",
"updatedAt": "2026-10-15T05:59:32.286Z",
"slug": "perks",
"name": "Developer Perks & Startup Credits",
"count": 30,
Expand Down
2 changes: 1 addition & 1 deletion site/api/v1/categories/testing.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"version": "1.1.2",
"updatedAt": "2026-10-15T03:29:43.494Z",
"updatedAt": "2026-10-15T05:59:32.286Z",
"slug": "testing",
"name": "Testing & QA Automation",
"count": 62,
Expand Down
6 changes: 3 additions & 3 deletions site/api/v1/stats.json
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
{
"version": "1.1.2",
"updatedAt": "2026-10-15T03:29:43.494Z",
"totalCount": 531,
"updatedAt": "2026-10-15T05:59:32.286Z",
"totalCount": 532,
"reposCount": 330,
"categoryCounts": {
"aiTools": 90,
"cliTools": 116,
"testingQa": 62,
"apis": 100,
"apis": 101,
"freeCloud": 71,
"contributors": 21,
"perks": 30,
Expand Down
16 changes: 14 additions & 2 deletions site/api/v1/tools.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
"version": "1.1.2",
"docs": "https://devshelf.ritualdev.in/docs/api.html",
"license": "https://github.com/RitualDev-Lab/DevShelf/blob/main/LICENSE",
"updatedAt": "2026-10-15T03:29:43.494Z",
"totalCount": 531,
"updatedAt": "2026-10-15T05:59:32.286Z",
"totalCount": 532,
"tools": [
{
"name": "AgentShield",
Expand Down Expand Up @@ -5679,6 +5679,18 @@
"type": "api",
"section": "Free & Public APIs"
},
{
"name": "CurlShot",
"url": "https://curlshot.com/docs",
"category": "Development & Testing",
"description": "Screenshot API: one GET request renders a URL, HTML, or Markdown to PNG, JPEG, WebP, PDF, or scrolling video (MP4/WebM/GIF), with full-page and element capture, device presets, dark mode, and ad/cookie-banner blocking. Free plan: 100 screenshots/month that resets monthly, no credit card.",
"auth": "Free API Key",
"cors": "Yes",
"rateLimit": "100 screenshots/month (resets monthly), 10 requests/minute; failed renders and cache hits not counted",
"https": true,
"type": "api",
"section": "Free & Public APIs"
},
{
"name": "Supabase",
"url": "https://supabase.com",
Expand Down
39 changes: 37 additions & 2 deletions site/collections/free-mock-apis.html
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
"@type": "ItemList",
"name": "Free Mock APIs & Test Data Services",
"description": "Realistic dummy data, REST endpoints, and mock servers for rapid frontend and mobile prototyping.",
"numberOfItems": 24,
"numberOfItems": 25,
"itemListElement": [
{
"@type": "ListItem",
Expand Down Expand Up @@ -391,6 +391,21 @@
"priceCurrency": "USD"
}
}
},
{
"@type": "ListItem",
"position": 25,
"item": {
"@type": "SoftwareApplication",
"name": "CurlShot",
"description": "Screenshot API: one GET request renders a URL, HTML, or Markdown to PNG, JPEG, WebP, PDF, or scrolling video (MP4/WebM/GIF), with full-page and element capture, device presets, dark mode, and ad/cookie-banner blocking. Free plan: 100 screenshots/month that resets monthly, no credit card.",
"url": "https://curlshot.com/docs",
"offers": {
"@type": "Offer",
"price": "0",
"priceCurrency": "USD"
}
}
}
]
}
Expand Down Expand Up @@ -424,7 +439,7 @@

<div class="mb-10 text-center sm:text-left">
<div class="inline-block px-3 py-1 rounded-full text-xs font-mono font-bold bg-cyan-950/80 border border-cyan-500/40 text-cyan-300 mb-3">
📂 Curated DevShelf Collection (24 Tools)
📂 Curated DevShelf Collection (25 Tools)
</div>
<h1 class="text-3xl sm:text-5xl font-extrabold text-white tracking-tight mb-4">
Free Mock APIs &amp; Test Data Services
Expand Down Expand Up @@ -915,6 +930,26 @@ <h3 class="text-xl font-bold text-white">

</div>
</div>

<div class="p-6 rounded-2xl bg-slate-900 border border-slate-800 shadow-xl hover:border-purple-500/50 transition">
<div class="flex items-start justify-between flex-wrap gap-2 mb-3">
<div>
<h3 class="text-xl font-bold text-white">
<a href="../tools/curlshot.html" class="hover:text-purple-300 transition">CurlShot</a>
</h3>
<span class="text-xs font-mono text-purple-400">Development &amp; Testing</span>
</div>
<a href="https://curlshot.com/docs" target="_blank" rel="noopener noreferrer" class="px-3.5 py-1.5 rounded-xl bg-purple-600 hover:bg-purple-500 text-white text-xs font-bold transition">
Visit Tool →
</a>
</div>
<p class="text-sm text-slate-300 leading-relaxed mb-4">Screenshot API: one GET request renders a URL, HTML, or Markdown to PNG, JPEG, WebP, PDF, or scrolling video (MP4/WebM/GIF), with full-page and element capture, device presets, dark mode, and ad/cookie-banner blocking. Free plan: 100 screenshots/month that resets monthly, no credit card.</p>
<div class="flex flex-wrap gap-2 text-xs font-mono">
<span class="px-2.5 py-1 rounded-lg bg-emerald-950/80 text-emerald-300 border border-emerald-500/30">💎 Free: 100 screenshots/month (resets monthly), 10 requests/minute; failed renders and cache hits not counted</span>
<span class="px-2.5 py-1 rounded-lg bg-amber-950/80 text-amber-300 border border-amber-500/30">🔑 Free API Key</span>

</div>
</div>
</div>


Expand Down
18 changes: 15 additions & 3 deletions site/data.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
window.DEVSHELF_DATA = {
"updatedAt": "2026-10-15T03:29:43.494Z",
"totalCount": 531,
"updatedAt": "2026-10-15T05:59:32.286Z",
"totalCount": 532,
"reposCount": 330,
"facets": {
"repos": 330
Expand All @@ -9,7 +9,7 @@ window.DEVSHELF_DATA = {
"aiTools": 90,
"cliTools": 116,
"testingQa": 62,
"apis": 100,
"apis": 101,
"freeCloud": 71,
"contributors": 21,
"perks": 30,
Expand Down Expand Up @@ -5690,6 +5690,18 @@ window.DEVSHELF_DATA = {
"type": "api",
"section": "Free & Public APIs"
},
{
"name": "CurlShot",
"url": "https://curlshot.com/docs",
"category": "Development & Testing",
"description": "Screenshot API: one GET request renders a URL, HTML, or Markdown to PNG, JPEG, WebP, PDF, or scrolling video (MP4/WebM/GIF), with full-page and element capture, device presets, dark mode, and ad/cookie-banner blocking. Free plan: 100 screenshots/month that resets monthly, no credit card.",
"auth": "Free API Key",
"cors": "Yes",
"rateLimit": "100 screenshots/month (resets monthly), 10 requests/minute; failed renders and cache hits not counted",
"https": true,
"type": "api",
"section": "Free & Public APIs"
},
{
"name": "Supabase",
"url": "https://supabase.com",
Expand Down
18 changes: 15 additions & 3 deletions site/data.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"updatedAt": "2026-10-15T03:29:43.494Z",
"totalCount": 531,
"updatedAt": "2026-10-15T05:59:32.286Z",
"totalCount": 532,
"reposCount": 330,
"facets": {
"repos": 330
Expand All @@ -9,7 +9,7 @@
"aiTools": 90,
"cliTools": 116,
"testingQa": 62,
"apis": 100,
"apis": 101,
"freeCloud": 71,
"contributors": 21,
"perks": 30,
Expand Down Expand Up @@ -5690,6 +5690,18 @@
"type": "api",
"section": "Free & Public APIs"
},
{
"name": "CurlShot",
"url": "https://curlshot.com/docs",
"category": "Development & Testing",
"description": "Screenshot API: one GET request renders a URL, HTML, or Markdown to PNG, JPEG, WebP, PDF, or scrolling video (MP4/WebM/GIF), with full-page and element capture, device presets, dark mode, and ad/cookie-banner blocking. Free plan: 100 screenshots/month that resets monthly, no credit card.",
"auth": "Free API Key",
"cors": "Yes",
"rateLimit": "100 screenshots/month (resets monthly), 10 requests/minute; failed renders and cache hits not counted",
"https": true,
"type": "api",
"section": "Free & Public APIs"
},
{
"name": "Supabase",
"url": "https://supabase.com",
Expand Down
Loading
Loading