Wolne Lektury API

Free to Use Varies (check documentation)

Overview

Wolne Lektury is Poland's national digital library API, giving access to thousands of freely available Polish literary works including full texts, author data, and cover images.

💡

Beginner Tip

Browse all books with https://wolnelektury.pl/api/books/ — it returns a paginated list with direct download links for EPUB, PDF, and MP3 audiobook formats. No key needed.

Available Data

book title and author
ISBN and publisher
cover image URL
page count
publication date

Example Response

JSON Response
{
  "title": "The Great Gatsby",
  "authors": [
    "F. Scott Fitzgerald"
  ],
  "publishedDate": "1925-04-10",
  "pageCount": 218,
  "categories": [
    "Fiction"
  ],
  "imageLinks": {
    "thumbnail": "https://books.google.com/..."
  },
  "averageRating": 4
}

Field Reference

title Title of the literary work.
author Author of the work.
slug URL-safe identifier used in detail endpoint paths.
cover URL of the book cover image.
href API URL of the book's detail endpoint.
epub Direct download URL for the EPUB version of the book.

Implementation Example

// ⚠️ Note: This URL may be a documentation page. Check official docs for actual API endpoint.
const url = "https://wolnelektury.pl/api/";
const response = await fetch(url);
if (!response.ok) throw new Error(`Request failed: ${response.status}`);
const data = await response.json();
console.log(data);

What Can You Build?

Note: These code examples are AI-generated and unverified. Always refer to the official API documentation for accurate usage.

Common Errors & Troubleshooting

CORS block when calling from browser CORS support is not confirmed for all endpoints
Route requests through a server-side proxy or use curl/Postman for development and exploration.
"detail": "Not found" for a book slug Book slug format is incorrect or the work does not exist
Retrieve the full book list first via /api/books/ and copy the "slug" field exactly from a result you want.
Non-ASCII characters in Polish text mangled Response not decoded as UTF-8
Ensure your HTTP client treats the response as UTF-8. In Python, use response.json() which handles encoding automatically.

Matrix Score Breakdown

🌐 Reachability 0/30
⚡ Speed 5/20
🔒 Security 15/15
🛠 Developer XP 15/20
✓ Reliability 7/15
Response Time 2204ms

Fully tested on Apr 5, 2026

Technical Specifications

Auth No Auth
HTTPS REQUIRED
CORS UNKNOWN
Category Books
Difficulty Beginner
Verified: 2026-04-04

Similar APIs

View All →