{
  "openapi": "3.0.1",
  "info": {
    "title": "Internet Archive Reviews & Metadata Scraper",
    "description": "Extract public Archive.org book metadata, ISBNs, ratings, and user reviews from public Internet Archive endpoints. Start from URLs, identifiers, ISBNs, creators, collections, subjects, or search queries. Output is always one dataset row per public review. No API key required.",
    "version": "1.0",
    "x-build-id": "2CRWOEkpwxueyHtbV"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/thescrapelab~internet-archive-book-reviews-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-thescrapelab-internet-archive-book-reviews-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/thescrapelab~internet-archive-book-reviews-scraper/runs": {
      "post": {
        "operationId": "runs-sync-thescrapelab-internet-archive-book-reviews-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/thescrapelab~internet-archive-book-reviews-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-thescrapelab-internet-archive-book-reviews-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": {
          "sources": {
            "title": "Archive.org URLs, identifiers, or ISBNs",
            "type": "array",
            "description": "Use this when you already know the Archive.org item URL, item identifier, or ISBN. For authors, collections, subjects, and advanced Archive.org searches, use the discovery fields below.",
            "items": {
              "type": "string"
            },
            "default": [
              "https://archive.org/details/goodytwoshoes00newyiala"
            ]
          },
          "isbns": {
            "title": "ISBNs",
            "type": "array",
            "description": "Optional ISBN-10 or ISBN-13 values to search for. Spaces and hyphens are accepted.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "creators": {
            "title": "Authors / creators",
            "type": "array",
            "description": "Author or creator names to search. Example: Mark Twain.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "collections": {
            "title": "Collections",
            "type": "array",
            "description": "Archive.org collection identifiers to search. Example: internetarchivebooks.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "subjects": {
            "title": "Subjects",
            "type": "array",
            "description": "Subject terms to search. Example: fiction.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "searchQueries": {
            "title": "Archive.org search queries",
            "type": "array",
            "description": "Optional raw Archive.org search queries. Example: creator:\"Mark Twain\" AND mediatype:texts.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "outputMode": {
            "title": "Output mode",
            "type": "string",
            "description": "Legacy option ignored by the Actor. Dataset output is always one row per public review.",
            "default": "reviews_flat"
          },
          "maxItems": {
            "title": "Maximum items",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Maximum number of Archive.org items to enrich.",
            "default": 1
          },
          "maxReviewsPerItem": {
            "title": "Maximum reviews per item",
            "minimum": 0,
            "maximum": 10000,
            "type": "integer",
            "description": "Maximum number of public reviews to fetch per item.",
            "default": 10
          },
          "onlyItemsWithReviews": {
            "title": "Only items with reviews",
            "type": "boolean",
            "description": "Keep enabled for review-only output. Items with no public reviews do not produce dataset rows.",
            "default": true
          },
          "includeFiles": {
            "title": "Include file metadata",
            "type": "boolean",
            "description": "Legacy option. Dataset output remains one row per public review and book files are never downloaded.",
            "default": false
          },
          "minStars": {
            "title": "Minimum stars",
            "minimum": 0,
            "maximum": 5,
            "type": "number",
            "description": "Advanced review filter. Only keep reviews with this star rating or higher.",
            "default": null
          },
          "maxStars": {
            "title": "Maximum stars",
            "minimum": 0,
            "maximum": 5,
            "type": "number",
            "description": "Advanced review filter. Only keep reviews with this star rating or lower.",
            "default": null
          },
          "reviewTextContains": {
            "title": "Review text contains",
            "type": "string",
            "description": "Advanced review filter applied case-insensitively to review titles and bodies.",
            "default": ""
          },
          "languageFilter": {
            "title": "Languages",
            "type": "array",
            "description": "Advanced item language filter, for example eng or english.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "startUrls": {
            "title": "Structured URLs",
            "type": "array",
            "description": "API-compatible structured URL input.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "identifiers": {
            "title": "Structured identifiers",
            "type": "array",
            "description": "API-compatible structured identifier input.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "mediatypes": {
            "title": "Mediatypes",
            "type": "array",
            "description": "Advanced filter for Archive.org mediatype. Defaults to texts.",
            "items": {
              "type": "string"
            },
            "default": [
              "texts"
            ]
          },
          "includeMetadata": {
            "title": "Include metadata",
            "type": "boolean",
            "description": "Backward-compatible option. Metadata is included by default.",
            "default": true
          },
          "includeReviews": {
            "title": "Include reviews",
            "type": "boolean",
            "description": "Backward-compatible option. Reviews are included by default.",
            "default": true
          },
          "includeRawMetadata": {
            "title": "Include raw metadata",
            "type": "boolean",
            "description": "Advanced debugging option.",
            "default": false
          },
          "includeRawReviews": {
            "title": "Include raw reviews",
            "type": "boolean",
            "description": "Advanced debugging option.",
            "default": false
          },
          "searchPageSize": {
            "title": "Search page size",
            "minimum": 100,
            "maximum": 1000,
            "type": "integer",
            "description": "Advanced search pagination option.",
            "default": 100
          },
          "metadataReviewsPageSize": {
            "title": "Review page size",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Advanced review pagination option.",
            "default": 100
          },
          "globalConcurrency": {
            "title": "Global concurrency",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Advanced HTTP concurrency option.",
            "default": 3
          },
          "perHostConcurrency": {
            "title": "Per-host concurrency",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Advanced per-host HTTP concurrency option.",
            "default": 2
          },
          "requestDelayMs": {
            "title": "Request delay in milliseconds",
            "minimum": 0,
            "maximum": 60000,
            "type": "integer",
            "description": "Advanced polite-request delay option.",
            "default": 500
          },
          "requestTimeoutSecs": {
            "title": "Request timeout in seconds",
            "minimum": 5,
            "maximum": 120,
            "type": "integer",
            "description": "Advanced HTTP timeout option.",
            "default": 20
          },
          "maxRetries": {
            "title": "Maximum retries",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Advanced retry option for retryable HTTP errors such as 429 and 5xx.",
            "default": 2
          },
          "internetArchiveAccessKey": {
            "title": "Internet Archive access key (optional)",
            "type": "string",
            "description": "Optional advanced credential. Not required for public item URLs, identifiers, metadata, or reviews."
          },
          "internetArchiveSecretKey": {
            "title": "Internet Archive secret key (optional)",
            "type": "string",
            "description": "Optional advanced credential. Not required for public item URLs, identifiers, metadata, or reviews."
          },
          "debug": {
            "title": "Debug logging",
            "type": "boolean",
            "description": "Advanced debugging option. Secret credential values are never logged.",
            "default": false
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}