Books Data API

Access structured book metadata, user demographics, and ratings at scale. Designed for recommendation engines, analytics, research, and publishing platforms.

Available Endpoints

Quickstart

Make your first request

curl --request GET \
  --url 'https://books-api10.p.rapidapi.com/ratings/?limit=5&offset=10' \
  --header 'X-RapidAPI-Host: books-api10.p.rapidapi.com' \
  --header 'X-RapidAPI-Key: YOUR_API_KEY'

      

Example JSON response

{
  "book_id": 123,
  "title": "The Pragmatic Programmer",
  "author": "Andrew Hunt",
  "rating": 4.8
}
      

API Guide

🔑 Authentication

All requests must include your API Key and the correct API Host. Replace YOUR_API_KEY with your API key.

X-RapidAPI-Key: YOUR_API_KEY
X-RapidAPI-Host: books-api10.p.rapidapi.com
    

Example Requests

cURL

curl --request GET \
  --url "https://books-api10.p.rapidapi.com/books/?q=Rowling&limit=3" \
  --header "X-RapidAPI-Key: YOUR_API_KEY" \
  --header "X-RapidAPI-Host: books-api10.p.rapidapi.com"
      

Python

import requests

url = "https://books-api10.p.rapidapi.com/books"
headers = {
    "X-RapidAPI-Key": "YOUR_API_KEY",
    "X-RapidAPI-Host": "books-api10.p.rapidapi.com"
}
params = {"q": "Rowling", "limit": 3}

response = requests.get(url, headers=headers, params=params)
print(response.json())
      

R

library(httr)

url <- "https://books-api10.p.rapidapi.com/books"
headers <- c(
  "X-RapidAPI-Key" = "YOUR_API_KEY",
  "X-RapidAPI-Host" = "books-api10.p.rapidapi.com"
)
params <- list(q = "Rowling", limit = 3)

res <- GET(url, add_headers(.headers=headers), query=params)
content(res, "parsed")
      

JavaScript (fetch)

const url = "https://books-api10.p.rapidapi.com/books/?q=Rowling&limit=3";

const options = {
  method: "GET",
  headers: {
    "X-RapidAPI-Key": "YOUR_API_KEY",
    "X-RapidAPI-Host": "books-api10.p.rapidapi.com"
  }
};

fetch(url, options)
  .then(res => res.json())
  .then(json => console.log(json))
  .catch(err => console.error(err));
      

⚡ Node.js (axios)

import axios from "axios";

const options = {
  method: "GET",
  url: "https://books-api10.p.rapidapi.com/books",
  params: { q: "Rowling", limit: 3 },
  headers: {
    "X-RapidAPI-Key": "YOUR_API_KEY",
    "X-RapidAPI-Host": "books-api10.p.rapidapi.com"
  }
};

axios.request(options)
  .then(response => console.log(response.data))
  .catch(error => console.error(error));
      

Go

package main

import (
  "fmt"
  "io/ioutil"
  "net/http"
)

func main() {
  url := "https://books-api10.p.rapidapi.com/books/?q=Rowling&limit=3"

  req, _ := http.NewRequest("GET", url, nil)
  req.Header.Add("X-RapidAPI-Key", "YOUR_API_KEY")
  req.Header.Add("X-RapidAPI-Host", "books-api10.p.rapidapi.com")

  res, _ := http.DefaultClient.Do(req)
  defer res.Body.Close()
  body, _ := ioutil.ReadAll(res.Body)

  fmt.Println(string(body))
}
      

Available Endpoints

  • /books → Search and browse books
  • /users → Browse user profiles
  • /ratings → Access ratings
  • /users_books_ratings → Full details (user + book + rating)

Full interactive docs at: /docs

Contact & Support

Have questions, need support, or want to discuss integrations? Our team is here to help you get the most out of the Books API.