Looking for the overview — what this API returns, what it costs, and a call you can run without a key? See the Allegro API page →
E-commerce & Marketplaces

Allegro API & Scraper

The Allegro API returns listings from Poland's largest online marketplace as clean JSON.

6 actionsLive JSON1,000 free credits$0.67–$1.50 / 1,000 creditsMCP-ready
Get a free keyOpen in playground

🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.

The primary search endpoint returns offers with id, title, URL, price, delivery text and seller details (login, super-seller flag, positive-feedback percent), and you can browse a category, pull an offer, a seller's offers and suggestions. It is built for price intelligence, marketplace tools and Polish e-commerce analytics that need Allegro data without a scraper. One ReefAPI key, one shared credit pool, the standard envelope.

Reference

What is in an Allegro offer row, and which rows are not offers

Allegro identifies the same listing two ways and mixes non-offer tiles into the same grid, which is where most integrations go wrong. These fields were measured on a live search for "iphone 15" on 2026-08-26 - 68 rows against a meta.total of 192,928. Prices are always PLN objects, never bare numbers.

FieldWhat it holdsMeasured example
idthe numeric offer id - the digits in allegro.pl/oferta/<id>"18678737081"
product_ida UUID identifying the product, not the offer"2c471a7b-e083-42cc-b811-faffef64ef77"
type"product" on a real row, "banner" on a promo tile67 product rows and 1 banner in one page
contextSPONSORED, PROMOTED or REGULAR (null on banner rows)12 / 34 / 21 in one page
price, price_with_delivery, lowest_shippingeach an {amount, currency:"PLN"} object2629.0 / 2639.49 / 10.49
delivery_textPolish display string, comma as the decimal mark"2639,49 zł z dostawą"
seller.typethe seller class Allegro printsFirma, Oficjalny sklep, Prywatny sprzedawca
seller.positive_feedback_percentfloat from 0 to 100, beside a super_seller boolean97.4, 98.2
popularitya Polish sentence, not a number"326 osób kupiło ostatnio"
urlthe offer link, except on sponsored rowssponsored rows return an allegro.pl/events/clicks redirect

condition is primarily a filter (new = Nowy, used = Używany). It is only PARTLY readable back: measured 2026-08-27, 8 of 63 rows carried a Stan attribute (Używany or Powystawowy) inside the attribute block and the other 55 did not, because the seller never filled it in. So filter for condition rather than parsing for it - but do not assume the row never tells you. A value the filter does not recognise is swallowed silently: an invalid condition returns ok:true and the unfiltered result count.

Live example

Real request and response JSON

Captured from the indexed primary action, search, on .

