# Welcome

![](/files/n30Jwq12TneRrk4JcriA)

Welcome to the Refract help center. Everything about setting up, running, and troubleshooting Refract lives here.

## New to Refract? Follow this path

{% stepper %}
{% step %}

#### Install Refract

Download from the dashboard and log in with your account.

{% content-ref url="/pages/BhVpi2tiZmGxB1Q304nb" %}
[Install Refract](/installation/install)
{% endcontent-ref %}
{% endstep %}

{% step %}

#### Do the general setup

Accounts, profiles, proxies, and your first task group. These work the same on every site.

{% content-ref url="/pages/rx6hhYbORqLcsI1HOYZW" %}
[Task Creation](/general-setup/task-creation)
{% endcontent-ref %}
{% endstep %}

{% step %}

#### Open your site's module guide

Every site has its own setup guide with the exact settings. This is where the site-specific answers live.

* [Walmart](/modules/walmart)
* [Target](/modules/target)
* [Amazon](/modules/amazon)
* [BestBuy US](/modules/bestbuy-us)
* [Apple](/modules/apple)
  {% endstep %}

{% step %}

#### Read the release guide before drop night

Walmart and Target each have a dedicated release guide covering exactly what to do and every status you will see. Read it before the drop, not during.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
**Brand new to botting entirely?** Start with the high-level primer first:

[Start Here](/introduction-to-botting/start-here)
{% endhint %}

## Something not working?

* Every module guide has a Common Errors section for its site. Check there first; drop-night errors are almost always covered.
* Cross-site statuses are in [Common Errors & Statuses](/general-setup/common-errors-and-statuses).
* Still stuck? Open a ticket in our Discord support server and we are happy to help. For strategy questions (what to run, which providers, jigging), your cook group is the right place; see [Start Here](/introduction-to-botting/start-here) for what we do and do not support.

## Your license and subscription

Renewals, instances, devices, and account settings are all managed from the online dashboard:

{% content-ref url="/pages/ECtcSKvdZtRkpwCqYmXj" %}
[Home](/online-dashboard/home)
{% endcontent-ref %}


# Start Here

This section is a courtesy primer on the concepts you will see everywhere in botting: profiles, accounts, proxies, servers, and cook groups. It exists to get new users oriented, nothing more.

{% hint style="danger" %}
**Read this page before opening a ticket about anything in this section.** It explains what the Refract team can and cannot help with.
{% endhint %}

## What this section is

Everything here is high-level background, not a setup manual and not gospel truth. The botting meta shifts constantly, and what works varies by site, by drop, and by user. Treat these pages as orientation, then get current information from your cook group.

## What we support

The Refract team supports the bot itself:

* Installing and updating Refract
* Creating task groups, monitors, and tasks
* Module-specific setup (Walmart, Target, Amazon, Best Buy, Apple)
* Bot errors, statuses, and bugs

{% content-ref url="/pages/rx6hhYbORqLcsI1HOYZW" %}
[Task Creation](/general-setup/task-creation)
{% endcontent-ref %}

## What we do not help with

These are outside the bot and outside our support scope:

* Creating or generating accounts, profiles, or proxies
* Recommending where to buy accounts, proxies, servers, or any other resource
* Address or profile jigging
* Order cancellations caused by retailer-side checks
* Resale strategy or release information

We do not have private answers to these. Opening a ticket about them will get you the same response as this page.

## How support works

Support runs through tickets in our Discord server. You are free to open one at any time, and the team will help you there.

We do not offer one-on-one training, calls, screen shares, or booked appointments. There is no session to schedule and nothing to sign up for. Everything we support is covered in these guides, and anything else you need help with goes in a ticket.

{% hint style="info" %}
**Start with your cook group.** Users compare notes in Discord communities and cook groups to learn which strategies are currently working. Aside from trial and error, these communities are the best source of up-to-date information, since effective methods are often shared privately.
{% endhint %}

{% hint style="warning" %}
**Not in a cook group yet?** Ask around in the community for an active one to join, and start there. There are many options.
{% endhint %}

{% content-ref url="/pages/lPakhCSn65AvErE26ZEx" %}
[Cookgroups](/introduction-to-botting/cookgroups)
{% endcontent-ref %}


# Cookgroups

A cook group is an online community, usually hosted on Discord, where members share release information, strategies, and resources for securing limited products. If you are serious about botting, you need one. It is not optional.

## Why you need a cook group

A cook group does two things for you: it tells you what is dropping and when, and it fills every gap our guides deliberately leave open.

* **Knowing what is dropping:** drop calendars, restock alerts, monitors, and early links. Refract checks out products. It does not tell you what to run it on. That information comes from your group.
* **Account, profile, and proxy generation:** how to create them, where to get them, and what is currently passing on each site.
* **Jigging:** which methods each retailer currently tolerates.
* **Cancellations:** what members are doing right now to reduce them.
* **Provider recommendations:** which proxy, server, and other providers are actually performing.

Every item on that list is something the Refract team does not help with. When our guides say "ask your cook group," this is the list they are pointing at.

## What to look for

Quality varies a lot between groups. An active group with a real community beats a big name. Look for:

* Recent, active discussion for the sites you run
* Success posts from members, not just staff
* Guides and support channels that are actually maintained

{% hint style="warning" %}
**Not in a cook group yet?** Ask around in the community for an active one to join, and start there. There are many options, and members are usually happy to point you somewhere active.
{% endhint %}


# Accounts

Most supported sites require you to be logged into an account to check out. This page explains why accounts matter at a high level.

{% hint style="info" %}
**This page is background, not a setup guide.** We do not create accounts, recommend account generation methods or tools, or advise on where to get accounts. For that, ask your cook group.
{% endhint %}

## Where accounts are required

| Site     | Why it is needed                                        |
| -------- | ------------------------------------------------------- |
| Amazon   | Required for any Amazon checkout                        |
| Best Buy | Required for queue drops and helps with in-store pickup |
| Walmart  | Required                                                |
| Target   | Required                                                |

## Why account quality matters

Retailers score accounts the same way they score everything else. The community consensus, which shifts over time and is not a guarantee, is roughly:

* Aged accounts tend to perform better than accounts made right before a drop.
* Accounts created carelessly in bulk tend to get flagged faster.
* Reusing the same email, payment method, or IP across many accounts increases the chance they get linked.

How to act on any of that is exactly the kind of thing that changes month to month, which is why we point you to your cook group instead of writing it here.

{% hint style="info" %}
**Start with your cook group.** Account creation methods, email strategies, and what is currently passing on each site are community knowledge. Users compare notes there daily, and effective methods are often shared privately.
{% endhint %}

## Adding accounts to Refract

For adding accounts you already have into the bot, see the setup guide:

{% content-ref url="/pages/JMi3lIEUfTbE8qFM1YA1" %}
[Accounts](/general-setup/accounts)
{% endcontent-ref %}


# Profiles

A profile is the shipping, billing, and payment information Refract uses to complete a checkout. Profiles are stored locally in the bot.

{% hint style="info" %}
**This page is background, not a setup guide.** We do not assist with profile generation or jigging, and we do not recommend tools or services for it. For that, ask your cook group.
{% endhint %}

## Why people run multiple profiles

Many retailers limit orders to one per customer and use pattern detection to group orders that look like they come from the same person. Because of that, users who want more than one checkout typically run multiple profiles with variations in their details.

How far to vary them, and what each retailer currently tolerates, is community knowledge that changes constantly. There is no setting in Refract that controls this.

## What about jigging?

Jigging means altering profile details (name, address, email, payment method) between orders so retailers do not group them as duplicates. It is a real and common practice in the community.

It is also something we do not help with. We do not teach jigging methods, we cannot tell you whether your jig is good, and we cannot troubleshoot orders that were canceled because of how a profile was jigged. What works varies by retailer and changes without notice.

{% hint style="info" %}
**Start with your cook group.** Users compare notes in Discord communities and cook groups to learn which profile and jigging strategies are currently working. Aside from trial and error, these communities are the best source of up-to-date information, since effective methods are often shared privately.
{% endhint %}

## General practices

We cannot tell you how to jig, but a few practices are stable enough to count as community consensus:

* Use a different email for each profile.
* Use a different payment method for each profile where you can. Virtual card services exist for exactly this; your cook group can tell you which ones members currently use.
* Do not run multiple tasks with identical profile information on sites with order limits. That is the fastest way to get orders grouped and canceled.
* Keep every variation deliverable. Whatever you change, the package still has to reach your address.

Treat these as a floor, not a strategy. The retailer-specific details on top of them are cook group territory.

## Cancellations

Cancellations tied to profiles are almost always caused by retailer-side order checks on your profile, account, proxy, or payment method rather than a setting in Refract. The Refract team can review our logs for signs of a bot-side issue, but we cannot diagnose or resolve retailer-side cancellations, and there is no single change or guaranteed fix that works for everyone.

For a concrete example of how this plays out on Target, see the cancellation section of the Target release guide:

{% content-ref url="/pages/ZFqpmTnmbrPInDm80k4P" %}
[Target Release Guide](/modules/target/target-release-guide)
{% endcontent-ref %}

## Setting up profiles in Refract

Creating and importing profiles in the bot itself is covered in the setup guide:

{% content-ref url="/pages/tUHKhiM7oT9qlMeK39c8" %}
[Profiles](/general-setup/profiles)
{% endcontent-ref %}


# Proxies

A proxy is an IP address your requests route through instead of your home connection. Bots use proxies to run many tasks at once without every request coming from the same IP.

{% hint style="info" %}
**This page is background, not a setup guide.** We do not sell proxies and we do not recommend providers. For provider recommendations and current proxy strategies, ask your cook group.
{% endhint %}

## Why bots use proxies

Retailers track how many requests come from each IP. Running many tasks through one IP is an easy way to get blocked. Proxies give each task its own IP, which lets you scale task count and reduces the chance one ban takes down your whole setup.

## The two main types

| Type               | How it works                                                                                    | How it is sold      |
| ------------------ | ----------------------------------------------------------------------------------------------- | ------------------- |
| Residential (resi) | Rotates through a large pool of real home IPs. Harder to detect and ban.                        | Per GB of bandwidth |
| ISP                | Static datacenter IPs that present as home connections. Faster, but a flagged IP stays flagged. | Per IP              |

## Which type for which site

Rough starting points, based on what has generally worked:

* Sites with aggressive anti-bot systems (Walmart, and Target when Shape security is high) tend to favor residential proxies.
* Sites where speed matters more than rotation (Amazon, Apple, Best Buy, and Target most of the time) tend to run fine on ISP proxies.

{% hint style="warning" %}
**Treat this as a starting point, not gospel.** Anti-bot systems change, and what the community runs on each site shifts with them. Check what is currently working before you buy anything.
{% endhint %}

## Why we do not recommend providers

We are firm about this. We do not name proxy providers, and opening a ticket to ask will get you this same answer. It is not a brush-off, so here is the full reasoning.

* **We do not know what anyone is running.** This is the main one. Refract has no idea which providers users are hitting with. The proxy IP shows up in logs, but that is all it is to the bot: an IP. It does not know the provider, the proxy type, the region, or the session length, and none of that is stored. Tracking it would mean profiling what our users buy and run, which is a serious violation of trust and not something we will ever do. So when someone asks which provider is hitting right now, we genuinely do not have that answer to give.
* **We do not sell proxies.** Nobody on the team resells proxies or has a stake in a provider, so there is no provider we are steering you toward.
* **It went badly when we did.** Years ago we named providers. People would buy on our word, not get the results they hoped for, and then blame us for the recommendation or assume we were paid to promote it. We stopped, and we have not named one since.

What we will tell you is the proxy **type** that tends to work on a site, like residential versus ISP. Which company you buy that from is the part we stay out of.

### The one exception: Best Buy

