# Audiobook Scraper - Ratings, Narrators & Prices (`goat255/audible-scraper`) Actor

Search audiobooks by topic, title, author or narrator across 10 regional stores. Every row has authors, narrators, overall/performance/story ratings, runtime, price, language, categories and a summary. No login.

- **URL**: https://apify.com/goat255/audible-scraper.md
- **Developed by:** [Goutam Soni](https://apify.com/goat255) (community)
- **Categories:** Automation, Lead generation, Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 audiobook scrapeds

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Audiobook Scraper

Search audiobooks at scale and get the details that actually decide a listen: who narrates it, how it is rated for performance and story separately, how long it runs, and what it costs in each regional store. No login and no API key.

### What it does

- **Search by anything** - topic, title, author, or narrator. One search runs per query.
- **Narrator data** - the full narrator list, not just the author. This is usually the deciding factor for listeners and is rarely available elsewhere.
- **Three separate ratings** - overall, performance, and story, each with the rating count, so you can tell a great book from a great reading.
- **Ten regional stores** - catalog, currency and pricing differ per marketplace, so you can compare the same title across regions.
- **Direct IDs** - fetch specific audiobooks by catalog ID and skip search entirely.
- **Pagination** - results are collected 50 at a time up to your cap, stopping cleanly when the catalog runs out.

Common uses: audiobook market and pricing research, narrator and publisher analysis, catalog building, and rating comparisons across regions.

### Input

| Field | Type | Description |
|---|---|---|
| `searchQueries` | array | Topics, titles, authors or narrators to search. |
| `asins` | array | Specific catalog IDs to fetch directly. |
| `marketplace` | string | `us`, `uk`, `de`, `fr`, `it`, `es`, `in`, `ca`, `au`, `jp`. |
| `maxResultsPerQuery` | integer | Cap per query. Default 50, up to 5000. |
| `includeDetails` | boolean | Fetch summary, categories, runtime and price. Default true. |
| `proxyConfiguration` | object | Optional. Runs fine without a proxy. |

At least one of `searchQueries` or `asins` is required.

#### Example input

```json
{
  "searchQueries": ["mystery", "business"],
  "marketplace": "us",
  "maxResultsPerQuery": 150,
  "includeDetails": true
}
````

### Output

Each item is one audiobook.

```json
{
  "asin": "B0EXAMPLE1",
  "title": "An Example Audiobook",
  "subtitle": "A Practical Guide",
  "marketplace": "us",
  "authors": ["Jane Doe"],
  "narrators": ["John Smith"],
  "publisher": "Acme Audio",
  "rating": 4.8,
  "ratingCount": 3184,
  "performanceRating": 4.8,
  "storyRating": 4.7,
  "price": 14.99,
  "currency": "USD",
  "listPrice": 16.98,
  "creditPrice": 1.0,
  "runtimeMinutes": 335,
  "language": "english",
  "categories": ["Personal Development", "Personal Success"],
  "summary": "A practical guide to building better habits...",
  "isAdult": false,
  "formatType": "unabridged",
  "coverImage": "https://example.com/cover.jpg",
  "releaseDate": "2018-10-16",
  "url": "https://www.audible.com/pd/B0EXAMPLE1"
}
```

Titles with no rating yet, or fields a given store does not publish, come back as `null` or an empty list, so the shape is always the same.

### Notes

- No login and no API key. Set your queries and run.
- Turn off `includeDetails` for a faster, lighter run when you only need titles, authors, narrators and ratings.
- Switch `marketplace` to compare pricing and availability for the same title across regions.
- Deep searches stop automatically once the catalog stops returning new titles, so you are never charged for repeats.

### Privacy

To improve our actors we collect anonymized usage telemetry (run stats and input patterns). No personal account data is collected.

# Actor input Schema

## `searchQueries` (type: `array`):

Topics, titles, authors or narrators to search. One search runs per entry.

## `asins` (type: `array`):

Fetch specific audiobooks directly by their catalog ID. Skips search.

## `marketplace` (type: `string`):

Regional store to search. Catalog, pricing and currency vary by marketplace.

## `maxResultsPerQuery` (type: `integer`):

Cap per search query. Results are collected 50 at a time until this cap is reached or the catalog runs out.

## `includeDetails` (type: `boolean`):

Fetch the complete record for every result: summary, categories, runtime, price, and the separate performance and story ratings. Turn off for a faster, lighter run.

## `proxyConfiguration` (type: `object`):

Optional. This Actor runs fine without a proxy; enable it to spread requests across IPs on large runs.

## Actor input object example

```json
{
  "searchQueries": [
    "mystery",
    "business"
  ],
  "asins": [
    "B07RM306W1"
  ],
  "marketplace": "us",
  "maxResultsPerQuery": 50,
  "includeDetails": true,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `audiobooks` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "searchQueries": [
        "self development"
    ],
    "asins": [],
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("goat255/audible-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "searchQueries": ["self development"],
    "asins": [],
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("goat255/audible-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "searchQueries": [
    "self development"
  ],
  "asins": [],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call goat255/audible-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=goat255/audible-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Audiobook Scraper - Ratings, Narrators & Prices",
        "description": "Search audiobooks by topic, title, author or narrator across 10 regional stores. Every row has authors, narrators, overall/performance/story ratings, runtime, price, language, categories and a summary. No login.",
        "version": "0.0",
        "x-build-id": "gZdevsAjv8RBwljQi"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/goat255~audible-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-goat255-audible-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/goat255~audible-scraper/runs": {
            "post": {
                "operationId": "runs-sync-goat255-audible-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/goat255~audible-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-goat255-audible-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "searchQueries": {
                        "title": "Search queries",
                        "type": "array",
                        "description": "Topics, titles, authors or narrators to search. One search runs per entry.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "asins": {
                        "title": "Item IDs",
                        "type": "array",
                        "description": "Fetch specific audiobooks directly by their catalog ID. Skips search.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "marketplace": {
                        "title": "Marketplace",
                        "enum": [
                            "us",
                            "uk",
                            "de",
                            "fr",
                            "it",
                            "es",
                            "in",
                            "ca",
                            "au",
                            "jp"
                        ],
                        "type": "string",
                        "description": "Regional store to search. Catalog, pricing and currency vary by marketplace.",
                        "default": "us"
                    },
                    "maxResultsPerQuery": {
                        "title": "Max audiobooks per query",
                        "minimum": 1,
                        "maximum": 5000,
                        "type": "integer",
                        "description": "Cap per search query. Results are collected 50 at a time until this cap is reached or the catalog runs out.",
                        "default": 50
                    },
                    "includeDetails": {
                        "title": "Include full details",
                        "type": "boolean",
                        "description": "Fetch the complete record for every result: summary, categories, runtime, price, and the separate performance and story ratings. Turn off for a faster, lighter run.",
                        "default": true
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Optional. This Actor runs fine without a proxy; enable it to spread requests across IPs on large runs."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
