PoetryDB
Books
Enables you to get instant data from our vast poetry collection
Full-text poetry corpus searchable by author, title, or line.
Auth
No Auth
HTTPS
Yes
CORS
Yes
Common Use Cases
- •Build book discovery and recommendation engines
- •Create reading list and library management apps
- •Integrate literary metadata into educational platforms
Integration Guide
Review the API Documentation
Visit the official PoetryDB documentation to understand available endpoints, request formats, and response structures. Familiarize yourself with the API's rate limits and usage policies before integration.
No Authentication Required
Good news — PoetryDB does not require any authentication. You can start making API requests directly without registering for an API key or setting up OAuth credentials.
Use HTTPS for Secure Requests
PoetryDB supports HTTPS, ensuring encrypted communication. Always use HTTPS endpoints in production to protect data in transit and comply with modern web security standards.
CORS Enabled — Direct Browser Access
PoetryDB has CORS enabled, meaning you can make requests directly from the browser. This is ideal for frontend-only applications built with React, Vue, or vanilla JavaScript.
Implement and Test
Write your API integration code, start with a simple test request to verify connectivity. Implement proper error handling for network failures, rate limits, and invalid responses. Monitor your API usage to stay within any limits.
Code Examples
JavaScript / Fetch API:
// JavaScript example
fetch("https://github.com/thundercomb/poetrydb#readme")
.then(response => {
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
return response.json();
})
.then(data => {
console.log("API response:", data);
})
.catch(error => {
console.error("Error fetching from PoetryDB:", error);
});Python / Requests:
# Python example
import requests
response = requests.get("https://github.com/thundercomb/poetrydb#readme")
if response.status_code == 200:
data = response.json()
print("API response:", data)
else:
print(f"Error: {response.status_code}")Frequently Asked Questions
Is PoetryDB free to use?
Do I need an API key for PoetryDB?
Can I use PoetryDB in a browser-based application?
What category does PoetryDB belong to?
Is PoetryDB secure?
Editor's Notes & Deep Dive
Key Features
- →GET /author returns the list of all indexed poets
- →GET /title/{title}/author/{author} does scoped lookup
- →GET /line/{query} does full-text search across all poem lines
Rate Limits & Quotas
No published limit; hosted on a volunteer server, keep usage polite (~1 req/sec).
Known Issues & Pitfalls
- !The corpus is predominantly English-language public-domain poetry
- !Search is exact substring — no fuzzy matching or stemming
- !Some responses are very large (full poems); set a sane response size cap in your client
How It Compares
Unique — no other free API exposes a full-text poetry corpus. Combine with poetry-foundation data for richer metadata.
Sample Response
{
"title": "Ozymandias",
"author": "Percy Bysshe Shelley",
"lines": [
"I met a traveller from an antique land",
"Who said—"Two vast and trunkless legs of stone..."
]
}Pro Tips
- ✓Add .json to any endpoint to force JSON; .text returns plain text