Competitor price monitor · Recipe 2.1

Know the moment someone undercuts your price.

Whether your published price is genuinely the lowest. For each product you supply with an offer price and a Shopee URL, this reads the live listing and returns every case where the Shopee price is at or below yours.

The prompt

Give it to Claude, ChatGPT or Cursor along with your key. It reads the docs, follows the recipe, and asks you before spending anything.

Recipe 2.1
Read https://data.magpieiq.com/llms.txt and the docs at https://data.magpieiq.com/docs.
Then fetch https://data.magpieiq.com/skill/SKILL.md and follow recipe 2.1.
My Magpie API key is: <paste your key>

Rules: submit only the URLs or items I give you; poll with backoff rather than tight-looping; write the raw payload to disk before analysing it, because re-running a job costs credits again; report anything that failed rather than quietly returning a shorter table; ask me before spending any credits.

What I want: here are twelve of our products with our offer price and their Shopee URLs. Tell me every one where someone on Shopee is at or below our price, with both prices and the gap.

What it tracks

01

Current listing price for each SKU you supply, read from the live page

02

The gap between your offer price and the Shopee price, per product

03

is_lowest_price_at_shopee on each model (variant) — the item-level field comes back null

04

Which submitted products returned data and which failed, so a silent gap is visible

How it works

  1. 1
    Extract shop_id and item_id from each Shopee product URL.
  2. 2
    Submit them to get_pc, then poll until the job returns.
  3. 3
    Read the current price and divide by 100000 — Shopee returns it scaled.
  4. 4
    At scale, use get_pc_bulk with a CSV, and get_pc_bulk/schedules with a cron to run it nightly.

What a real response looks like

Real get_pc response · one Shopee listing · 2 of its models shown

GET /v1/shopee/get_pc/retrieve/{task_id} captured 2026-06
{
  "data": {
    "item": {
      "item_id": 40869177342,
      "shop_id": 34907167,
      "title": "Apple iPhone 15 - Garansi Resmi",
      "currency": "IDR",
      "price": 1327000000000,
      "price_min": 1327000000000,
      "price_max": 1327000000000,
      "price_before_discount": 1327000000000,
      "is_lowest_price_at_shopee": null,
      "models": [
        {
          "model_id": 238282002834,
          "name": "Blue,128GB",
          "price": 1327000000000,
          "is_lowest_price_at_shopee": false
        },
        {
          "model_id": 238282002832,
          "name": "Pink,128GB",
          "price": 1327000000000,
          "is_lowest_price_at_shopee": false
        }
      ]
    }
  }
}

Tips from our own runs

Shopee sends prices multiplied by 100000, so divide first. We've seen 1327000000000 come back for a phone that costs 13.27 million rupiah.

Look for is_lowest_price_at_shopee on each model, not on the item. The item-level field comes back null, and that caught us out the first time.

Stick with get_pc for scheduled checks. It runs at any hour, while the search endpoints wait for approval.

Keep an eye on which URLs failed. A short results table might just mean a few requests didn't come back.

When not to use this

Get a key, then paste the prompt.

New accounts start with free trial credits. You generate your own key from the dashboard.