Captured request
{
  "method": "POST",
  "url": "https://api.reefapi.com/allegro/v1/search",
  "headers": {
    "x-api-key": "$REEF_KEY",
    "content-type": "application/json"
  },
  "body": {
    "query": "iphone 15"
  }
}
Captured response
{
  "ok": true,
  "meta": {
    "api": "allegro",
    "endpoint": "search",
    "mode": "live",
    "latency_ms": 6727.7,
    "record_count": 69,
    "bytes": 0,
    "cache_hit": false,
    "completeness_pct": 100,
    "stop_reason": "limit_reached",
    "total": 197954,
    "source": "listing",
    "partial": false,
    "charged_credits": 3,
    "version": "0.1.0"
  },
  "data": {
    "query": "iphone 15",
    "offers": [
      {
        "id": "18807684878",
        "product_id": "f9f55be0-6b2f-470b-917f-93d2ae2372cc",
        "title": "Szkło hartowane z Aplikatorem Polski Banan do Apple iPhone 15, 2 szt.",
        "url": "https://allegro.pl/events/clicks?emission_unit_id=4d9a5ebc-a924-4d3e-b6e8-757ad8d99f2c&emission_id=11172e38-f578-40bf-810a-8a5116088b16&type=OFFER&ts=1790199352463&redirect=https%3A%2F%2Fallegro.pl%2Foferta%2F18807684878%3Fbi_s%3Dads%26bi_m%3Dproductlisting%253Adesktop%253Aquery%26bi_c%3DOTBmMzAwYTItNWJmMy00YjJmLWIxNDQtZTg0MzRmNmY2ZWQ0AA%26bi_t%3Dape&placement=productlisting:desktop:query&sig=c66712da4292a12d961c94a6f5397d8f",
        "type": "product",
        "context": "SPONSORED",
        "is_sponsored": true,
        "promoted": false,
        "price": {
          "amount": 62.9,
          "currency": "PLN"
        },
        "price_with_delivery": {
          "amount": 69.05,
          "currency": "PLN"
        },
        "delivery_text": "69,05 zł z dostawą",
        "lowest_shipping": {
          "amount": 6.15,
          "currency": "PLN"
        },
        "free_delivery": false,
        "free_return": false,
        "rating": 4.95,
        "rating_count": 22,
        "product_offers_count": 1,
        "popularity": "189 osób kupiło ostatnio",
        "image_url": "https://a.allegroimg.com/s180/1136e3/7f0d6c7d44bc914b6baeca6f08a0/Szklo-hartowane-z-aplikatorem-9H-BananFit-do-Apple-iPhone-15",
        "images": [
          "https://a.allegroimg.com/s360/1136e3/7f0d6c7d44bc914b6baeca6f08a0/Szklo-hartowane-z-aplikatorem-9H-BananFit-do-Apple-iPhone-15",
          "https://a.allegroimg.com/s360/116d30/a7eee71446c0b249e4037e637588/Szklo-hartowane-z-aplikatorem-9H-BananFit-do-Apple-iPhone-15-Stan-opakowania-oryginalne",
          "https://a.allegroimg.com/s360/110367/acfebeb9493784db2f4593511dfb/Szklo-hartowane-z-aplikatorem-9H-BananFit-do-Apple-iPhone-15-Kod-producenta-szkielko-ochronne-szybka-szyba-PB-BA-4604"
        ],
        "parameters": [
          {
            "name": "[trimmed-depth]",
            "values": "[trimmed-depth]"
          },
          {
            "name": "[trimmed-depth]",
            "values": "[trimmed-depth]"
          },
          {
            "name": "[trimmed-depth]",
            "values": "[trimmed-depth]"
          }
        ],
        "seller": {
          "id": "40729590",
          "login": "Oficjalny sklep Polski Banan",
          "super_seller": true,
          "company": true,
          "positive_feedback_percent": 99.2,
          "listing_url": "https://allegro.pl/uzytkownik/polski_banan",
          "type": "Oficjalny sklep"
        },
        "category_id": "10532"
      },
      {
        "id": "18149445531",
        "product_id": "fd656736-c06d-43e0-bdc8-6b7119946f1b",
        "title": "3× Szkło hartowane Apple 2,5D do iPhone 15 0,30 mm",
        "url": "https://allegro.pl/events/clicks?emission_unit_id=6814f634-4785-4139-af8b-5281c7f4b170&emission_id=11172e38-f578-40bf-810a-8a5116088b16&type=OFFER&ts=1790199352463&redirect=https%3A%2F%2Fallegro.pl%2Foferta%2F18149445531%3Fbi_s%3Dads%26bi_m%3Dproductlisting%253Adesktop%253Aquery%26bi_c%3DYTgzZDlmYjQtOGNkOS00M2JmLTlhYTgtZDA5MTkwODJmNTk2AA%26bi_t%3Dape&placement=productlisting:desktop:query&sig=8eb53f9d7037c7c2547cb658f420cf66",
        "type": "product",
        "context": "SPONSORED",
        "is_sponsored": true,
        "promoted": false,
        "price": {
          "amount": 14.9,
          "currency": "PLN"
        },
        "price_with_delivery": {
          "amount": 24.89,
          "currency": "PLN"
        },
        "delivery_text": "24,89 zł z dostawą",
        "lowest_shipping": {
          "amount": 9.99,
          "currency": "PLN"
        },
        "free_delivery": false,
        "free_return": false,
        "rating": 4.7,
        "rating_count": 88,
        "product_offers_count": 1,
        "popularity": "254 osoby kupiły ostatnio",
        "image_url": "https://a.allegroimg.com/s180/1168d6/2fe334704cfb946be938d1cfdd02/3x-SZKLO-HARTOWANE-9H-do-iPhone-15-iPhone-15-SZYBKA",
        "images": [
          "https://a.allegroimg.com/s360/1168d6/2fe334704cfb946be938d1cfdd02/3x-SZKLO-HARTOWANE-9H-do-iPhone-15-iPhone-15-SZYBKA",
          "https://a.allegroimg.com/s360/116fbc/da8b5dc6412b8b63a481e7b2f270/3x-SZKLO-HARTOWANE-9H-do-iPhone-15-iPhone-15-SZYBKA-EAN-GTIN-5903396247941",
          "https://a.allegroimg.com/s360/117a7a/0680f1b047debd25d88be0fdd430/3x-SZKLO-HARTOWANE-9H-do-iPhone-15-iPhone-15-SZYBKA-Kod-producenta-5903396247941"
        ],
        "parameters": [
          {
            "name": "[trimmed-depth]",
            "values": "[trimmed-depth]"
          },
          {
            "name": "[trimmed-depth]",
            "values": "[trimmed-depth]"
          },
          {
            "name": "[trimmed-depth]",
            "values": "[trimmed-depth]"
          }
        ],
        "seller": {
          "id": "131532614",
          "login": "mobileking_pl",
          "super_seller": false,
          "company": true,
          "positive_feedback_percent": 97.4,
          "listing_url": "https://allegro.pl/uzytkownik/mobileking_pl",
          "type": "Firma"
        },
        "category_id": "10532"
      },
      {
        "id": "18851370450",
        "product_id": "b7d39356-8090-4bcf-9247-b872c5f6935a",
        "title": "Smartfon Apple iPhone 15 6 GB / 256 GB 5G czarny",
        "url": "https://allegro.pl/produkt/smartfon-apple-iphone-15-6-gb-256-gb-5g-czarny-b7d39356-8090-4bcf-9247-b872c5f6935a?offerId=18851370450",
        "type": "product",
        "context": "PROMOTED",
        "is_sponsored": false,
        "promoted": true,
        "price": {
          "amount": 3999,
          "currency": "PLN"
        },
        "price_with_delivery": {
          "amount": 4009.49,
          "currency": "PLN"
        },
        "delivery_text": "4009,49 zł z dostawą",
        "lowest_shipping": {
          "amount": 10.49,
          "currency": "PLN"
        },
        "free_delivery": false,
        "free_return": false,
        "rating": 4.79,
        "rating_count": 104,
        "product_offers_count": 73,
        "popularity": "63 osoby kupiły ostatnio",
        "image_url": "https://a.allegroimg.com/s180/11a031/ceaa23ac4e64a6512da1e5db7832/Apple-iPhone-15-256GB-Czarny",
        "images": [
          "https://a.allegroimg.com/s360/11a031/ceaa23ac4e64a6512da1e5db7832/Apple-iPhone-15-256GB-Czarny",
          "https://a.allegroimg.com/s360/116e3b/5b7d143143719827e7ecdb6b6cd9/Apple-iPhone-15-256GB-Czarny-Wersja-systemu-operacyjnego-iOS-inne",
          "https://a.allegroimg.com/s360/11c380/ba834b8c4900ac432b40c70c8b33/Apple-iPhone-15-256GB-Czarny-Blokada-simlock-brak-blokady"
        ],
        "parameters": [
          {
            "name": "[trimmed-depth]",
            "values": "[trimmed-depth]"
          },
          {
            "name": "[trimmed-depth]",
            "values": "[trimmed-depth]"
          },
          {
            "name": "[trimmed-depth]",
            "values": "[trimmed-depth]"
          }
        ],
        "seller": {
          "id": "27342349",
          "login": "lantre_pl",
          "super_seller": true,
          "company": true,
          "positive_feedback_percent": 97.5,
          "listing_url": "https://allegro.pl/uzytkownik/lantre_pl",
          "type": "Firma"
        },
        "category_id": "322851"
      }
    ],
    "count": 69,
    "total": 197954,
    "last_page": 100,
    "pages_fetched": 1,
    "partial": false,
    "category_path": [
      {
        "id": "954b95b6-43cf-4104-8354-dea4d9b10ddf",
        "name": "Allegro",
        "alias": "/"
      },
      {
        "id": "42540aec-367a-4e5e-b411-17c09b08e41f",
        "name": "Elektronika",
        "alias": "elektronika"
      },
      {
        "id": "4",
        "name": "Telefony i Akcesoria",
        "alias": "telefony-i-akcesoria"
      }
    ]
  }
}
Actions

