## AmazonBestsellers


An `amazon_bestsellers` job, which scrapes the Best Sellers page of one browse node.


Usage

``` python
AmazonBestsellers()
```


The API renders every job, and bills each result as rendered, although it takes nothing from the rendered limit. `render=""` turns forced rendering off, and the job then faults. The model takes no `user_agent_type`, because rendering ignores it. [What a live test shows about the Amazon models](https://github.com/ozanozbeker/oxyscraper/blob/main/docs/research/live-amazon.md) records the run that checked it.


## Attributes


`query: Annotated[str, Field(pattern=``"`[^1]`+$")]`  
A browse node ID, such as `172541`. Any other value raises, because the API bills a rendered "Best undefined" page for it. An unknown node ID bills that page too.

`domain: _AmazonDomain | None`  
The marketplace, `com` by default. `co.za` works, although no docs page lists it, and every `cn` job faulted.

`locale: _AmazonLocale | None`  
The page's language, which the API rejects for free unless the domain lists it. Without it, `ae` returns its Arabic page.

`geo_location: str | None`  
A postal code inside the domain's country, or an ISO 3166-1 alpha-2 code outside it, which the API rejects for free if it does not fit. `ae`, `com.be`, `eg`, `ie`, `pl`, `sa`, `se` and `sg` run no check, so a wrong value may bill. `99999` on `com` faults after 120 seconds.

`start_page: PositiveInt | None`  
A page past the last faults.

`pages: PositiveInt | None`  
The API rejects more than 20 for free.

`currency: _AmazonCurrency | None`  
The currency of the prices, which the API rejects for free unless the domain lists it. On `com`, any currency but USD raises without a 2-letter country code in `geo_location`, because the API bills prices in USD then.


#### Footnotes


[^1]: 0-9