[One Stop Proxies](https://www.onestopproxies.com/) is the single provider we officially recommend, and we recommend them for Best Buy only.

Best Buy blocks proxies at the Akamai level, and One Stop is Akamai-optimized, which is why they keep passing there when other proxies stop. They may work on other sites too, but Best Buy is the only site we recommend them for. For every other site, the policy above stands: ask your cook group.

{% hint style="info" %}
**Start with your cook group.** Provider quality varies enormously and changes over time. Which providers are performing on which sites is exactly the kind of information cook groups track and we do not.
{% endhint %}

## Setting up proxies in Refract

Adding proxy lists and assigning them to monitors and tasks is covered in the setup guide:

{% content-ref url="/pages/4M1go6XVPpZ4rppwKCn6" %}
[Proxies](/general-setup/proxies)
{% endcontent-ref %}


# Servers

A server is a remote machine you rent to run the bot on instead of your home computer. Some users run one for the always-on uptime and extra bandwidth. Many users never need one.

{% hint style="info" %}
**This page is background, not a setup guide.** We do not recommend server providers. For provider recommendations, ask your cook group.
{% endhint %}

{% hint style="warning" %}
**A server is not automatically better.** For Target specifically, local machines pass Shape better than servers, and Windows servers are the worst option. See the Target guide before renting anything for Target.
{% endhint %}

{% content-ref url="/pages/ZFqpmTnmbrPInDm80k4P" %}
[Target Release Guide](/modules/target/target-release-guide)
{% endcontent-ref %}

## Why some users run servers

* **Always online:** tasks keep running without your home PC staying on.
* **Network capacity:** servers are built to handle huge numbers of simultaneous connections, which is what actually limits how many tasks you can run.
* **Location:** many retailer backends are hosted in Virginia, so servers near there get lower latency.

## What actually matters when choosing one

Network capacity is usually the bottleneck, not CPU or RAM. Capacity is not the same thing as speed. A speed test measures how fast one big download moves. Botting is the opposite shape of traffic: thousands of small requests at the same time, sustained for hours. A home connection with a fast download speed can still choke on that load, because home lines and routers are not built for it. A fast plan at home does not replace a server, and a modest server with high capacity beats a powerful server on a throttled connection. As a rough baseline, 8 cores and 16GB RAM covers most setups.

| Type                  | What it is                                              | Typical use             |
| --------------------- | ------------------------------------------------------- | ----------------------- |
| VPS                   | A virtual slice of a shared machine. Cheaper.           | Smaller setups          |
| Dedicated (baremetal) | The whole physical machine. More expensive, more power. | Larger multi-bot setups |

## Operating system requirement

This part is a hard requirement, not guidance. Refract runs on:

* Windows 10/11 on a desktop machine
* Windows Server 2016 or newer
* macOS 12 (Monterey) or newer

Windows Server 2012 and earlier will not work, and neither will macOS versions older than 12.

{% hint style="warning" %}
**Avoid Windows Server 2022 if you can.** It can have UI rendering issues in Refract (a purple interface). This is cosmetic only and does not impact performance, but other versions do not have the issue.
{% endhint %}

{% hint style="info" %}
**Start with your cook group.** Which server providers are reliable, which oversell their bandwidth, and what members are actually running is community knowledge we do not track.
{% endhint %}


# Intro to Refract Terminology

* **Account** – A registered profile on a specific site required to checkout on certain sites like Amazon, Walmart, and Best Buy.
* **Account Proxy** – A proxy assigned to a single account in the account tab to login.
* **ASIN** – Amazon's product identifier (e.g. `B08SGTGTZD` from the product URL). The monitor input for Amazon.
* **Captcha** – A security puzzle (often a 3x3 image selection or checkbox) used to verify human interaction before proceeding to checkout.
* **Cook Group** – A community, usually on Discord, where botters share release info, strategies, and resource recommendations. The place to go for questions about accounts, profiles, proxies, and jigging.
* **Cookies** – Data generated by a harvester (the extension or in-bot harvester) and stored to bypass Shape (Target’s anti-bot system).
* **Extension** – The browser extension used to generate Target cookies for authentication and checkout.
* **Harvester** – The browser process (extension or in-bot) that generates Shape cookies for Target by repeatedly attempting add to cart or login without completing them.
* **Hype Product** – A Target task group toggle that must be ON for Shape-protected (high-demand) drops like cards and consoles.
* **Jig (J1g)** – A community practice of altering profile details between orders so retailers do not flag them as duplicates. Refract does not provide jigging guidance; ask your cook group.
* **Monitor** – The "tasks" that scrape a website to detect and notify users of product restocks and drops.
* **Monitor Proxy List** – A set of proxies used specifically for website monitoring to detect drops/restocks faster without getting blocked.
* **Offer ID (OID)** – A unique identifier tied to a specific product and seller on sites like Amazon and Walmart.
* **PID (Product ID)** – A unique identifier for a product, same as a SKU.
* **Profile** – Your shipping and billing information used to complete checkout.
* **Proxy** – An IP address used to prevent bans and increase scaling when running multiple tasks.
* **Proxy List** – A list of proxies grouped together for ease of use.
* **PX** – Walmart’s anti-bot system that detects automated behavior.
* **Session** – A saved login state for an account after logging in, allowing continued access without needing to log in again.
* **Shape** – Target’s anti-bot system that prevents automated purchases.
* **Site** – The website where you are trying to buy a product.
* **SKU (Stock Keeping Unit)** – A unique identifier for a product, same as a PID.
* **Task** – Essentially a worker. A task is what is actively trying to buy the product.
* **TCIN** – Target's product identifier (the number in the product URL, e.g. `81114595` from `/p/-/A-81114595`). The monitor input for Target.
* **Task Proxy** – Proxies used exclusively for checkout tasks to ensure IP diversity and reduce detection risk.
* **2FA Code (Two-Factor Authentication Code)** – A code sent to:
  * Log into an account (e.g., Walmart)
  * Complete checkout or reset an account (e.g., Best Buy)
* **Webhook** – A notification system that sends updates (successful checkout or decline messages) to platforms like Discord or Slack.


# Home

The **Home** tab is the first thing you see when you log into the dashboard. It shows your checkout stats, your spend over time, and your full checkout history.

Open it here: [dashboard.refractbot.com/home](https://dashboard.refractbot.com/home)

{% hint style="info" %}
**Refract does not use license keys.** Your license is your account, and the same email and password log you into both the dashboard and the bot.
{% endhint %}

<figure><img src="/files/2PYGegy8tkkBrAOL3Fbu" alt="The Home tab of the Refract dashboard"><figcaption><p>The Home tab: Discord and referral banners, your stats, and your spend chart.</p></figcaption></figure>

## Join the Discord

The banner at the top links you to our Discord server, and everyone should join it. It is where support tickets, announcements, and 1-on-1 help live. If you only do one thing on this page, do that.

Binding your Discord account to your license is handled in the **Settings** tab:

{% content-ref url="/pages/SHoGm0XAcUkONbcwhOd8" %}
[Settings](/online-dashboard/settings)
{% endcontent-ref %}

## Your stats

The stat cards track your results across all your checkouts:

* **Spent:** what you have paid at checkout through Refract.
* **Saved:** for Amazon Freebies & Deals, what you have saved off the regular prices.
* **Checkouts:** total successful checkouts.
* **Failures:** checkouts that did not go through.

Use the **Day / Week / Month / Year / All** toggle above the chart to change the time range. The chart plots your spend across the selected range, and clicking a stat card switches what the chart tracks.

## Checkout history

Every checkout Refract completes is logged in the **Checkout History** table at the bottom of the page, with the product, price, account, profile, date, and order number.

<figure><img src="/files/F0dea8Z5vg1nXBmv3Y8p" alt="The Checkout History table with the Export button"><figcaption><p>The Checkout History table. Once you have checkouts, Export downloads them all as a CSV.</p></figcaption></figure>

Once you have checkouts, click **Export** to download the whole table as a CSV file. It contains the same columns shown in the table, so you can track and manage your checkouts in a spreadsheet.

## Referral program

The referral banner links to our referral program: earn a 10% commission on the first subscription fee of every person you refer, with no limit on how many people you can refer.

Sign up here: [prismtechnologies.getrewardful.com/signup?campaign=refract](https://prismtechnologies.getrewardful.com/signup?campaign=refract)

How it works:

* Payouts are handled by our payout partner, Rewardful. To claim payouts, affiliates complete KYC (Know Your Customer) verification through Rewardful.
* **No self-referrals.** You cannot refer yourself to receive a discount. Self-referrals are voided and may result in removal from the program.
* **Referral codes do not stack with discount links.** It is one or the other: a discount link saves the customer money with no referral credit, and a referral code gives the referrer credit with no discount applied.

Full terms: [prismtechnologies.getrewardful.com/terms](https://prismtechnologies.getrewardful.com/terms)


# Subscription

Everything about your Refract license is managed from the **Subscription** tab of the dashboard: your renewal plan, payment card, instances, and invoices.

Manage your subscription here: [dashboard.refractbot.com/subscription](https://dashboard.refractbot.com/subscription)

<figure><img src="/files/yhkyFt0XY4IpX4P9TpAu" alt="The Subscription tab of the Refract dashboard"><figcaption><p>The Subscription tab: your plan, payment method, instances, and billing history in one place.</p></figcaption></figure>

## Renewal plans

Refract offers four renewal plans. Longer plans cost less per month:

| Plan     | Price      | Per month | Discount |
| -------- | ---------- | --------- | -------- |
| 1 Month  | $50 / mo   | $50       | None     |
| 3 Month  | $135 / 3mo | $45       | 10% off  |
| 6 Month  | $255 / 6mo | $42.50    | 15% off  |
| 12 Month | $480 / yr  | $40       | 20% off  |

Pricing is current as of this writing and may change.

### Change your renewal plan

{% stepper %}
{% step %}

#### Open the plan picker

On the Subscription page, click **Change renewal plan**.
{% endstep %}

{% step %}

#### Pick your new plan

Select the plan you want. Your current plan is marked **CURRENT**.

<figure><img src="/files/cSuwckf5L5R3Y5wixcrT" alt="Edit Renewal Plan window showing the four plans" width="375"><figcaption><p>Plan changes take effect after your current period ends. There is no charge today.</p></figcaption></figure>
{% endstep %}

{% step %}

#### Confirm

You are changing your renewal plan, not your current period. The new plan takes effect after the current period ends, and there is no charge today.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
**All of your instances share one renewal plan.** You cannot put one instance on a 6-month plan and another on month-to-month. When you change plans, every instance changes together. See the Instances page for how this affects adding instances.
{% endhint %}

{% content-ref url="/pages/KgeKJxFOnpEnFpfYaSKR" %}
[Instances](/online-dashboard/subscription/instances)
{% endcontent-ref %}

## Payment method

Your card on file is shown in the **Payment Method** section. Click **Manage card** to update it. Payment processing is handled by Stripe, and we do not store your card information.

{% hint style="warning" %}
**You cannot remove your card while you have an active subscription.** You can replace it with a different card, but an active subscription always needs a valid payment method on file.
{% endhint %}

{% hint style="danger" %}
**Freezing or pausing your card is not a cancellation.** Stripe, our payment processor, will keep retrying the charge in order to save your subscription. If you want to stop renewing, use the cancel flow. That is the only way to cancel.
{% endhint %}

{% content-ref url="/pages/59q2uZO6pop3oNKAFSAn" %}
[Cancel Your Subscription](/online-dashboard/subscription/cancel-your-subscription)
{% endcontent-ref %}

## Renewing after your license lapses

Your account is never deleted, and you can come back at any time. But timing matters:

* As soon as your license fully lapses without a successful renewal, a reactivation fee is imposed. There are no exceptions.
* The fee is currently $200, plus $50 for your first month back, so returning currently costs $250 up front.
* You are not buying Refract again. The price you paid when you first bought your license is not charged a second time; the reactivation fee plus your first month is the whole cost of coming back.
* There is no way to pause or freeze a subscription instead, so a gap of even one month means the fee applies.
* The reactivation fee may go up or down at any time, with or without notice.

{% hint style="warning" %}
**If you might come back, do not let your license lapse.** Renewing on time costs $50. Coming back after a lapse currently costs $250. Opening a ticket asking for the fee to be waived will not work; there are no exceptions.
{% endhint %}

## Invoices

Every charge on your account appears in the **Billing History** section at the bottom of the Subscription page. Each entry shows the invoice number, date, and amount. Click an invoice number to view and download the full invoice from Stripe, for example for your records or bookkeeping.

<figure><img src="/files/VL5MxsJu4F9OGcKqaNBz" alt="A paid invoice opened on Stripe" width="400"><figcaption><p>Each invoice opens on Stripe, where you can download the invoice or the receipt.</p></figcaption></figure>


# Instances

An instance is one licensed copy of Refract. Extra instances let you scale beyond a single bot. This page covers the rules, the two instance modes, and how to add or remove instances.

{% hint style="danger" %}
**Account sharing is not allowed.** A second instance is for you, for example to run Refract on a second computer or server at the same time. It is not a copy for a friend: there is no second key or login, everything runs under your one account, and we will not invite your friend to the server as part of an instance purchase.
{% endhint %}

## The rules

* **One instance per device.** A device runs one copy of Refract, period. You cannot run 2 instances on the same machine; a second instance means a second computer or server.
* **The instance cap is 2.** The cap may change at any time, with or without notice.
* **All instances renew at the same exact time, on the same renewal plan.** You cannot mix plans across instances.
* **The first time you add an instance, it is prorated** until your next renewal date. You pay the prorated amount today, and from then on everything renews together.
* **Each instance costs the same as your plan's per-month rate**, billed on your plan's schedule. See [What an instance costs](#what-an-instance-costs) below.

## What an instance costs

An extra instance costs the same per month as your plan's rate, so a second instance on the 1 Month plan is **$50 per month**:

| Your plan | Cost per extra instance         |
| --------- | ------------------------------- |
| 1 Month   | $50 / mo                        |
| 3 Month   | $45 / mo ($135 per 3 months)    |
| 6 Month   | $42.50 / mo ($255 per 6 months) |
| 12 Month  | $40 / mo ($480 per year)        |

The first time you add one, you pay a prorated amount today covering the time left in your current cycle, and after that the instance renews together with the rest of your subscription. Pricing is current as of this writing and may change; the [Subscription](/online-dashboard/subscription#renewal-plans) page has the full plan table.

{% hint style="warning" %}
**Grandfathered instances do not come back.** Some longtime users have more than 2 instances from before the cap. If you are grandfathered and downgrade your instance count, you cannot go back above the current cap of 2. For example, if you have 3 instances and drop to 2, you can never go back up to 3. Lowering a grandfathered count is permanent.
{% endhint %}

## Choose your mode

When you add an instance, you choose what the extra capacity does. We recommend **Multiple instances**.

<figure><img src="/files/FSJgZ72mKA1Vxw6PBuiy" alt="Mode selector showing Multiple instances and Multiply task limit" width="450"><figcaption><p>Multiple instances is the mode we recommend.</p></figcaption></figure>

* **Multiple instances (recommended):** you get separate copies of Refract running simultaneously, each with the normal task limit.
* **Multiply task limit:** you stay on one instance, and its task limit is multiplied instead.

Concrete example with Walmart, which has a 2,000 task limit per instance. You pay for a second instance:

| Mode                | What you get                              |
| ------------------- | ----------------------------------------- |
| Multiple instances  | 2 instances, each with a 2,000 task limit |
| Multiply task limit | 1 instance with a 4,000 task limit        |

{% hint style="info" %}
**A new instance starts empty.** Profiles (including card info), accounts, proxies, and settings are not carried over between instances, but moving them is easy: export from your current instance and import on the new one, or use App Data export/import in Settings to move everything at once. See [Settings](/general-setup/settings#move-everything-to-a-new-device).
{% endhint %}

## Add an instance

{% stepper %}
{% step %}

#### Open the Subscription page

Go to [dashboard.refractbot.com/subscription](https://dashboard.refractbot.com/subscription) and click **Edit instances**.
{% endstep %}

{% step %}

#### Set the quantity

Use the plus and minus buttons to set your instance count. The panel shows your current count against the cap.

<figure><img src="/files/LRuF7LAshYI07i4Chnrf" alt="Edit Instances window showing quantity against the cap" width="450"><figcaption><p>The quantity selector shows your count against the current cap.</p></figcaption></figure>
{% endstep %}

{% step %}

#### Review the charge

The **Charge Today** box shows the prorated amount for the time remaining in your current billing cycle. This is what keeps all instances renewing on the same date.
{% endstep %}

{% step %}

#### Pick the mode and pay

Select **Multiple instances** or **Multiply task limit**, then click **Pay**.
{% endstep %}
{% endstepper %}

{% hint style="success" %}
Once paid, the new capacity is active and your Subscription page shows the updated instance count. Everything renews together on your next renewal date.
{% endhint %}

## Adding an instance while on a longer plan

Because all instances must be on the same plan, you cannot add a month-to-month instance while the rest of your subscription is on a 3, 6, or 12-month plan. If you want your instances month-to-month:

{% stepper %}
{% step %}

#### Downgrade to the 1-month plan

Use **Change renewal plan** to move back to the 1 Month Subscription. Prorated credit for your unused time is applied.
{% endstep %}

{% step %}

#### Add the new instance

Once you are on the 1-month plan, add the instance as normal. Everything now renews monthly, together.
{% endstep %}
{% endstepper %}


# Cancel Your Subscription

Canceling stops your subscription from renewing. You can do it yourself from the dashboard in under a minute.

Before you do: coming back later is not $50. Once your license lapses, returning costs the $200 reactivation fee plus $50 for your first month back, so $250 total. Details in [the reactivation fee](#before-you-confirm-the-reactivation-fee) below.

{% hint style="info" %}
**Having trouble with Refract? Talk to us first.** Most issues take just a few minutes to resolve in Discord, and we are always happy to help. Open a support ticket before you cancel and let us try.
{% endhint %}

## How to cancel

{% stepper %}
{% step %}

#### Open the Subscription page

Go to [dashboard.refractbot.com/subscription](https://dashboard.refractbot.com/subscription) and click **Cancel subscription** at the bottom of the page.
{% endstep %}

{% step %}

#### Step 1: talk to support, or continue

You will be offered a support ticket first. If anything about Refract is not working for you, click **Open Discord ticket** and let us help. Otherwise, click **Continue to cancel**.

<figure><img src="/files/5uJLeF4BuvzJybsPmYTi" alt="Cancel Subscription step 1 of 2" width="420"><figcaption><p>Step 1: open a ticket and let us help, or continue to cancel.</p></figcaption></figure>
{% endstep %}

{% step %}

#### Step 2: tell us why and confirm

Choose the reason that fits best, add any comments you would like to share (we read every submission), and click **Cancel subscription**. If you change your mind, click **Keep subscription** instead.

<figure><img src="/files/ZCHmfT7wWuOlWM7KqqAw" alt="Cancel Subscription step 2 of 2 with reasons and comment box" width="375"><figcaption><p>Step 2: pick a reason, share any comments, and confirm. Note the reactivation fee before you do.</p></figcaption></figure>
{% endstep %}
{% endstepper %}

{% hint style="success" %}
Once confirmed, your subscription will not renew again. Your account is never deleted, so you can come back whenever you want.
{% endhint %}

## Before you confirm: the reactivation fee

{% hint style="danger" %}
**Coming back after a lapse is not $50.** As soon as your license fully lapses without a successful renewal, a reactivation fee is imposed, with no exceptions. The fee is currently $200 plus $50 for your first month back, so reactivating currently costs $250. The fee may change at any time, with or without notice.
{% endhint %}

So if you are asking "if I cancel the renewal, do I have to pay to come back?", the answer is yes. Canceling itself does not charge you anything, and your license stays active through the period you already paid for. But once that period ends without a renewal, your license lapses, and returning means paying the $200 reactivation fee plus $50 for your first month: $250 instead of $50.

You are not buying Refract again either. The reactivation fee is not a second license purchase, so the price you paid when you first bought Refract is not charged again. Coming back is the $200 reactivation fee plus $50 for your first month, and those amounts are subject to change.

If there is any chance you want to keep botting, it is cheaper to stay subscribed than to cancel and return later.

{% content-ref url="/pages/PHJlGaHvSXClMHeXaA0s" %}
[Subscription](/online-dashboard/subscription)
{% endcontent-ref %}

## FAQ

<details>

<summary>Can I pause my subscription for a month and start it again later?</summary>

There is no pause option. Canceling is the only way to stop renewals, and a canceled subscription lapses at the end of the period you already paid for. Coming back after that lapse costs the $200 reactivation fee plus $50 for your first month, so $250 total, and that applies no matter how short the gap was.

If you expect to be back next month, staying subscribed is the cheaper choice: $50 to stay, $250 to leave and return.

</details>

<details>

<summary>If I cancel and come back later, do I have to buy Refract again?</summary>

No. Coming back is not a new license purchase, so what you paid when you first bought Refract is not charged a second time. You pay the $200 reactivation fee plus $50 for your first month back, currently $250 in total, and those amounts may change at any time.

</details>

<details>

<summary>Can the reactivation fee be waived?</summary>

No. The fee applies as soon as a license fully lapses, with no exceptions, and opening a ticket to ask for a waiver will not change that.

</details>

## Refund policy

* We do not offer refunds under any circumstances.
* By creating a Refract account and purchasing a Refract license, you agreed to our [Terms & Conditions](https://cdn.prismaio.com/terms-of-service-1-17-26.pdf), which state that all payments are final, non-refundable, and not subject to any set-off or deduction.
* You can cancel at any time, but prepaid fees are not refunded, even if you cancel early into a longer plan.


# Devices

The **Devices** tab shows every device signed into your account and lets you sign them out. This is also where you free up instances when you hit your limit.

Open it here: [dashboard.refractbot.com/devices](https://dashboard.refractbot.com/devices)

<figure><img src="/files/eJ7S526cwqrKoOxsB8ww" alt="The Devices tab showing the instance usage bar, sign-out buttons, and device list"><figcaption><p>The Devices tab: instance usage up top, sign-out controls, and your device list below.</p></figcaption></figure>

## Your instance usage

The bar at the top shows how many of your instances are in use, for example **1 of 2 desktop instances in use**. The total reflects how many instances your subscription includes, and each instance is consumed by a device that is currently running and connected. It is strictly one instance per device: a machine runs one copy of Refract, and a second instance requires a second computer or server.

Click **Refresh** to force the list to reset and show the current state.

{% content-ref url="/pages/KgeKJxFOnpEnFpfYaSKR" %}
[Instances](/online-dashboard/subscription/instances)
{% endcontent-ref %}

## Your signed-in devices

Each device in the list shows its name, operating system, bot version, IP address, whether it is active, and when it was last seen.

<figure><img src="/files/DTiwsGWeKsiESSoxlFt4" alt="A signed-in device row showing name, OS, bot version, IP, and Active status"><figcaption><p>An active device: name, operating system, bot version, IP, and when it was last seen.</p></figcaption></figure>

## Sign devices out

You have four ways to sign devices out:

* Click the **X** next to a single device.
* Tick the checkboxes on the devices you want gone, then click **Sign out selected**.
* Click **Sign out inactive** to sign out only the devices that are not currently active.
* Click **Sign out all** to sign out everything at once.

## Fix "Max Instance Limit Reached"

If the bot shows **Max Instance Limit Reached** when you log in, every instance on your subscription is already consumed by another device. Fix it from this page:

{% hint style="info" %}
**Running on a cloud server, like an AWS image?** Stopping and starting a server can change its hardware and IP, so Refract may see it as a brand new device when it comes back up. The old session still counts against your limit, so sign out the stale device here and sign in again.
{% endhint %}

{% stepper %}
{% step %}

#### Open the Devices tab

Go to [dashboard.refractbot.com/devices](https://dashboard.refractbot.com/devices) and click **Refresh** to see the current state.
{% endstep %}

{% step %}

#### Sign out what you do not need

Sign out the devices you are not using. **Sign out all** is the quickest way if you only run one machine.
{% endstep %}

{% step %}

#### Log into the bot again

With an instance freed up, log back into the bot on the device you want to use.
{% endstep %}
{% endstepper %}

{% hint style="success" %}
If you keep hitting the limit because you genuinely run more machines than you have instances, you can add an instance from the Subscription page, up to the current cap.
{% endhint %}


# Settings

The **Settings** tab is where you connect your Discord, reset your password, and secure your account with two-factor authentication.

Open it here: [dashboard.refractbot.com/settings](https://dashboard.refractbot.com/settings)

<figure><img src="/files/04CPiftl4K5NkGa7MPKL" alt="The Settings tab showing the Discord and Security sections"><figcaption><p>The Settings tab: Discord connection up top, security options below.</p></figcaption></figure>

## Connect your Discord

Refract is account based, but you should still connect a Discord account. Connecting is what gets you into our customer support Discord server, and there is a lot of valuable information in there: announcements, drop info, and the ticket system for 1-on-1 help.

Click **Connect** next to Discord and authorize. You can change which Discord account is connected at any time.

## Your account email

Your Refract account is bound to the email address you purchased with, and that address is permanent.

{% hint style="danger" %}
**Account emails are never changed.** Per our Terms of Service, your account is bound to its email address, and we do not change it under any circumstances, for any reason. There are no exceptions:

* Not if you can no longer get into that inbox.
* Not if the email was hacked, stolen, or taken over.
* Not if the email account was closed, deleted, or suspended by the provider.
* Not if you would rather use a different address.

Staff cannot make an exception, and opening a ticket to ask will not change the answer.
{% endhint %}

The good news is that losing your inbox does not lock you out of Refract.

{% hint style="info" %}
**You do not need access to your email to use Refract.** Signing into the dashboard and the bot takes your email address and your password, nothing more. No code is sent to your inbox at login, so an inbox you cannot open is not a problem: keep signing in with the same email address and password as always.
{% endhint %}

If you have two-factor authentication turned on, your codes come from your authenticator app, not from email. Your backup codes cover you if you lose the authenticator.

## Reset your password

Click **Reset** next to Reset Password to open the password reset page, then enter an email address and click **Send reset link**. Because you request the reset from inside the dashboard, you can have the link sent to an email you can access, even if you have lost access to your account email.

<figure><img src="/files/MBBzcSjsxOaObx9gCWpW" alt="The Reset Password page with an email field and Send reset link button" width="450"><figcaption><p>Enter the email that should receive the reset link, then click Send reset link.</p></figcaption></figure>

{% hint style="warning" %}
Sending the reset link elsewhere does not move your account. Your account email stays what it has always been, and it is still the email address you log in with.
{% endhint %}

## Set up two-factor authentication

Two-factor authentication (2FA) adds a second check at login so a stolen password alone cannot get into your account. Setup is two parts: link an authenticator app, then enable 2FA.

{% stepper %}
{% step %}

#### Link your authenticator app

Click **Link** next to Authenticator App. This works with Authy, Google Authenticator, and similar apps.
{% endstep %}

{% step %}

#### Scan the QR code

Open your authenticator app and scan the QR code shown on screen.
{% endstep %}

{% step %}

#### Confirm with a code

Enter the code your authenticator app generates, then click **Confirm**. The Authenticator App status changes to linked.
{% endstep %}

{% step %}

#### Enable two-factor authentication

Click **Enable** next to Two-Factor Authentication. From now on, logins require a code from your authenticator app.
{% endstep %}
{% endstepper %}

{% hint style="success" %}
With 2FA enabled, request your backup codes right away (below). They are your only way back in if you lose your authenticator.
{% endhint %}

## Request backup codes

Click **Request** next to Request Backup Codes and store the codes somewhere safe and secure, like a password manager.

If you ever lose access to your authenticator app, backup codes are the only way back into your account. At sign in, use a backup code in place of the MFA code.

{% hint style="warning" %}
**Treat backup codes like your password.** Anyone with a code can pass your two-factor check, and losing both your authenticator and your codes means losing access.
{% endhint %}


# Announcements

The **Announcements** tab is where the team posts important updates: module changes during drops, known issues, and service status.

Open it here: [dashboard.refractbot.com/announcements](https://dashboard.refractbot.com/announcements)

<figure><img src="/files/zYsTcEcnu4ltm4hOUAzW" alt="The Announcements tab showing a critical and an info announcement"><figcaption><p>Announcements are tagged by severity. CRITICAL posts usually mean act now.</p></figcaption></figure>

## Where announcements show up

Announcements appear in two places: here on the dashboard, and as a pop-up inside the bot itself. That is deliberate. Discord servers can go down or get deleted, and it has happened to ours before. Announcements are the channel that always works, so important updates reach you even if Discord does not.

Each announcement is tagged by severity. **CRITICAL** means read it now, it usually involves an update or issue during an active drop. **INFO** is general news. Click **Refresh** to pull the latest.

{% hint style="info" %}
**Something acting strange during a drop?** Check Announcements first. If a site starts throwing new blocks or errors, chances are there is already a post about it, sometimes with an update to restart into.
{% endhint %}


# Changelog

The **Changelog** tab is the release history for Refract. Every update to the desktop app and the backend engine is logged here with its version, date, and what changed.

Open it here: [dashboard.refractbot.com/changelog](https://dashboard.refractbot.com/changelog)

<figure><img src="/files/MEYXunFVxGYVtw7UxPGq" alt="The Changelog tab showing desktop app and backend engine releases"><figcaption><p>Every release is tagged as DESKTOP APP or BACKEND ENGINE, newest first.</p></figcaption></figure>

## Reading the changelog

Each entry is tagged with what it updates, and the two update differently:

* **DESKTOP APP:** the Refract application you run. These are announced as **"New Update Available"** (for example `1.49.0`). Updating takes a download: close and reopen the application to be prompted, or download it from the dashboard. You can also click the version number in the bottom left corner of the bot to check for updates. The Devices tab shows which version each device is running.
* **BACKEND ENGINE:** the site modules behind the bot, essentially how the bot runs. These are announced as **"New Backend Update"** (for example `0.15.73`) and are the updates you will often see referenced during drops. Just restart for the update: close and reopen the application, that's it.

{% hint style="info" %}
**Desktop update not installing, or the update notification keeps coming back?** Download the bot again from the [dashboard](https://dashboard.refractbot.com/download) and install it over your current copy. Downloading the bot again keeps all of your data: accounts, profiles, proxies, task groups, and settings all stay. Nothing is erased.
{% endhint %}

The bottom left corner of the bot shows both versions at a glance: the desktop app version first, with the engine version in parentheses.

<figure><img src="/files/bPOKutB9p0R7nnmMFkej" alt="The bottom left corner of the bot showing the desktop and engine versions with Check for updates" width="263"><figcaption><p>Desktop app version on top, engine version in parentheses below. Click it to check for updates.</p></figcaption></figure>

{% hint style="info" %}
**"My bot won't update" is usually the two numbers being mixed up.** The versions are separate tracks, and a backend engine update never changes the desktop app number. So if the announcement was a "New Backend Update" like `0.15.73`, restart the bot and look at the bottom number in parentheses. The top desktop app number staying the same, for example `1.49.0`, does not mean the update failed.
{% endhint %}

{% hint style="info" %}
**Before opening a ticket about a bug, check the changelog.** If the issue was just fixed, restarting into the latest version is faster than a ticket.
{% endhint %}

{% content-ref url="/pages/z6txClvRkkbKTdT51wj5" %}
[Devices](/online-dashboard/devices)
{% endcontent-ref %}


# Install Refract

This guide gets Refract downloaded, installed, and logged in on Windows or Mac.

{% hint style="info" %}
**System requirements**

* Memory (RAM): `4 GB`
* Disk space: `5 GB`
* Windows 10/11, Windows Server 2016 or newer, or macOS 12 (Monterey) or newer
  {% endhint %}

## Download the app

Downloads live in the **Download** tab of the dashboard: [dashboard.refractbot.com/download](https://dashboard.refractbot.com/download). Choose the version that matches your device and it will download.

<figure><img src="/files/KeqLM3WcQ5ZVn3czaMqR" alt="The Download tab with macOS and Windows download options"><figcaption><p>One Windows download, two Mac downloads. Pick the one that matches your device.</p></figcaption></figure>

The installer is roughly 101 MB, so the download can take a while on slower networks. Give it time before assuming it failed.

{% hint style="warning" %}
**Download not starting?** Make sure you click **Allow** if your browser asks about popups or downloads from the dashboard. If it still will not download, try a new Chrome user: click your profile picture in the top right of Chrome, add a new profile, and download from there.
{% endhint %}

## Install and log in

{% tabs %}
{% tab title="Windows" %}
{% stepper %}
{% step %}

#### Download for Windows

On the Download tab, click **Download for Windows**.
{% endstep %}

{% step %}

#### Run the installer

Open the downloaded `refract.exe` file. You can also find it in **File Explorer > Downloads**. Follow the on-screen instructions.
{% endstep %}

{% step %}

#### Log in

Log in with the same email and password you use for the dashboard. Refract does not use license keys; your account is your license.
{% endstep %}
{% endstepper %}
{% endtab %}

{% tab title="Mac" %}
{% stepper %}
{% step %}

#### Pick your Mac version

There are two Mac downloads. Click the Apple menu and choose **About This Mac** to check yours: an Apple M1/M2/M3/M4 chip means **Download for Apple Silicon**, and an Intel processor means **Download for Intel**.
{% endstep %}

{% step %}

#### Run the installer

Open the downloaded file and follow the on-screen instructions.
{% endstep %}

{% step %}

#### Log in

Log in with the same email and password you use for the dashboard. Refract does not use license keys; your account is your license.
{% endstep %}
{% endstepper %}
{% endtab %}
{% endtabs %}

{% hint style="success" %}
If the login details are correct, Refract opens and you are presented with the bot. You are ready to move on to setup.
{% endhint %}

{% content-ref url="/pages/rx6hhYbORqLcsI1HOYZW" %}
[Task Creation](/general-setup/task-creation)
{% endcontent-ref %}

## FAQ

<details>

<summary>I lost access to my email, can I still log in?</summary>

Yes. Logging in takes your email address and your password, and nothing is sent to your inbox to complete it, so you can sign into the dashboard and the bot as normal without being able to open that inbox.

Your account email itself is never changed. Refract accounts are bound to the email they were purchased with, and that applies no matter why the inbox is gone, including a hacked, stolen, or deleted email account. Keep using the same email address and password.

If you need a new password, you can request the reset from inside the dashboard and have the link sent to an email you can access:

</details>

<details>

<summary>Refract shows in the taskbar, but the window is not on my screen</summary>

The app is running (it shows in the taskbar and Task Manager), but the window has ended up off screen, usually after a monitor change. On Windows, here is how to bring it back ([video walkthrough](https://www.youtube.com/watch?v=ifVtvI8tZaY)):

1. Click the Refract icon in the taskbar so the window is selected.
2. Press **Alt + Spacebar** to open the window menu.
3. Press **M** to choose Move.
4. Tap any arrow key once, then move your mouse: the window sticks to the cursor. Drag it somewhere visible and click (or use the arrow keys alone and press **Enter**).

</details>


# Task Creation

Getting tasks running is three steps, in this order:

1. **Create a task group** for your site. The group holds the monitor and all group-level settings.
2. **Set up the monitor** with the product input for that site.
3. **Create tasks** inside the group with your profiles, accounts, and proxy lists.

{% content-ref url="/pages/lakFqOjmJZ1f5PLfTgMK" %}
[Task Group Creation](/general-setup/task-creation/task-group-creation)
{% endcontent-ref %}

{% content-ref url="/pages/BOIYDVeICscacLXx6oFt" %}
[Monitor Setup & Multi Input](/general-setup/task-creation/monitor-setup-and-multi-input)
{% endcontent-ref %}

{% content-ref url="/pages/LZ59xO6tDFEZp0M7ZCmx" %}
[Delays](/general-setup/task-creation/delays)
{% endcontent-ref %}

{% hint style="warning" %}
**Task creation fields vary site to site.** The basics carry over everywhere (profiles, proxy lists, accounts, delays, task quantity), but each site adds its own settings, like Use Saved Session on Walmart or Hype Product on Target. Set up the basics here, then always check your site's module guide before a drop.
{% endhint %}

## How Item Quantity works

**Item Quantity is a ceiling, not an exact number.** The task goes for as many units as it can get, up to the number you set. If you set 5 and the site only allows 2, the task checks out 2 rather than failing.

That means you can safely set it high. The task auto-adjusts down to the maximum it can actually get, so there is no need to guess the site's limit per product.

{% hint style="warning" %}
**Walmart is the exception.** On Walmart this behaviour is not automatic: you need **Allow Lower Item Quantity** turned ON for the task to accept a smaller quantity. With it OFF, a task that cannot get your full quantity fails instead of taking what is available. See the [Walmart setup guide](/modules/walmart/walmart-setup-guide#task-creation).
{% endhint %}

Module guides with site-specific task setup:

* [Walmart](/modules/walmart)
* [Target](/modules/target)
* [Amazon](/modules/amazon)
* [BestBuy US](/modules/bestbuy-us)
* [Apple](/modules/apple)


# Task Group Creation

A task group is the container your tasks live in. Each group is tied to exactly one site, and it holds the monitor settings, the group-level toggles, and the tasks themselves. To run multiple sites, or multiple products on a site like Walmart, you create multiple groups.

## Create a task group

{% stepper %}
{% step %}

#### Open the Tasks tab

Go to the Tasks tab in the left sidebar. If you have no groups yet, click **+ Create Group**. Otherwise click the **+** button next to the group search.
{% endstep %}

{% step %}

#### Name it and pick the site

Give the group a clear name, like "Walmart Pokemon" or "Target Wednesday," and select the site from the **Group Site** dropdown. One site per group.

<figure><img src="/files/kO3ryunZ1WVyJPFEV2Y1" alt="The Create Task Group window" width="450"><figcaption><p>One site per group.</p></figcaption></figure>
{% endstep %}

{% step %}

#### Create it

Click **Create Task Group**. You are taken straight into the new group.
{% endstep %}
{% endstepper %}

## Finding your way around

* After creating a group, you are already inside it.
* Click **View all groups** in the top left of the settings panel to go back to the group list.
* To get back into a group, double-click it. That opens the group with its settings panel on the left. If you ever "lose" the monitor settings, this is why: you are looking at the group list, not inside a group.

<figure><img src="/files/5v9HjCGwlUb5yxK5HWFG" alt="Inside a task group with the settings panel on the left and task list on the right"><figcaption><p>Inside a group: settings on the left, tasks on the right.</p></figcaption></figure>

## The settings panel

The left panel holds everything about the group, and it is taller than one screen. Scroll the panel to see all of it: the monitor settings up top, then the site-specific toggles, statistics, schedule, and highlight color at the bottom.

The top part is the same on every site:

* **Group Info:** the group's name and site.
* **Monitor:** the monitor input, monitor proxy list, and monitor delay (default `4500`), plus **Offer ID** on sites that support it. What goes in the monitor input depends on the site; see the monitor guide below for every site's format.

{% content-ref url="/pages/BOIYDVeICscacLXx6oFt" %}
[Monitor Setup & Multi Input](/general-setup/task-creation/monitor-setup-and-multi-input)
{% endcontent-ref %}

{% hint style="warning" %}
**Below the monitor, the settings vary site to site.** Walmart shows queue-related toggles like Skip Monitoring (OfferID Required). Amazon US adds Allow Used Products, Notify when Offer ID Found, and Max Checkout Errors. Other sites show less. The same is true of task creation fields. Always check your site's module guide for what its specific settings do.
{% endhint %}

{% content-ref url="/pages/Mgev54viUFtmHhgOO1jI" %}
[Walmart](/modules/walmart)
{% endcontent-ref %}

## Statistics

The **Statistics** section counts your tasks by state: Running, Carted, In Queue, Passed, Success, and Failed. Clicking them also filters the task list.

{% hint style="warning" %}
**Tasks look like they disappeared?** A statistics filter is probably on. Tasks are almost never randomly deleted; the view is just filtered.
{% endhint %}

## Schedule

You can schedule the group's tasks to start themselves. Click **Configure** next to Schedule:

{% stepper %}
{% step %}

#### Decide on auto start

Tick **Auto start on app launch** if you want this group's tasks to start as soon as you open the bot.

<figure><img src="/files/DDHItpxHB8980uRyfWG8" alt="The Schedule Task Group window" width="450"><figcaption><p>Days repeat weekly. Times are always your device's local time.</p></figcaption></figure>
{% endstep %}

{% step %}

#### Choose your days

Select days of the week to repeat weekly on those days. With no days selected, the schedule runs once at the next occurrence.
{% endstep %}

{% step %}

#### Add time slots

Click **+ Add Slot** and set the start and stop times. All times are your device's local time. Click **Save**.
{% endstep %}
{% endstepper %}

## Group Highlight Color

Pick a **Group Highlight Color** at the bottom of the panel to color-code the group in your group list. Purely cosmetic, useful when you run many groups.


# Monitor Setup & Multi Input

## Monitor Inputs

Monitor inputs are the values Refract uses when searching a site to ensure you are getting the right product. These are configured in the Monitoring section of your task group.

There are three accepted input types, and which one to use depends on the site:

1. **PID (Product ID)**
   * A product-specific identifier used by the site.
   * Commonly used on **Amazon, BestBuy, Target, and Walmart**.
2. **Direct Link (URL)**
   * A full product URL that points directly to the item.
   * Supported by many sites where PIDs or OIDs are not available like **Apple**.
3. **OID (Offer ID)**
   * A unique string of numbers/letters tied to a specific offer for a product.
   * Allows for faster ATC (add-to-cart) than PID or direct link.
   * Only supported on **Amazon and Walmart**.
   * We recommend using OIDs provided by your cook group or monitors.

{% hint style="warning" %}
**Important:** Not every site accepts all types of monitor input. Always check the module guide for the correct format before running tasks.
{% endhint %}

### What each site takes as monitor input

| Site     | Monitor input                             | Example                                                                                      |
| -------- | ----------------------------------------- | -------------------------------------------------------------------------------------------- |
| Amazon   | ASIN                                      | `B0DYNN7RTT`                                                                                 |
| Walmart  | PID (the number in the URL)               | `walmart.com/ip/d/165545420` → `165545420`                                                   |
| Target   | TCIN (the number in the URL)              | `target.com/p/-/A-81114595` → `81114595`                                                     |
| Best Buy | SKU (from the bottom of the product page) | `6537363`                                                                                    |
| Apple    | Full product URL (the final spec page)    | `https://www.apple.com/shop/buy-iphone/iphone-17-pro/6.9-inch-display-256gb-silver-unlocked` |

***

## In-Bot Monitor & Checkout Feed

You do not have to find monitor inputs yourself. The bot has a built-in feed of what the monitors are picking up, on every site.

Click the monitor (computer screen) icon in the top right of the bot to open the popup. It has two tabs: **Monitor**, the live feed of products being picked up, and **Checkout Feed**. Use the filter at the top to narrow the feed to a site, for example Walmart on a Wednesday.

<figure><img src="/files/tOKptqj546FPjuVifV3L" alt="The in-bot monitor feed popup with Monitor and Checkout Feed tabs" width="380"><figcaption><p>The feed popup. Filter it to the site you are running.</p></figcaption></figure>

Right-click any product in the feed for three options:

* **Set product to group:** hover it and pick a task group. The product goes straight into that group's monitor input, no copying and pasting.
* **Copy monitor input:** copies the input so you can paste it into your task groups yourself.
* **Copy product link:** copies the product page URL.

<figure><img src="/files/kJ2sIGm6KJua3iqCoTXU" alt="The right-click menu on a feed product" width="450"><figcaption><p>Set product to group puts the input straight into a task group.</p></figcaption></figure>

***

## Multi Input

Refract also supports **Multi Input**, which lets you monitor multiple products within a single task group.

* The list has no priority order. All tasks in the group go for whichever product the monitor picks up first.
* Tasks stay on that product until it is completely out of stock (OOS). Only then do they move on, and again it is availability that decides: they go for the next product that pings in stock, not the next line in the list.

{% hint style="info" %}
Multi Input is great for most restocks. However, when multiple products drop simultaneously, all tasks will go for the first product detected, then move on only after it’s OOS - potentially missing other products that dropped at the same time. To target all items at once, run separate Single Input groups. Although you can use the same accounts, proxies, and profiles across groups, this does increases ban risk.
{% endhint %}

* Multi Input is NOT “Multi Cart.” Refract does not support multi-cart checkouts (carting multiple products and checking them out in the same order). Instead, Multi Input lets you monitor multiple products within a single task group and automatically shift between them.
* Works on every site. As of July 29, 2026, that includes Walmart queue drops; see the warning below.

{% hint style="warning" %}
For **Walmart queue drops**, Multi Input works but it is not multi-queue. All tasks in the group join the first queue that picks up. To ride separate queues for multiple products at the same time, run separate task groups. See the [release guide](/modules/walmart/walmart-release-guide#task-creation-and-multi-sku).
{% endhint %}

#### How does the monitor delay work with Multi Input monitoring?

When you run Multi Input with a monitor delay (e.g., 2000 ms), the bot checks all inputs in the list concurrently, re-checking them at that same monitor delay interval.

* Every input in the list is monitored at the same time.
* The delay (2000 ms) applies to the entire batch, not each monitor input individually.
* With a 2000 ms delay, all products are monitored every 2 seconds, no matter how many inputs you’ve added to your list.

In other words, the bot doesn’t cycle down the list. All items are covered simultaneously on the interval you set.

{% hint style="info" %}
Since all products in a Multi Input list are monitored concurrently, your bot traffic to the site scales with the number of inputs, thus increasing the likelihood for monitor rate limits/bans.

\
To avoid bans or blocks, plan for at least 1 proxy per input in your list. Ideally, use more than a 1:1 ratio to spread out the monitor traffic load and to help ensure stable monitoring.
{% endhint %}

### Multi Input Formatting

Each product gets its own line. For example:

```
pid1
pid2;max_price
pid3;max_price;oid
pid4;oid
pid5
```

* Use **semicolons (`;`)** to separate values.
* `pid` = Product ID (required)
* `max_price` = Optional max price threshold. Whole dollars only, see below.
* `oid` = Offer ID (only for Amazon and Walmart).

Not every product needs a `max_price` or `oid`. Include them only when needed.

{% hint style="danger" %}
**Price max must be a whole dollar amount. Cents are not supported.** Write `40`, not `39.99`. Round up to the next whole dollar, so a $39.99 cap becomes `40`.

A price max with cents in it is the reason tasks silently fail to pick up a product. The task looks like it is running normally, it just never activates.
{% endhint %}

{% hint style="info" %}
**Price max works on every site except Best Buy and Apple.** Target included: run Target multi-SKU with a price cap per line as `tcin;price_max`, exactly like other sites. Best Buy and Apple are the only sites that do not support price max.
{% endhint %}

**Example:**

```
B09XYZ123
B08LMN456;399
B07QRS789;499;k0l3ysA%2BeL5Ujfp%2FT.....
B0DYNN7RTT;6ewE64HlEkbBskr%2FYwVREz.....
```

This setup means:

* Monitor product `B09XYZ123` with no price limit.
* Monitor product `B08LMN456` but only if ≤ $399.
* Monitor product `B07QRS789` with a $499 cap, while also monitoring a specific OID for Amazon/Walmart.
  * When using an OID, Refract monitors both the PID and OID together. Always set a max price to avoid accidentally checking out third-party or overpriced listings.


# Delays

* When creating tasks, there are two different delays to add: monitor delay and task delay

## Monitor Delay

* The monitor delay determines how often the monitor checks for product availability. Lower values mean the monitor will theoretically pick up products faster, but setting it too low can increase the risk of bans.

![](/files/PjUqRfbjafVwcO9gx5Cl)

## Retry Delay

* Retry delay (sometimes called task delay) is the delay a task waits before retrying after an error. Errors include anything that prevents a clean, one-shot checkout, for example:

  * Out of Stock (OOS)
  * Rate limit
  * Shape block
  * Unknown response

  In other words, task delay does nothing during a perfect checkout flow (since there are no errors to delay). But when something fails, as is often the case, the task uses the task delay value before retrying again. It also has no effect on queue entry speed on queue sites.

![](/files/polvRZ5Jkg9UKvjHl4eO)

{% hint style="info" %}
Both delays are required. Be careful as too low delays will result in proxy/IP bans
{% endhint %}

{% hint style="info" %}
**Changing a delay never stops or restarts your tasks.** Delay changes apply on the fly. Whether you should change them is a different question: stick with each site's defaults unless its guide says otherwise.
{% endhint %}

## Choosing the Right Delay

#### **Default Values**

* By default, Refract sets a recommended delay for each site. If you aren't sure what to use, stick with the default as it reflects the tested balance of speed and safety.

| Site     | Monitor Delay default | Retry Delay default | Notes                                  |
| -------- | --------------------- | ------------------- | -------------------------------------- |
| Walmart  | `4500`                | `4500`              | Default is fine                        |
| Target   | `3500`                | `3500`              | Users experiment between 1000 and 4000 |
| Amazon   | `3500`                | `3500`              |                                        |
| Best Buy | `3500`                | `3500`              |                                        |
| Apple    | `3500`                | `3500`              |                                        |

**Site-Specific Differences**

* Different sites perform best with different delays. Some sites tolerate very low delays, while others ban aggressively if you go too low. Always adjust based on the site you're running, and see the site's module guide for the details.


# Profiles

Profiles live in the **Billing** tab (the wallet icon) in the left sidebar. A profile is the shipping address, billing address, and payment card a task uses to check out. All profiles are stored locally and securely on your machine.

The tab opens on your profile groups, with **All profiles** as the default group.

<figure><img src="/files/oMfkk7S9k9fb8Iix1sWJ" alt="The Billing tab showing profile groups"><figcaption><p>The Billing tab opens on your profile groups.</p></figcaption></figure>

## Create a profile

Click the **+** button to open **Create Profile**. It has three tabs, and every field is required except where noted.

{% stepper %}
{% step %}

#### General

* **Profile Name:** any name that helps you identify it during task creation (e.g. `Visa-Denver-Joe`).
* **Email:** the email for this profile. We recommend a unique email per profile.
* **Cardholder Name:** ideally the name on the card.
* **Card Number**, **CVV** (3 digits for most cards, 4 on the front for Amex), and **Month/Year Exp.**
* **One Time Use:** with this on, the profile checks out only once per site per product. After a success, the bot prevents further checkouts with that profile on that site and product until the bot is restarted.

<figure><img src="/files/T4y1xhSY1WMp3YCVNuVQ" alt="Create Profile on the General tab" width="480"><figcaption><p>Every General field is required.</p></figcaption></figure>
{% endstep %}

{% step %}

#### Shipping

First name, last name, address, city, phone, country, province/state, and postal code are all required. **Address 2** (apartment, suite, unit) is the only optional field.

Format matters: use the correct phone format for the country, and include any spaces the postal format expects.

<figure><img src="/files/jaduJt0LBAuosCxXsYHV" alt="Create Profile on the Shipping tab" width="450"><figcaption><p>Address 2 is the only optional field.</p></figcaption></figure>
{% endstep %}

{% step %}

#### Billing

If the billing address matches shipping, leave **Same As Shipping** on. Otherwise toggle it off and enter the billing address that matches the card issuer's records.
{% endstep %}

{% step %}

#### Create

Click **Create**. The profile appears in your list, ready to select during task creation.
{% endstep %}
{% endstepper %}

## Profile groups

Groups let you select many profiles at once during task creation. Click the **folder +** (Create Group) button in the top right, name the group, pick a color, tick the profiles you want, and create it. You can also select profiles with Ctrl+Click or Shift+Click and right-click to add them to a group.

## Import and export profiles

There are three file buttons on the toolbar, left to right:

<figure><img src="/files/rMoYVEPvFCEsFYQ8M6wM" alt="The three profile import and export buttons" width="212"><figcaption><p>Left to right: Refract import, CSV import, export.</p></figcaption></figure>

* **Import (Refract format):** imports profile files in Refract format. Third-party tools like AYCD can export profiles in Refract format, and this is the button those files go through.
* **Import CSV:** imports profiles from a CSV file. Your CSV must follow our template: [profile CSV template](https://docs.google.com/spreadsheets/d/1aNVMSlX5pbZj-hdrDbQ2zWJUkHM4KC6cmtXt9-ofLFE/edit?usp=sharing).
* **Export:** exports your profiles in Refract format.

## Updating a profile

The bot always uses the current profile info. If you edit a profile, or re-import an updated one (from AYCD or CSV), tasks using that profile check out with the new details. No extra steps needed.

On account sites like Target and Walmart, the bot also updates the account itself when tasks run: it deletes the old address on the account and adds the new one from the profile. You do not need to clean up old addresses on the site manually.

## Error: "Invalid Address Details"

Invalid Address Details means the site is rejecting the profile data. Common reasons:

* Required fields are missing or incorrectly formatted (wrong postal format, missing state selection).
* The billing address does not match the card issuer's records.
* Address components are in the wrong fields (apartment in Address 1 when the site expects it in Address 2).
* Country or state selected incorrectly.

**How to fix it:**

1. Re-open the profile and verify every required field. Address 2 is the only optional one.
2. Test the address manually on the site. Use the site's suggested format if it offers one, or adjust your jig if blocked.

## FAQ

<details>

<summary>How many profiles do I need?</summary>

Ideally each task uses a unique profile, which reduces cancels and detection risk. So: as many profiles as tasks.

</details>

<details>

<summary>Is there a template for importing profiles?</summary>

Yes. Use the [profile CSV template](https://docs.google.com/spreadsheets/d/1aNVMSlX5pbZj-hdrDbQ2zWJUkHM4KC6cmtXt9-ofLFE/edit?usp=sharing) with the CSV import button. Alternatively, tools like AYCD can export profiles directly in Refract format for the Refract import button.

</details>

<details>

<summary>How should I jig my profiles?</summary>

We do not provide assistance with jigs or profile creation methods. Your cook group is the place for current jigging strategies.

</details>

<details>

<summary>Can my profile affect site anti-bot systems, like Shape on Target?</summary>

No single stored profile turns on a site's anti-bot system. However, repeatedly submitting bad or heavily jigged profiles, or reusing the same card or email across many tasks, can trigger site-side protections and increase cancels and errors (Invalid Address Details, Invalid Credit Card, Max Card Attempts Reached).

</details>

<details>

<summary>Can I use the same credit card for multiple profiles?</summary>

Possible but not recommended. Reusing the same card across many profiles causes more cancels, authorization locks, and failures on sites like Walmart because of the repeated authorization attempts. Use unique payment methods when possible.

</details>


# Proxies

Proxies mask your IP address so you can run multiple tasks without getting your IP banned. This page covers adding proxy lists, how the bot assigns proxies to tasks, and how swapping lists actually works.

## Adding and managing proxies

Proxies are created and managed in the Proxies tab. To create a new list, name your proxy list and paste your proxies into the proxies section.

{% hint style="warning" %}
**One proxy per line.** Each proxy must be on its own line.
{% endhint %}

<figure><img src="/files/dpV7ifg05fnJeKj7PmAn" alt="The Proxies tab with a proxy list"><figcaption><p>One proxy per line. Duplicates are removed automatically.</p></figcaption></figure>

{% hint style="info" %}
**Refract automatically removes duplicates** from a list and only keeps unique entries. If you pasted several proxies and only one shows, you pasted the same proxy multiple times.
{% endhint %}

## How proxies are assigned

People constantly ask how proxies are distributed and how the bot avoids giving two tasks the same proxy. Here is exactly how it works:

1. The bot shuffles your proxy list.
2. It then goes down the list in order, assigning the next proxy to each task or monitor as one is needed.
3. If it reaches the bottom of the list, it wraps back around to the top and keeps going.

So no, the first proxy in your list is not used first. The shuffle decides the order every time the list is loaded.

That is the whole system. The bot does not check for or avoid duplicates across tasks. If you have fewer proxies than tasks, proxies get reused, by design. The way to get one proxy per task is simple: have at least as many proxies in the list as you have tasks.

## Swapping proxies while tasks are running

You can change proxies while tasks are running. There is no need to stop anything to assign a new list.

However, the swap is not instant. Tasks continue using the proxy they were already on until they hit a block or error. Only then do they rotate onto the new list.

It is not possible to change proxies immediately without restarting tasks. If you need the new list applied right away, restart your tasks.

This applies to both monitor and task proxies. This is intended behavior. It has always worked this way and always will.

## FAQ

<details>

<summary>Do I need a separate proxy list for monitors?</summary>

No. On every site (Walmart, Target, all of them) you can use the same proxy list for your tasks and your monitor. A separate monitor list is only worth it if you are running Skip Monitoring and spamming hard.

</details>

<details>

<summary>How can I tell if my proxies are flagged or banned?</summary>

The easiest way to check is to run test tasks. If you can check out with those proxies on a test product, you are in good shape. If you have issues at drop time anyway, the proxies may be getting flagged when site anti-bot security is at a higher level.

</details>

<details>

<summary>What causes a proxy soft ban?</summary>

Proxy abuse: running too many tasks on a single proxy, low quality proxies, running too low a delay, and similar. All of these can lead to soft bans on sites like Amazon.

</details>

<details>

<summary>How many tasks can I run per proxy?</summary>

Ideally, 1 task per proxy, which means having at least as many proxies as tasks (see [How proxies are assigned](#how-proxies-are-assigned)). On some sites you can get away with two or even three tasks per proxy. Test this on your own setup.

</details>

<details>

<summary>What does IP banned mean?</summary>

Your proxy has been flagged by the site and blocked from accessing it. Let the proxies rest or try new proxies.

</details>

<details>

<summary>Can I run the same proxies or proxy list across multiple groups?</summary>

Across different sites, certainly. Across groups on the same site, you can try, but it is not advised. Overdoing it causes proxy bans and blocks. There is no exact ratio; experiment with your setup and roll it back if you start getting blocked.

</details>

<details>

<summary>Why is it only showing one proxy when I pasted several?</summary>

You likely pasted the same proxy multiple times. Refract automatically removes duplicates and only keeps unique entries.

</details>


# Accounts

The Accounts tab in the left sidebar holds every site account the bot uses. It opens on your account groups, with **All accounts** as the default group.

<figure><img src="/files/pEiswjExoum0tpvWxM6u" alt="The Accounts tab showing account groups"><figcaption><p>The Accounts tab opens on your groups. All accounts is the default.</p></figcaption></figure>

## The toolbar

Inside a group, the toolbar buttons from left to right:

* **+** adds accounts.
* The **pencil** edits the selected account.
* The **delete** button deletes the selected accounts.
* The **lock** logs into the selected accounts. This is for Amazon only; every other site logs in through tasks.
* The **last button** clears sessions on the selected accounts, forcing a fresh login the next time tasks start.
* The dropdown on the right filters the list by site.

<figure><img src="/files/YWA062ayycSpSepIoMRb" alt="The accounts toolbar buttons" width="500"><figcaption><p>Left to right: add, edit, delete, login (Amazon only), clear sessions, site filter.</p></figcaption></figure>

## Find accounts in the list

Use the account search to narrow the list down. It takes more than one account at a time: paste a whole list of logins into the search and the list filters to just those accounts.

That is the practical way to check a specific batch, like working out which of your accounts are SMS verified on Walmart. Paste the batch in, and you are looking at only those accounts instead of scrolling your whole list.

## Add accounts

{% stepper %}
{% step %}

#### Open Create Account

Click the **+** button. The window has two input modes: **Default** and **Mass Input**.
{% endstep %}

{% step %}

#### Default: one account at a time

Choose the **Site**, then enter the **Login** (email) and **Password**.

<figure><img src="/files/nQafHsHmAoJQciTaGteJ" alt="The Create Account window on the Default tab" width="450"><figcaption></figcaption></figure>
{% endstep %}

{% step %}

#### Mass Input: many at once

Switch to **Mass Input**, choose the **Site**, and paste one account per line in this format:

```
login:password
```

You can optionally append a proxy and a 2FA secret with semicolons: `login:password;proxy;secret`. Most users only need `login:password`.

<figure><img src="/files/AHLVNVRIIi2YuYOn8yaJ" alt="The Create Account window on the Mass Input tab" width="450"><figcaption><p>One account per line. Only login:password is required.</p></figcaption></figure>
{% endstep %}

{% step %}

#### Leave the proxy options alone

Skip the Proxy List / Input Proxy options and click **Create Account**.
{% endstep %}
{% endstepper %}

{% hint style="warning" %}
**Do not assign proxies to accounts.** Leave the account proxy options untouched for every site and let your tasks handle proxies through the task proxy list. Only set an account proxy if you know exactly what you are doing.
{% endhint %}

For completeness, here is what an account proxy actually does if you do set one: the bot uses that proxy to log into the account. And on sites that have the **Use Account Proxy** toggle in task creation, enabling it makes the task use the account's proxy for every step, not just login. Neither is recommended for normal setups.

## Account groups

Groups make it easy to select many accounts at once during task creation.

{% stepper %}
{% step %}

#### Create the group

On the Accounts tab, click the **folder +** (Create Group) button in the top right.
{% endstep %}

{% step %}

#### Name it and pick a color

Give the group a name and pick a color so it is easy to spot.

<figure><img src="/files/HKFJg1nmz2FXL3fXLtsX" alt="The Create Account Group window" width="480"><figcaption><p>Name it, pick a color, tick the accounts.</p></figcaption></figure>
{% endstep %}

{% step %}

#### Add the accounts

Tick the accounts you want in the group, then click **Create Group**. You can also add accounts later: select them in All accounts with Ctrl+Click or Shift+Click, right-click, and add to group.
{% endstep %}
{% endstepper %}

## Import and export accounts

The two file buttons import and export accounts.

* **Import** only accepts files exported by Refract. We do not support CSV imports from AYCD or any other tool.
* **Export** writes accounts in Refract's proprietary format. The **Include Sessions (Encrypted)** toggle controls what you get: with sessions on, the export is an encrypted file that carries your accounts and their existing sessions, which is how you move accounts to another instance without re-logging in. With sessions off, accounts are written to a plaintext `.txt` file in `login:password;proxy` format. So if you just want a readable copy of your emails and passwords, export with **Include Sessions (Encrypted)** off.

<figure><img src="/files/6LUZuBiDuqiZHD6vd8DR" alt="The Export Accounts window with the Include Sessions toggle" width="420"><figcaption><p>Include Sessions on: encrypted file with sessions. Off: plaintext .txt.</p></figcaption></figure>

{% hint style="info" %}
**Moving your whole setup to a new device?** Use App Data export/import in Settings instead. It carries everything, not just accounts. See [Settings](/general-setup/settings#move-everything-to-a-new-device).
{% endhint %}

## Logging in

* **Amazon:** accounts must be logged in before tasks can run. Select the accounts, then click the **lock** button.
* **Every other site:** accounts log in through tasks. Start your tasks and the bot handles login. This is why the login button shows "Login via Tasks" for sites like Walmart.

{% hint style="warning" %}
**Seeing "Awaiting task login" in the Status column?** That is what most sites (Walmart, Target, and others) show, and it means exactly what it says: the account logs in by running tasks. Start tasks and the bot does the login flow. Clicking the lock login button will not work for these sites; it is for Amazon only.
{% endhint %}

<figure><img src="/files/78X5zRLWE5zEr9TFjZyV" alt="The Status column showing Awaiting task login" width="190"><figcaption><p>Run tasks to log these in.</p></figcaption></figure>

## Clear a session

To clear an account's saved session, right-click the account and click **Clear Session**. To do many at once, select them and use the clear sessions button on the toolbar. Either way, the account goes through a fresh login the next time tasks start. Re-logging like this can refresh flagged session data, so it comes up in troubleshooting, for example with Walmart 456s.

## FAQ

<details>

<summary>Does Refract use account or profile data at checkout?</summary>

If there is no profile input (Amazon only), Refract uses the account's data. If there is a profile input (most sites), Refract uses the profile info only. If a matching address is already on the account, it skips re-adding it to avoid stacking the same address over and over.

</details>

<details>

<summary>Can my account affect site anti-bots like Shape on Target?</summary>

No. Your account does not affect anti-bot systems like Shape.

</details>

<details>

<summary>What does "account does not exist" mean?</summary>

There is no valid account in Refract for the site you are running. Make sure you created an account entry matching the exact site and credentials.

</details>

<details>

<summary>Why do my passwords get reset on sites like Best Buy?</summary>

Password resets are a normal occurrence on sites like Best Buy. With Reset Invalid Password enabled on your tasks, the bot resets and stores the new password automatically.

</details>

<details>

<summary>Do I need to set a proxy or proxy list on my accounts?</summary>

No. Do not assign proxies directly to accounts for any site. Tasks handle proxies through the task proxy list.

</details>


# Settings

The bot's **Settings** tab has five sections: **General**, **Freebies**, **Harvesters**, **IMAP Logins**, and **2FA Codes**. This page covers General, Freebies, and 2FA Codes. Harvesters and IMAP Logins have their own dedicated guides, linked below.

## General

<figure><img src="/files/iUenXobmIzJpCOyGx5iH" alt="The General tab of bot Settings"><figcaption><p>The General tab: webhooks, checkout sound, confirmation dialogs, app data, and logout.</p></figcaption></figure>

### Webhooks

Add a Discord or Slack webhook to receive notifications from the bot. There are two webhook fields:

* **Checkouts:** receives your success and decline notifications.
* **Notifications:** receives bot alerts that may need your attention, like Shape passing but the product going out of stock, 3DS payment verification prompts, or Walmart checkout URLs for accounts without SMS verification (see [SMS verification at checkout](/modules/walmart/walmart-setup-guide#sms-verification-at-checkout)).

Paste the webhook URL into the field, click **Save**, then click **Test** to confirm it posts.

Two toggles control what gets sent:

* **Send declines to webhooks:** with this on, declines post to your webhook alongside successes.
* **Hide checkouts from public log:** keeps your checkouts out of the public checkout log. Note that this is not absolute: certain popular products will always be shown in the public log at our discretion.

<details>

<summary>How to create a Discord webhook</summary>

1. Create your own Discord server by clicking the **+** (Add a Server) icon in Discord and following the prompts.
2. Open your server's **Server Settings** and go to the **Integrations > Webhooks** tab.
3. Click **Create Webhook** (or **New Webhook**), choose the channel it should post to, and copy the webhook URL.
4. Paste that URL into Refract and click **Save**, then **Test**.

</details>

<details>

<summary>How to create a Slack webhook</summary>

1. Create a Slack workspace (or use one you own).
2. From the workspace's app directory, add the **Incoming Webhooks** application.
3. In the app's settings, pick the channel it should post to and click **Authorize**.
4. Click generate in the Webhook URL box, copy the URL, paste it into Refract, and click **Save**, then **Test**.

</details>

### Checkout Sound

With **Play sound on successful checkout** on, the bot plays a sound every time a task checks out. The current sound file is shown on the right.

* **Import** a custom sound (MP3 format).
* **Play** previews the current sound.
* **Reset** returns to the default checkout sound.

### Confirmation Dialogs

If you have dismissed confirmation pop-ups with "Don't ask me again," clicking **Reset All Confirmations** brings them all back.

### App Data

**Export** saves all of your app data, and **Import** loads it into another Refract instance. This is how you move your full setup (settings, accounts, profiles, proxies, task groups, and saved sessions) to a new PC or server.

### Move everything to a new device

We get asked this a lot. Here is the whole process:

{% stepper %}
{% step %}

#### Export on your current device

In **Settings > General > App Data**, click **Export** and save the file.
{% endstep %}

{% step %}

#### Move the file to the new device

Get the exported file onto the new machine however you like: USB drive, cloud storage, or a direct transfer.

Emailing the file to yourself is the easy option, especially when the new machine is a server you only reach through a remote session, and plenty of people do it that way.

{% hint style="warning" %}
**Email is convenient, not secure.** The export contains your full setup, including profiles with card details and your account logins. Sending that through email means it sits in your inbox and your sent folder. If you do it, delete the message from both once the import is done, and never send it to anyone else.
{% endhint %}
{% endstep %}

{% step %}

#### Sign out of the current device

Click **Log Out** at the bottom of Settings, or sign the device out from the dashboard's [Devices tab](/online-dashboard/devices). This frees the instance so the new device can use it.
{% endstep %}

{% step %}

#### Sign in on the new device

Install Refract on the new device and log in with your account.
{% endstep %}

{% step %}

#### Import the file

Go to **Settings > General > App Data**, click **Import**, and choose the file you moved over.
{% endstep %}
{% endstepper %}

{% hint style="success" %}
That is everything. Your accounts, profiles, proxies, task groups, and saved sessions are all on the new device. You should not need to re-login accounts unless the sessions have expired.
{% endhint %}

### Logout

**Log Out** logs you out of Refract and deactivates this instance, freeing it up so another device can use it. The signed-in account email is shown here too. If you are chasing a "Max Instance Limit Reached" error, this and the dashboard's Devices tab are the two ways to free an instance:

{% content-ref url="/pages/z6txClvRkkbKTdT51wj5" %}
[Devices](/online-dashboard/devices)
{% endcontent-ref %}

## Freebies

The **Freebies** tab holds the ASIN/Keyword Blacklist for Amazon Freebies & Deals.

<figure><img src="/files/3RuI3adh1tFEP99MRz6W" alt="The Freebies tab with the ASIN/Keyword Blacklist"><figcaption><p>Comma-separated ASINs and keywords. Click an entry to remove it.</p></figcaption></figure>

* Add ASINs or keywords you never want checked out again, comma-separated: `ASIN,keyword,ASIN,keyword`.
* Click **Add** to save them to the blacklist.
* Click an existing entry to remove it from the blacklist.

{% content-ref url="/pages/mHZpyCgwxnstfxyscQka" %}
[Amazon Freebies & Deals 101](/modules/amazon/amazon-freebies-and-deals-101)
{% endcontent-ref %}

## Harvesters

The **Harvesters** tab is where Target Shape cookie harvesters live. It has a full guide:

{% content-ref url="/pages/EjaxLfBYQeNORImXRI1L" %}
[In-Bot (Shape Generation)](/modules/target/in-bot-shape-generation)
{% endcontent-ref %}

## IMAP Logins

The **IMAP Logins** tab connects your email so the bot can auto-submit one-time codes. It has a full guide:

{% content-ref url="/pages/w4FUaY6NY47OY1XicIjy" %}
[IMAP](/misc./imap)
{% endcontent-ref %}

## 2FA Codes

Click **Open Window** to manually open the 2FA codes window. It lists every email and task currently waiting on a code, and you can filter by site or recipient.

<figure><img src="/files/fHiqcYlce8mhW0B1tTKb" alt="The 2FA Codes tab with the Open Window button"><figcaption><p>The 2FA Codes tab. Open Window brings up the codes list, filterable by site or recipient.</p></figcaption></figure>

{% hint style="info" %}
**Seeing code requests here does not mean IMAP is broken.** The codes window always shows the emails and tasks that need codes, even when IMAP is connected and submitting them successfully. Use this window when you want to see or enter codes manually.
{% endhint %}


# Common Errors & Statuses

The most common statuses and errors you will see across sites, alphabetized. Every entry here is general; the site-specific breakdowns live in each module's guide, and those are the authoritative ones for drop night.

{% hint style="info" %}
**Running a specific site? Check its guide first.** [Walmart's release guide](/modules/walmart/walmart-release-guide#common-errors-and-fixes) covers every Walmart error including Access Denied (456) and queue statuses. [Target's guides](/modules/target) cover Shape blocks, Waiting for Cookies, and cancellations. [Amazon](/modules/amazon/amazon-setup-guide#common-statuses), [Best Buy](/modules/bestbuy-us), and [Apple](/modules/apple) each cover their own statuses.
{% endhint %}

## Statuses & Errors (A-Z)

**Access Denied**

* **What it means:** the account or proxy was flagged by the site's security. Seen on Amazon, and on Walmart as Access Denied (456).
* **How to fix it:** let the task auto-rotate and retry. If it never recovers: increase delays, let the account rest, or use fresh higher-quality proxies. On Walmart, 456 has been extremely heavy at add to cart lately across all bots; see [Access Denied (456)](/modules/walmart/walmart-release-guide#access-denied-456) for the current situation and the only advice that helps.

***

**Account In Use, Waiting**

* **What it means:** the same account is being used by multiple tasks at once, which some sites do not allow.
* **How to fix it:** run one task per account, and use more unique accounts.

***

**Invalid Account Session**

* **What it means:** the account has been logged out or the session expired.
* **How to fix it:** re-login. Amazon: the lock button in the Accounts tab. Target: harvest login cookies. Walmart: run tasks with Use Saved Session off to generate a fresh session.

***

**Invalid Address**

* **What it means:** the site is rejecting the address in your profile.
* **How to fix it:** verify every profile field is filled and formatted correctly (especially imported profiles), test the address manually on the site, and adjust your jig if blocked. Test with the exact info from the profile, pasted field for field: if the site rejects it manually, the bot cannot make it work either. On Walmart, see [Invalid Address Details](/modules/walmart/walmart-setup-guide#invalid-address-details).

***

**Invalid Credit Card**

* **What it means:** the card is invalid, or the bank is blocking authorization attempts after too many in a short time.
* **How to fix it:** verify the card details, then let the card cool off; the block clears on its own. Reuse the same card on the same account where possible. The full breakdown is in the [Walmart setup guide](/modules/walmart/walmart-setup-guide#invalid-credit-card-max-card-attempts), and the same logic applies elsewhere.

***

**Invalid Login**

* **What it means:** the email or password is incorrect.
* **How to fix it:** recheck the credentials in the Accounts tab, and verify by logging in manually.

***

**Login via Tasks**

* **What it means:** this site logs in through tasks, not the Accounts tab. Nothing is wrong.
* **How to fix it:** just run your tasks. Do not try to log in manually.

***

**Out of Stock, Retrying**

* **What it means:** the product is out of stock and the bot is retrying.
* **How to fix it:** no action needed. Let the task run.

***

**Payment Failure**

* **What it means:** your payment was declined, usually flagged as suspicious by your bank.
* **How to fix it:** contact your bank to whitelist the charge, use a different card, or let the card rest.

***

**Product Not Supported**

* **What it means:** hover over the status for the reason. On Target it usually reads "Shipping not available for this product (Target $35+ restriction)": Refract only checks out with free shipping, and Target's free shipping needs a $35+ cart, so a product under $35 cannot check out on its own.
* **How to fix it:** enable **Add Extra Product** on your tasks and set a custom filler item, like a Lego set, to bring the cart over $35. The filler is cancelled after checkout. See the [Target setup guide](/modules/target/target-setup-guide#task-creation).

***

**Proxy Error**

* **What it means:** the proxy is dead, expired, banned, out of data, or the provider is down.
* **How to fix it:** test the proxies, replace the list, and remove any account proxies you did not mean to set.

***

**Request Timed Out**

* **What it means:** the task got no response, from site issues, proxy problems, or an overloaded network.
* **How to fix it:** reduce task count, check your proxies, test on local IP, and check whether the site itself is down.

***

**Setting Cookies**

* **What it means:** the bot is generating cookies required to proceed. Normal.
* **How to fix it:** let it continue. If tasks loop here (especially Walmart or Best Buy), your proxies are likely flagged; swap them.

***

**SMS Required** (older versions: **Not SMS Verified**)

* **What it means:** on Walmart, the account has no phone number attached and Walmart currently has SMS enforcement switched on. Enforcement comes and goes without warning.
* **How to fix it:** verify the account with SMS, or run accounts that already have a number on them. See [SMS Required](/modules/walmart/walmart-setup-guide#sms-required).

***

**Soft Banned (OOS)**

* **What it means:** the site (typically Amazon) is returning a false Out of Stock even though the product is available. A soft ban on the account, proxy, or session, usually from too many requests too fast.
* **How to fix it:** keep running and let tasks retry. If it persists: switch proxies, try another account, let things rest, or increase delays. See the [Amazon guide](/modules/amazon/amazon-setup-guide#soft-banned-oos).

***

**Waiting for Product**

* **What it means:** the task is waiting on the monitor, either because the product has not been found yet or because it is out of stock. This is the expected pre-drop status; tasks move on their own the moment stock is picked up.
* **How to fix it:** nothing, if the product is out of stock or you have no monitor input set. If the product is in stock and tasks still sit here, check that the monitor input is correct and your monitor proxies are working. Also check your price max: cents are not supported, so a cap like `39.99` stops the product being picked up at all. Round up to the next whole dollar.
* Older versions split this into two statuses, with "Waiting for Restock" shown once the monitor found an out-of-stock product. "Waiting for Restock" no longer exists; it is always "Waiting for Product" now.

***

**Unknown Error / Unknown Response \[XXX]**

* **What it means:** the site returned something the bot does not recognize.
* **How to fix it:** check your proxies (the cause of most unknown errors), check your profiles for missing fields, restart the task, and open a ticket if it persists. On Walmart, Unknown Response \[400] usually means Walmart+ is required; see the [setup guide](/modules/walmart/walmart-setup-guide#unknown-response-400).


# Logs

Where to find your task logs in Refract, and what the app data dev logs are (and are not) for.

Refract has two kinds of logs: task logs you view in the bot, and dev log files in the app data folder. For checking what a task did, task logs are the ones you want.

## Task logs: right-click the task

Right-click any task and click **View Logs**. This is the user-facing log: it shows what that task has been doing, in a readable format. When troubleshooting a task or asked for logs in a ticket, this is the log to check.

## Dev logs: the app data folder

Refract also writes log files to its app data folder on your machine.

{% hint style="warning" %}
**App data logs are not user friendly, and they are not designed to be.** A lot of things are missing from them. They exist for our development team, not for users, so do not try to troubleshoot from them. Your logs are the right-click **View Logs** on a task. Only dig out the app data files if support asks you for them.
{% endhint %}

If support does ask, here is where the folder lives:

{% tabs %}
{% tab title="Windows" %}

1. Press **Win + R** to open the Run box.
2. Type `%appdata%` and press Enter.
3. You land in `AppData\Roaming`. Open the **Refract** folder.

Or in File Explorer: click the address bar, type `%appdata%`, press Enter, and open the **Refract** folder.
{% endtab %}

{% tab title="Mac" %}

1. Open **Finder** (or click the desktop so Finder is active).
2. Press **Cmd + Shift + G** to open the Go to Folder box.
3. Type `~/Library/Application Support` and press Enter.
4. Open the **Refract** folder.

Or from the Finder menu bar: click **Go**, then **Go to Folder...**, and enter the same path.
{% endtab %}
{% endtabs %}


# Amazon

Refract's Amazon module does two different jobs, each with its own guide: running releases and restocks (ASIN + Offer ID monitoring with instant carts), and running Freebies & Deals (automated free and heavily discounted products on Prime accounts).

## The guides

**Releases and restocks** (accounts, task group, ASIN + OID, statuses):

{% content-ref url="/pages/yIpREyeavTRjSAUtZZhp" %}
[Amazon Setup Guide](/modules/amazon/amazon-setup-guide)
{% endcontent-ref %}

**Freebies & Deals** (Prime accounts, freebies task groups, deal filters):

{% content-ref url="/pages/mHZpyCgwxnstfxyscQka" %}
[Amazon Freebies & Deals 101](/modules/amazon/amazon-freebies-and-deals-101)
{% endcontent-ref %}

**2FA accounts** (create the 2FA secret so the bot can skip codes at login):

{% content-ref url="/pages/A2BFM0IcdfNZAThDiz12" %}
[Amazon 2FA Secret Creation](/modules/amazon/amazon-2fa-secret-creation)
{% endcontent-ref %}

## The rules that never change

* Amazon accounts must be logged in (the lock button) before creating tasks. Amazon is the only site that logs in from the Accounts tab.
* Each account needs a default shipping address and payment method set on Amazon itself. Amazon is the only site where Refract uses account data instead of a profile.
* Run ASIN + Offer ID together. ASIN alone is often too slow.
* ISP proxies, at least 1 per task. Up to 5 tasks per account if your proxies cover it.
* Keep running through Access Denied and soft bans. Blocks are expected; the strategy is to let tasks retry.
* Delays stay at `3500` for both monitor and tasks.


# Amazon Setup Guide

This is the complete guide to setting up and running Amazon releases and restocks in Refract. Follow each section in order if you are a new user. For Freebies & Deals, use its own guide instead:

{% content-ref url="/pages/mHZpyCgwxnstfxyscQka" %}
[Amazon Freebies & Deals 101](/modules/amazon/amazon-freebies-and-deals-101)
{% endcontent-ref %}

## Prerequisites

* Amazon accounts with a **default shipping address and default payment method already set on the account**. Amazon is the only site where this is required; there are no profiles on Amazon, so Refract checks out with what is on the account.
* Amazon Teen and Amazon Business accounts are supported.
* ISP proxies, at least 1 per task.
* The product's **ASIN and Offer ID**. Run both; ASIN by itself is often too slow.
* Optional: 2FA secrets for accounts with 2FA enabled (see [Amazon 2FA Secret Creation](/modules/amazon/amazon-2fa-secret-creation)).

{% hint style="warning" %}
**The best Amazon strategy: keep running through Access Denied and soft bans.** Blocks are expected on Amazon. Do not stop tasks when you see them; let tasks retry. Run each account up to 5 times, assuming you have the proxies for it (at least 1 ISP per task).
{% endhint %}

## Accounts Setup

{% stepper %}
{% step %}

#### Add your accounts

In the Accounts tab, create your accounts with **Amazon US** as the site (see the [Accounts guide](/general-setup/accounts) for the add flow). If an account has 2FA, paste its key into the **2FA Secret** field:

{% content-ref url="/pages/A2BFM0IcdfNZAThDiz12" %}
[Amazon 2FA Secret Creation](/modules/amazon/amazon-2fa-secret-creation)
{% endcontent-ref %}
{% endstep %}

{% step %}

#### Check the account's defaults

Make sure each account has a default shipping address and default payment method set on Amazon itself. Refract uses the account's data at checkout, not a profile.
{% endstep %}

{% step %}

#### Log the accounts in

Amazon accounts must be logged in **before** you create tasks. Select the accounts and click the **lock** button. Amazon is the only site that logs in this way; do this first, every time.
{% endstep %}
{% endstepper %}

## Task Group Setup

Create a task group with **Amazon US** as the site (see [Task Group Creation](/general-setup/task-creation/task-group-creation)), then configure the settings panel:

<figure><img src="/files/eWiCIwDIZT3yihYPH3Fe" alt="The Amazon US task group settings panel" width="380"><figcaption><p>The Amazon group panel. Run ASIN + Offer ID together.</p></figcaption></figure>

| Setting                                  | Value                                | Notes                                                                                                           |
| ---------------------------------------- | ------------------------------------ | --------------------------------------------------------------------------------------------------------------- |
| Use Multi Input                          | OFF unless running multiple products | Formats below                                                                                                   |
| Monitor Input                            | The product's ASIN                   | From the URL: `amazon.com/dp/B08SGTGTZD` → `B08SGTGTZD`. A URL will not work                                    |
| Monitor Proxy List                       | Your ISP list                        | Can be the same list as your tasks                                                                              |
| Monitor Delay                            | `3500` (default)                     |                                                                                                                 |
| Offer ID                                 | The product's OID                    | Run ASIN + OID together. ASIN alone is often too slow                                                           |
| Allow Third Party Vendors                | OFF                                  | ON to include third-party offers. Does nothing with an OID (already seller-specific)                            |
| Allow Used Products                      | OFF                                  | ON to include used offers. Does nothing with an OID (already condition-specific)                                |
| Price Min / Price Max                    | Leave blank                          | Price filters for 1 item, before tax and shipping. Blank means no limit. Whole dollars only: round up, no cents |
| Notify when Offer ID Found               | Optional                             | Posts to your notifications webhook when the monitor finds an Offer ID                                          |
| Skip Monitoring (If Offer ID is present) | OFF                                  | See [Offer ID, explained](#offer-id-explained)                                                                  |
| Max. Checkout Errors                     | `5` (default)                        | Checkout errors allowed before the task stops the attempt and returns to monitoring                             |
| Loop Checkouts                           | OFF                                  | ON to keep attempting checkouts after each success                                                              |

**Multi Input formats** (one per line, only with Use Multi Input on):

```
ASIN
ASIN;MAX_PRICE
ASIN;OFFERID
ASIN;MAX_PRICE;OFFERID
```

All inputs are monitored at once, not one at a time.

<figure><img src="/files/aun2ruEnGhOFhNYUNhVr" alt="The lower half of the Amazon group settings" width="400"><figcaption><p>The lower half of the panel: vendor and condition toggles, prices, OID options, and Max Checkout Errors.</p></figcaption></figure>

## Task Creation

Click **+** in the task group to open Create Tasks.

{% hint style="danger" %}
**Log in to accounts before creating tasks.** The bot reminds you in this window for a reason. Tasks need logged-in accounts to run.
{% endhint %}

<figure><img src="/files/APEeobUgpwQPZNtX1hZ7" alt="The Amazon Create Tasks window" width="450"><figcaption><p>Normal mode for releases and restocks. Raffle mode enters raffles, typically Amazon Japan.</p></figcaption></figure>

| Setting                      | Value                          | Notes                                                                                                                                                                                           |
| ---------------------------- | ------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Mode                         | Normal                         | **Raffle** enters raffles instead, typically for Amazon Japan                                                                                                                                   |
| Use Account Proxy            | OFF                            | Only if you deliberately assigned account proxies                                                                                                                                               |
| Task Proxy List              | Your ISP list                  | At least 1 ISP per task                                                                                                                                                                         |
| Accounts                     | Your accounts or Account Group |                                                                                                                                                                                                 |
| Force Free Shipping (Slower) | OFF                            | ON prioritizes free shipping on accounts without Prime, at the cost of speed                                                                                                                    |
| Retry Delay                  | `3500` (default)               |                                                                                                                                                                                                 |
| Task Qty                     | `1` to `5`                     | Tasks created **per account**. Up to 5 per account works if you have the proxies for it                                                                                                         |
| Item Quantity                | `1`                            | A ceiling, not an exact number: the task goes for the max it can get, up to what you set. Safe to set high. See [How Item Quantity works](/general-setup/task-creation#how-item-quantity-works) |

## Offer ID, explained

An Offer ID is a unique identifier for a specific product offer from a specific seller. Running an OID targets and spams Add to Cart on that exact listing, bypassing traditional monitoring for speed. For extremely limited items that go out of stock instantly, an OID can be the only way to cart in time.

The rules:

* **ASIN is required alongside the OID.** An OID never runs alone.
* **OIDs are not price-specific.** Prices can and do change on the same OID, so set a Price Max.
* **OIDs change frequently, and that is fine.** The same user can get a different OID on every refresh, multiple OIDs often point to the same offer, and old OIDs keep working. As long as it points to the right offer, it does not matter which one you have.
* OIDs come from your cook group or monitors, and the in-bot [monitor feed](/general-setup/task-creation/monitor-setup-and-multi-input#in-bot-monitor-and-checkout-feed).

**Skip Monitoring (If Offer ID is present):** with an OID in place, this skips monitoring entirely and immediately spams cart attempts. Use it when you know the drop time or the item is actively restocking and you need instant carts. Otherwise leave it off.

## Common statuses

### Access Denied

**What it means:** the account or proxy was flagged. **This is normal on Amazon.** The strategy is to keep running through it and let tasks retry.

On the monitor specifically: a few Access Denied responses when first starting are normal. The monitor rotates proxies and settings in the background until it finds the optimal setup, then sits on "monitoring" for long stretches. That means it is working. The only concern is nonstop Access Denied spam that never recovers, which points to flagged proxies or accounts.

If it truly never recovers: increase task delays, let the account rest for several hours or days, or use fresh, higher-quality proxies.

### Soft Banned (OOS)

**What it means:** Amazon is returning a false Out of Stock even though the product is available. It is a soft ban on the specific account, proxy, or session, usually from too many requests too fast, low-trust proxies, or rapid logins from multiple locations.

**How to handle it:** same strategy, keep running. If it persists: switch proxies, try a different account, let the account rest, or increase the retry delay.

### No Default Payment Method / No Default Address

Amazon sometimes drops default settings on its own. To fix:

1. **Address:** verify the default shipping address on the account (the address section in the top left of the Amazon homepage) and make sure it is marked default.
2. **Payment:** remove the current default payment method and re-add it to re-establish it as the default.

## FAQ

<details>

<summary>How many accounts do I need?</summary>

As many as you can have. There is no set number.

</details>

<details>

<summary>How many tasks per account?</summary>

Up to 5 tasks per account works, assuming you have the proxies for it (at least 1 ISP per task). Set Task Qty accordingly; it creates that many tasks per account.

</details>

<details>

<summary>What delays should I run?</summary>

Monitor `3500`, task retry `3500`. The defaults.

</details>

<details>

<summary>What proxies should I use on Amazon?</summary>

ISP proxies, at least 1 per task.

On Amazon, match your proxy location to where you are running. If your server is in Virginia, run proxies geolocated in Virginia. That is all there is to it, and it is an Amazon rule specifically, not general advice for every site.

</details>

<details>

<summary>Do Amazon Japan items ship to the US?</summary>

Almost none of them do. If your Japan orders keep getting blocked or cancelled, that is usually the reason rather than anything in your setup. Check that the item actually ships to your country before running it.

</details>

<details>

<summary>Do I need an ASIN if I am running an OID?</summary>

Yes. ASIN and OID always run together on Amazon.

</details>

<details>

<summary>Are Teen and Business accounts supported?</summary>

Yes, both.

</details>

<details>

<summary>Can I run another task on an account that is already doing Freebies?</summary>

Yes. Running an additional task for a different item on the same account is fine.

</details>

<details>

<summary>Is Price Max before or after tax and shipping?</summary>

Before. Price Max is the total of just the item.

Use a whole dollar amount: cents are not supported, so round up to the next dollar (`40`, not `39.99`). A price max with cents in it stops the task picking the product up at all.

</details>

<details>

<summary>Will the bot adjust quantity if Amazon's max is lower than my Item Quantity?</summary>

Yes. Item Quantity is a ceiling, not an exact number: if you request 4 and Amazon allows 2, the bot automatically goes for 2. You can set it high and let the task take the most it can get. This is automatic on every site except Walmart, which needs its Allow Lower Item Quantity toggle. See [How Item Quantity works](/general-setup/task-creation#how-item-quantity-works).

</details>


# Amazon Freebies & Deals 101

Deep dive into Amazon Freebies & Deals setup!

## Before we begin...

Welcome to the Refract setup support document! This guide will walk you through the simple steps to start enjoying freebies and deals using Refract. There are really only a few steps before you are up and running! Don't miss them though - each one is crucial in order to have success!

### Overview

1. [Create proxy lists (optional)](https://help.refractbot.com/module-guides/amazon-freebies-and-deals-101#proxy-list-creation-optional)
2. [Adding your Amazon Prime account(s) to Refract](https://help.refractbot.com/module-guides/amazon-freebies-and-deals-101#adding-your-account-s)
3. [Task group creation](https://help.refractbot.com/module-guides/amazon-freebies-and-deals-101#task-group-creation)
4. [Task creation](https://help.refractbot.com/module-guides/amazon-freebies-and-deals-101#task-creation)
5. Success

## Proxy List Creation (Optional)

* Proxies are essential when using multiple accounts for freebies. There are two ways to add proxies to the bot: creating a proxy list or adding them during account creation. In this guide, we will concentrate on adding proxies to a new proxy list. If you decide not to create a proxy list now, you will need to assign proxies to each account individually during the account creation process later on.

1. 1.) The first step is to navigate to the proxy list tab. ![](/files/izhYkJukdCH5uJGiBE5a)
2. Once in the proxy list tab, you will want to create a new list by clicking the `Create` button in the top right hand corner. A proxy creation window will open up where you will name your list, choose a color (optional for ease of use) and paste your proxies.

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

{% hint style="info" %}
Remember: only one proxy per line, and proxies must follow `ip:port:user:pass` format. `ip:port` is also acceptable for IP authenticated proxies.
{% endhint %}

## Adding Your Account(s)

* Amazon accounts are the fuel for freebies. Having accounts properly setup is essential for success.

### Account Requirements

{% hint style="info" %}

* Amazon Prime
* Default address & payment method
* Refract exclusivity! Do NOT run this account on any other software or you will encounter errors.
  {% endhint %}

### Adding Your Account(s)

* Accounts can be added via the accounts tab. The accounts tab is located directly below the proxy group tab in the tool bar.

1. The first step is to navigate to the account groups tab. ![](/files/6y1Q0xXVdLhu6ig7pWNj)
2. To create a new account group, go to the account groups tab and click the Create button in the top right corner. A window will appear where you can name the group, choose a color (optional), and select the accounts. If it's your first time setting up, click "Create Group (0 Accounts)" and we will add your account to the group later.
3. To add your account to the bot, click the "+" icon at the top of the new account group. A window will open where you can provide the necessary details.
4. For Amazon US (Freebies & Deals), select either Amazon US or Amazon US (Freebies & Deals) as the site. Both options will work.
5. Enter your Amazon email in the login box and your password in the password box.
6. Next, choose a proxy list or input a proxy. If you have a proxy list, you can choose to use it for your accounts' logins or leave it blank. If you don't have a proxy list, you can add an individual proxy by clicking "Input proxy" and pasting a single proxy into the bot.

{% hint style="info" %}
Note: adding a proxy in the account step is only required if you didn't create a proxy list previously. Assigning an individual proxy to a specific account can provide more control over your setup, but is not necessary.
{% endhint %}

7. The 2FA secret box is for 2FA authentication keys. If you do not have this setup, do not worry and leave this box blank.
8. Finally, click create.

<figure><img src="/files/oo8LWAfOiD8XsS0ZAFx6" alt="" width="309"><figcaption></figcaption></figure>

### Logging In

* After your account has been created, you will need to login to that account. To login to that account, simply click the account to select it. To select multiple accounts, hold the `CTRL` key or do `CTRL + A` to select all accounts.
* Once your desired accounts have been selected, click the lock icon to login to the account(s).

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

## Task Group Creation

* After your accounts are ready to go, it is time to create your task group.

1. The first step is to navigate to the task groups tab. ![](/files/jOXtKHj45BoBcEfnPDn4)
2. Once in the tasks groups tab, you will want to create a new group by clicking the `+` button near the top of the groups section.

<figure><img src="/files/Q89wZN2Yf1rB1DN5Nztw" alt="" width="407"><figcaption></figcaption></figure>

3. After clicking the creation button, a window will open where you can name your task group and choose the site. In this case, the group site should be `Amazon US (Freebies & Deals)`

### Group Settings

Open the group (double-click it) to see its settings:

<figure><img src="/files/wqnbpmNLqYqthEdxDPlt" alt="The Freebies and Deals group settings" width="420"><figcaption><p>Only Freebies stays ON for free products only. Turn it OFF to run deals.</p></figcaption></figure>

* **Only Freebies:** ON by default. The group only goes for free products. Turn it OFF to run discounted deals as well (see [Deals](#deals) below for the filters).
* **Stop After 1 Checkout:** with this ON, tasks stop after their first successful checkout instead of continuing.
* **Loop Checkouts:** with this ON, tasks keep attempting checkouts after each success.

## Task Creation

* The last step before you rake in these free products is to create your tasks.

{% hint style="warning" %}
**Some deals are Prime only.** To ensure the highest chance of success, use Prime accounts. And remember: accounts must be logged in before creating tasks.
{% endhint %}

1. First, click the `+` Add button near the top right hand corner of the task group.

<figure><img src="/files/H6kpaGmS6AeIq7TUXZuD" alt="The Freebies and Deals Create Tasks window" width="450"><figcaption><p>Proxies, accounts, and retry delay. Some deals are Prime only.</p></figcaption></figure>

2. A task creation window will open:
   1. `Use Account Proxy` should be enabled if you added proxies directly to your account in account creation. Otherwise, select the task proxy list you previously created.
   2. Next select your account(s) you want to run. You can also choose to run an entire account group.
   3. Finally, set the Retry Delay. It can range from 0 to 3500. If you are new, leave it at `3500`.
3. After you have all of the above set, create your tasks.

## Success

* Congrats! You are ready for free products. The last step is to start your tasks by clicking the `Start` button. All tasks should show `Waiting for Product`. This is a normal step, and one where you will see your tasks at quite often.

{% embed url="<https://refractbot.com/proof>" fullWidth="true" %}
Check out our recent checkouts here!
{% endembed %}

## Deals

* Refract doesn't just support free products, you can also run for a multitude of heavily discounted products.
* To set up for these deals, simply disable the `Only Freebies` toggle in the task group.

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

1. `Min Discount Percentage` is the minimum discount you want to go for. For example, if you want products that are only 90% off or above (including freebies), put 90.
2. `Max Price of Product` is the final TOTAL price (including shipping and tax) of the product. If you want the max price to be $5, put 5.
3. `Min. Price Off` is the minimum price (in dollars) you want off from the product. If you only want products that are $100 or more dollars off, put 100.

{% hint style="info" %}
Not all three of these are required. You can set one, two, or all three. Feel free to adjust to suit your needs.
{% endhint %}

<figure><img src="/files/5IeKMsME9WLmONhOl4Kc" alt=""><figcaption></figcaption></figure>

## Why am I not hitting?

* Below is a checklist to ensure you have everything setup properly. If you have everything correct, please open a ticket in the support server and we would be happy to further assist you.

- [ ] Restart your bot. This ensure your are connected to our servers.
- [ ] Proxies assigned on all tasks. Could be a proxy list, or account proxy. Note: this applies if you are running more than 1 account. Running 1 account with no proxy is OK.
- [ ] Accounts have Amazon Prime
- [ ] Refresh your login session. To refresh your session, [follow the login steps again.](https://help.refractbot.com/module-guides/amazon-freebies-and-deals-101#task-creation)
- [ ] Ensure you are not running your account on more than one bot or multiple times in Refract.
- [ ] If the above does not help, PLEASE open a ticket and we will gladly help!


# Amazon 2FA Secret Creation

Skips Amazon 2FA on account login

To begin your Amazon 2FA setup, follow below:

1. Login to your Amazon account and locate the **Account**\
   ![](/files/nRvFH9KkStMHAA5OCPNY)
2. Click the **Login and Security** tab\
   ![](/files/sZlonbj6ly9aW5WJrHKV)
3. Click **Turn On** for the 2-step verification row\
   ![](/files/F2T3vZEUIQYBJ6GPJepy)\
   Then on the next page, click **Get Started**
4. Click the **Authenticator App** option and click **Can't Scan the Barcode**\
   ![](/files/230XnqURdcPsPDtLzekj)
5. Copy and **SAVE** this key to your files and into Refract\
   ![](/files/XEKhLAFpg1lyDFfY7tEN)
6. From there, scan the QR code in your favorite MFA App\
   ![](/files/pnVn6xNwmtLvsmm7gu19)
7. Once your key is **saved**, and you have scanned the QR code, **insert the code** from the app and click "Verify OTP and continue"
8. Finally, to add the 2FA key to your account, head over to Refract, create or edit an account for this corresponding Amazon account, and paste the key into 2FA Secret.\
   ![](/files/Hr4AuVEx18IzKOI3jqLd)


# Apple

Refract's Apple module runs Apple releases (iPhone launches and restocks) across regions, with shipping or in-store pickup. Apple uses your profiles for checkout, and accounts are optional for most regions.

## Get the full product URL

Apple's monitor input is the full product URL of the exact spec you want. Here is how to get it:

{% stepper %}
{% step %}

#### Spec out the product

Head to [apple.com/iphone](https://www.apple.com/iphone/) (or the product's page) and fully spec out the device: size, color, storage, carrier, and so on. Be sure to do this on the Apple domain for your region.

<figure><img src="/files/oTF8yZnsuIRb5joD88Vv" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

#### Copy the final URL

Once you reach the final spec page, copy the URL from the address bar. A full URL looks like:

```
https://www.apple.com/shop/buy-iphone/iphone-17-pro/6.9-inch-display-256gb-silver-unlocked
```

{% endstep %}

{% step %}

#### Paste it as the monitor input

That full URL is your task group's monitor input. Anything less than the final spec-page URL will not work.
{% endstep %}
{% endstepper %}

## Task Group Setup

Create a task group for the Apple region you are running (see [Task Group Creation](/general-setup/task-creation/task-group-creation)). Apple's group settings are the simplest of any site:

<figure><img src="/files/s9NMIUnMY7Oo92Yc2Aw5" alt="An Apple US task group settings panel" width="380"><figcaption><p>Apple's group settings: the full product URL, a proxy list, and the delay.</p></figcaption></figure>

| Setting            | Value                | Notes     |
| ------------------ | -------------------- | --------- |
| Monitor Input      | The full product URL | See above |
| Monitor Proxy List | Your proxy list      |           |
| Monitor Delay      | `3500` (default)     |           |

## Task Creation

Click **+** in the task group to open Create Tasks.

<figure><img src="/files/oH1DoAompJWNQtOFadc5" alt="The Apple Create Tasks window" width="420"><figcaption><p>Restart on Failure stays ON. Accounts are optional for Apple US.</p></figcaption></figure>

| Setting                              | Value              | Notes                                                                                                                                                                         |
| ------------------------------------ | ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Profiles                             | Your Profile Group |                                                                                                                                                                               |
| Task Proxy List                      | Your proxy list    | Leave blank for localhost                                                                                                                                                     |
| Match account to profiles (by email) | Optional           | Pairs accounts to profiles with the same email                                                                                                                                |
| Accounts                             | Optional           | Required for some regions, not recommended for Apple US                                                                                                                       |
| Restart on Failure                   | ON (default)       | Tasks automatically restart after a failure instead of stopping                                                                                                               |
| Use Account Shipping                 | OFF                | Ships to the address saved inside the Apple account                                                                                                                           |
| Use Account Billing                  | OFF                | Uses the billing address saved inside the Apple account                                                                                                                       |
| Apply Account Balance                | OFF                | Uses the gift card balance on the account                                                                                                                                     |
| Use Fastest Delivery ($$)            | OFF                | Checks out with the fastest delivery option, often at a premium charge                                                                                                        |
| In-Store Pickup                      | OFF                | Purchases for in-store pickup. See below                                                                                                                                      |
| Business Name (optional)             | Blank              | Only if you are registered with Apple as an official business                                                                                                                 |
| Retry Delay                          | `3500` (default)   |                                                                                                                                                                               |
| Task Qty                             | `1`                | Tasks per profile                                                                                                                                                             |
| Item Quantity                        | `1`                | A ceiling, not an exact number: the task goes for the max it can get, up to what you set. See [How Item Quantity works](/general-setup/task-creation#how-item-quantity-works) |

### In-Store Pickup options

With In-Store Pickup on, you configure where the bot looks for stores:

* **Max Distance:** how many miles from the ZIP code the bot searches for stores.
* **Use Store From Profile Zip:** searches for stores within the max distance of the profile's ZIP code.
* **Choose Store:** enter a custom ZIP and manually pick individual stores. Useful when running out of state or targeting specific stores.

{% hint style="info" %}
**Stores not populating?** Either your local IP is banned or it is just slow to load; give it 30 seconds. If the Apple waiting room page is live, store data cannot be fetched at all, so use the billing ZIP and search radius to determine stores when creating tasks during that window.
{% endhint %}

## Accounts (optional)

Add Apple accounts via the [Accounts guide](/general-setup/accounts) if your region needs them. The first time you start a task with an account, Apple sends a code to your Apple devices. Enter it in the [2FA codes window](/general-setup/settings#2fa-codes) when it pops up, or set up [IMAP](/misc./imap) to submit codes automatically.

## Running an Apple release

* **The bot handles Apple's queue.** Tasks may enter Apple's waiting room, and that is expected. Seeing "Rate Limit" while Apple gradually lets users in over the first 5-10 minutes of a release is normal.
* **Start tasks 10-15 seconds before drop time.**
* **Shipping tasks are the reliable play on launch day.** They are not subject to the same out-of-stock issues as pickup and typically check out successfully around the clock during a release. The variable is the delivery date, which slips further out as stock depletes.
* **Pickup tasks keep working after the drop.** Restocks occur over the days following an initial drop, so keep pickup tasks running.

### Forced Delivery

"Forced Delivery" means Apple's fraud detection blocked your pickup option. The cause varies (profiles, accounts, or proxy IPs) and there is no definitive way to determine the exact reason for each setup. You can keep running pickup tasks anyway and catch the restocks over the following days.

## Proxies

ISP/DC proxies are generally recommended for Apple. However, Apple temporarily bans or rate-limits these proxies when used for extended periods, so a combination of ISP/DC and residential can help. Expect an increase in proxy bans either way.

## FAQ

<details>

<summary>What are the recommended steps for a new user running Apple?</summary>

1. Add profiles.
2. Add proxies.
3. Optional: add accounts.
4. Create a task group with the full product URL and create tasks.
5. Start tasks 10-15 seconds before drop time.
6. Monitor announcements for updates.

</details>

<details>

<summary>Will the bot adjust quantity if Apple's max is lower than what I set?</summary>

Yes. If you request 4 units and Apple allows 2, the bot automatically goes for 2.

</details>

<details>

<summary>Can I still run pickup tasks if I see Forced Delivery?</summary>

Yes. Keep them running; restocks occur over the days after the initial drop. Just be aware that ISP proxies often get blocked after extended use.

</details>


# BestBuy US

Refract's Best Buy module runs releases and restocks (which are sometimes queue protected) and can also request invites for Best Buy's invite-based releases. Profiles are required, accounts log in through tasks, and IMAP is essential for the email codes Best Buy sends.

## Find the SKU

Best Buy's monitor input is the product SKU. A URL will not work.

{% stepper %}
{% step %}

#### Open the product page

Head to the product's page on Best Buy's site, for example:

```
https://www.bestbuy.com/product/apple-airpods-4-white/JJGCQ83JQ5
```

{% endstep %}

{% step %}

#### Open the specifications

Scroll down and click **See All Specifications**.

<figure><img src="/files/a7KLh5SPADr7BmdM20R2" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

#### Grab the SKU

Scroll to the bottom of the specifications and copy the **SKU**. That number is your monitor input. On older URLs you may also see it directly in the link as `skuId=6429440`.

<figure><img src="/files/wtQlqzTPuWYi5QsknIH9" alt=""><figcaption></figcaption></figure>
{% endstep %}
{% endstepper %}

## Task Group Setup

Create a task group with **Best Buy US** as the site (see [Task Group Creation](/general-setup/task-creation/task-group-creation)), then configure the settings panel:

<figure><img src="/files/Y5Orii4uvu0DxwzbmGz5" alt="A Best Buy US task group settings panel" width="380"><figcaption><p>The Best Buy group panel. Skip Monitoring only at known drop times.</p></figcaption></figure>

| Setting                     | Value                            | Notes                                                                   |
| --------------------------- | -------------------------------- | ----------------------------------------------------------------------- |
| Use Multi Input             | OFF unless running multiple SKUs | One PID per line. See the multi-SKU logic below                         |
| Monitor Input               | The product SKU                  | From the specifications, e.g. `6429440`                                 |
| Monitor Proxy List          | Your ISP list                    |                                                                         |
| Monitor Delay               | `3500` (default)                 |                                                                         |
| Skip Monitoring (Drop Time) | OFF                              | ON at known drop times to skip monitoring and force cart attempts       |
| Loop Checkouts              | OFF                              | ON to keep attempting checkouts after each success, with a max per task |

**Multi-SKU logic on Best Buy:** all tasks in a group always go for the first product that pings. They stay on it until it goes out of stock, then move to the next product that pings. Tasks never split across SKUs at the same time, so to queue for multiple products at once, run separate groups, one per SKU.

## Task Creation

Click **+** in the task group to open Create Tasks.

{% hint style="warning" %}
**Resi proxies may be needed for tasks.** Best Buy has been blocking a lot of ISP proxies lately (Akamai blocks). ISP for the monitor is still fine; for tasks, residential is the safer default.
{% endhint %}

{% hint style="info" %}
**The one provider we recommend, and only here.** [One Stop Proxies](https://www.onestopproxies.com/) is Akamai-optimized, which is what Best Buy needs, so it is the single provider we officially recommend. That recommendation is for Best Buy only. They may work elsewhere, but for every other site we do not recommend providers. See [Proxies](/introduction-to-botting/proxies#why-we-do-not-recommend-providers).
{% endhint %}

<figure><img src="/files/mZZCrPXEHf41jOPwoW2V" alt="The Best Buy Create Tasks window" width="420"><figcaption><p>Prelogin stays OFF for queue products. Max Queue Time stays at 0.</p></figcaption></figure>

| Setting                              | Value                  | Notes                                                                                                                                                                         |
| ------------------------------------ | ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Profiles                             | Your Profile Group     | Required. Best Buy always checks out with profile info                                                                                                                        |
| Task Proxy List                      | Your residential list  |                                                                                                                                                                               |
| Match account to profiles (by email) | Optional               | Pairs accounts to profiles with the same email                                                                                                                                |
| Accounts                             | Your Account Group     | 1 task per account per group. See the 2FA note below                                                                                                                          |
| Max Queue Time (min)                 | `0` (off)              | Tasks re-enter queue if their queue time exceeds this. Leave off; set too low and no task can join queue                                                                      |
| Prelogin                             | OFF for queue products | Logs accounts in as soon as tasks start. Good for non-queue products and invites; on queue products it can cause infinite queue loops                                         |
| Use Account Proxy                    | OFF                    | Leave off and let tasks rotate the task proxy                                                                                                                                 |
| In-Store Pickup                      | OFF                    | ON for pickup-only products, which will not check out without it                                                                                                              |
| Use Tax Exempt Code                  | OFF                    | Applies sales tax exemption on proper Best Buy business accounts                                                                                                              |
| Use Reward Certs                     | OFF                    | Uses the account's reward certificates at checkout                                                                                                                            |
| Retry Delay                          | `3500` (default)       |                                                                                                                                                                               |
| Task Qty                             | `1`                    | Tasks per profile                                                                                                                                                             |
| Item Quantity                        | `1`                    | A ceiling, not an exact number: the task goes for the max it can get, up to what you set. See [How Item Quantity works](/general-setup/task-creation#how-item-quantity-works) |

{% hint style="warning" %}
**Remove SMS and authenticator-app 2FA from your Best Buy accounts.** The only 2FA Refract supports is the email code Best Buy itself forces, which IMAP grabs automatically.
{% endhint %}

## IMAP is essential

Set up IMAP so the bot can auto-submit the email codes Best Buy sends, both for unlocking locked accounts and for checking out queue products. You do not assign IMAP to specific tasks; the bot reads all incoming mail and routes codes automatically based on the email's To and From fields.

{% content-ref url="/pages/w4FUaY6NY47OY1XicIjy" %}
[IMAP](/misc./imap)
{% endcontent-ref %}

{% hint style="info" %}
**There is no way to know if a product will be queue protected at drop time.** The only signal is how previous restocks of that item behaved.
{% endhint %}

## Queue drops

* **Queue looping before login:** your proxies are flagged, or just unlucky.
* **Queue looping after login:** your account may be flagged, or again, just unlucky.
* **Queue codes do not guarantee checkout.** A code only means you passed the queue. If 5,000 people pass and there is 1 item in stock, 1 person checks out.
* **Akamai blocks:** Best Buy has been blocking more proxies at the Akamai level. Akamai-optimized proxies like [One Stop Proxies](https://www.onestopproxies.com/) have kept working fine; if your usual proxies suddenly stop passing, that is the likely reason.

## Requesting Invites/Raffles

To enter or request an invite for a Best Buy invite-based release, add the product SKU to your monitor input, keep task settings at their defaults, and click start.

<figure><img src="/files/ijIRY4swt57BnstHZkG8" alt="" width="236"><figcaption></figcaption></figure>

**Recommended settings:**

* Monitor Input: the product SKU
* Monitor Delay: `3500`
* Task Qty: `1`, Item Qty: `1`
* **Prelogin: ON.** Prelogin skips login for invite signups and always uses a saved session if one exists. Prelogin off is mainly beneficial for queue drops and does not matter for invites.

<figure><img src="/files/HwgPP7INBI5c9IPXDDBE" alt="" width="345"><figcaption></figcaption></figure>

**Proxies:** use [One Stop Proxies](https://www.onestopproxies.com/) for Best Buy. Both tasks and monitor must be unblocked to sign up for invites cleanly. If you get login loops, that is almost always your task proxy (or an account proxy, which you should not have set). If the monitor is not picking up the invite, either your SKU is wrong or your monitor proxies are blocked.

**Understanding invite statuses:** Best Buy's site does not surface failures. It only returns "invited" or "requested," so there is no "not invited" status.

* `Invite Requested`: the task entered the signup but was not invited.
* `Invited, Waiting for Event to Start`: you were invited, and the event has not started yet.

**Checking invite status:** on an existing task, just press start. With Prelogin on, the module skips login and checks status against your saved session.

## FAQ

<details>

<summary>What proxies should I use on Best Buy?</summary>

ISP for the monitor, residential for tasks. A lot of ISPs have been getting blocked lately, so if tasks are struggling (login loops, Max Solve Attempts), move tasks to residential.

</details>

<details>

<summary>Why do I get "Max Solve Attempts"?</summary>

Some ISP proxies cannot pass login. Use residential proxies in your task list.

</details>

<details>

<summary>Why is my account getting locked?</summary>

Logging in from different IPs can cause it. It is normal and fine; with IMAP set up, the bot auto-unlocks the account and keeps going.

</details>

<details>

<summary>What does "Login via Tasks" mean for Best Buy?</summary>

You do not log in through the Accounts tab; tasks log in as needed. On Best Buy specifically, sessions are never stored, so accounts will never show as "logged in." That is normal.

</details>

<details>

<summary>Should I set an account proxy?</summary>

No. Leave it empty and let the login step use the task proxy. From our tests, keeping the same IP on an account does not significantly impact performance. If you see "Proxy Error," removing account proxies is the fix.

</details>

<details>

<summary>I got a code by email but the task didn't check out?</summary>

The item likely went out of stock, or there was a pickup/shipping mismatch (the product was pickup only while you ran shipping, or vice versa).

</details>

<details>

<summary>Do I need to assign IMAP to a specific task?</summary>

No. The bot reads all incoming emails and distributes codes automatically based on the To and From fields.

</details>

<details>

<summary>Will the bot adjust quantity if the max allowed is lower than what I set?</summary>

Yes. If you request 4 and Best Buy allows 2, the bot goes for 2.

</details>

<details>

<summary>Basic Best Buy setup in one answer</summary>

Accounts: 1 task per account per group. Account proxy: not recommended, let tasks rotate. IMAP: required, for queue codes and account unlocks. Monitor: ISP proxies. Tasks: residential.

</details>


# Target

Target is the most complex site Refract supports: accounts, profiles, two kinds of cookies, and a harvester all working together against Shape, Target's anti-bot system. The guides below cover all of it. Read them in this order.

## The guides

**Building your setup** (the beginner starter config, accounts, monitor, task fields, login, cookie rules). New users start here and run the starter configuration exactly as written:

{% content-ref url="/pages/ZIjKBqUxKICZUBQEU2Ez" %}
[Target Setup Guide](/modules/target/target-setup-guide)
{% endcontent-ref %}

**Running drops** (how Shape works, recommended settings, rate limits, cancellations). Required reading before your first drop:

{% content-ref url="/pages/ZFqpmTnmbrPInDm80k4P" %}
[Target Release Guide](/modules/target/target-release-guide)
{% endcontent-ref %}

**Generating cookies**, with either or both:

{% content-ref url="/pages/ai6SmMVukEIe0GQHmz0f" %}
[Extension (Shape Generation)](/modules/target/extension-shape-generation)
{% endcontent-ref %}

{% content-ref url="/pages/EjaxLfBYQeNORImXRI1L" %}
[In-Bot (Shape Generation)](/modules/target/in-bot-shape-generation)
{% endcontent-ref %}

## The rules that never change

* **Hype Product ON** for every Shape-protected (high-demand) drop.
* **Shape on a drop has an extremely low pass rate, for everyone.** That is the nature of the site, not a broken setup.
* **There is no one-size-fits-all fix for Shape blocks.** Shape scores your whole setup together; what fixes one user's blocks does nothing for another's.
* **About 3 cookies per running task**, quality over quantity. Generating more raises your own flag risk.
* **Start at 10 tasks, then scale to what your device holds.** Mac mini, local or in a datacenter: 100-150 tasks. Local Windows: 30. A clean setup at your device's ceiling beats a bloated one past it.
* **macOS is best for Shape**, then local Windows. Macs share a common hardware fingerprint, so they scale the furthest. A Mac mini server is just a Mac mini in a datacenter and holds the same ceiling; it only differs in needing proxies. Windows servers are heavily flagged, Windows VMs most of all, because their faked hardware is obvious to Shape.
* **Accounts do not affect Shape blocks.** Shape scores your device, browser, proxies, and cookie volume.
* **Proxies depend on your size.** At the starter setup (10 tasks, 2 harvesters, local machine), run no proxies on tasks or harvesters at all: your home IP is residential and works well. Only the monitor gets proxies. Past that size, or on a server, use resis on tasks and especially on harvesters, with ISPs on the monitor. Resis use data, but they have been passing Shape much better.
* **Multi-SKU over duplicated groups.** Duplicating a group doubles the cookies you need.
* **Defaults exist for a reason**, across both the bot and the extension. Changing them is your call, but we have no better values to suggest; if we did, they would be the defaults.
* **Everything known about Shape is in these guides.** Tickets will not surface more.


# Target Setup Guide

Target is the most complex site Refract supports. On top of the usual accounts, profiles, and proxies, Target requires cookies to pass Shape (its anti-bot system), which means running a cookie harvester alongside your tasks. This guide builds the setup step by step.

{% hint style="danger" %}
**New to Target? Run the starter configuration below, exactly as written, before customizing anything.** If you do not at least make an attempt to follow this guide, we will not be able to help you.
{% endhint %}

## Your first Target setup

To reduce fingerprinting issues and avoid the common mistakes, every new user should start with exactly this. It is also the setup that has worked best for the people we have helped:

* A maximum of 10 tasks, on 10 unique Target accounts, one task per account per product.
* Your local PC, not a server or RDP. The starter setup runs with no proxies on tasks or harvesters, so it depends on having a residential home IP, which a datacenter machine does not have. Servers are not off the table later: a Mac mini server scales as well as a local Mac mini, it just needs proxies. See [When you're ready to expand](#when-youre-ready-to-expand).
* 2 cookie harvesters: one on Chrome, one on Brave. Use [in-bot harvesters](/modules/target/in-bot-shape-generation) (they have been passing Shape better; set the [Brave browser](https://brave.com/) path on the second one), or extension instances.
* No proxies on tasks or harvesters **at this size**. Your home IP is residential and works well for 10 tasks and 2 harvesters. Only the monitor gets proxies, with at least 1 proxy per monitor input when running multi-SKU. This changes once you scale: see [Proxies as you scale](#proxies-as-you-scale).
* Multi-SKU on.
* Experiment with task and monitor delays. Some users run as low as 1000, some as high as 4000; find what works for your machine.

Once this configuration is running successfully, you can experiment with different setups.

## The build order

You will do six things, in this order. Steps 1-2 are the same as every other site:

1. [Add your accounts](/general-setup/accounts) and group them. Do not log them in from the Accounts tab.
2. [Create your profiles](/general-setup/profiles), one unique profile per task.
3. [Create a Target task group](/general-setup/task-creation/task-group-creation) and set the monitor input (see [Monitor Setup](#monitor-setup) below).
4. Create your tasks (see [Task Creation](#task-creation) below).
5. Set up a cookie harvester: [in-bot](/modules/target/in-bot-shape-generation) (recommended) or the [extension](/modules/target/extension-shape-generation).
6. Start tasks and harvest login cookies, then keep ATC cookies running (see [Log in your accounts](#log-in-your-accounts) below).

## When you're ready to expand

Once the 10-task setup is running and hitting, you can scale up. How far you can go is decided by your device, not by how many accounts you own:

| Device          | Ceiling           | Why                                                                                      |
| --------------- | ----------------- | ---------------------------------------------------------------------------------------- |
| Mac mini, local | 100-150 tasks     | Macs share a common hardware fingerprint, so one Mac looks like every other Mac to Shape |
| Mac mini server | 100-150 tasks     | Identical hardware to a local Mac mini, so the same ceiling applies                      |
| Windows, local  | 30 tasks          | Windows gets flagged considerably faster than macOS                                      |
| Windows server  | Not worth running | Heavily flagged. A Windows VM's faked hardware is obvious to Shape                       |

{% hint style="info" %}
**A Mac mini server is just a Mac mini hosted in a datacenter.** Same hardware, same fingerprint, same ceiling as one sitting on your desk. The only practical difference is that it has no home IP, so a residential proxy list is not optional there. See [Proxies as you scale](#proxies-as-you-scale).
{% endhint %}

Whatever your ceiling:

* One task per account per product, running the [in-bot harvester](/modules/target/in-bot-shape-generation).
* Scale your harvester count to hold about 3 cookies per running task. At 30 tasks that is roughly 90 cookies banked, and at 100 it is around 300. Remember the trade-off: the more cookies you generate, the higher your flag risk.
* Harvesting on residential proxies has been helping pass Shape at every size above the starter setup.
* These ceilings are where the platform stops holding up, not targets to rush toward. Scale in steps and watch your hit rate rather than jumping straight to the top number.

{% hint style="warning" %}
**Do not expect 100% success, and do not overreact to blocks.** Shape on a drop has an extremely low pass rate, for everyone. That is the nature of the site, not a broken setup. When troubleshooting, look at your device, browser, and proxies, never the accounts.
{% endhint %}

## Proxies as you scale

Target proxy advice looks contradictory until you know it depends on your size. There are two regimes, and both are correct:

| Your setup                                              | Tasks and harvesters                                                             | Monitor                                   |
| ------------------------------------------------------- | -------------------------------------------------------------------------------- | ----------------------------------------- |
| Starter: up to 10 tasks and 2 harvesters, local machine | No proxies at all. Your home IP is residential and passes Shape well             | Proxies, 1 per monitor input on multi-SKU |
| Scaled: more than 10 tasks or more than 2 harvesters    | Residential proxies, on harvesters above all                                     | ISPs                                      |
| Any server, including a Mac mini server                 | Residential proxies, always. A datacenter machine has no home IP to fall back on | ISPs                                      |

The rule behind every row is the same: Shape wants to see a normal residential connection. At small scale your own home IP is the best one you have. Once you outgrow it, or you are on a machine that does not have one, residential proxies are the closest substitute, and resis have been passing Shape far better than ISPs.

{% hint style="info" %}
**Harvester proxies matter most.** Tasks present the harvester proxy to Shape for add to cart and login, so the harvester's proxy quality carries your whole setup. Harvesters and tasks do not need matching proxies.
{% endhint %}

## How Target is different

* **Two kinds of cookies:** login cookies (to log accounts in) and add-to-cart cookies (to cart Shape-protected products). Both come from a harvester: the extension, the in-bot harvester, or both at once.
* **Tasks use the harvester proxy** for add to cart and login. Whatever proxies your extension or in-bot harvester runs on are the proxies your tasks present to Shape.
* **Refract always checks out with the profile info in the bot.** You do not need to add your shipping address or card to the Target account yourself, or with another tool. On task start, Refract makes sure the profile's info is on the account and set as the default for checkout.
* **Everything known about Shape is in the release guide.** Opening a ticket will not get you more; if we knew more, it would be written there.

{% content-ref url="/pages/ZFqpmTnmbrPInDm80k4P" %}
[Target Release Guide](/modules/target/target-release-guide)
{% endcontent-ref %}

## Prerequisites

* Target accounts: one task per account per product. The same accounts can be run more than once across products or multi-SKU.
* Unique profiles, one per task.
* Proxies: ISPs on the monitor. Residential (resi) on tasks, and especially on harvesters. Yes, resis use data, but they have been passing Shape much better. On a small local setup (up to 2 harvesters), harvesting with no proxies works too; your home IP is residential.
* A local PC. Mac is best for Shape, then local Windows. Avoid Windows servers for Target if at all possible.
* The extension installed, or the in-bot harvester set up (or both):

{% content-ref url="/pages/ai6SmMVukEIe0GQHmz0f" %}
[Extension (Shape Generation)](/modules/target/extension-shape-generation)
{% endcontent-ref %}

{% content-ref url="/pages/EjaxLfBYQeNORImXRI1L" %}
[In-Bot (Shape Generation)](/modules/target/in-bot-shape-generation)
{% endcontent-ref %}

## Monitor Setup

The monitor input is the product's TCIN, the number from the product URL. A URL will not work. Use ISP proxies on the monitor.

```
https://www.target.com/p/local/A-81114595  →  monitor input: 81114595
```

**Multi-SKU is preferred on Target.** With Use Multi Input on, add one product per line, with an optional price cap:

```
81114595
94631752;120
```

{% hint style="danger" %}
**The price cap must be a whole dollar amount. Cents are not supported.** Write `120`, not `119.99`. Round up to the next whole dollar.

If you put cents in the price cap, the task never picks the product up. It looks like it is running fine, it just never activates.
{% endhint %}

You can run the same accounts more than once for Target, but multi-SKU beats duplicating task groups: every group you duplicate doubles the cookies you need, since each running task should have 3 cookies banked. In numbers: 10 tasks in 1 group need 30 cookies. Duplicate that group and you have 20 running tasks needing 60 cookies. A third group makes it 90. Multi-SKU covers the same products with the original 30, and the more cookies you generate, the higher the likelihood you get flagged and Shape blocked.

## Task Group Settings

<figure><img src="/files/MWJ2zL0Yw0Hm0QpxlPgm" alt="The Target task group settings panel" width="380"><figcaption><p>The Target group panel. Hype Product ON for every Shape-protected drop.</p></figcaption></figure>

| Setting                      | Value                            | Notes                                                                                                                                                    |
| ---------------------------- | -------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Use Multi Input              | Preferred for multiple products  | Formats above                                                                                                                                            |
| Monitor Input                | The product's TCIN               | See [Monitor Setup](#monitor-setup)                                                                                                                      |
| Monitor Proxy List           | Your ISP list                    |                                                                                                                                                          |
| Monitor Delay                | `3500` (default)                 |                                                                                                                                                          |
| Price Max                    | Leave blank                      | Max price of 1 item, before tax and shipping. Blank means no cap. Whole dollars only: round up, no cents                                                 |
| High Stock & Pre-Orders only | OFF                              | ON makes the bot only go for high-stock items (10+ in the stock count) and pre-orders. Leave off by default, including for a normal potential restock    |
| Hype Product                 | **ON for Shape-protected drops** | Required for all high-demand drops (cards, consoles, and similar). To test if a product is protected, run a task without it; if blocked, it is protected |
| Loop Checkouts               | OFF                              | Optional, at your own risk; may increase flags and cancels. With multi-SKU it loops the same product until OOS, then moves to the next                   |

## Task Creation

<figure><img src="/files/5JFZuKb7eQcojmAusQG3" alt="The Target Create Tasks window" width="420"><figcaption><p>The Target Create Tasks window.</p></figcaption></figure>

**Required fields:**

| Setting         | Value                 | Notes                                                                                                                                                                               |
| --------------- | --------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Profiles        | Your Profile Group    | One unique profile per task                                                                                                                                                         |
| Task Proxy List | Your residential list | Resis have been passing Shape much better. Leave blank for localhost (not recommended)                                                                                              |
| Accounts        | Your Account Group    | Every task needs an account                                                                                                                                                         |
| Retry Delay     | `3500` (recommended)  | Experimenting with lower delays is fine; defaults are the baseline                                                                                                                  |
| Task Qty        | `1`                   | Tasks per profile. Your total task ceiling depends on your device: about 30 on local Windows, 100-150 on a Mac mini. See [When you're ready to expand](#when-youre-ready-to-expand) |
| Item Quantity   | `1`                   | A ceiling, not an exact number: the task goes for the max it can get, up to what you set. See [How Item Quantity works](/general-setup/task-creation#how-item-quantity-works)       |

**Optional fields:**

| Setting                              | Notes                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| ------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Match account to profiles (by email) | Pairs accounts to profiles with the same email                                                                                                                                                                                                                                                                                                                                                                                                |
| In-Store Pickup                      | Required for in-store-only products                                                                                                                                                                                                                                                                                                                                                                                                           |
| Use Target Circle Balance            | Uses rewards at checkout if available                                                                                                                                                                                                                                                                                                                                                                                                         |
| Login with OTP                       | Logs in with a code sent to the account email; may pass login antibot better. Pair it with [IMAP](/misc./imap) or enter codes in the pop-up                                                                                                                                                                                                                                                                                                   |
| Add Extra Product                    | Needed for items under $35: Refract only checks out with free shipping, and Target's free shipping needs a $35+ cart (tasks show "Product Not Supported" without it). Adds a filler product (set a custom item, like a Lego set) and cancels JUST THE LEGO after checkout. Set the item yourself; left blank the bot picks a cheap one that may not clear $35. Also designed to help with Item Demand cancels; how much that helps is unknown |

## Log in your accounts

Do not log in from the Accounts tab. Target accounts log in with cookies:

{% stepper %}
{% step %}

#### Create and start your tasks

Tasks will sit on **Waiting for Cookies (Login)**. That is your cue to harvest.
{% endstep %}

{% step %}

#### Harvest login cookies

Follow the [extension guide](/modules/target/extension-shape-generation) to harvest login cookies on the Target account page. Tasks log in and move on as cookies arrive.

Optionally use **Login with OTP** (with IMAP) for the lowest-security login path.
{% endstep %}

{% step %}

#### Switch to ATC cookies

Once no tasks show Waiting for Cookies (Login), switch to harvesting add-to-cart cookies, and keep that running as long as tasks run. First-time logins and accounts needing a profile update will show **Waiting for Cookies (Product)** until ATC cookies arrive.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
**Sessions logged in via the extension last days or weeks.** Logging in from the Accounts tab is not recommended and produces much shorter sessions.
{% endhint %}

## Cookies: the rules that matter

* **There is no one-size-fits-all fix for Shape blocks.** Shape scores your whole setup (device, browser, proxies, cookie volume, and the product's security level) together. What fixes one user's blocks does nothing for another's.
* **Target: about 3 cookies per running task banked.** Not a giant pile. Generating far more raises your own flag risk.
* **Quality beats quantity.** A small batch of high-quality cookies carts; a huge stash of flagged ones does not. If you are not carting with 3 cookies per task, more bad cookies will not fix it. Improve the setup (device, browser, proxies) instead.
* **Harvest on any in-stock product.** It does not matter what product you harvest on, as long as it is in stock and available for shipping. If harvesting suddenly stops producing cookies, the product you are harvesting on went out of stock; move to a new in-stock product.
* **The in-bot harvester has been passing Shape better than the extension.** Start with in-bot if you can. You can also run the extension at the same time; test what generates best for you.

## FAQ

<details>

<summary>Why do my tasks say "Waiting for Cookies" or "Waiting for Cookies (Login)"?</summary>

You are not generating that type of cookie, or tasks are consuming cookies as fast as they arrive while getting blocked. Waiting for Cookies (Login) needs login cookies; Waiting for Cookies (Product) needs add-to-cart cookies. See the [extension guide](/modules/target/extension-shape-generation).

</details>

<details>

<summary>One task loops on Shape block while others sit on Waiting for Product. Is the account blocked?</summary>

No. Shape blocks are not account-related. That task likely needs to re-add customer information, which is Shape-protected; the others already had it. It is completing an extra step, nothing more.

</details>

<details>

<summary>Do I need login proxies?</summary>

Only if you log in from the Accounts tab, which is not recommended. Otherwise login uses the harvester proxy.

</details>

<details>

<summary>What does error 401 mean in my Target logs?</summary>

A Shape block.

</details>

<details>

<summary>What does "Product Not Supported" mean?</summary>

Hover over the status to see the reason. The message reads "Shipping not available for this product (Target $35+ restriction)".

Refract only checks out with free shipping on Target, and Target's free shipping needs a $35+ cart. So a product under $35 cannot check out on its own: cheap products like Needohs will always show this status by themselves.

The fix is **Add Extra Product**: enable it on your tasks and set a custom filler item, like a Lego set, to bring the cart over $35. The filler is cancelled right after checkout, so you only keep the product you wanted.

Set the filler item yourself rather than leaving it blank. Left blank, the bot picks a cheap item, which is the right behaviour when Add Extra Product is being used for cancel help but does not necessarily get you over $35.

</details>

<details>

<summary>What does "Cart in Use" mean?</summary>

The account's cart is in use by another task. Let the task retry on its own.

</details>

<details>

<summary>What does "review hold" mean?</summary>

Target is reviewing the order. Roughly a 50/50 chance it does not get cancelled.

</details>

<details>

<summary>Why do I get "product not found" when the product is in stock?</summary>

If a product is truly in stock and the bot or your extension browser shows product not found or unavailable, that is a proxy rate limit.

</details>

<details>

<summary>What does "Rate Limited (Order)" mean?</summary>

Target rate-limits checkouts to prevent backend spam. It is unrelated to your proxies or accounts; let the task retry. For the drop-time version of this, see the release guide's Rate Limit (High Demand) section.

</details>

<details>

<summary>What does "Max attempts reached" mean while harvesting login cookies?</summary>

You are likely Shape blocked. Rest and improve the setup rather than hammering.

</details>

<details>

<summary>Can the bot reset my Target account's password?</summary>

Not currently.

</details>

<details>

<summary>What proxies should I use on Target?</summary>

Residential on tasks, and especially on harvesters. Resis use data, but they have been passing Shape much better. Keep ISPs on the monitor.

</details>

<details>

<summary>Will the bot adjust quantity if the max allowed is lower than what I set?</summary>

Yes. If you request 4 and Target allows 2, the bot goes for 2.

</details>


# Target Release Guide

## Target Release Guide

This guide covers how to run Target releases with Refract: how Shape and cookies work, how to set up, which settings to use, and the things you cannot change no matter what. Read it fully before your first drop.

{% hint style="danger" %}
**Read the setup guide and run its starter configuration before running Target.** If you do not at least make an attempt to read it, we will not be able to help you.
{% endhint %}

{% content-ref url="/pages/ZIjKBqUxKICZUBQEU2Ez" %}
[Target Setup Guide](/modules/target/target-setup-guide)
{% endcontent-ref %}

### Scale is capped by your device, not by ambition

Target is not like Walmart, where the answer is always more tasks. Plenty of people hit without running dozens of accounts, and scaling past what your machine can carry makes you hit less, not more.

How far you can go depends on what you run on: a Mac mini, local or in a datacenter, holds 100-150 tasks, while local Windows is about 30. That is a hardware limit, not a target to rush toward. More accounts and more cookies is not the goal; a clean, balanced setup at a size your harvesters can feed is. See [When you're ready to expand](/modules/target/target-setup-guide#when-youre-ready-to-expand).

### Blocks are normal

{% hint style="info" %}
**Blocks are normal, on every site, and Shape on a drop has an extremely low pass rate for everyone.** That is just the nature of the site. Experienced botters and new botters have very different ideas of what a "normal" amount of blocks looks like.
{% endhint %}

Experienced users will tell you they can get 80% blocks on a restock and be completely fine with it, because they know they will hit eventually. Some newer users think you are supposed to see all green all the time. That is not how it works.

Unless you are getting blocked close to 100% of the time and nothing is moving at all, just have patience. When you check the stats of someone who is sure their setup is bad, the stats almost always look the same as everyone else's. The perception of what is "normal" is the thing that is off.

Let the site security come down. Let your proxies and device cool down. Have patience.

### Shape, explained

This is the most important section. Read it slowly. Everything we know about Shape lives in these guides. Opening a ticket will not get you more than what is written here, because we have nothing more.

#### What Shape and Target cookies are

Some requests to Target (add to cart and login) are protected by Shape, which is Target's antibot system. To pass that protection, the request has to present a valid cookie. Think of the cookie as a test that has to score 90% or higher to pass.

* The extension (or the in-bot harvester) generates these cookies and saves them for each task to use. The harvester never sends the actual add-to-cart or login request itself. It intercepts that request and saves the cookie for later.
* Each protected request consumes one cookie. Every add-to-cart attempt makes your cookie count go down.

#### Shape is a score, not a single setting

This is the part people miss. Shape does not pass or fail you on one thing. It scores the whole picture and rejects cookies based on several factors at once:

* Proxy trust score
* Device trust score
* Browser
* How many cookies you are generating
* The product's current security level

Each product has its own security level based on how much traffic it is getting. The more a product gets spammed, the higher its security climbs. Later in the day, after many small restocks where people have hammered a product, security will be higher for everyone.

{% hint style="warning" %}
**Because Shape is a combined score, there is no single fix and no one-size-fits-all approach.** A proxy swap alone will not save a tired device, and a fresh device will not save bad proxies. What fixed someone else's blocks may do nothing for yours. Treat your proxies, device, browser, and cookie count as one setup that has to be healthy together.
{% endhint %}

#### Why your cookies get depleted

* Since each add-to-cart attempt uses a cookie, each task uses at least 1 cookie when a product restocks.
* If an attempt gets blocked, it shows "Shape Block," then tries again and consumes another cookie.
* In practice: if you have 20 tasks and 40 cookies, a restock uses at least 20 cookies. If every task gets blocked on the first attempt, it tries again and uses another 20, leaving you at 0.

This is why generating more and more cookies backfires. The more cookies you push, the more you raise your own risk of getting flagged and Shape blocked. Aim for about 3 cookies per running task in the bank, not a giant pile.

{% hint style="info" %}
**Cookie quality beats cookie count.** You would rather have a small batch of really good cookies than a big batch of mediocre or bad ones. A high cookie count is not the goal and does not mean your setup is healthy. This applies to both the in-bot harvester and the extension, and the in-bot harvester on residential proxies generates better cookies than the extension on the same proxies.
{% endhint %}

#### How many tasks should you run?

**It depends on your device.** On local Windows, about 30 tasks is the suggested max. On a Mac mini, local or in a datacenter, recent testing puts the ceiling at 100-150. Everyone starts at 10 either way, and scales in steps.

The limit underneath both numbers is cookies. Every extra task needs about 3 more cookies behind it, and pushing your cookie generation higher is exactly what raises your flag risk. Thirty tasks at 3 cookies each is roughly 90 cookies, which is the range the browser guidance below is built around; at 100 tasks you are feeding around 300.

Run fewer tasks with healthy cookies rather than piling on tasks your harvesters cannot feed. If you want a better shot, add in-bot harvesters on residential proxies instead of adding tasks.

{% hint style="info" %}
**These numbers move.** Target's security level changes, and so does the count that makes sense. Check Discord announcements around a drop rather than treating any number here as permanent.
{% endhint %}

#### How many Shape browsers do you need?

People often ask for a browser-to-task ratio, or exactly how many browsers to run. There is no simple answer. It takes as many browsers as it takes to generate the cookies you need.

The target is the same as always: about 3 cookies per running task. Scale your browser count up or down to hit that number, and find the sweet spot for your machine. As a rough starting point, for around 90-120 cookies you will probably need about 6 browsers. How fast each browser generates depends on your machine, your proxies, and the product's current security level, so treat that as a guide, not a fixed rule.

#### How to pass Shape blocks

{% stepper %}
{% step %}

#### Use OTP and IMAP for login

On login specifically, use login with OTP and IMAP. It has lower security than other login methods. If login still is not working, treat it like the add-to-cart case below.
{% endstep %}

{% step %}

#### Use the right device

Device type matters a lot for your Shape score, and it sets how far you can scale. Best to worst for Target:

1. **Mac mini, local or in a datacenter** (best for Shape, 100-150 tasks)
2. **Local Windows** (30 tasks)
3. **Windows server** (avoid, heavily flagged)

Macs share a common hardware fingerprint, so one Mac looks much like every other Mac to Shape, and that is what lets a Mac setup scale several times further before it stands out. Windows gets flagged considerably faster as a whole, and a Windows VM is the worst case of all because its hardware is faked and Shape detects that very obviously.

A Mac mini server is not a separate category: it is a Mac mini hosted in a datacenter, with the same hardware and the same ceiling. The only difference is that it has no home IP, so it always needs residential proxies. See [When you're ready to expand](/modules/target/target-setup-guide#when-youre-ready-to-expand).
{% endstep %}

{% step %}

#### Let your setup rest instead of buying more

Do not run out and buy 300 new proxies just because you stopped hitting later in the day after a bunch of tiny restocks. More than likely your device and proxies just need a rest, and the product's security level will come down over time as the restocks slow down.
{% endstep %}
{% endstepper %}

{% hint style="warning" %}
**For Target Shape, a Mac mini is best, local or in a datacenter, then local Windows.** Do not use a Windows server for Target if you can avoid it. It is much harder on Shape than the other two, and a Windows VM is the worst of the lot because its faked hardware is easy to detect. If you are buying hardware to scale on, buy macOS: it is the difference between a 30-task ceiling and a 100-150 one.
{% endhint %}

#### The setup that has been working

For most users, especially newer users, this is the setup that has worked best for the people we have helped:

* 10 tasks, with 10 unique accounts total (one task per account)
* Running multi-SKU
* Running on a local PC
* Running 2 product cookie harvesters without proxies: 1 on Chrome and 1 on Brave
* Experimenting with lower monitor and task delays to find what works for your machine

{% hint style="danger" %}
**This exact setup runs no proxies, so it needs a local machine.** It leans on your residential home IP, which a datacenter machine does not have. On a server, run the same setup with residential proxies instead. Shape blocks should be far less this way, but they may still happen. If they are very heavy, it is likely your IP, device, or browser. Results will always vary.
{% endhint %}

{% hint style="info" %}
**Shape is a balancing act.** Too many tasks forces you to generate an excessive number of cookies, which leads to tons of blocks. Remember the factors: proxies, device, browser, and how many cookies are being generated.
{% endhint %}

#### Don't get discouraged

Shape blocks happen to everyone, and they are far more common after the first wave because everyone is spamming at once. Target sees traffic jump 100x or more right after a drop, so they crank security up immediately. On a drop, Shape's pass rate is extremely low across the board; that is the nature of the site. Seeing Shape block does not mean your setup is broken.

#### Where the step-by-step setup lives

The two guides below walk through actually setting up cookie generation. The in-bot harvester has been passing Shape better than the extension, so focus there if you can. Both remain viable and you can run both at the same time.

On proxies: residential on tasks, and especially on harvesters. Resis use data, but they have been passing Shape much better. Keep ISPs on the monitor.

{% content-ref url="<https://help.refractbot.com/modules/target/extension-shape-generation>" %}
<https://help.refractbot.com/modules/target/extension-shape-generation>
{% endcontent-ref %}

{% content-ref url="<https://help.refractbot.com/modules/target/in-bot-shape-generation>" %}
<https://help.refractbot.com/modules/target/in-bot-shape-generation>
{% endcontent-ref %}

### Multi-SKU / Multi-Input

You can run the same accounts more than once for Target.

Multi-SKU is still preferred. Keep the cookie cost in mind: for every task group you duplicate, you need double the cookies you needed before, since each running task should have 3 cookies. In numbers: 10 tasks in 1 group need 30 cookies, the same 10 accounts duplicated into a second group are 20 running tasks needing 60, and a third group makes it 90. Multi-SKU covers the same products at the original cookie cost.

How the list behaves: there is no priority order. All tasks in the group go for whichever product the monitor picks up first, stay on it until it is completely out of stock, then move to the next product that pings in stock. Full details on [Monitor Setup & Multi Input](/general-setup/task-creation/monitor-setup-and-multi-input).

{% hint style="warning" %}
**The more cookies you generate, the higher the chance you get flagged and Shape blocked.** This is the trade-off behind scaling up, and it ties straight back to Shape being a score. Generate what you need, not more.
{% endhint %}

### Recommended settings

These are the settings that have worked best. Start here.

#### Hype Product

Set this to ON / ENABLED. Hype Product must be enabled for any Target drop that requires Shape cookies, which is all the high-demand drops (cards, consoles, and similar).

#### High Stock & Pre-Orders Only

Optional. With this on, the bot only goes for high-stock items (10+ in the stock count) and pre-orders. Leave it off by default, including for a normal potential restock.

#### Loop Checkouts

Optional, and run at your own risk. It may increase flags and cancels.

Loop Checkouts is also used if you are running multi-SKU and you hit. With this on, tasks do not stop at "Success." They keep looping to that same product (as multi-SKU always does) until that product is out of stock, then move to the next in-stock product.

### Rate Limit (High Demand)

{% hint style="danger" %}
**Do not open a ticket about Rate Limit (High Demand).** There is nothing we or you can do about it. This is Target rate limiting everyone's checkouts during high-traffic drops. It is not a proxy, account, or bot issue. It is a site-wide traffic throttle.
{% endhint %}

There is still a lot of confusion around Target rate limits. That makes sense, because the current Target experience is not intuitive for normal manual users either. Their system has made hype drops frustrating across the board.

A regular "Rate Limit" message usually indicates a proxy or bot-related block. Based on our analysis, the bot-related rate limits that were happening a few weeks ago have been resolved.

"Rate Limit (High Demand)" is different. This appears to be Target limiting how many requests can reach their backend during high-traffic drops. If you test manually and inspect the requests, you will see the same behavior: during hype drops, clicking Add to Cart often does nothing, and you have to click it repeatedly. The bot runs into the same issue. The response is a 429 and usually includes one of these errors:

* `FAST_SELLING_ITEM_RATE_LIMIT_EXCEPTION`
* `ERR_A2C_TCIN_RATE_LIMITED`

You may also see this on-site as a "High-demand item in your cart" popup ("A popular item in your cart is causing a delay. We're managing high traffic right now. Please try again."). The bot just has to keep submitting the order and let it ride.

{% hint style="info" %}
**This is all the information we currently have.** We do not know what percentage of requests Target allows through during this high-demand rate limit, but based on testing it is most likely intended to reduce traffic hitting their backend. That may work for Target, but it creates a poor experience for manual users and bots alike, especially since these drops often happen at 3 AM.
{% endhint %}

{% hint style="info" %}
**"Rate Limit" and "Rate Limit (High Demand)" are not the same thing.** Plain "Rate Limit" has been heavily improved and fixed on drop. "Rate Limit (High Demand)" is different and you will still see it on any Target restock. Based on all current testing, this is a site-wide Target rate limit, not an issue with your setup or the bot. We are actively testing to see if there is anything we can do to mitigate it, but right now all signs point to this being controlled on Target's side.
{% endhint %}

### Target Profiles & Cancellations

The common cancellation states are **Item Demand**, **Fraud Deny (Consult OVT)**, and **Quantity Limit**.

**Item Demand and Fraud Deny (Consult OVT):** although the statuses differ, they can be addressed the same way. In most cases, these cancellations are associated with your Target profile, account, proxy, and/or payment method rather than a setting in Refract.

**Quantity Limit:** Target enforces a per-customer purchase limit on hype products and cancels orders beyond it. Target decides what counts as the same customer, and it links orders by more than the account alone: shipping address, payment method, and other identity signals can group your orders together. If several of your checkouts for the same product share too much information, expect the extras to get cancelled. The prevention is entirely on your end: keep checkouts per product within Target's limit per identity, and vary the identities across your setup. How far to vary them is exactly the profile territory your cook group covers.

The Refract team can review our logs for signs of a Refract-side issue, but all of these cancellations are caused by Target-side order checks that we cannot diagnose or resolve. These outcomes vary heavily by user, and there is no single Refract-side change or guaranteed fix that works for everyone.

#### What community testing shows about cancels

None of this is a Refract setting or a guarantee. It is the closest thing to a consensus from extensive community testing, and it is the same picture support would point you to:

* **Account age is the biggest factor.** Aged accounts stick orders; fresh accounts cancel far more, and there is no quick fix for that in your profiles. If fresh accounts are all you have, make them now and warm them up: cancels on a young account do not appear to hurt it long term, so an account that eats cancels today should still stick orders once it has age.
* **Use a real Gmail per account, never a catchall.** A catchall might stick an order or two, but its long-term cancel rate is terrible. Other regular providers work, just suboptimally; Gmail is the consistent recommendation.
* **Real bank cards stick far better than virtual cards, one card per account.** Physical Amex employee or business cards are the trap here: they are plastic, but they cancel like virtuals. Fewer profiles backed by true bank cards beats a big stack of virtual-backed profiles. Extra profiles on virtuals are fine as a supplement, as long as they do not dilute your bank card profiles.
* **Heavy jigging matters less than people assume.** Target's cancel filter behaves like a fraud filter, not a duplicate filter. The same name across profiles is fine, addresses need little to no jigging, and the one field worth varying per profile is the phone number. The exception is Quantity Limit above: that check is about the per-customer limit, so orders sharing an address and payment method still get grouped against it.

{% hint style="info" %}
**Start with your cook group.** Users often compare notes in Discord communities and other cook groups to learn which strategies are currently helping reduce cancellations. Aside from trial and error, these communities are the best source of up-to-date information, since effective methods are often shared privately. There is no foolproof solution we can recommend, but this is the best place to gather ideas and begin testing different approaches.
{% endhint %}

{% hint style="warning" %}
**Not in a cook group yet?** Ask around in the community for an active one to join, and start there. There are many options.
{% endhint %}

### Important notes

{% hint style="warning" %}
**Shape security spikes during drops.** That is just how it is. Millions of tasks are spamming add-to-cart, and after the first wave it will be harder to ATC.
{% endhint %}

{% hint style="info" %}
**Defaults exist for a reason.** Across both the bot and the extension, the defaults are what has worked best. You are free to change delays and extension settings to test different things. That is your call. But asking us what to change them to will not help, because we do not have suggestions. If we had better values, they would already be the defaults.
{% endhint %}

### Required version

{% hint style="danger" %}
**Make sure you are on the latest extension version** (currently 3.1.11). Older versions will not behave the same.
{% endhint %}

[Download the latest extension](https://cdn.prismaio.com/refract/extension/latest.zip)


# Extension (Shape Generation)

The Refract extension is a Chromium browser extension that harvests Shape cookies for Target. This page covers how it works, how to install it, and how to harvest both cookie types.

{% hint style="info" %}
**The in-bot harvester has been passing Shape better than the extension.** Start there if you can, and run both at the same time if you want. See [In-Bot (Shape Generation)](/modules/target/in-bot-shape-generation).
{% endhint %}

## How it actually works

Understanding this upfront prevents almost every "is it broken?" question:

* The extension repeatedly attempts add to cart (or login) on a Target page in your browser. It **never completes** those actions. It intercepts each request and saves the Shape cookie from it for your tasks to use later.
* Because the cart never completes, you will constantly see **"Something Went Wrong, Try Again!"** on the product page. That is not an error. That is the harvesting working.
* The browser will **not sign you in** while harvesting login cookies, and you will see a random email and password being typed automatically. Normal.
* The browser may **show the wrong product** while harvesting. Ignore it; it does not affect harvesting.
* Each protected request from your tasks consumes one cookie, so your harvested count goes down as tasks work. The target is about 3 cookies per running task, and by default the extension harvests exactly that: 3 per running task.

**Hard requirements:**

* A Chromium browser. Chrome, Edge, Brave, and Vivaldi all work; almost any Chromium browser does. **Opera does not** (it blocks this extension type), and **Firefox and Safari do not** (not Chromium).
* The Target tab must stay at least partially visible on your screen. The extension popup can be minimized, but the Target page cannot be hidden or closed.
* On a server, a display connection must remain the entire time. That means you cannot disconnect from your server: closing your RDP session counts as disconnecting the display, and harvesting stops. Stay connected.
* One extension instance per browser user/profile. To run more harvesters, create more users of your browser (see [Running multiple harvesters](#running-multiple-harvesters)) or use different Chromium browsers.

## Install the extension

{% hint style="info" %}
**Use a brand new Chrome profile for the extension.** Other extensions can interfere with it. Click your profile picture in the browser's top right and add a new profile. The profile does not need to be signed in to the browser itself: choose "Continue without an account" and harvest on the signed-out profile.
{% endhint %}

{% tabs %}
{% tab title="Windows" %}
{% stepper %}
{% step %}

#### Download the extension

Download the latest version: [cdn.prismaio.com/refract/extension/latest.zip](https://cdn.prismaio.com/refract/extension/latest.zip)
{% endstep %}

{% step %}

#### Extract the zip

Open your Downloads folder in File Explorer, right-click the downloaded zip, and choose **Extract All**, then **Extract**. You end up with a normal folder containing a `build` folder inside. Remember where it is.

<figure><img src="/files/WqM39w6q5iL0EJWawtan" alt="The extracted folder showing the build folder inside"><figcaption><p>After extracting, you have a folder with build inside it.</p></figcaption></figure>
{% endstep %}

{% step %}

#### Enable Developer Mode

Type `chrome://extensions` into the address bar and press Enter, then turn on the **Developer mode** toggle in the top right. Three new buttons appear, including **Load unpacked**.

<figure><img src="/files/aKhlaWZGNGy6yAp3l27m" alt="chrome://extensions with Developer mode on and Load unpacked visible"><figcaption><p>Developer mode on. Load unpacked appears in the top left.</p></figcaption></figure>
{% endstep %}

{% step %}

#### Load the extension

Click **Load unpacked**. A folder picker opens:

1. Navigate into the extracted folder.
2. **Double-click the `build` folder to go inside it.** The **Folder:** field at the bottom of the picker should now say `build`.
3. Click **Select Folder**.

You need to be inside the `build` folder when you click Select Folder. Do not click any of the files or folders inside it, and do not select the outer folder. This step is where most people go wrong.

<figure><img src="/files/dDj4jQouYbZ2Q2GtMACu" alt="The Windows folder picker inside the build folder" width="500"><figcaption><p>Inside the build folder, with the Folder field showing build. Now click Select Folder.</p></figcaption></figure>
{% endstep %}

{% step %}

#### Confirm it is installed

The Refract extension now appears in your extensions list and behind the puzzle icon in the toolbar.

<figure><img src="/files/EFVpmHkvKLvtfaec1pKn" alt="The Refract extension visible in the extensions hub"><figcaption><p>Installed. You will find it behind the puzzle icon in the toolbar.</p></figcaption></figure>
{% endstep %}
{% endstepper %}
{% endtab %}

{% tab title="Mac" %}
{% stepper %}
{% step %}

#### Download the extension

Download the latest version: [cdn.prismaio.com/refract/extension/latest.zip](https://cdn.prismaio.com/refract/extension/latest.zip)
{% endstep %}

{% step %}

#### Extract the zip

Open your Downloads folder in Finder and double-click the zip. macOS extracts it right there with Archive Utility, leaving a folder with a `build` folder inside.

If you downloaded with Safari, the zip may already be extracted for you: Safari auto-opens "safe" files by default, so look for the extracted folder instead of a zip.
{% endstep %}

{% step %}

#### Enable Developer Mode

In your Chromium browser, type `chrome://extensions` into the address bar and press Enter, then turn on the **Developer mode** toggle in the top right. Three new buttons appear, including **Load unpacked**.
{% endstep %}

{% step %}

#### Load the extension

Click **Load unpacked**. A Finder-style picker opens:

1. Navigate into the extracted folder.
2. **Double-click the `build` folder to go inside it.**
3. Click **Select**.

You need to be inside the `build` folder when you click Select. Do not pick any of the files or folders inside it, and do not select the outer folder. This step is where most people go wrong.
{% endstep %}

{% step %}

#### Confirm it is installed

The Refract extension now appears in your extensions list and behind the puzzle icon in the toolbar.
{% endstep %}
{% endstepper %}
{% endtab %}
{% endtabs %}

## Open the harvester

{% stepper %}
{% step %}

#### Go to Target

Navigate to [target.com](https://www.target.com/) in the browser with the extension installed.
{% endstep %}

{% step %}

#### Open the extension

Click the puzzle icon in the toolbar, then click the Refract extension. The harvester window opens.

<figure><img src="/files/TBTTxPZbNLlkH0IyugVm" alt="The extension connect dialog"><figcaption><p>Leave this alone. Clicking Cancel disconnects the extension and stops cookie generation.</p></figcaption></figure>
{% endstep %}

{% step %}

#### Do not cancel the connection

{% hint style="danger" %}
**DO NOT click "Cancel" on the connection dialog.** If you disconnect the extension, it cannot generate cookies.
{% endhint %}
{% endstep %}

{% step %}

#### Pick a proxy list (or none)

Running 10 or fewer tasks: **do not use a proxy list** on the extension; your home IP is residential and works well. Running more than 10 tasks: a proxy list is required, and the extension uses a new proxy on every page refresh. Use residential; resis use data but have been passing Shape much better. Remember: tasks use the harvester proxy for add to cart and login. See [Proxies as you scale](/modules/target/target-setup-guide#proxies-as-you-scale).
{% endstep %}
{% endstepper %}

## Step 1: Harvest login cookies

Target accounts log in with cookies, not from the Accounts tab.

{% stepper %}
{% step %}

#### Start your tasks

Add your accounts in Refract, create Target tasks with them, and start the tasks. They will sit on **Waiting for Cookies (Login)**. Do not use the Accounts tab to log in.
{% endstep %}

{% step %}

#### Open the sign-in panel

In the extension browser, click **My account** on Target, then click **Sign in or create account** so the sign-in form is showing.

<figure><img src="/files/big6bkk9mBfSiepGJQA2" alt="The Target sign-in panel"><figcaption><p>Get the sign-in form showing, then click Start Harvesting on the extension.</p></figcaption></figure>
{% endstep %}

{% step %}

#### Start harvesting

Click **Start Harvesting** on the extension. You will see a random email and password being entered automatically. That is normal, and you will not get signed in to the browser.

{% hint style="danger" %}
**Never manually sign in in the Chrome window.** The extension does the fake sign-in attempts itself; that is how the login cookies get harvested. Typing your real credentials in that window is not part of the process.
{% endhint %}
{% endstep %}

{% step %}

#### Watch tasks log in

Tasks move from Waiting for Cookies (Login) to logged in and **Waiting for Product**. First-time logins, or accounts whose profile info needs updating, will show **Waiting for Cookies (Product)** instead; they are logged in but need ATC cookies (Step 2) to finish.
{% endstep %}

{% step %}

#### Switch to ATC cookies

Once no tasks show Waiting for Cookies (Login), stop harvesting login cookies and move to Step 2. ATC cookies need harvesting 24/7, as long as Target tasks are running.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
**Sessions logged in via the extension last days or weeks.** Logins from the Accounts tab (not recommended) may only last hours.
{% endhint %}

## Step 2: Harvest ATC (product) cookies

{% stepper %}
{% step %}

#### Go to any in-stock product

Navigate the extension browser to **any product that is in stock and available for shipping**. It does not matter what the product is. Do not use photo products. Toys like Legos are the most stable choice.
{% endstep %}

{% step %}

#### Start harvesting

Enable harvesting (or click add to cart once). The extension starts auto-clicking add to cart. You will see **"Something Went Wrong, Try Again!"** over and over. That is the harvest working; the product is never actually carted.

<figure><img src="/files/QYn7vxYhE2rsmqWs6jNU" alt="A product page showing Something Went Wrong while the harvester runs"><figcaption><p>"Something Went Wrong, Try Again!" is the harvest working, not an error.</p></figcaption></figure>
{% endstep %}

{% step %}

#### Watch the count

The **Amount Harvested** number in the extension increases as cookies bank. It decreases as tasks consume cookies or they expire. Both directions are normal.
{% endstep %}
{% endstepper %}

{% hint style="warning" %}
**Harvesting stopped producing cookies? The product went out of stock.** It does not matter what product you harvest on, only that it is in stock and available for shipping. Move to a new in-stock product and keep going.
{% endhint %}

{% hint style="info" %}
**Harvesting slowly?** Watch the add to cart button in the Target tab. If it is grayed out or loading slowly, that is your bottleneck: harvester speed is directly impacted by how fast the add to cart button loads. A snappier page (better proxy, calmer product) harvests faster.
{% endhint %}

## Recommended settings

These are the defaults, and defaults exist for a reason:

| Setting                   | Value                                       |
| ------------------------- | ------------------------------------------- |
| Proxy List                | None (10 or fewer tasks); required above 10 |
| Harvests Per Page Load    | `1`                                         |
| Data Expiration (Minutes) | `3`                                         |
| Cookie Order              | Use Newest First                            |
| Harvesting                | On                                          |
| Harvest amount            | 3 per RUNNING task                          |

<figure><img src="/files/7CoWXao0WrdUtGTGxDc0" alt="The extension settings panel with the defaults" width="380"><figcaption><p>The defaults. They exist for a reason.</p></figcaption></figure>

## Running multiple harvesters

Only one extension instance works per browser user/profile; multiple tabs under the same profile will not. To run more harvesters, create more browser users, or spread across different Chromium browsers (Chrome, Brave, Edge), with the extension loaded and harvesting enabled in each.

**Creating a new Chrome user:**

1. Click your profile picture in the top right corner of Chrome.
2. Click **Add** (or **Add new profile**).
3. Choose **Continue without an account**, name the profile, and click **Done**.
4. A new Chrome window opens for that user. Install the extension in it the same way as before, and harvest away.

The same idea works in Brave and Edge via their profile menus.

## FAQ

<details>

<summary>Why is nothing being added to the cart in the extension Target tab?</summary>

By design. The extension is collecting cookies, not buying anything. "Something Went Wrong, Try Again!" and "Not Added to Cart" are what successful harvesting looks like. Once a product actually restocks, your tasks (not the extension) do the carting.

</details>

<details>

<summary>Why does the harvester say I'm signed out?</summary>

Normal. The harvester collects cookies; it does not hold a login session.

</details>

<details>

<summary>Do I need to sign in to Chrome or Brave itself?</summary>

No. You never need to sign in to the browser (a Google account in Chrome, a Brave account, and so on) to harvest. Profiles created with "Continue without an account" work fine.

</details>

<details>

<summary>Why is the browser showing the wrong product?</summary>

Ignore it. It does not affect harvesting.

</details>

<details>

<summary>My cookie counter isn't going up?</summary>

Three possibilities: tasks are consuming cookies as fast as they arrive, the product you are harvesting on went out of stock (switch products), or the extension is not set up properly (re-read this guide, and try a fresh Chrome profile with only the Refract extension in it).

</details>

<details>

<summary>My harvester keeps bouncing back to the login page from the product page?</summary>

Turn harvesting off, navigate to the product page, then start harvesting again.

</details>

<details>

<summary>Do the harvester proxies need to match my task proxies?</summary>

No. Harvesters and tasks can run different proxies or none at all. Keep in mind tasks present the harvester proxy to Shape for ATC and login.

</details>

<details>

<summary>What does a 407 error mean?</summary>

Proxy authentication error. Check your proxies.

</details>

<details>

<summary>I get a proxy login pop-up in the browser?</summary>

Close it and let it keep running.

</details>

<details>

<summary>Can I minimize the browser?</summary>

You can minimize the extension popup, but the Target page must stay at least partially visible on screen. Never hide or close it. On a server, keep a display connected.

</details>

<details>

<summary>Stuck on Waiting for Cookies (Login) or (Product)?</summary>

Generate the matching cookie type: login cookies for (Login), ATC cookies for (Product). If cookies exist and tasks still loop, they are being consumed and blocked; see the Shape guidance in the [release guide](/modules/target/target-release-guide).

</details>

<details>

<summary>Why do I keep seeing Shape Block?</summary>

Shape blocks are normal, for everyone, especially on later restocks when security is high. Accounts do not affect Shape blocks. Try different Chrome users, devices, or proxies, avoid Windows servers, and rest your setup. The full Shape explanation lives in the [release guide](/modules/target/target-release-guide).

</details>

<details>

<summary>How long do cookies last?</summary>

Usually 10-15 minutes, some more, some less. 10 minutes is our safe maximum expiration time, for both the extension and the in-bot harvester. Trusted proxies help older cookies keep working.

</details>


# In-Bot (Shape Generation)

The in-bot harvester generates Target Shape cookies from inside Refract, no extension needed. It covers both cookie types: login cookies and add to cart (product) cookies. It has been passing Shape better than the extension, so this is the recommended place to start. You can also run both at the same time.

{% hint style="info" %}
**New to Shape?** Read the general Target guide first. It explains what cookies are, why you need about 3 per running task, and why generating more is not better.
{% endhint %}

{% content-ref url="/pages/ZFqpmTnmbrPInDm80k4P" %}
[Target Release Guide](/modules/target/target-release-guide)
{% endcontent-ref %}

Harvesters live in the bot under **Settings > Harvesters**. The toolbar buttons, left to right: the cookie button opens Shape Harvester Settings, **+** adds a harvester, the play button starts your harvesters, the square button stops them, the pencil edits, and the red **X** deletes.

<figure><img src="/files/KHV9HF3duE7S1wuJEG2m" alt="The Harvesters tab in bot Settings with the toolbar buttons"><figcaption><p>The Harvesters tab. Toolbar, left to right: Shape settings, add, start, stop, edit, delete.</p></figcaption></figure>

## Create a harvester

{% stepper %}
{% step %}

#### Add a harvester

Click **+** on the Harvesters tab. Leave **Type** set to **Shape**, give the harvester a name, and set the **Quantity** you want.

<figure><img src="/files/VmayEWBAnzhYHsqbGqiR" alt="The Add Harvester window" width="420"><figcaption><p>Leave Type on Shape. Blank Browser Path means Chrome.</p></figcaption></figure>
{% endstep %}

{% step %}

#### Set the browser path

Leave **Browser Path** blank to use Chrome. To harvest on Brave, Edge, or any other Chromium browser instead, you must link that browser's executable file. See below for how to find it on Windows and Mac.
{% endstep %}

{% step %}

#### Pick a proxy list

Ideally select a residential (resi) proxy list. Resis have been passing Shape far better than ISPs. If you are on a local machine, you can run up to 2 harvesters with no proxies at all, generating on your home IP. Which one applies to you depends on your size: see [Proxies as you scale](/modules/target/target-setup-guide#proxies-as-you-scale).
{% endstep %}

{% step %}

#### Show Browser: does not matter

You do not need to turn on **Show Browser**, and it does not matter at all whether it is on or off. Harvesting works the same either way. Click **Add** and your harvester appears in the list.
{% endstep %}
{% endstepper %}

### Finding the browser executable

Only needed if you are not using Chrome. The Browser Path must point at the browser's actual executable file. A desktop shortcut itself will not work, but a shortcut is the easiest way to find where the real file lives.

{% tabs %}
{% tab title="Windows" %}
{% stepper %}
{% step %}

#### Find the browser's shortcut

Look on your desktop for the browser's icon. If it is not there, open the Start menu, type the browser's name, right-click it in the results, and choose **Open file location**.
{% endstep %}

{% step %}

#### Open its Properties

Right-click the shortcut and choose **Properties**. A window opens on the **Shortcut** tab.
{% endstep %}

{% step %}

#### Copy the Target path

The **Target** field contains the full path to the executable, ending in `.exe`. Select the whole thing and copy it. If the path is wrapped in quotation marks, do not include them.
{% endstep %}

{% step %}

#### Paste it into Refract

Paste the path into the **Browser Path** box in the Add Harvester window. The most common paths:

```
Brave:  C:\Program Files\BraveSoftware\Brave-Browser\Application\brave.exe
Edge:   C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe
```

You can also click the Browser Path box and browse to the `.exe` at that location directly instead of copying from Properties.
{% endstep %}
{% endstepper %}
{% endtab %}

{% tab title="Mac" %}
{% stepper %}
{% step %}

#### Open the file picker

In the Add Harvester window, click the **Browser Path** box. A file picker opens.
{% endstep %}

{% step %}

#### Go to Applications

Click **Applications** in the sidebar of the picker, or press **Cmd + Shift + A** to jump straight there.
{% endstep %}

{% step %}

#### Select the browser

Click the browser's app and confirm. It may show without the `.app` ending in the picker; that is normal, macOS hides it. The most common paths:

```
Brave:  /Applications/Brave Browser.app
Edge:   /Applications/Microsoft Edge.app
```

{% endstep %}
{% endstepper %}
{% endtab %}
{% endtabs %}

{% hint style="warning" %}
**Only Chromium browsers work.** Brave, Edge, and other Chromium-based browsers are fine. Safari and Firefox are not Chromium and will not work as a harvester browser.
{% endhint %}

## Configure the Shape settings

Click the cookie button on the toolbar to open **Shape Harvester Settings**.

<figure><img src="/files/s2FQd5y2izAvx7kQWy0V" alt="The Shape Harvester Settings window" width="450"><figcaption><p>Expiry between 300 and 600 seconds. Max Cookie Count: 3x your running tasks.</p></figcaption></figure>

* **Current Cookie Count:** how many cookies the in-bot harvesters have banked right now. This counts in-bot cookies only, not the extension's.
* **Cookie Expiry (seconds):** set between `300` and `600`. From our testing, most Shape cookies last a maximum of about 10 minutes, so there is no point keeping them longer.
* **Max Cookie Count:** set this to 3x your running tasks. 20 tasks need 60 cookies. 20 tasks duplicated across 3 groups need 180. Remember from the general guide: generating far beyond what you need raises your flag risk, so 3 per task is the target, not the floor.

Click **Save Changes** when done.

## Start and stop harvesting

* The **play** button starts your harvesters, and the **square** button stops them.
* Use the **pencil** to edit a harvester, or right-click it for the same options.
* While generating, tasks show a **Harvesting** status. Once your Max Cookie Count is reached, they switch to **Sleeping (Max Cookies Reached)**. Both are normal.
* While the in-bot harvester is generating, your current cookie count also shows next to the cookie icon in the top bar of the bot, so you can watch your bank without opening Settings.

<figure><img src="/files/BFKfTCOLt5llns5GO6PL" alt="The bot top bar showing the cookie icon with the current count" width="355"><figcaption><p>Your in-bot cookie bank, always visible in the top bar while generating.</p></figcaption></figure>

## Schedule harvesters

You can have harvesters start themselves on a schedule instead of babysitting them.

{% stepper %}
{% step %}

#### Open the scheduler

Select the harvester or harvesters you want, right-click, and click **Schedule**.

<figure><img src="/files/31YY0YQnPz0DXlHOlAK2" alt="The Schedule Harvester window with the Startup checkbox, days, and time slots" width="420"><figcaption><p>The Startup checkbox at the top is Auto start on app launch.</p></figcaption></figure>
{% endstep %}

{% step %}

#### Decide on auto start

The **Startup** section at the top has an **Auto start on app launch** checkbox. Tick it and these harvesters start generating as soon as you open the bot, no schedule or manual start needed. This is the easiest way to never forget to start your harvesters.
{% endstep %}

{% step %}

#### Choose your days

Select days of the week to repeat weekly on those days. With no days selected, the schedule runs once at the next occurrence.
{% endstep %}

{% step %}

#### Add time slots

Click **+ Add Slot** and set the start and stop times. You can add multiple slots. All times are your device's local time.

<figure><img src="/files/Watza8arcJTxJxBrILZr" alt="A schedule with a day selected and a start and stop time slot" width="450"><figcaption><p>Selected days repeat weekly. Times are always your device's local time.</p></figcaption></figure>
{% endstep %}

{% step %}

#### Save

Click **Save** to apply the schedule.
{% endstep %}
{% endstepper %}

## How many harvesters do I need?

There is no task-to-harvester ratio. It takes as many harvesters as it takes to generate the cookies you need, which depends on your machine, your proxies, and the product's current security level. Watch your Current Cookie Count against your target of 3 cookies per running task, and scale the harvester count until you hold it comfortably.

## FAQ

<details>

<summary>Extension or in-bot: which should I run?</summary>

The in-bot harvester has been passing Shape better than the extension, so start there. Both are viable, and you can run them at the same time. Test each on your setup and keep what generates best for you.

</details>

<details>

<summary>Does the in-bot harvester generate both login and ATC cookies?</summary>

Yes. The in-bot harvester covers both cookie types: login cookies (to log your accounts in) and add to cart (product) cookies (to cart Shape-protected products). You do not need the extension for either type.

</details>

<details>

<summary>Why does my harvester status say "Error"?</summary>

This usually means the browser path is wrong. Double-check it points at the browser's executable, then try again. If it persists with a correct path, open a support ticket.

</details>

<details>

<summary>My harvester says "Browser Failed"?</summary>

First, verify your Browser Path actually points at the browser's executable (see [Finding the browser executable](#finding-the-browser-executable)).

If the path is right and you are on Mac, macOS is blocking Refract from launching the browser. Open **System Settings**, search `privacy`, go to **Privacy & Security** > **Developer Tools**, and enable **Refract** in the list ("Allow the applications below to run software locally that does not meet the system's security policy"). Then start the harvester again. This fix is Mac only.

<figure><img src="/files/VwZi8ijEHO6O6M0y9qmD" alt="macOS Privacy &#x26; Security > Developer Tools with Refract enabled"><figcaption><p>Privacy &#x26; Security > Developer Tools: enable Refract, then start the harvester again.</p></figcaption></figure>

**Older macOS (Monterey):** there is no System Settings app, and the Developer Tools pane is hidden until you enable it from Terminal.

1. Fully quit Refract.
2. Open **Terminal**: press **Cmd + Space**, search `terminal`, and press Return.
3. Paste `spctl developer-mode enable-terminal` and press Return.
4. Open **System Preferences** > **Security & Privacy** > **Privacy**.
5. Click the padlock in the bottom left and enter your Mac administrator password.
6. Select **Developer Tools** in the left-hand list and tick the box beside **Refract**.
7. If Refract is not listed, launch Refract, try to start the harvester once, then check the Developer Tools list again.
8. Fully quit and reopen Refract, then restart the harvester.

If it still says "Browser Failed", paste `sudo /usr/sbin/DevToolsSecurity -enable` into Terminal and press Return. Enter your Mac password when asked (the password does not appear while typing; that is normal). Then restart the Mac and try again.

</details>

<details>

<summary>Which sites need Shape harvesters?</summary>

Only Target. Shape is Target's anti-bot system, and no other supported site uses these cookies.

</details>

<details>

<summary>Should my harvesters use proxies?</summary>

On a local machine, up to 2 harvesters run fine with no proxies on your home IP. Beyond that, or on a server, use a residential (resi) proxy list. Resis have been passing Shape far better than ISP proxies. See [Proxies as you scale](/modules/target/target-setup-guide#proxies-as-you-scale).

</details>

<details>

<summary>Do I need to be signed in to Chrome or Brave?</summary>

No. The harvester launches its own browser session, and you never need to sign in to the browser itself (a Google account in Chrome, a Brave account, and so on).

</details>


# Walmart

Refract's Walmart module runs Walmart's queue-based drops, most notably the Wednesday card drops at around 9:00 PM EST. Everything Walmart lives in three guides.

## The three guides

**Building your setup** (accounts, IMAP, profiles, proxies, task groups, task settings, scaling):

{% content-ref url="/pages/cxfqBzylNU6MtBLZoAhm" %}
[Walmart Setup Guide](/modules/walmart/walmart-setup-guide)
{% endcontent-ref %}

**Running the drop** (queue and FCFS drops: when to start tasks, saved sessions, queue behavior, and every error explained):

{% content-ref url="/pages/urE0huGXC2d2RTatOYUT" %}
[Walmart Release Guide](/modules/walmart/walmart-release-guide)
{% endcontent-ref %}

**Entering a drawing** (a separate release type, entered in Drawing mode, with no queue and no checkout):

{% content-ref url="/pages/ltF4qgDTwUjIMRnRT4qJ" %}
[Walmart Drawings](/modules/walmart/walmart-drawings)
{% endcontent-ref %}

{% hint style="info" %}
**Seeing an error right now?** Check the guides before opening a ticket. Drop-night errors like Access Denied (456) and the queue statuses are in the release guide's [Common Errors & Fixes](/modules/walmart/walmart-release-guide#common-errors-and-fixes). Errors that can happen any time, like card, address and proxy issues, are in the setup guide's [Errors](/modules/walmart/walmart-setup-guide#errors) section.
{% endhint %}

## Quick reference: new user setup order

1. Get your Walmart accounts ready. Accounts with SMS attached always check out; SMS-less accounts only work while Walmart has enforcement switched off.
2. Add accounts to Refract (Accounts tab) and create an Account Group.
3. Set up IMAP in Settings for auto-login codes.
4. Create or import profiles (Profiles tab) and create a Profile Group.
5. Create proxy lists (Proxies tab): task (residential), and optionally queue (ISP). Your task list can double as the monitor list.
6. Create a Walmart task group and configure the monitor settings.
7. Create tasks in the group with your profiles, accounts, and proxy lists.
8. On a day before the drop, not drop day, log all tasks in (Saved Session OFF), then stop them and bulk-edit Saved Session ON.
9. Start tasks early on drop day. Hours early is fine and encouraged; with no SKU they sit on Waiting for Product using no data.
10. Paste the SKU into the task group when it's known.
11. Let tasks run. Do not stop them while they are in queue.

## The rules that never change

* Multi-SKU works for Walmart queue drops, but it is not multi-queue: all tasks in the group join the first queue that picks up. Run one task group per queue you want to ride.
* One account and one unique profile per task, per product.
* Task proxies: US-based sticky residential. The same list can also run your monitor.
* OID and Skip Monitoring stay off for queue drops unless we explicitly say otherwise.
* Mode stays on Normal for queue drops and FCFS restocks. Drawing is solely for entering a Walmart drawing.
* The Walmart task limit is 2,000 per instance. The average competitive setup runs 800-1,200 tasks, with 1,000-1,500 per instance as the practical ceiling.


# Walmart Setup Guide

This is the complete guide to building a Walmart setup in Refract, from accounts to ready-to-run tasks. Follow each section in order if you are a new user. Experienced users can jump to the section they need.

{% hint style="info" %}
**Running a drop tonight?** This guide covers building the setup. For drop-day flow, queue behavior, and every error you might see, use the release guide:
{% endhint %}

{% content-ref url="/pages/urE0huGXC2d2RTatOYUT" %}
[Walmart Release Guide](/modules/walmart/walmart-release-guide)
{% endcontent-ref %}

## Prerequisites

Before you begin, make sure you have the following ready:

* Walmart accounts. Accounts with SMS attached always check out; SMS-less accounts only work while Walmart has enforcement switched off, which changes without warning (see [SMS verification at checkout](#sms-verification-at-checkout)).
* Profiles: one unique profile per task, already created in Refract (see [Profiles Setup](#profiles-setup)).
* Proxies:
  * A list of residential proxies for tasks (at least 5,000)
  * Optional: a separate ISP or residential list for the monitor (at least 10). You can just use your task list for the monitor instead.
  * Optional: a list of ISP proxies for queue proxies (at least 1 per task if used)
* IMAP configured in Refract settings for auto-login codes (see [IMAP Setup](#imap-setup)).
* Product SKU, found in cookgroups or on social media (TikTok, X, etc.).

**Recommended task count:** the average user runs 800 to 1,200 tasks now, and you realistically need that range to be competitive. It is very hard to hit on a dozen or so accounts. See [Scaling Guidelines](#scaling-guidelines) for the per-instance limits.

## The build order

You will do six things, in this order. Each has its own section below:

1. [Accounts](#accounts-setup): add your Walmart accounts and group them.
2. [IMAP](#imap-setup): so the bot can auto-submit login codes.
3. [Profiles](#profiles-setup): one unique profile per task, grouped.
4. [Proxies](#proxy-lists-setup): monitor list, task list, optional queue list.
5. [Task Group](#task-group-setup): the monitor and group-level settings.
6. [Tasks](#task-creation): create the tasks with everything wired together.

Do them in order. Every later step selects things you made in an earlier step.

## Accounts Setup

{% stepper %}
{% step %}

#### Go to the Accounts tab

Go to the Accounts tab in the left sidebar.
{% endstep %}

{% step %}

#### Create an Account Group

Create an Account Group for easy selection later: click **+ Create Group**, name your group, and click **Create Group**.
{% endstep %}

{% step %}

#### Create accounts

Click the **+ Create Account** button.

<figure><img src="/files/o3EtyszrujeCRxfmvnNj" alt="The Create Account button in the Accounts tab" width="165"><figcaption></figcaption></figure>
{% endstep %}

{% step %}

#### Select Walmart

Select Walmart as the site.
{% endstep %}

{% step %}

#### Add accounts

Use Mass Input to add accounts in `email:password` format. Leave all proxy options on the account untouched.
{% endstep %}

{% step %}

#### Optional: move existing accounts

To move existing accounts from the All accounts tab, select multiple accounts with Ctrl+Click or Shift+Click, right-click, and click add to group.
{% endstep %}
{% endstepper %}

**Important rules:**

* All new Walmart accounts need SMS verification when they are made.
* Whether SMS-less accounts can check out depends on Walmart's enforcement, which switches on and off without warning. See [SMS verification at checkout](#sms-verification-at-checkout).
* Never assign proxies directly to accounts in the Accounts tab. Proxies are configured at the task level.
* Each account should only be used once per product. Never run the same account on multiple tasks for the same SKU.

## IMAP Setup

IMAP allows Refract to automatically retrieve Walmart login verification codes sent to your email. Without it, you will need to manually enter codes every time tasks log in.

Setup lives under **Settings > IMAP Logins** and is covered step by step in the IMAP guide:

{% content-ref url="/pages/w4FUaY6NY47OY1XicIjy" %}
[IMAP](/misc./imap)
{% endcontent-ref %}

**Tips:**

* IMAP is a bot-wide setting. It applies to all task groups automatically.
* Most users forward all their Walmart account emails to a single master Gmail or iCloud inbox for simplicity.
* Outlook users: Outlook is only supported through AYCD Inbox (see the IMAP guide). If forwarding from Outlook, emails must be directly forwarded, not rule-based forwarded.
* If IMAP appears to not be working, Walmart itself can be slow to send codes or may skip sending them entirely. This is especially common on drop day, when Walmart sometimes stops sending codes altogether. Check the email inbox for the code before troubleshooting the bot: no code in the inbox means Walmart never sent it.

## Profiles Setup

Each task requires its own unique profile. A profile contains your shipping address, billing address, and payment card information.

{% stepper %}
{% step %}

#### Go to Profiles

Go to the Profiles tab in the left sidebar.
{% endstep %}

{% step %}

#### Create or import profiles

Create profiles individually or import them. For import formatting, see the [Profiles setup guide](/general-setup/profiles).
{% endstep %}

{% step %}

#### Create a Profile Group

Create a Profile Group for easy selection during task creation: select profiles with Ctrl+Click or Shift+Click and group them.
{% endstep %}
{% endstepper %}

**How profiles work with Walmart accounts:**

{% hint style="info" %}
**Refract always checks out with the profile info in the bot.** You never need to add your shipping address or card to the Walmart account yourself, or with another tool. On task start, Refract makes sure the profile's info is on the account and set as the default for checkout.
{% endhint %}

* Refract uses the profile info in the bot to check out, not whatever is saved on the Walmart account.
* If you update your profile info (new card, new address), just create new tasks with the updated profile. Refract updates the account on the next task start.

**Important rules:**

* Use a unique profile for each task. Do not reuse profiles across tasks for the same product.
* To minimize card authorization issues, try to reuse the same card on the same Walmart account when possible. See [Invalid Credit Card](#invalid-credit-card-max-card-attempts).
* We do not provide guidance on account creation, profile creation methods, or address formatting strategies. These are your responsibility, and your cook group is the place to compare notes.

## Proxy Lists Setup

You need multiple proxy lists for different purposes.

{% stepper %}
{% step %}

#### Open Proxies

Go to the Proxies tab in the left sidebar.
{% endstep %}

{% step %}

#### Create a list

Click **+** to create a new proxy list.
{% endstep %}

{% step %}

#### Add proxies

Name the list and paste your proxies, one per line.
{% endstep %}
{% endstepper %}

**Proxy lists you need:**

| List                       | Type               | Minimum count | Purpose                                                                           |
| -------------------------- | ------------------ | ------------- | --------------------------------------------------------------------------------- |
| Task Proxies               | Residential        | 5,000+        | Used by each task for login, checkout, and queue entry (if no queue proxy is set) |
| Monitor Proxies (optional) | ISP or Residential | 10+           | Monitors the product page for stock. You can just use your task list here instead |
| Queue Proxies (optional)   | ISP                | 1 per task    | Used only to enter and sit in queue, nowhere else                                 |

You do not need a separate monitor list. The same proxy list works for both tasks and the monitor, on Walmart and every other site. A dedicated monitor list only matters if you are running Skip Monitoring and spamming hard.

**Proxy details:**

* Residential proxies should be sticky/static (not rotating), and US-based only. International or mixed-location pools (Mexico, Canada, etc.) trigger blocks.
* Budget around 2-4 GB of residential data per 200 tasks per drop.
* You can reuse the same proxy list across task groups for different products, but avoid using the same list on multiple groups for the same product at the same time.
* Refract automatically removes duplicate proxies from a list.
* Using the same proxy on too many tasks causes queue loops. If using queue proxies, aim for at least 1 ISP proxy per task.
* Diversify your proxy providers. Many providers share the same IP pools, which leads to overlap and queue loops.

{% hint style="info" %}
**Changing proxies while tasks run (hot swapping):** you can assign a new proxy list without stopping anything, but the swap is not instant. Each task keeps using the proxy it is on until it hits a block or error, and only then rotates onto the new list. If you need the new list applied immediately, restart your tasks. This applies to both monitor and task proxies, and it is intended behavior.
{% endhint %}

## Task Group Setup

The task group is where you configure the monitor, product input, and all group-level settings.

{% stepper %}
{% step %}

#### Open task groups

Go to the Tasks tab in the left sidebar.
{% endstep %}

{% step %}

#### Create the group

Click **Groups +** in the top-right corner.
{% endstep %}

{% step %}

#### Name and select the site

Name your group (for example, "Walmart Pokemon") and select Walmart as the site.
{% endstep %}

{% step %}

#### Create the task group

Click **Create Task Group**.
{% endstep %}

{% step %}

#### Open settings

Double-click the task group to open its settings panel.
{% endstep %}
{% endstepper %}

**Task group settings (left panel):**

<figure><img src="/files/P4i4gbpmWYDIpXfVP921" alt="Task group settings, top half: Group Info and Monitor fields" width="380"><figcaption><p>Top of the settings panel: group info, monitor input, proxy list, and delay.</p></figcaption></figure>

<figure><img src="/files/4ymZNZ5moDGieWpIRhoD" alt="Task group settings, bottom half: Skip Monitoring, Third Party Vendors, Price Min/Max, Loop Checkouts" width="380"><figcaption><p>Bottom of the panel: toggles stay OFF and prices stay blank for queue drops.</p></figcaption></figure>

| Setting                            | Value                                             | Notes                                                                                                             |
| ---------------------------------- | ------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- |
| Use Multi Input                    | OFF                                               | Queue products will not work with multi-input groups                                                              |
| Monitor Input                      | Product SKU (e.g. `17115306492`)                  | The numeric ID from the Walmart product URL. Can be left blank and added near drop time.                          |
| Monitor Proxy List                 | Your monitor list, or simply your task proxy list | A separate monitor list is optional                                                                               |
| Monitor Delay                      | `4500` (default)                                  | Default is fine                                                                                                   |
| Offer ID                           | Leave blank                                       | Not needed for queue drops                                                                                        |
| Skip Monitoring (OfferID Required) | OFF                                               | Not needed for queue drops                                                                                        |
| Allow Third Party Vendors          | OFF                                               | Not needed for standard Walmart drops                                                                             |
| Price Min                          | Leave blank                                       | Minimum price of 1 item (before tax and shipping). Blank means no minimum                                         |
| Price Max                          | Leave blank                                       | Maximum price of 1 item (before tax and shipping). Blank means no maximum. Whole dollars only: round up, no cents |
| Loop Checkouts                     | OFF                                               | Do not enable for Walmart queue drops (see [FAQ](#faq))                                                           |

**Statistics panel:**

<figure><img src="/files/Ffmo5VXveQWaVtmLgKAi" alt="The task group statistics row" width="287"><figcaption><p>The statistics double as filters. If tasks look missing, check that a filter is off.</p></figcaption></figure>

The task group shows live statistics: Running, Carted, In Queue, Passed, Success, and Failed. These double as filters.

{% hint style="warning" %}
**Tasks look like they disappeared?** Make sure one of the statistics filters is not turned on. Tasks are almost never randomly deleted; the view is just filtered.
{% endhint %}

**Schedule (optional):** you can schedule tasks to auto-start. If using this, schedule them to start at least 20 minutes before the drop. Most users start tasks manually.

## Task Creation

Once your task group is configured, create tasks inside it.

{% stepper %}
{% step %}

#### Open Create Tasks

Click the **+** button in the task group view to open **Create Tasks**.
{% endstep %}

{% step %}

#### Configure profiles and proxies

The Profiles and Accounts pickers each have two tabs: **Profile / Profile Group** and **Account / Account Group**. Click the group tab to select the groups you made earlier instead of picking entries one by one.

<figure><img src="/files/jaK7giSxmd8VQs6FH7l8" alt="The Create Tasks window" width="400"><figcaption><p>The Create Tasks window.</p></figcaption></figure>

| Setting                              | Value                                          | Notes                                                                                                                                                                 |
| ------------------------------------ | ---------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Profiles                             | Select your Profile Group                      | Each task gets a unique profile                                                                                                                                       |
| Mode                                 | `Normal`                                       | Normal runs queue drops and FCFS restocks. Set it to `Drawing` only when entering a Walmart drawing. See [Mode: Normal and Drawing](#mode-normal-and-drawing)         |
| Task Proxy List                      | Your residential proxy list                    |                                                                                                                                                                       |
| Queue Proxy List (optional)          | Your ISP proxy list                            | Leave blank if not using queue proxies                                                                                                                                |
| Match account to profiles (by email) | ON                                             | Keeps account-profile pairing consistent                                                                                                                              |
| Accounts                             | Select your Account Group                      |                                                                                                                                                                       |
| Use Account Proxy                    | OFF                                            | Never enable this                                                                                                                                                     |
| Use Saved Session                    | OFF (during initial login)                     | Generate sessions on a day that is not drop day, then turn this ON. See [When to generate sessions](/modules/walmart/walmart-release-guide#when-to-generate-sessions) |
| Reset Invalid Password               | ON (recommended)                               | If an account gets flagged, the bot auto-resets the password and stores it                                                                                            |
| Stop If SMS Not Verified             | ON, unless running SMS-less on purpose         | Stops tasks on accounts without SMS so they do not waste proxy data. See [SMS verification at checkout](#sms-verification-at-checkout)                                |
| Membership Purchase Settings         | See [Walmart+ Membership](#walmart-membership) | Only select a tier if announced as required                                                                                                                           |
| Cancel Membership                    | OFF                                            | Cancels Walmart+ on task start. See [Walmart+ Membership](#walmart-membership)                                                                                        |
| Item Quantity                        | `1`                                            | Units the task attempts to check out. On Walmart this is not automatically a ceiling; pair it with Allow Lower Item Quantity below                                    |
| Allow Lower Item Quantity            | ON                                             | Makes Item Quantity a ceiling: the task takes the most it can get, up to your number, instead of failing. OFF means all or nothing                                    |
| Retry Delay                          | `4500`                                         | Default is fine. Has no effect on queue entry speed                                                                                                                   |
| Task Qty                             | `1`                                            | Always 1. Creates one task per profile                                                                                                                                |
| {% endstep %}                        |                                                |                                                                                                                                                                       |

{% step %}

#### Create the tasks

Click **Create Tasks**.
{% endstep %}
{% endstepper %}

**Important:**

* One task per profile per product. Never run the same profile on multiple tasks for the same SKU.
* One account per product. Never use the same Walmart account on more than one task for the same drop.
* You can reuse the same accounts and proxies across groups for different products.

## Mode: Normal and Drawing

**Mode** in Create Tasks picks which flow the task runs. Which one is correct is decided by the product, not by preference.

| Mode    | Use it for                                                                                                                                                                              |
| ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Normal  | Everything you normally run on Walmart: queue drops, first-come-first-serve (FCFS) restocks, and standard releases. This is the default, and where Mode belongs almost all of the time. |
| Drawing | Walmart drawings, and nothing else                                                                                                                                                      |

{% hint style="warning" %}
**Drawing mode is solely for Walmart drawings.** It is not a faster or safer way to run a normal drop. A regular queue or FCFS drop run in Drawing mode will not check you out, and a drawing run in Normal mode will not enter you.
{% endhint %}

Two things to know before you switch it:

* **Drawing tasks can be started at any time.** With the drawing SKU in the monitor input, they settle on the drawing's open time, shown in your local time as **Waiting Until Aug 31, 7:00pm MDT**. Waiting uses no data.
* **Switching Mode reinitializes the task.** You can change it without recreating tasks, but the bot starts the task over when the mode changes. It is not a live edit like changing delays.

Entering a drawing has its own page: [Walmart Drawings](/modules/walmart/walmart-drawings).

## Scaling Guidelines

**How many tasks do you need?** The average user runs 800 to 1,200 tasks now, and you realistically need that range to be competitive. It is very hard to hit on a dozen or so accounts.

**How many per instance?** Keep each instance in the 1,000 to 1,500 range. This recommendation comes from server providers shining a light on OS networking limitations: when every task tries to enter the queue at the same moment, the operating system itself becomes the bottleneck. The hard limit is 2,000 tasks per instance. If you want to run more, add a second instance and run it on a separate network.

| Factor             | Recommendation                                                                                      |
| ------------------ | --------------------------------------------------------------------------------------------------- |
| Tasks per drop     | 800-1,200 is the competitive range                                                                  |
| Tasks per instance | 1,000-1,500. The hard limit is 2,000                                                                |
| Multiple instances | Can be added from the dashboard, up to the cap of 2. Run them on separate networks for best results |
| Proxy diversity    | Use multiple residential providers to avoid IP pool overlap                                         |

{% content-ref url="/pages/KgeKJxFOnpEnFpfYaSKR" %}
[Instances](/online-dashboard/subscription/instances)
{% endcontent-ref %}

**Scale your infrastructure with your task count.** More tasks only helps if your network and proxies keep up:

* Network bottleneck: hundreds or thousands of tasks entering queue at once hammer your bandwidth and your OS's networking limits. This is why the per-instance recommendation exists.
* Proxy overlap: residential pools are only so large. More tasks means more IP overlap, both within your own tasks and with other users on the same provider.
* Queue loops and rate limits: Walmart flags repeated requests from the same or similar IPs. Piling tasks onto the same pool amplifies this.

A clean 1,000-task instance on good proxies and a solid connection beats 2,000 tasks choking one network.

## Walmart+ Membership

Some Walmart drops require a Walmart+ membership to purchase. This varies from drop to drop.

**How it works:**

* In the Create Tasks panel, the **Membership Purchase Settings** dropdown has three options: Full Membership (monthly), Trial, and $1 W+ (if eligible).
* Selecting a tier automatically purchases the membership when tasks start, even if the product is out of stock.
* Free trials and $1 trials do not work when Walmart+ is required. If Walmart+ is required and you are using a trial, you may see `unknown response [400]`.

**Cancel Membership:**

* With **Cancel Membership** ON, the task immediately cancels the Walmart+ membership on the account when it starts.
* Combined with a Membership Purchase Settings tier, the membership is bought and then cancelled right away, so you get Walmart+ for the drop without being left on a recurring membership.
* Leave it OFF if you want to keep Walmart+ active on your accounts.

**What to do:**

* Check Discord announcements before every drop. We will try to tell you if Walmart+ is required.
* If Walmart+ is required, select Full Membership (monthly).
* If Walmart+ is not required, leave the setting unselected.
* Do not blindly select a membership tier every week, or you will be charged for memberships you do not need.

## SMS verification at checkout

Walmart switches SMS enforcement on and off. When it is on, an account needs a phone number attached before it can proceed to checkout. When it is off, SMS-less accounts check out normally.

{% hint style="warning" %}
**This flips with no warning, and drop time is when it is most likely to flip.** Check the Discord announcements before a drop rather than assuming last week's behaviour still applies. Right now, SMS-less accounts are checking out.
{% endhint %}

What that means in practice:

* **Accounts with SMS attached always work.** They are unaffected either way, so they are the safe option to run.
* **SMS-less accounts only work while enforcement is off.** They are checking out at the moment, but there is no guarantee that holds for a given drop. If Walmart flips enforcement back on, they get blocked.
* **When enforcement is on, blocked tasks show `SMS Required`.** On older versions of Refract this status reads **Not SMS Verified**.
* **Accounts that had their number removed need re-verifying.** Walmart drops a number from an account without warning, and emails you asking to add a new phone number. Those accounts check out fine while enforcement is off, but need SMS again if it comes back.

Two task features help you handle it:

* **Stop If SMS Not Verified:** with this ON, tasks on accounts without SMS stop early instead of running into the checkout block, so they do not waste proxy data. Leave it **OFF if you are running SMS-less accounts intentionally**, or it will stop the very tasks you meant to run.

<figure><img src="/files/yMHXA8n4xaeIiKysI8DC" alt="The Stop If SMS Not Verified toggle in Create Tasks" width="420"><figcaption><p>The toggle in Create Tasks. ON stops tasks on accounts without SMS.</p></figcaption></figure>

* **Checkout URL webhooks:** if a task does get blocked, the bot shows the status and sends a checkout URL to your **Notifications** webhook, so you can finish the checkout manually and enter the SMS code yourself. Set the Notifications webhook in **Settings > General** or you will not receive these.

<figure><img src="/files/gX3dauJE61y57I4ZLJ1t" alt="A Refract Notification webhook message with the product, SKU, checkout URL, and account login" width="560"><figcaption><p>The webhook message. Open the checkout link, log in with the listed account, and finish the order manually.</p></figcaption></figure>

Set your Notifications webhook in **Settings > General** before the drop; without it, no checkout URL arrives. See [Settings](/general-setup/settings#webhooks) for how to set it up.

### Finding out which accounts need verifying

You do not need to work this out by hand. Turn **Stop If SMS Not Verified** on and run your tasks: any account without SMS stops with the status instead of pushing on to the checkout block, so the run itself tells you which accounts need verifying.

**You do not need a live product or a real checkout to do this.** Leave the monitor input blank and start the tasks with the toggle ON. There is no separate check-only mode, but running with no monitor input is the same thing in practice: the accounts get checked and the unverified ones stop, without going for a product. Run it whenever you like, well away from a drop.

This is also how to catch accounts that were verified before and need re-verifying, the ones Walmart removed a number from.

To check a specific batch, paste the list of logins into the [account search](/general-setup/accounts#find-accounts-in-the-list) and the Accounts tab filters down to just those.

### Where to get SMS verification

We have no advice here, the same way we have no [proxy provider recommendations](/introduction-to-botting/proxies#why-we-do-not-recommend-providers). Getting numbers to verify accounts with is your side of the setup, and your cook group is the place to ask.

This is not us dodging the question. SMS on Walmart is genuinely tricky, and the risks are real:

* **Every provider reuses numbers.** There is no service that sells you a number nobody else will ever be given. Numbers get recycled back into the pool and handed to someone else later.
* **Reused numbers get accounts blocked.** When the same number turns up across many Walmart accounts, Walmart flags them.
* **Reused numbers get accounts hacked.** Whoever holds that number next can run Walmart's SMS recovery on any account still attached to it and take the account, with your saved payment methods on it.

There is no method we know of that makes a number permanently yours, so treat a one-time purchase that is never reused as something nobody can promise you. Beyond using one of the main SMS providers, we have no further suggestions.

## Skip Monitoring & Offer ID

You do not need Skip Monitoring or an Offer ID for Walmart queue drops. It is strongly advised to never use them for queue drops.

**What they are for:** first-come-first-serve (FCFS) restocks. These are non-queue drops where speed is critical and you want to spam add-to-cart the instant a product goes live.

**When to use them:** only if explicitly instructed in Discord, for a rare non-queue drop or a specific FCFS restock.

**How they work (if needed):**

1. Add the PID (SKU) to the monitor input.
2. Add the OID (Offer ID) in the Offer ID field. Both PID and OID are required. Skip Monitoring will not function with only one.
3. At drop time, enable Skip Monitoring to force add-to-cart attempts.

## Errors

These are the Walmart errors that can hit at any time: during setup, on a random restock, or mid-drop. Errors that only happen on drop night, like Access Denied (456) and the queue statuses, live in the [release guide](/modules/walmart/walmart-release-guide#common-errors-and-fixes).

### Invalid Credit Card / Max Card Attempts

Both of these are an authorization block at the bank or issuer level, and there is nothing staff can do about them. The fixes below are all on your end.

**Why you may be seeing this:**

* Even if your cards work fine on other sites, Walmart may reject them if you reuse the same card across multiple profiles or tasks.
* Each task sends an "invisible" $0.00 authorization charge to your bank when adding the card.
* Too many authorization attempts in a short time cause your bank to temporarily block the card on Walmart. "Max Card Attempts Reached" means Walmart has stopped accepting further authorization attempts on the account for now.

**How authorization charges work:**

* When you add a card to an account, Walmart sends an authorization charge.
* Running many tasks at once creates multiple rapid charges.
* Most card providers treat this as suspicious and temporarily stop further authorizations. This is a fraud-prevention feature, not usually a permanent ban.
* Generating new cards from the same provider does not get around this. The blocks are enforced at the custodial (bank or issuer) level, not the individual card level.
* American Express (AMEX) is the strictest about it, so AMEX cards need the most patience when you add them.

**How to fix it:**

* If your card details are correct, you likely just need to let the card cool off.
* The block usually clears on its own after some time, depending on your bank.
* Once cleared, you can start tasks again with that card.

**Tips to avoid it:**

* **Stagger how fast you add cards.** On average, 1 to 2 cards every 5 minutes works. Spreading them out is the single best way to avoid authorization blocks.
* **If that still gets blocked, slow down further.** Widen the gap between cards and give it more time. Some banks want a lot more room than others.
* Limit to one task per card during setup to reduce authorization spam.
* Reuse the same card on the same Walmart account whenever possible.
* If a card is already saved on the account, Walmart won't resend the authorization charge.

{% hint style="info" %}
**Some accounts and profiles are stricter than the average.** The 1 to 2 cards every 5 minutes figure is what works for most people, not a guaranteed safe rate. If your bank blocks you at that pace, increase the delay until it stops. AMEX in particular can be far tighter, and a small number of AMEX accounts tolerate only one card a day.
{% endhint %}

### Payment Failure

Your payment was declined by your bank, likely flagged as suspicious. Contact your bank to whitelist Walmart, try an alternative card, or wait and retry later.

### Invalid Address Details

Walmart has rejected your shipping address. The bot is only showing you Walmart's answer, so the fix is in the address, not in the bot.

* **Test it manually first.** Open Walmart in a browser and paste the exact info from the bot's profile into each address field, exactly as the bot has it. If Walmart blocks it there too, that address will never work in the bot either.
* Use their suggested format (the bot will do this too if available) or adjust your jig if blocked.
* If you see "Invalid Address Details" in the bot, it means Walmart did not give an override option or a suggested address.
* **Identical jigs can behave differently.** Walmart may accept one variant and reject another jigged the exact same way, like one 3-letter prefix passing while another fails on the same street address. There is no known pattern; Walmart can be overly picky for no reason. Drop the variants Walmart rejects and keep running the ones it accepts.

### SMS Required

Walmart is blocking the checkout because the account has no phone number attached, which means SMS enforcement is currently on. On older versions of Refract this status reads **Not SMS Verified**.

Verify the account with SMS, or run accounts that already have a number on them. Enforcement comes and goes, so an account that checked out yesterday can be blocked today.

Two task features help: **Stop If SMS Not Verified** in Create Tasks stops these tasks early so they do not waste proxy data, and the bot sends a checkout URL to your **Notifications** webhook when a task is blocked, so you can finish manually. See [SMS verification at checkout](#sms-verification-at-checkout).

### Unknown Response \[400]

Often means Walmart+ is being required on a product but isn't on your account. See [Walmart+ Membership](#walmart-membership). Free trials and $1 trials do not work.

### Walmart+ Not Allowed

The account is not eligible for the selected Walmart+ tier, or there is an issue with the account. Try a different membership tier, or purchase W+ manually on the account through Walmart's website.

### Setting Cookies / Solving PX Captcha

The bot is generating the required PX cookies or solving a PX challenge. Both are normal, especially during login. If tasks loop between "Setting Cookies" and "Solving PX Captcha" without progressing, your proxies are likely flagged. Switch to fresh residential proxies, or toggle Saved Session OFF, restart, and retry.

### Reset Locked Walmart Account

Refract detected that the account was locked and automatically reset the password. If you have Reset Invalid Password enabled, the new password is stored in the Accounts tab automatically. No manual action needed.

### Proxy Error

Your proxy is dead, banned, out of bandwidth, or the provider is offline.

### Connection Error

Typically due to proxy or internet issues. Your bot couldn't reach Walmart.

### Request Timed Out

The task did not receive a response from Walmart, usually caused by proxy issues or Walmart server load. Reduce task count, check your proxies, or try local IP if running very few tasks.

### Drop-night errors

Access Denied (456), the queue statuses, and the rest of the drop-specific errors are covered here:

{% content-ref url="/pages/urE0huGXC2d2RTatOYUT" %}
[Walmart Release Guide](/modules/walmart/walmart-release-guide)
{% endcontent-ref %}

## FAQ

### Sessions & Login

<details>

<summary>Do I need to generate new sessions every week?</summary>

No. Saved sessions can last for weeks. Only generate a new session if your saved session stops working (tasks fail to reach "Waiting for Product" with Saved Session ON). When you do need new ones, generate them on a day that is not drop day. See [When to generate sessions](/modules/walmart/walmart-release-guide#when-to-generate-sessions).

</details>

<details>

<summary>What if my IMAP is not picking up codes?</summary>

First, check the email inbox and confirm a code actually arrived. Walmart can be slow to send codes or may not send them at all, and on drop day it sometimes stops sending codes entirely. No code in the inbox means Walmart never sent one; that is not a bot or IMAP problem. If codes are arriving but not being submitted, check that your IMAP login is correctly configured in Settings and that emails are being forwarded properly (especially for Outlook, which must be direct forwarding, not rule-based).

</details>

<details>

<summary>Do I need to log into my accounts manually in the Accounts tab?</summary>

No. Walmart accounts log in via tasks. When you start tasks, the bot handles login automatically. The Accounts tab login button shows "Login via Tasks" for Walmart accounts that have not logged in yet.

</details>

<details>

<summary>If I move Refract to a new PC, do I need to re-login all accounts?</summary>

If you export and import your Refract app data, your saved sessions transfer with it. You should not need to re-login unless the sessions have expired.

</details>

<details>

<summary>Is it normal for accounts to go through 2FA multiple times before reaching "Waiting for Product"?</summary>

It can happen. As long as the task eventually reaches "Waiting for Product," the login succeeded.

</details>

### Proxies

<details>

<summary>Should I use sticky or rotating residential proxies?</summary>

Use sticky/static/hard residential proxies for Walmart tasks.

</details>

<details>

<summary>Which proxy providers or resi types are working best?</summary>

We do not know, genuinely. The bot has no visibility into which providers people use or what kind of resis they run. To the bot and to our team, a proxy is a proxy. Which providers are performing is community knowledge that changes week to week; your cook group tracks it, we cannot.

</details>

<details>

<summary>What should my proxy session time be?</summary>

Set it as long as your provider allows. If a session rotates mid-queue anyway, that is fine and does not break anything.

</details>

<details>

<summary>Do I need a separate monitor proxy list?</summary>

No. You can use the same proxy list for your tasks and your monitor, on Walmart and every other site. A separate monitor list is only worth it if you are running Skip Monitoring and spamming hard.

</details>

<details>

<summary>Should I use ISP or residential proxies for the monitor?</summary>

Either works. ISP proxies do not consume bandwidth-metered data; residential proxies rotate more and can dodge the drop-time IP bans better, but burn data while monitoring. Whichever you run, expect monitor bans near drop time either way (see the release guide's monitor section), and remember the global monitor has you covered at drop time.

</details>

<details>

<summary>How many GB of residential data do I need?</summary>

Around 2-4 GB per 200 tasks per drop is a fair estimate. Scale it with your task count: a 1,000-task setup lands around 10-20 GB per drop.

</details>

<details>

<summary>Can I use the same proxy list for both task proxies and queue proxies?</summary>

You can, but it is not ideal. If you use queue proxies, they should ideally be ISP proxies separate from your residential task proxy list to maximize diversity.

</details>

<details>

<summary>Can I use the same monitor proxy list as my queue proxy list?</summary>

They serve different purposes. Monitor proxies check for stock; queue proxies enter the queue. You can use the same ISP list for both, but keep in mind monitor proxies need to be unbanned in order to detect stock.

</details>

<details>

<summary>What if my monitor ISPs get banned?</summary>

Rotate to fresh ISP proxies. If all your ISPs are banned, you can temporarily use residential proxies for monitoring, but this consumes more data and is slower. Near drop time, monitor bans are expected and largely covered for you; see the release guide's monitor section.

</details>

<details>

<summary>Can I change proxies while tasks are running?</summary>

Yes. You can assign a new proxy list without stopping anything. The swap is not instant: each task keeps its current proxy until it hits a block or error, then rotates onto the new list. If you need the new list applied immediately, restart your tasks. This applies to both monitor and task proxies and is intended behavior.

</details>

<details>

<summary>Do I need proxies if I'm only running a few tasks?</summary>

Users with fewer than 5 tasks can technically run on local IP, but this is a very small setup and you will likely not hit. Proxies are still recommended.

</details>

### Accounts & Profiles

<details>

<summary>Do SMS-less accounts work?</summary>

Sometimes, and it depends on whether Walmart has SMS enforcement switched on. Right now it is off and SMS-less accounts are checking out, but that flips with no warning and drop time is when it is most likely to flip. Check Discord announcements before a drop.

* Accounts with SMS attached always work, whichever way enforcement is set. That is the safe option.
* Accounts that had a phone number which was later removed (Walmart emails you asking to add a new number) need re-verifying with SMS whenever enforcement is on.
* When enforcement is on, blocked tasks show `SMS Required`, or **Not SMS Verified** on older versions of Refract.
* In Create Tasks, **Stop If SMS Not Verified** stops tasks on accounts without SMS so they do not waste proxy data. Leave it OFF if you are running SMS-less accounts on purpose. See [SMS verification at checkout](#sms-verification-at-checkout).

We have no recommendations on generating Walmart accounts or on getting them SMS verified. That is your cook group's territory.

</details>

<details>

<summary>Can I use the same accounts and proxies for multiple products?</summary>

Yes. You can reuse accounts, profiles, and proxies across different task groups for different products. Never reuse the same account for the same product in more than one task.

</details>

<details>

<summary>Can I run the same account for 2 different SKUs in the same drop?</summary>

Yes. Create separate task groups for each SKU and use the same accounts/profiles across them. Each account should only appear once per task group. Multi-SKU also works for Walmart queue drops as of July 29, 2026, but it is not multi-queue: all tasks in the group join the first queue that picks up, so separate groups are still the way to target multiple queues at once.

</details>

<details>

<summary>Does the profile email need to match the Walmart account email?</summary>

No. The profile contains your checkout info (card, address). The account is your Walmart login. They are separate.

</details>

<details>

<summary>Does Refract update my Walmart account with profile info automatically?</summary>

Yes. On task start, Refract automatically adds your profile's shipping address and card info to the Walmart account. You do not need to manually add this on Walmart's website.

</details>

<details>

<summary>Does the phone number in my profile need to match the one on my Walmart account?</summary>

No, they do not need to match.

</details>

<details>

<summary>Do I need to warm/age new Walmart accounts before drops?</summary>

It is not required. Some users believe farming activity helps reduce cancellations, but there is no guaranteed method.

</details>

<details>

<summary>Does Refract help create Walmart accounts?</summary>

No. Refract does not create accounts. Accounts with SMS attached are the safe option, since they check out whether or not Walmart is enforcing SMS. See "Do SMS-less accounts work?" above.

</details>

### Task Setup

<details>

<summary>What SKU do I use?</summary>

The product SKU is the numeric ID from the Walmart product URL (e.g. `165545420` from `walmart.com/ip/d/165545420`). Find the SKU from cookgroups, TikTok, X, or other community sources before the drop.

</details>

<details>

<summary>Do I need an Offer ID?</summary>

No. Offer IDs and Skip Monitoring are not needed for queue drops. Only use them if we specifically announce it in Discord.

</details>

<details>

<summary>Does Loop Checkouts work on Walmart?</summary>

We do not recommend enabling Loop Checkouts for Walmart. It almost always does not work on Walmart queue drops.

</details>

<details>

<summary>How do I enter a Walmart drawing?</summary>

Put the drawing's SKU in the task group's monitor input, set **Mode** to **Drawing** in Create Tasks, and start the tasks whenever you like. They settle on the drawing's open time, shown in your local time as **Waiting Until Aug 31, 7:00pm MDT**, using no data while they wait. That is all it takes. If you win, Walmart charges the default card on the account and places the order itself. That card and address come from the Refract profile on the task, which Refract sets as the account default when the task runs. See [Walmart Drawings](/modules/walmart/walmart-drawings).

</details>

<details>

<summary>What does the Mode setting do?</summary>

It picks which flow the task runs. **Normal** covers regular queue drops and FCFS restocks, and is what you want almost all of the time. **Drawing** is solely for entering a Walmart drawing. See [Mode: Normal and Drawing](#mode-normal-and-drawing).

</details>

<details>

<summary>What does "Use Account Proxy" do?</summary>

It forces the task to use whatever proxy is assigned to the account in the Accounts tab. Never enable this. You should never set proxies on accounts directly, and this toggle should always be OFF.

</details>

<details>

<summary>Can I use Multi-Input/Multi-SKU for Walmart?</summary>

Yes. Multi-Input works for Walmart queue drops as of July 29, 2026, but it is not multi-queue: all tasks in the group join the first queue that picks up. To sit in more than one queue at the same time, create a separate task group per SKU. See [Task Creation & Multi-SKU](/modules/walmart/walmart-release-guide#task-creation-and-multi-sku).

</details>

<details>

<summary>What does "Allow Lower Item Quantity" do?</summary>

It turns Item Quantity into a ceiling rather than an exact number. With it ON, the bot accepts any available quantity up to what you set, so if you ask for 5 and only 3 are available, it checks out 3 instead of failing. Walmart currently allows a max of 5 per checkout.

Every other site does this automatically. Walmart is the one place you have to turn it on yourself, so leave it ON unless you specifically want all-or-nothing. See [How Item Quantity works](/general-setup/task-creation#how-item-quantity-works).

</details>

<details>

<summary>What does Retry Delay do? Does it affect queue time?</summary>

Retry Delay controls how long the bot waits before retrying after an error. It has no effect on queue entry speed or queue time. Leave it at the default 4500.

</details>

<details>

<summary>Is "Max Price" before or after tax and shipping?</summary>

Max Price is the total of just the item, before tax and shipping.

</details>

### Walmart+ Membership

<details>

<summary>If my account already has Walmart+, do I need to select anything in task creation?</summary>

No. If Walmart+ is already active on the account, leave the Membership Purchase Settings unselected. If you accidentally select a tier on an account that already has W+, the bot detects it and skips the purchase. It will not charge you again.

</details>

<details>

<summary>What does the "$1 W+ (if eligible)" option mean?</summary>

This attempts to purchase a $1 Walmart+ promotional offer. Not all accounts are eligible, and this option does not always work for drops that require W+. If W+ is required, Full Membership (monthly) is the safest choice.

</details>

<details>

<summary>How do I know if Walmart+ is required for tonight's drop?</summary>

Check Discord announcements before every drop. We will always announce whether W+ is required.

</details>

### Cancellations

<details>

<summary>Why are my Walmart orders getting cancelled?</summary>

Order cancellations are handled by Walmart's fraud and policy review, based on your account, profile, proxy, and payment method. There is no Refract setting that controls this and no guaranteed fix. Your cook group is the best source for what is currently helping reduce cancellations.

</details>

<details>

<summary>Can Refract cancel Walmart orders for me?</summary>

No. Refract does not have a feature to cancel Walmart orders. Manage orders directly through Walmart.

</details>


# Walmart Release Guide

Walmart releases their card products on Wednesdays, at 9:00 PM EST usually. This guide covers how to set up for the drop, what to expect from the queue, and how to handle every status and error you are likely to see. It answers almost everything related to the drop, so read it before opening a ticket.

{% hint style="warning" %}
**This page is for Walmart's queue drops and FCFS restocks,** the releases you race in real time with Mode on Normal. Walmart drawings are a separate release type and none of this applies to them: see [Walmart Drawings](/modules/walmart/walmart-drawings).
{% endhint %}

{% hint style="info" %}
For building the setup itself (accounts, IMAP, profiles, proxies, task groups), see the setup guide:
{% endhint %}

{% content-ref url="/pages/cxfqBzylNU6MtBLZoAhm" %}
[Walmart Setup Guide](/modules/walmart/walmart-setup-guide)
{% endcontent-ref %}

## The drop night checklist

If you read nothing else on this page, follow this. Every step links to the section that explains it.

{% stepper %}
{% step %}

#### Days before: generate your sessions

Log your accounts in on a day that is not drop day, with **Use Saved Session OFF**, and let them fully log in. Sessions keep working across drops, so there is no reason to leave this until drop day. See [When to generate sessions](#when-to-generate-sessions).
{% endstep %}

{% step %}

#### Any time before the drop: start your tasks

Start tasks with no SKU whenever you want, even hours early. They sit on **Waiting for Product** and use no data. Earlier is better. See [When to start tasks](#when-to-start-tasks).
{% endstep %}

{% step %}

#### Hours before, not minutes: everything logged in

By drop time every task should already be logged in and sitting on **Waiting for Product**, running with **Use Saved Session ON**. One hour is the absolute floor, not the target. Logging in during the last hour causes problems. See [Use Saved Session](#use-saved-session).
{% endstep %}

{% step %}

#### When the SKU is out: paste it in

Paste the SKU into your task group(s). No OID. No Skip Monitoring. Tasks start moving on their own without a restart.
{% endstep %}

{% step %}

#### During the drop: do not stop or restart tasks

Never stop or restart tasks that are in queue. Placeholder timers like `29:59` are normal. Walmart releases in waves. Changing delays is fine at any time and never restarts tasks. See [Queue Behavior](#queue-behavior).
{% endstep %}

{% step %}

#### Seeing an error?

Find it in [Common Errors & Fixes](#common-errors-and-fixes) before opening a ticket. Almost every drop-night error is explained there.
{% endstep %}
{% endstepper %}

## When to start tasks

You can start your Walmart tasks whenever you want, even hours early, with no monitor input set. They will settle on **Waiting for Product** and sit there. No proxy data is used on this step when no SKU and OID are set.

It is never too soon to start them. Starting earlier is totally fine and encouraged, in case of site security changes or the site crashing.

{% hint style="info" %}
**"Is a bot update coming before the drop?"** We never know in advance. Walmart is always changing something on Wednesdays, so updates get built and pushed as needed. If an update is pushed and it helps or is needed, everyone will be told in announcements. Do not hold off on starting tasks because an update might come; it is always safe to start.
{% endhint %}

{% hint style="danger" %}
**All tasks should be logged in and sitting hours before the drop.** One hour is the floor, not the goal. If you try to log in within the last hour before the drop, you are very likely to have issues. Log in early, then let tasks sit.
{% endhint %}

When the SKU is out (from your cook group, the bot monitor, or social media), paste it into your task group(s) and tasks start moving toward queue. OID is NOT needed.

{% hint style="info" %}
**The fastest way to get the SKU in:** click the monitor icon in the top right of the bot to open the in-bot monitor feed, filter it to Walmart, then right-click the product and choose **Set product to group**. It goes straight into your group's monitor input. See [In-Bot Monitor & Checkout Feed](/general-setup/task-creation/monitor-setup-and-multi-input#in-bot-monitor-and-checkout-feed).
{% endhint %}

**Live task editing:**

* Starting tasks with no SKU and entering the SKU near drop time works fine and does not restart your tasks.
* The only time tasks need to restart for a SKU change is if they are already in queue. You cannot change SKUs on tasks that are already in queue.
* Changing **Mode** is the exception. The bot completely reinitializes a task when its mode changes, so treat a mode switch as a restart. See [Mode: Normal and Drawing](/modules/walmart/walmart-setup-guide#mode-normal-and-drawing).

## Rate limits in the run-up to the drop

Walmart throttles its own site as drop time approaches, and it gets heavier the closer you get. This lands on ordinary steps, most visibly when tasks check payment info, and it is why starting an hour before the drop is already cutting it fine.

{% hint style="info" %}
**This is Walmart managing traffic, not a problem with your setup.** You can confirm it in seconds: open Walmart in a browser and go to your account. If you get the same rate limit, a "Hang on" page, or an Access Denied manually, the site is throttling everyone and there is nothing bot-side to fix.
{% endhint %}

What you may see in the last hours before a drop:

* **Rate limited while checking payment info.** Tasks that were sitting fine start getting throttled on the payment check. It is Walmart shedding load, not your proxies or your cards.
* **It gets worse as the drop gets closer.** An hour out is worse than three hours out, and the last few minutes are the worst of all.
* **Site-wide Access Denied that is not a 456 block.** When Walmart is struggling badly enough, Access Denied shows up across the whole site, including for normal shoppers in a browser. That is a different thing from the [456 blocks](#access-denied-456) tasks hit at add to cart.

The fix is timing, not settings. Tasks that are already logged in and sitting on **Waiting for Product** hours before the drop have already done their payment checks and login work in the quiet part of the day. See [When to start tasks](#when-to-start-tasks) and [When to generate sessions](#when-to-generate-sessions).

## Task Creation & Multi-SKU

{% hint style="warning" %}
**Multi-SKU works for Walmart queue drops as of July 29, 2026, but it is not multi-queue.** All tasks in the group join the first queue that picks up.
{% endhint %}

* Multi-SKU works like it does on every other site: put multiple SKUs in the group's monitor input, and tasks go for whichever product the monitor picks up first.
* Once a queue picks up, every task in the group commits to that queue. You cannot change SKUs on tasks that are already in queue.
* To ride separate queues for multiple products at the same time, create separate task groups for each SKU.
* You can reuse the same accounts and proxies across groups for different products.

{% hint style="info" %}
**How many SKUs per account?** We wouldn't recommend running the same accounts on more than 2-3 SKUs max. It's your bot and your accounts, so run it how you want. This is just our recommendation not to push past that.
{% endhint %}

## Setup & Drop Strategy

{% hint style="warning" %}
**Walmart+ should not be required for most drops,** unless we say otherwise. If it does turn out to be required and you don't have it, you may see "unknown response \[400]." Note that free trials and $1 trials do not work.
{% endhint %}

You do not need to pull fresh saved sessions every week if your previous sessions are still working. There's no data showing old vs. new sessions perform differently, so redoing them weekly shouldn't be necessary.

{% stepper %}
{% step %}

### Test your saved sessions early

Run a couple of tasks with Use Saved Session ON ahead of time, on a day that is not drop day. Finding out your sessions are dead is something you want to do with days to spare, not hours.
{% endstep %}

{% step %}

### Check that they reach "Waiting for Product"

If your saved-session task reaches "Waiting for Product," you're good to go. Turn Use Saved Session ON for all tasks.
{% endstep %}

{% step %}

### Only regenerate if needed

Generate a new session only if your saved-session task fails to return to "Waiting for Product." To regenerate, run your tasks with Use Saved Session OFF and let them fully log in.
{% endstep %}
{% endstepper %}

## Use Saved Session

This feature lets the bot reuse a previously saved login session instead of logging in again. Walmart has strict security at login right before and during drops, so skipping login makes tasks run faster and more reliably.

### When to generate sessions

Generate sessions on a day that is not drop day.

{% hint style="danger" %}
**Generating sessions on drop day is a bad idea.** Logging in from scratch is the one thing Walmart guards hardest as a drop approaches, and PX climbs through the day. Accounts that would have logged in fine on Monday can loop on PX blocks on Wednesday evening, and by then there is no time left to fix it.
{% endhint %}

How to space it out:

* **Days before the drop:** run your tasks with **Use Saved Session OFF** and let every account fully log in. Sessions carry over between drops, so this is not a weekly chore if the ones you have still work.
* **Once they are logged in:** stop the tasks, bulk-edit **Use Saved Session ON**, and start them again.
* **On drop day:** you should be starting tasks that already have sessions, and watching them settle on **Waiting for Product**. Hours before the drop, not minutes.
* **If a session is dead:** regenerating one or two accounts on drop day is survivable. Regenerating your whole setup on drop day is not, which is why you test early.

{% stepper %}
{% step %}

### Confirm tasks are logged in

Check the Accounts tab to verify your tasks are logged in.
{% endstep %}

{% step %}

### Turn on Use Saved Session

Enable Use Saved Session, then start your tasks hours before the drop, not minutes (one hour is the floor, and earlier is encouraged, see [When to start tasks](#when-to-start-tasks)). This gives the bot plenty of time to refresh the session and avoid login errors.
{% endstep %}
{% endstepper %}

{% hint style="warning" %}
**Don't wait until the last minute to start tasks.** Logging in within the last hour before the drop very likely causes issues, and the early start is what lets sessions refresh cleanly and avoid really high PX before the drop.
{% endhint %}

{% hint style="info" %}
**"Setting cookies" every hour is normal.** While tasks wait, they refresh the session roughly once an hour, and you'll see a brief "setting cookies" status. This uses a small amount of proxy data, which is expected.
{% endhint %}

{% hint style="danger" %}
**Always enable Use Saved Session.** If you don't, the bot will try to log in from scratch, which may trigger PX blocks and leave you unable to log in.
{% endhint %}

{% hint style="warning" %}
If you hit PX blocks, let it retry. If it keeps looping on "setting cookies," toggle Saved Session OFF, restart tasks, and retry.
{% endhint %}

**Note on proxies:**

* If you're already logged in, the task begins using the proxy you logged in with.
* If that proxy gets blocked, the task automatically rotates to a new proxy in whichever proxy list is assigned to that task.

## Proxy hot swapping

You can change proxies while tasks are running. There is no need to stop anything to assign a new list.

However, the swap is not instant. Tasks continue using the proxy they were already on until they hit a block or error. Only then do they rotate onto the new list. It is not possible to change proxies immediately without restarting tasks, so if you need the new list applied right away, restart your tasks (but never restart tasks that are sitting in queue).

This applies to both monitor and task proxies. It is intended behavior. It has always worked this way and always will.

## Skip Monitoring & OID

{% hint style="danger" %}
**Never use Skip Monitoring for queue drops, ever.** Most Walmart Wednesday drops are queue drops, so Skip Monitoring should stay OFF. Enabling it on a queue drop will hurt you, not help.
{% endhint %}

{% hint style="info" %}
**OID (Offer ID) is optional and not needed** for queue drops. You don't have to find or enter it. Leave it blank unless we explicitly tell you otherwise in #dev-announcements.
{% endhint %}

Skip Monitoring exists only for non-queue drops, where speed is critical and you want to spam Add to Cart the moment the product goes live. It is not a queue-drop tool.

<details>

<summary>Using Skip Monitoring on a non-queue drop (advanced)</summary>

If, and only if, you're running a non-queue drop and choose to use Skip Monitoring:

* Add the PID (SKU) to the monitor section in advance of the drop.
* Add the OID (Offer ID) as well. It acts as a fallback if your monitor is blocked.
* At drop time, enable Skip Monitoring to force Add to Cart attempts using the PID and OID.

Both PID and OID are required here. Skip Monitoring will not function if only one is provided. Again, this does not apply to Walmart Wednesday queue drops.

</details>

## Monitors at drop time

The monitor delay controls how often the bot checks for the product. The default is `4500`.

Tasks in queue are locked to the SKU they queued for. You cannot live-swap to a new SKU once tasks are already in queue: a task only picks up the new SKU's queue if you restart it, which gives up its place in the current queue.

{% hint style="warning" %}
**Monitor IP bans near drop time are normal and expected.** Walmart bans tons of IPs near drop time, so a lot of your monitors will show **Access Denied** (the same block as Access Denied on tasks) and keep rotating to try to find a good proxy. Refract runs multiple monitor threads in the background for you, so most likely it is just a handful of blocked proxies showing that status while the rest monitor fine.
{% endhint %}

{% hint style="success" %}
**Even if all your monitors are struggling, you are covered.** A global monitor from Refract's servers pings all task groups at drop time, so you should pick up the drop fine either way.
{% endhint %}

## Queue Behavior

Queue behavior during Walmart drops can be unpredictable. A few important things to understand:

* **Placeholder timers:** Queue times like `29:59` or `9:59` can be placeholders or just the back of the line. It's impossible to know for sure. Just let tasks run.
* **There can be several placeholder times, and they change:** each drop tends to have a new one where huge chunks of tasks all show the same time. A wall of identical timers is the signature of a placeholder, not a sign your setup is broken.
* **Stuck in queue? Not broken:** Tasks stuck at placeholder times aren't broken. Walmart just hasn't issued a new queue time yet.
* **Waves release:** Walmart releases users in waves. Sitting in queue doesn't mean you won't get through. Do not end tasks early.
* **No monitor updates? Normal:** It's completely normal for the monitor section to look inactive while your tasks are in queue.
* **Try restarting some tasks:** Some users have forced a queue time by restarting tasks stuck at placeholder times. If you can afford to lose the task, try restarting a few.

**What specific queue statuses mean:**

* **Queue stuck \~30m:** Usually means you got in late and are effectively waiting at the back of the line.
* **Queue looping \~14m59s:** Can happen when Walmart is letting very few people through at a time. There's no known fix other than letting tasks run. It may be due to overlapping or flagged proxies or flagged accounts, but only Walmart knows for sure.
* **Negative queue times, like `Queue (ETA: -1409m)`:** your computer's clock is wrong. Resync your device time and the timers will read correctly. You can resync mid-drop without hurting your tasks.
  * **Windows:** Settings > **Time & Language** > **Date & time**, turn **Set time automatically** and **Set time zone automatically** on, then click **Sync now**.
  * **Mac:** Apple menu > **System Settings** > **General** > **Date & Time**, turn on **Set time and date automatically** and **Set time zone automatically using your current location**.
  * Full walkthroughs for both are also in the [IMAP guide's device time fix](/misc./imap).

### Stuck in queue the entire drop? The levers that help

{% hint style="warning" %}
**We cannot tell you which proxy provider or which type of resi is working best. We genuinely do not know.** The bot has no visibility into which providers people are using or what kind of resis they run. To the bot and to our team, a proxy is a proxy. Which providers are performing week to week is exactly what cook groups track.
{% endhint %}

If you keep getting stuck or looping in queue, these are the changes users report actually helping:

* **Try different proxy providers.** If one pool is oversaturated or flagged, no setting will fix it. Rotating providers is the fix, and it takes trial and error.
* **Try a server.** Users stuck in queue on home networks have reported a server helping.
* **Splitting task groups is no longer needed.** This used to be advice here: running 10 groups of 100 instead of 1 group of 1,000 meant more monitors. On the new engine version, all task groups share monitor pings instantly, so more groups no longer helps. Groups are purely for organization now; run whatever layout is easiest to manage.

**Proxy session time:** set your proxy sessions to be as long as your provider allows. And if a session rotates mid-queue anyway, that is fine. It does not break anything.

### When the queue itself crashes

Walmart's queue has been crashing at drop time. When that happens, the pattern looks like this:

1. Your task tries to enter the queue and gets a **500**. That is Walmart's queue crashing on their end.
2. The task retries and gets a **429 (rate limited)**, because you already tried.

Unfortunately this is out of everyone's control. There is no bot-side fix for Walmart's queue falling over. All anyone can do is get into queue faster, before it crashes.

## Queue Proxies

{% hint style="info" %}
**Bottom line:** Optional, not required. If you do run them, use ISP proxies only. Don't use residential (resi) proxies as your queue list, as it defeats the purpose.
{% endhint %}

**How it works:** Queue proxies are only used to enter and wait in queue, nowhere else. The switch happens as soon as you pass the queue: before add to cart, the bot moves to your task proxy and uses it for the rest of checkout. If you don't set a queue proxy list at all, your task proxy is used to enter the queue by default.

{% hint style="info" %}
Some weeks queue proxies pass better, some weeks they don't, so diversify your setup. The goal is to optimize to get into queue as fast as possible.
{% endhint %}

## Drop-night quick answers

* **In-bot notices:** Known site issues and outages (like the queue 500s) show as a notice banner at the top of your task groups, on top of Discord announcements and the dashboard Announcements tab. If a banner is up, the situation is known; you do not need to open a ticket to report it.
* **Bot updates:** No update is needed for a drop unless we explicitly say it is mandatory. If we say nothing (or say it's not needed), the update is not required.
* **Task limit:** The Walmart task limit is 2,000 per instance.
* **Instances:** The instance cap is 2 total per account. If you're at 1 or 2 instances, you cannot get a third or go higher. See [Instances](/online-dashboard/subscription/instances).
* **Multi-SKU:** Works for queue drops as of July 29, 2026, but it is not multi-queue: all tasks in the group join the first queue that picks up. Separate task groups are still the way to ride multiple queues at once. See [Task Creation & Multi-SKU](#task-creation-and-multi-sku).

## Common Errors & Fixes

Find your error below. Every error is listed in the "On this page" outline on the right, so you can jump straight to the one you're seeing. These are the drop-night ones; errors that can hit at any time are in the [setup guide](/modules/walmart/walmart-setup-guide#errors).

### Access Denied (456)

**What it means:** The task received an actual 456 response from Walmart. It is Walmart's security blocking the request (previously known as "Generating Session" loops).

**Not every Access Denied is a 456.** When Walmart's site is struggling before or during a drop, Access Denied appears site-wide, including for normal shoppers in a browser. Check the site manually: if you are denied there too, it is the site, not your setup. See [Rate limits in the run-up to the drop](#rate-limits-in-the-run-up-to-the-drop).

**The current situation:** 456 has been incredibly high on recent drops. Tasks pass queue, then hit non-stop 456 trying to cart. This is hitting everyone, across all bots, and it is not a setup or bot flow issue. The dev team has tested dozens of proxy providers, and all of them are blocked, including when carting manually through them, so expect 456 to stay heavy even after switching proxy types or providers. The working theory is that proxy pools are oversaturated: so many people across the Pokemon space are running Walmart that the providers' IPs are burned. As always, we continue to analyze every drop in case there is anything we can improve on the bot side.

**What causes it:**

* **Proxy (most common cause):**
  * The bot auto-rotates proxies after a 456 block.
  * Proxy location matters. Proxies just outside the U.S. (for example Mexico or Canada) have triggered 456 blocks, while U.S.-based proxies passed.
  * Low-trust and oversaturated proxy pools get blocked more often.
* **Accounts:** Flagged or low-trust accounts may contribute. Re-logging into your account can sometimes refresh the session; otherwise, let the account rest.

**How to fix it:**

There is no real fix right now. The only advice:

* Diversify your proxies across multiple providers, and let the task auto-rotate and retry. The bot cycles through your list until it finds a proxy that can cart.
* Use U.S.-based residential proxies with a good trust score. Avoid international or mixed-location proxy pools.
* Try re-logging into the Walmart account to refresh session data.
* If you're already through queue and running on a local machine (not a server), live-edit the stuck tasks to force the add to cart on your local IP: right-click the task, click **Edit**, remove the proxy, and save.

<details>

<summary>456 at "Proceeding to Checkout" (and the SMS question)</summary>

When the bot shows 456 at Proceeding to Checkout, it received an actual 456 response from Walmart during checkout. The exact cause of that 456 cannot be determined from the response Walmart gives alone. It can result from account or proxy issues, the ones that show up as "Something went wrong" during manual checkouts and carts.

The SMS block is separate from this and has its own status. When Walmart has SMS enforcement switched on, blocked tasks show `SMS Required` rather than a generic 456. See [SMS Required](/modules/walmart/walmart-setup-guide#sms-required) in the setup guide. A 456 does not mean SMS is the problem.

</details>

### Unknown Response \[500] on Queue

A 500 means a site error on Walmart's end, usually the queue crashing at drop time. There's nothing anyone can do if their site crashes. Let tasks keep running. See [When the queue itself crashes](#when-the-queue-itself-crashes).

### Rate Limited on Queue

Walmart's site is crashing or erroring. The task retries when the site errors out and gets rate limited (429) for retrying. This is the same situation as the 500. It's on Walmart's side, not yours. See [When the queue itself crashes](#when-the-queue-itself-crashes).

Rate limits before the drop, on steps like the payment info check, are a different situation: Walmart throttling its own traffic as drop time gets close. See [Rate limits in the run-up to the drop](#rate-limits-in-the-run-up-to-the-drop).

### Bot not submitting login codes

Before assuming the bot or IMAP is broken, open the email inbox and check whether the codes are actually arriving. Sometimes on drop day, Walmart stops sending codes entirely. If there is no code in the inbox, Walmart never sent one, and there is nothing bot-side to fix. This is one more reason to have all tasks logged in hours before the drop.

### Out of Stock, Retrying

The product is out of stock and the bot is retrying. No action needed. Let tasks continue.

### Errors that are not drop specific

These can hit at any time, not just on drop night, so they live in the setup guide:

* [Invalid Credit Card / Max Card Attempts](/modules/walmart/walmart-setup-guide#invalid-credit-card-max-card-attempts)
* [Payment Failure](/modules/walmart/walmart-setup-guide#payment-failure)
* [Invalid Address Details](/modules/walmart/walmart-setup-guide#invalid-address-details)
* [SMS Required](/modules/walmart/walmart-setup-guide#sms-required), the SMS verification block at checkout
* [Unknown Response \[400\]](/modules/walmart/walmart-setup-guide#unknown-response-400), Walmart+ required
* [Walmart+ Not Allowed](/modules/walmart/walmart-setup-guide#walmart-not-allowed)
* [Setting Cookies / Solving PX Captcha](/modules/walmart/walmart-setup-guide#setting-cookies-solving-px-captcha)
* [Reset Locked Walmart Account](/modules/walmart/walmart-setup-guide#reset-locked-walmart-account)
* [Proxy Error](/modules/walmart/walmart-setup-guide#proxy-error), [Connection Error](/modules/walmart/walmart-setup-guide#connection-error) and [Request Timed Out](/modules/walmart/walmart-setup-guide#request-timed-out)

## Order cancellations after checkout

Walmart cancelling orders after a successful checkout happens a lot, to everyone. The email gives different reasons: sometimes it blames the delivery address ("we can't deliver to the address you provided"), sometimes it says the order "was flagged by our policy review team" and to review your payment method. Do not read into the stated reason; it is the same cancel either way, and the payment hold is released. These cancels are Walmart-side order checks, not something Refract causes or can prevent, and they are outside what support can help with.

What we can tell you:

* **Cancels are dynamic, with no real rhyme or reason.** Some weeks everyone's stick rate is high; other weeks it is lower, with nothing changed on your end. Some nights cancels are very heavy for everyone.
* **Accounts flip week to week.** The same account can stick an order one week and get cancelled the next.
* **New accounts seem to stick less.** But even that varies user to user.

The play is to just keep running it. For current strategies on making orders stick, your cook group is the place.

## Troubleshooting any other error

{% hint style="info" %}
**This applies to all sites.** For any generic unknown error, task crash, or unknown response that isn't listed above, work through these steps before opening a ticket.
{% endhint %}

{% stepper %}
{% step %}

### Check your proxies

Make sure they have data and ping properly. This is the cause of 99% of "unknown errors," since different proxy providers sometimes return unique errors we don't handle.
{% endstep %}

{% step %}

### Check your profiles

Make sure no info is missing or incorrect, especially if you imported from somewhere else like AYCD. This is the cause of 99% of "unknown response" or task-crashed errors.
{% endstep %}

{% step %}

### Still failing? Open a ticket

If your profiles and proxies are good and you're still erroring, open a ticket. Unknown means unknown, so we'll have to check the logs.
{% endstep %}
{% endstepper %}


# Walmart Drawings

Walmart releases some products as a drawing instead of a live drop. You enter, Walmart picks the winners, and there is no queue to sit in and no checkout to race. This page covers the whole process.

{% hint style="warning" %}
**A drawing is a separate release type.** Nothing on this page applies to Walmart's regular queue drops or first-come-first-serve (FCFS) restocks, and nothing in the [release guide](/modules/walmart/walmart-release-guide) applies to a drawing. Drawings run in Drawing mode. Everything else runs in Normal mode.
{% endhint %}

## Entering a drawing

{% stepper %}
{% step %}

#### Add the drawing SKU

Put the SKU from the drawing into the task group's monitor input, exactly as you would for any other product.
{% endstep %}

{% step %}

#### Set Mode to Drawing

In **Create Tasks**, set **Mode** to **Drawing**.
{% endstep %}

{% step %}

#### Start tasks whenever you like

With the drawing SKU set, tasks can be started at any time. They find the drawing, settle on **Waiting Until** its open time, and sit there until it opens. Start them hours or days ahead if you want.
{% endstep %}
{% endstepper %}

{% hint style="success" %}
**That is the whole setup.** Every other setting stays exactly as it is for a normal drop, and there is no timing to hit.
{% endhint %}

## What you should see

A task that has found the drawing works through a short sequence in its logs, then settles into waiting:

1. Initializing
2. Setting Cookies
3. Checking Payment Information
4. Checking Cart
5. Checking Drawing
6. **Waiting Until Aug 31, 7:00pm MDT**

That last one is the drawing's open time, shown in your own local date and time. Two people entering the same drawing from different timezones see different text for the same moment, so compare against your clock, not someone else's screenshot.

A task sitting on **Waiting Until** has done its job for now. Leave it alone.

{% hint style="info" %}
**Waiting uses no data.** A task sitting on the drawing's open time is doing nothing but waiting, the same way **Waiting for Product** costs nothing on a queue drop. Starting hours early costs you nothing.
{% endhint %}

## Changing Mode on running tasks

You can switch Mode without recreating your tasks, but the bot completely reinitializes a task when its mode changes. Treat a mode switch as a restart, not a live edit like changing delays. If your tasks are already running in Normal and you flip them to Drawing, they start over.

## What happens after you enter

Your tasks enter the drawing for you. If you win, Walmart charges the card the entry was made with, which is the default card on the Walmart account, and places the order itself. Nothing needs to be running on your side at that point, and there is no checkout for you to complete.

**Which card and address that is comes from your Refract profile.** When the task runs, Refract sets the default shipping and payment info on the Walmart account from the profile assigned to that task. So the profile you put on a drawing task is the one that gets charged and shipped to if you win.

## What does not apply to a drawing

The drop-night routine exists for queue drops. None of it carries over here:

* No queue to enter, so nothing to wait in and no queue proxies to worry about.
* No saved-session timing to hit. The "logged in hours before the drop" rule is a queue-drop rule.
* No Offer ID and no Skip Monitoring, the same as queue drops.
* No drop-night checklist, no waves, and nothing to watch while it runs.

If you are running a normal Walmart drop, you want the release guide instead, with Mode left on Normal.

## Related guides

{% content-ref url="/pages/cxfqBzylNU6MtBLZoAhm" %}
[Walmart Setup Guide](/modules/walmart/walmart-setup-guide)
{% endcontent-ref %}

{% content-ref url="/pages/urE0huGXC2d2RTatOYUT" %}
[Walmart Release Guide](/modules/walmart/walmart-release-guide)
{% endcontent-ref %}


# IMAP

IMAP lets Refract read one-time codes from your email and submit them automatically, speeding up logins and checkouts on sites like Best Buy.

Some sites email you a one-time code during login or checkout. With an IMAP login added, Refract reads the code from your inbox and submits it automatically instead of making you race to type it in. Best Buy email codes and Target OTP login both rely on this.

IMAP logins live in the bot under **Settings > IMAP Logins**.

<figure><img src="/files/zvUrHXMKKuqnync5viXW" alt="The IMAP Logins tab in bot Settings"><figcaption><p>The IMAP Logins tab, with the toolbar in the top right.</p></figcaption></figure>

{% hint style="warning" %}
**Outlook emails are not supported.** The only way to use an Outlook email with Refract is through AYCD Inbox. See the AYCD Inbox section below.
{% endhint %}

## Add an IMAP login

{% stepper %}
{% step %}

#### Create a login

On the **IMAP Logins** tab, click the **+** (Create Login) button.

<figure><img src="/files/7ZxMow5AVV46ZFCgYLju" alt="The IMAP toolbar buttons" width="416"><figcaption><p>Left to right: AYCD, Create Login, Export Logins, Login Selected, Delete.</p></figcaption></figure>
{% endstep %}

{% step %}

#### Choose your server

Pick your email provider from the **Server** dropdown: **Gmail**, **iCloud**, **Yahoo**, or **Custom** for any other IMAP provider.

<figure><img src="/files/b9sTeZhhxqLLQXY3pn0f" alt="The Add IMAP Login window" width="450"><figcaption><p>Pick the server, then add one login or switch to Mass login input.</p></figcaption></figure>
{% endstep %}

{% step %}

#### Enter your credentials

For a single account, use **Input one login** and enter the username and password. To add many at once, switch to **Mass login input** and paste credentials one per line in `username:password` format.

The password is usually not your normal email password. Gmail, iCloud, and Yahoo all require an app password for IMAP; see the section below for how to generate one.
{% endstep %}

{% step %}

#### Create the login

Click **Create Login**. Your account appears in the list, ready to pull codes.
{% endstep %}
{% endstepper %}

## Get an app password

Follow the section for your provider, then use the generated app password as the password in Refract.

{% hint style="warning" %}
**Treat app passwords like real passwords.** Anyone with one can read your email over IMAP. If one is ever compromised, delete it with your provider and create a new IMAP login in Refract.
{% endhint %}

### Gmail

1. IMAP is enabled by default on all Gmail accounts.
2. Enable 2FA at [myaccount.google.com/signinoptions/two-step-verification/enroll-welcome](https://myaccount.google.com/signinoptions/two-step-verification/enroll-welcome). App passwords require it.
3. Go to [myaccount.google.com/apppasswords](https://myaccount.google.com/apppasswords), add a custom app name like `Refract`, and click create. Use the generated password in Refract.

{% hint style="warning" %}
**Gmail limits simultaneous IMAP connections.** Google documents the limit as 15 connections per account, but in practice it kicks in sooner. Avoid using the same IMAP login in multiple bots at the same time. If you hit the limit, the only fix is to close the other connections, wait, and then log in again.
{% endhint %}

### iCloud

1. Sign in at [account.apple.com](https://account.apple.com).
2. Open **Sign-In and Security > App-Specific Passwords**.
3. Generate a new password with a name like `Refract` and use it in Refract.

### Yahoo

1. Go to [login.yahoo.com/myaccount/security](https://login.yahoo.com/myaccount/security).
2. Scroll down to **Other ways to sign in**.
3. Click **Generate app password** and generate a new one.
4. Use the generated app password to add your Yahoo account in Refract.

### AOL

1. Go to [login.aol.com/myaccount/security](https://login.aol.com/myaccount/security/).
2. Scroll down to **Other ways to sign in**.
3. Click **Generate app password** and generate a new one.
4. Add the account in Refract using the **Custom** server option with your AOL address and the app password.

## AYCD Inbox

Refract integrates with [AYCD Inbox](https://support.aycd.io/account/guides/category/inbox), an email client built for managing large numbers of accounts. If you run your emails through Inbox, Refract can pull codes from it directly. This is also the only way to use Outlook emails with Refract.

{% hint style="success" %}
**Refract users get an AYCD partnership discount.** Claim it here: [aycd.io/account/partnership/offers](https://aycd.io/account/partnership/offers?guild=1509889256590676110)
{% endhint %}

{% hint style="danger" %}
**AYCD has to be open and running.** The Inbox API only works while the AYCD application is running with Inbox active on the same machine as Refract. Close AYCD and Refract stops receiving codes, even though the API key is still saved. Leave it open for the whole drop.
{% endhint %}

{% hint style="info" %}
**AYCD Inbox does not replace your IMAP logins.** You can have both in use at the same time. A common setup is Outlook accounts through Inbox and every other email as a regular IMAP login.
{% endhint %}

{% stepper %}
{% step %}

#### Open the AYCD configuration

On the **IMAP Logins** tab, click the **AYCD** button.

<figure><img src="/files/19y35k4WJNg1OPKXhA1X" alt="The Configure AYCD Inbox window" width="420"><figcaption><p>Paste your Inbox API key. Template ID usually stays Default.</p></figcaption></figure>
{% endstep %}

{% step %}

#### Paste your API key

Enter your Inbox API key. It starts with `Inbox-`.
{% endstep %}

{% step %}

#### Set the Template ID

Usually leave this as **Default**. It only matters if you use forwarding or catchall setups in Inbox.
{% endstep %}

{% step %}

#### Save

Click **Save**. Refract now pulls codes through AYCD Inbox.
{% endstep %}
{% endstepper %}

Setting up Inbox itself (adding your accounts, OAuth2 logins, forwarding) is covered by AYCD's own guides: [support.aycd.io/account/guides/category/inbox](https://support.aycd.io/account/guides/category/inbox).

## Manage your logins

* **Right-click a login** to **Edit**, **Login**, or **Delete** it.
* **Login Selected** (the lock button) logs the selected accounts into their mail servers.
* **Export Logins** exports your saved logins.
* The red **X** deletes the selected logins.

## Connection status and errors

The **Status** column tells you whether each login is working. A working login shows **Connected** in green. That is what you want to see before a drop.

<figure><img src="/files/O9P6HmWD4YTLznhRzXzr" alt="IMAP logins showing green Connected status"><figcaption><p>Green Connected means the login is working.</p></figcaption></figure>

If a login has a problem, the status shows a red error in the form `Error: <error code>`. The most common one:

* **Error: Invalid credentials (Failure):** the email or password is wrong. Remember the password usually needs to be an app password, not your normal email password. Edit the login (right-click > **Edit**) and fix the credentials.

<figure><img src="/files/3GvtD6NdBFG98XlX5epw" alt="An IMAP login showing Error: Invalid credentials (Failure)"><figcaption><p>Invalid credentials: the email or password is wrong. Usually it needs an app password.</p></figcaption></figure>

If a previously working login starts erroring, check whether that same email is connected somewhere else. Providers limit simultaneous IMAP connections, so the same login running in several bots at once will get rejected. Close the other connections, wait, then log in again.

## FAQ

<details>

<summary>Is there an AYCD discount for Refract users?</summary>

Yes. Claim the partnership offer here: [aycd.io/account/partnership/offers](https://aycd.io/account/partnership/offers?guild=1509889256590676110)

</details>

<details>

<summary>Does AYCD need to be open for Inbox to work?</summary>

Yes. AYCD has to be running with Inbox active on the same machine as Refract for the whole time you need codes. The Inbox API pulls codes through the running AYCD application, so closing it stops codes arriving even though your API key is still saved in Refract.

</details>

<details>

<summary>Can I use both IMAP logins and AYCD Inbox at the same time?</summary>

Yes. Both can be in use at the same time; connecting AYCD Inbox does not disable your IMAP logins. A common setup is Outlook accounts through Inbox and every other email as a regular IMAP login.

</details>

<details>

<summary>Why is my IMAP not submitting the codes?</summary>

* The code may never have been sent in the first place. Sites like Best Buy are notorious for making tasks wait for a code that never comes.
* If the code was sent, make sure it lands in the **Inbox** folder of your email. If your mail rules sort it into another folder, Refract may not be able to find it.
* Check your device time (below). If it is out of sync, IMAP will not work.
* If you pull codes through AYCD Inbox, check that AYCD is actually open and running. Codes stop arriving the moment it is closed.

</details>

<details>

<summary>Fix your device time (IMAP will not work if it is wrong)</summary>

Your device time must be in sync with your local time.

On Windows:

1. Press **Win + I** to open Settings.
2. Go to **Time & Language > Date & time**.
3. Toggle **Set time automatically** and **Set time zone automatically** ON.
4. Click **Sync now** under Additional settings. If there is no Sync now button, turn both toggles off and back on to force a sync.
5. If the time zone is wrong, turn off **Set time zone automatically** and pick the correct zone from the dropdown.

On Mac:

1. Open the Apple menu and choose **System Settings**.
2. Go to **General > Date & Time**.
3. Toggle **Set time and date automatically** ON.
4. Click **Time Zone** and make sure **Set time zone automatically** is enabled.
5. If changes do not apply, restart your Mac.

</details>


