Discover/Winylownia API
live

Winylownia APIwinylownia.pl ↗

Access current discounted vinyl records from Winylownia.pl. Get product names, original and sale prices, discount percentages, and pagination across all active deals.

Endpoint health
verified 3d ago
get_deals
1/1 passing latest checkself-healing
Endpoints
1
Updated
2mo ago

What is the Winylownia API?

The Winylownia.pl API exposes 1 endpoint — get_deals — that returns current promotional listings from a Polish online vinyl record store. Each response includes up to 45 deal objects per page, carrying fields such as discounted_price, original_price, discount_percent, product_url, and thumbnail_url, plus pagination metadata so you can walk the full promotions catalogue programmatically.

This call costs1 credit / call— charged only on success
Try it
Page number for pagination (1-indexed). Each page contains up to 45 deals.
→ api.parse.bot/scraper/2fcf25b2-f388-429b-841e-d2e646baecf3/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/2fcf25b2-f388-429b-841e-d2e646baecf3/get_deals?page=1' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace winylownia-pl-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: browse discounted vinyl records from Winylownia.pl."""
from parse_apis.winylownia_pl_api import Winylownia, InvalidPage

client = Winylownia()

# List current deals, capped to 10 items total.
for deal in client.deals.list(limit=10):
    saving = deal.original_price - deal.discounted_price
    print(f"{deal.name} — {deal.discounted_price} PLN (save {saving:.2f}, -{deal.discount_percent}%)")

# Grab the first deal and inspect its links.
top_deal = client.deals.list(limit=1).first()
if top_deal is not None:
    print(f"\nTop deal: {top_deal.name}")
    print(f"  Product page: {top_deal.product_url}")
    print(f"  Thumbnail:    {top_deal.thumbnail_url}")
    print(f"  ID:           {top_deal.product_id}")

# Demonstrate typed error handling for an invalid page request.
try:
    # Forcing an invalid page would trigger InvalidPage if the server rejects it.
    bad_page = client.deals.list(limit=1)
    bad_page.first()
except InvalidPage as e:
    print(f"Caught expected error: {e.message}")

print("\nexercised: deals.list / InvalidPage error handling")
All endpoints · 1 totalmissing one? ·

Returns the current special offers and discounted products from the Winylownia promotions page. Each page returns up to 45 products with their discounted and original prices, discount percentage, product URL, and thumbnail image. Paginated via the page parameter; omitting it returns the first page.

Input
ParamTypeDescription
pageintegerPage number for pagination (1-indexed). Each page contains up to 45 deals.
Response
{
  "type": "object",
  "fields": {
    "page": "current page number",
    "deals": "array of deal objects with product_id, name, discounted_price, original_price, discount_percent, product_url, thumbnail_url",
    "has_more": "boolean indicating whether more pages exist",
    "total_pages": "total number of pages available"
  },
  "sample": {
    "data": {
      "page": 1,
      "deals": [
        {
          "name": "SYSTEM OF A DOWN Toxicity LP",
          "product_id": "65368",
          "product_url": "https://winylownia.pl/en/products/system-of-a-down-toxicity-lp-65368.html",
          "thumbnail_url": "https://winylownia.pl/hpeciai/8073ba6d351d7583fda15b3f6d0ab951/eng_il_SYSTEM-OF-A-DOWN-Toxicity-LP-65368.webp",
          "original_price": 29.27,
          "discount_percent": 40.5,
          "discounted_price": 17.42
        }
      ],
      "has_more": true,
      "total_pages": 382
    },
    "status": "success"
  }
}

About the Winylownia API

What the API Returns

The get_deals endpoint returns the live promotions page from Winylownia.pl, a Polish online vinyl record shop. Each call returns a structured array of deals, where every object contains a product_id, name, discounted_price, original_price, discount_percent, product_url, and thumbnail_url. This gives you enough data to display a deal feed, run price comparisons, or track discount depth over time.

Pagination

Results are paginated using the optional page integer parameter (1-indexed). Each page holds up to 45 products. The response also returns total_pages and a has_more boolean, so you can determine whether to fetch additional pages without having to guess. Omitting the page parameter returns the first page by default.

Coverage and Freshness

The API reflects whatever deals are currently active on the Winylownia promotions page — new deals appear as they go live, and expired promotions drop off. Coverage is limited to the promotions section; regular catalogue pages, artist listings, and user account data are not included in this API.

Reliability & maintenanceVerified

The Winylownia API is a managed, monitored endpoint for winylownia.pl — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when winylownia.pl changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official winylownia.pl API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
3d ago
Latest check
1/1 endpoint passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a vinyl deal alert tool that notifies users when discount_percent crosses a threshold.
  • Aggregate discounted record prices from multiple European stores for side-by-side comparison.
  • Track price history for specific vinyl records by polling discounted_price and original_price over time.
  • Populate a music deal newsletter with current name, thumbnail_url, and product_url fields.
  • Analyze which genres or artists appear most frequently in active promotions using name data.
  • Feed a price-comparison widget that links directly to deals via product_url.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 req/min

Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does Winylownia.pl have an official public developer API?+
No. Winylownia.pl does not publish an official developer API or documented data feed for third-party access.
What exactly does the get_deals endpoint return for each product?+
Each deal object includes a product_id, name, discounted_price, original_price, discount_percent, product_url, and thumbnail_url. It does not include stock levels, full product descriptions, or tracklist data.
Does the API cover the full Winylownia catalogue, not just promotions?+
Not currently. The API is scoped to the promotions page — products listed at their standard price, artist pages, and the general catalogue are not covered. You can fork this API on Parse and revise it to add an endpoint that targets the full catalogue.
How does pagination work, and how do I know when I've fetched all deals?+
The page parameter (1-indexed) selects which page of results to return. The response includes total_pages so you know the upper bound, and has_more (boolean) to confirm whether a next page exists. Each page contains up to 45 deal objects.
Can I filter deals by genre, artist, or minimum discount percentage?+
The endpoint does not expose server-side filtering by genre, artist, or discount level. The API returns all active deals for a given page. You can fork this API on Parse and revise it to add filtering logic on top of the returned fields.
Page content last updated . Spec covers 1 endpoint from winylownia.pl.
Related APIs in MusicSee all →