What the Allegro API does

ActionDescriptionConcrete use caseKey params
searchSearch Allegro by keyword — returns offer cards with title, price (PLN), delivery cost, seller, rating, photos and offer URL. Supports price range, condition, free-delivery, sort and category filters, with page pagination.Pricing teams call search to search Allegro by keyword.query, max_pages, sort, min_price, max_price, ...
categoryBrowse an Allegro category without a keyword (the /kategoria/<slug> grid) — discover popular offers in a category. Supports price/condition/free-delivery/sort filters and page pagination.Marketplace operators call category to get browse an Allegro category without a keyword (the /kategoria/<slug> grid).category, max_pages, sort, min_price, max_price, ...
offerSingle Allegro offer/product detail by id or URL — title, price (PLN), main image and gallery, seller handle, and description.Catalog enrichment teams call offer to get single Allegro offer/product detail by id or URL.offer_id, offer_url, url
seller_offersA seller's public active listings, paginated — every offer a seller (shop) has live. Provide the seller login (handle from a seller URL / a search result's seller.login).Retail analysts call seller_offers to get a seller's public active listings, paginated.seller, max_pages, sort
categoriesFind an Allegro category by name, or list the children of one. Returns the id you feed to `category` (and to search's `category` filter), the full path from the top of the tree, and whether it is a leaf. Allegro publishes 25 576 categories; this is how you find the right one without guessing a slug.Pricing teams call categories to find an Allegro category by name, or list the children of one.query, parent_id, leaf_only, limit
suggestedRelated/recommended Allegro offers for a keyword — a quick set of relevant offers (the first result page) useful for 'more like this' / market discovery.Marketplace operators call suggested to get related/recommended Allegro offers for a keyword.query
Code samples

Call search from your stack

curl -X POST https://api.reefapi.com/allegro/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"query":"iphone 15"}'
MCP one-liner
Ask your MCP-connected assistant: call reefapi.allegro.search with {"query":"iphone 15"}.
Use cases

Who uses this API and why

  • Pricing teams call search to track competitor prices and delivery offers across Allegro.
  • Seller-intelligence tools use seller_offers to audit a competitor's full Allegro inventory.
  • Market analysts use category to size supply and price ranges in a Polish product segment.
FAQ

Questions developers ask before integrating

What is the difference between id and product_id?

id is the offer - one seller's listing, with its own price, stock and delivery - and it is the number in allegro.pl/oferta/<id>. product_id is the catalog product that many sellers list against, and it is a UUID, not a number; it is the trailing segment of an allegro.pl/produkt/<slug>-<uuid> URL. A measured row carried id 18678737081 and product_id 2c471a7b-e083-42cc-b811-faffef64ef77 for the same iPhone 15. Use the offer id for price tracking and the product UUID to group competing sellers.

Why is there a row in offers[] with every field null?

Because Allegro injects promotional tiles into its own results grid, and the engine returns the grid as served rather than quietly deleting rows. That row has type "banner", an id of BEST_PRICE_GUARANTEE_BANNER, a Polish title, and null for url, price, seller, rating and everything else. One appeared per measured page. Filter on type == "product" before you iterate, or your price parser will trip on the first null.

Why is the url an allegro.pl/events/clicks link instead of the offer page?

That is Allegro's ad click-tracker, and it appears on exactly the sponsored rows - in a measured page of 68, all 12 rows with is_sponsored true carried a /events/clicks URL and all 55 organic rows carried a direct link. The tracker does redirect to the offer, but it embeds an emission id and a timestamp, so it is neither stable nor durable. Build the canonical link from the id instead: https://allegro.pl/oferta/<id>.

What do context, is_sponsored and promoted distinguish?

context is Allegro's own placement label, with three measured values: SPONSORED (a paid ad slot, 12 rows), PROMOTED (a seller-boosted listing that still ranks organically, 34 rows) and REGULAR (21 rows). is_sponsored tracks SPONSORED only, and promoted tracks PROMOTED. If you are measuring genuine organic position, drop SPONSORED - keeping it inflates how prominent a brand looks.

Does Allegro still have auctions, and can I see bids?

Not in this response shape. Every measured row was a fixed-price listing carrying a single price object; there is no bid count, no current bid, no time remaining and no auction-versus-buy-now flag anywhere in the payload, and the only condition-related control is the new/used filter. Treat this engine as buy-now price intelligence. If a listing happens to be an auction on the site, you still get its displayed price, but you cannot tell it apart here.

How many offers do I get per page, and how far can I go?

A page is roughly 60 rows - a measured search returned 68, banner included - and max_pages runs to 10, so about 600 offers per query is the ceiling against a meta.total that read 192,928. meta.pages_fetched reports what was actually retrieved. For deeper coverage, split the query into min_price / max_price bands or add a category slug, or switch to seller_offers, which walks one seller's catalog the same way (61 rows on the first page of a measured storefront).

Why does the offer action return less than the search row for the same listing?

They read different pages. A search row carries rating, rating_count, delivery prices, seller feedback percent, parameters and category_id; the offer action reads the product page and returns id, url, title, price plus price_string ("2629,00 zł"), the full-resolution image gallery and a thin seller object of login and listing_url - with description null on the listing measured. If you need the commercial fields, keep the search row instead of re-fetching detail.

What does product_offers_count count?

The offers grouped under that product in the view you are looking at, not a global total. The same offer id returned product_offers_count 156 when it arrived through a keyword search - the sellers competing on that product page - and 1 when the same offer came back through seller_offers, where the surrounding view is a single storefront. Read it as a per-response figure and do not compare it across actions.

What is the Allegro API?

Allegro API is a ReefAPI endpoint group for allegro It returns live JSON through POST requests under /allegro/v1.

Is the Allegro API free to try?

Yes. ReefAPI starts with 1,000 free credits, no card required. Allegro calls use the same shared credit balance as every other ReefAPI engine.

Do I need an Allegro login or account?

No login to Allegro is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.

How fresh is the Allegro data?

The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.

How many credits does the Allegro API use?

Allegro actions currently cost 1-3 credits per successful call. Failed or blocked calls are free. All APIs draw from one credit pool.

Can I call Allegro from an AI assistant or MCP client?

Yes. Connect ReefAPI once through MCP and your assistant can call allegro actions with the same key, credit pool and JSON envelope used by normal REST requests.

docs / allegro

Allegro

Allegro

base /allegro/v16 endpoints
post/allegro/v1/category3 credits

Browse an Allegro category without a keyword (the /kategoria/<slug> grid) — discover popular offers in a category. Supports price/condition/free-delivery/sort filters and page pagination.

ParameterAllowed / rangeDescription
categoryrequired—Any Allegro category: the numeric id (491), the slug (laptopy-491) or the full category URL. Use the `categories` action to find one by name. Department landing pages (like 'elektronika') have no offer grid and are rejected with that reason.
max_pages = 1optional1–10How many category pages to fetch (1–10).
sort = relevanceoptionalrelevance · price_asc · price_desc · popularity · newestResult ordering.
min_priceoptional—Minimum price filter, in PLN.
max_priceoptional—Maximum price filter, in PLN.
conditionoptionalnew · usedItem condition filter.
free_deliveryoptional—Only offers with free delivery.
Try in playground →
post/allegro/v1/offer3 credits

Single Allegro offer/product detail by id or URL — title, price (PLN), main image and gallery, seller handle, and description.

ParameterAllowed / rangeDescription
offer_idoptional—Allegro offer id — the digits in an offer URL (allegro.pl/oferta/<id>). Provide offer_id OR offer_url.
offer_urloptional—Full offer/product URL — alternative to offer_id.
Try in playground →
post/allegro/v1/seller_offers3 credits

A seller's public active listings, paginated — every offer a seller (shop) has live. Provide the seller login (handle from a seller URL / a search result's seller.login).

