Enterprise
$0.00/month
Monthly request quota included
- 10,000 requests/month included
- Commercial use
- Standard support
Books API
Semantic book recommendations from raw text.
Status: GA · Auth: Bearer · Format: JSON
$0.00/month
Monthly request quota included
$19.99/month
10,000 requests/month
https://api.tawkee.com/v1/bookmatch with your API key.curl
curl -s -X POST https://api.tawkee.com/v1/bookmatch \
-H "Authorization: Bearer $TAWKEE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"In today's economic briefing, policymakers held interest rates steady while warning that persistent inflation and slower productivity growth could pressure households through next year."}'POST https://api.tawkee.com/v1/bookmatch
Headers
Authorization: Bearer <API_KEY>Content-Type: application/jsonRequest JSON
{
"text": "string (1..6000 chars)"
}Response JSON
{
"request_id": "uuid",
"results": [
{
"book_id": "string",
"title": "string",
"author": "string",
"summary": "string|null",
"asin": "string|null",
"isbn13": "string|null",
"member_asins": ["string"],
"member_isbns": ["string"],
"amazon_url": "https://www.amazon.com/...",
"similarity": 0.72
}
]
}Error codes
400 invalid payload (missing text / >6000 chars)401 missing/invalid API key403 no active subscription429 rate limited or monthly quota exceeded5xx upstream error passthroughcurl
curl -s -X POST https://api.tawkee.com/v1/bookmatch \
-H "Authorization: Bearer $TAWKEE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"In today's economic briefing, policymakers held interest rates steady while warning that persistent inflation and slower productivity growth could pressure households through next year."}'Node
const res = await fetch("https://api.tawkee.com/v1/bookmatch", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.TAWKEE_API_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({ text })
});
console.log(await res.json());Rust (reqwest)
let client = reqwest::Client::new();
let resp = client
.post("https://api.tawkee.com/v1/bookmatch")
.bearer_auth(std::env::var("TAWKEE_API_KEY")?)
.json(&serde_json::json!({ "text": text }))
.send()
.await?
.json::<serde_json::Value>()
.await?;
println!("{}", resp);