---
title: "questions-scraper"
method: POST
path: "/api/works/questions"
tags: ["works"]
---

# questions-scraper

`POST /api/works/questions`

## Questions Scraper

Scrapes community Q&A questions for a book from its Goodreads questions page. Returns a list of questions and answers submitted by the Goodreads community.

---

## Request

**Method:** `POST`  
**URL:** `{{Instance Domain}}/api/works/questions`

### Headers

| Key | Value | Description |
| --- | --- | --- |
| Content-Type | application/json | Indicates the request body is JSON |

### Body

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| queryURL | string | Yes | The full Goodreads book questions page URL (e.g. `https://www.goodreads.com/book/5907/questions`) |

**Example Body:**

```json
{
  "queryURL": "https://www.goodreads.com/book/5907/questions"
}
```

---

## Response

### 200 Success

Returns a JSON object containing the scraped questions and answers.

```json
{
  "status": "Received",
  "statusCode": 200,
  "scrapeURL": "string",
  "questions": [
    {
      "question": "string",
      "askedBy": "string",
      "answers": [
        {
          "answer": "string",
          "answeredBy": "string",
          "likes": "string"
        }
      ]
    }
  ]
}
```

### Response Field Descriptions

| Field | Type | Description |
| --- | --- | --- |
| status | string | Human-readable status message |
| statusCode | number | HTTP status code of the scrape operation |
| scrapeURL | string | The Goodreads URL that was scraped |
| questions | array | List of community questions for the book |
| questions[].question | string | The question text |
| questions[].askedBy | string | Username of the person who asked the question |
| questions[].answers | array | List of answers to the question |
| questions[].answers[].answer | string | The answer text |
| questions[].answers[].answeredBy | string | Username of the person who answered |
| questions[].answers[].likes | string | Number of likes on the answer |

## Request body

- object
  - `queryURL` string, uri, required

## Response `200`

OK

- object
  - `status` string, required
  - `source` string, uri, required
  - `scrapeURL` string, uri, required
  - `image` string, uri, required
  - `book` string, required
  - `bookURL` string, required
  - `author` string, required
  - `questions` object[], required
    - `id` integer, required
    - `date` string, required
    - `avatar` string, uri, required
    - `authorName` string, required
    - `authorURL` string, required
    - `question` string, required
    - `spoilerQuestion` string, required
    - `shortAnswer` string, required
    - `answer` string, required
    - `likes` string, required
  - `unansweredQuestions` object[], required
    - `id` integer, required
    - `question` string, required
    - `spoilerQuestion` string, required
  - `lastScraped` string, date-time, required

## Changes

- **2026-06-15** `6ef082114b12` — 1 info
  - endpoint added
- **2026-06-15** `9188f0ce7be6` — 1 breaking
  - api path removed without deprecation
- **2026-06-15** `6ef082114b12` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/nesaku/apis/api-endpoints/changes/api/works/questions/post.md)

---

[API](https://skmtc.dev/nesaku/apis/api-endpoints.md) · [All operations](https://skmtc.dev/nesaku/apis/api-endpoints/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/nesaku/api-endpoints/revisions/182d9252d879/schema)