ParameterAllowed / rangeDescription
sellerrequired—Allegro seller login/handle (from allegro.pl/uzytkownik/<login> or a search result's seller.login).
max_pages = 1optional1–10How many of the seller's listing pages to fetch (1–10).
sort = relevanceoptionalrelevance · price_asc · price_desc · newestOrder within the seller's listings.
Try in playground →
post/allegro/v1/categories1 credit

Find an Allegro category by name, or list the children of one. Returns the id you feed to `category` (and to search's `category` filter), the full path from the top of the tree, and whether it is a leaf. Allegro publishes 25 576 categories; this is how you find the right one without guessing a slug.

ParameterAllowed / rangeDescription
queryoptional—Case-insensitive text matched against the category name and its path. Omit it to list the top of the tree, or to list the children of `parent_id`.
parent_idoptional—List this category's direct children. Combine with `query` to search inside one branch.
leaf_only = falseoptional—Only leaf categories, which are the ones that carry an offer grid.
limit = 50optional1–500Maximum rows to return (1-500).
Try in playground →
post/allegro/v1/suggested3 credits

Related/recommended Allegro offers for a keyword — a quick set of relevant offers (the first result page) useful for 'more like this' / market discovery.

ParameterAllowed / rangeDescription
queryrequired—Keyword to fetch related offers for.
Try in playground →
Built for volume
5M+ requests a day

Measured at 60 requests a second across the fleet, with no central bottleneck. Volume pricing is on request, and per-key limits are raised for high-volume accounts.

Missing a source?
We build it

Tell us a site we do not cover yet and it becomes an engine. A customer asked for bestprice.gr on a Sunday and it was in the catalog the next day.

Support
2 minute median reply

Median time from a question in the live chat to the first answer, measured across every answered conversation. Setup help included, no support tier to buy.

One key, one balance
Every API included

No per-site plans and no separate subscriptions. One key and one credit pool across the whole catalog, so adding a source costs nothing up front.

Planning something large? Tell us the volume and the sources and we will come back with what it costs and what we would have to build.