> For the complete documentation index, see [llms.txt](https://ce-docs.keywordrush.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ce-docs.keywordrush.com/modules/affiliate/amazon-no-api-module.md).

# Amazon No API module

### Why this module?

Content Egg already includes an [Amazon API module](/modules/affiliate/amazon.md). However, Amazon’s requirements can be challenging for beginners:

* You must refer **3 qualified sales within 180 days** of opening your Associates account to receive initial API access.
* After that, you must generate [**10 sales in the last 30 days**](https://www.keywordrush.com/blog/amazon-pa-api-associatenoteligible-error-is-there-a-new-10-sales-rule/) to keep API access active.

Because these rules often prevent new users from working with the API, we created the **Amazon NoAPI** module. It allows beginners to start building their sites and adding Amazon products right away—without waiting for API approval.

### How it works

The Amazon NoAPI module operates as a web scraper. Since Amazon may temporarily block server IPs when it detects too many requests, we recommend using the built-in integrations with third-party scraping services:

* [ScraperAPI](https://keywordrush.com/go/scraperapi)
* [ScrapingDog](https://www.keywordrush.com/go/scrapingdog)
* ScrapeOwl
* Decodo
* Crawlbase
* [Bright Data](https://brightdata.com/) (Web Unlocker)

{% hint style="warning" %}
These services are paid. See free-tier and pricing details below.
{% endhint %}

### Scraping Service Pricing

| Service         |              Free Usage | Free Allowance Renews? | Minimum Paid Plan |       Pay-as-you-go      |
| --------------- | ----------------------: | :--------------------: | ----------------: | :----------------------: |
| **ScraperAPI**  |           1,000 credits |        ✅ Monthly       |         $49/month |             ❌            |
| **ScrapingDog** |             200 credits |        ✅ Monthly       |         $40/month |        ✅ From $10        |
| **ScrapeOwl**   |           1,000 credits |       ❌ One-time       |         $29/month |             ❌            |
| **Decodo**      | 2,000 standard requests |        ✅ Monthly       |         $19/month |             ❌            |
| **Crawlbase**   |     1,000–5,000 credits |       ❌ One-time       |         $99/month |     ✅ $0 monthly fee     |
| **Bright Data** |          5,000 requests |        ✅ Monthly       |        $499/month | ✅ $1.50 / 1,000 requests |

**Notes:**

* **ScraperAPI:** Standard requests normally cost 1 credit, but difficult websites may consume more — Amazon specifically uses 5 credits per request.
* **ScrapingDog:** The free plan includes 200 monthly credits. Pay-as-you-go credits can be purchased without a monthly subscription.
* **ScrapeOwl:** 1,000 free credits are provided when you create an account; they do not appear to renew monthly.
* **Decodo:** The free plan provides up to 2,000 standard requests per month. Premium proxies and JavaScript rendering consume the allowance faster.
* **Crawlbase:** New accounts receive 1,000 free credits and can unlock up to 5,000 initial credits. After that, you can continue with pay-as-you-go without a subscription. Only successful requests are billed.
* **Bright Data:** The free tier includes 5,000 requests every month. After the free allowance, Web Unlocker can be used on a pay-as-you-go basis at $1.50 per 1,000 successful requests.

*Pricing and terms can change at any time — always verify current details directly on each provider's website.*

{% hint style="success" %}
**Tip:** You can add multiple scraping service API keys in the module settings. The **Scraping service** setting then decides which one is used:

* **Auto** picks one of your configured services at random each time the module runs, so usage is spread across them over time. This helps you stay within each service’s free limits.
* Choosing a specific service pins every request to it, which is what you want while testing a new key or tracking down a problem.
  {% endhint %}

{% hint style="info" %}
This module is intended for beginners, allowing them to start working on their website. After achieving three sales and receiving an API key, it's recommended to switch to the [Amazon module](/modules/affiliate/amazon.md) via the official API.
{% endhint %}

### Price updates

For sites displaying product prices, Amazon mandates daily price updates. However, due to the challenges of web scraping, **price display and updates are disabled by default** in the NoAPI module. You can enable them in the module settings if needed.

<figure><img src="/files/wHfnUQTiGKAV3J8ghbZx" alt=""><figcaption></figcaption></figure>

{% hint style="success" %}
Once you have API access and have configured the Amazon API module, you can delegate the task of updating prices to the Amazon module via the Product Advertising API.
{% endhint %}

<figure><img src="/files/hALMyVJOpMZpSKMRrWTF" alt=""><figcaption></figcaption></figure>

### Bright Data setup

Bright Data needs two values rather than one, and both are required:

* **Bright Data API key** — from your Bright Data account.
* **Bright Data zone** — the name of a **Web Unlocker** zone, created in the Bright Data control panel. A key on its own is not enough: without a zone, Bright Data rejects every request and the service stays inactive.

Use the **Test connection** button next to the zone field to check both at once. It reports your account status and lists the zones on the account, so you can click the right zone name instead of typing it. The check is free and does not use up any of your request quota.

#### Bright Data location

Amazon shows different prices and availability depending on where the shopper is, so the country the scraper browses from matters.

* **Follow Amazon locale** (default) — requests for `amazon.de` come from Germany, `amazon.co.jp` from Japan, and so on. This keeps prices consistent with what local shoppers see.
* **Let Bright Data choose** — Bright Data selects the location itself. Use this if your zone is restricted to particular countries.

{% hint style="success" %}
This replaces the manual `functions.php` workaround described under [Troubleshooting](#prices-in-the-plugin-do-not-match-the-prices-on-the-amazon-site) — with Bright Data, country targeting is built in.
{% endhint %}

### How to get Associate Tag

To obtain an Associate Tag, refer to [Becoming an Associate](https://webservices.amazon.com/paapi5/documentation/troubleshooting/sign-up-as-an-associate.html).

### Search by ASIN or URL

To find the right product, you can search using product URLs or ASINs. This method requires far fewer queries to the source site compared to a keyword search.

![](/files/-Md5wWjKzJDxgo6Jpr3F)

### Multiple locales

Read more: <https://ce-docs.keywordrush.com/modules/affiliate/amazon#multiple-locales>

### Global Earning (international redirects)

This module has the same **Global Earning** setting as the Amazon module: choose whether Amazon may substitute a similar product for international shoppers, send them to local search results, or skip the redirect entirely.

Read more: [Global Earning (international redirects)](/modules/affiliate/amazon.md#global-earning-international-redirects)

### Troubleshooting

#### Prices in the plugin do not match the prices on the Amazon site.

Amazon may display different prices based on the visitor's location. If you're using a scraping service, the bot may be assigned a random country, leading to price discrepancies.

**If you use Bright Data**, set **Bright Data location** to **Follow Amazon locale** in the module settings. Each Amazon locale is then browsed from its own country and no code is needed.

For **ScraperAPI, ScrapingDog, ScrapeOwl and Crawlbase**, add a parameter to the request to filter by country. For example, to use DE-based IPs, add the following code to your theme's `functions.php` file:

```php
// For ScraperAPI
add_filter('cegg_amazon_client_url', 'my_cegg_amazon_client_url', 10, 1);
function my_cegg_amazon_client_url($url) {
    return add_query_arg('country_code', 'de', $url);
}

// For ScrapingDog
add_filter('cegg_amazon_client_url', 'my_cegg_amazon_client_url', 10, 1);
function my_cegg_amazon_client_url($url) {
    return add_query_arg('country', 'de', $url);
}
```

{% hint style="warning" %}
This filter does not work for **Decodo**, which sends the target address in the request body rather than in the URL. Adding a parameter to the URL there has no effect. Use Bright Data with **Follow Amazon locale** if you need country-accurate prices.
{% endhint %}

#### A scraping service is configured, but products still fail to import

Content Egg now shows the scraping service's own error message rather than a bare `400 Bad Request`, so the reason usually appears in the error itself — an expired key, an exhausted quota, or for Bright Data a zone name that does not exist. Any API key in the message is masked before it is displayed.

If the service does not appear in the **Scraping service** dropdown at all, its credentials are incomplete. For Bright Data this almost always means the zone is missing.
