Stranded Records APIstrandedrecords.com ↗
Access the Stranded Records vinyl catalog via API. Browse collections, check availability, and search by keyword across their physical record inventory.
What is the Stranded Records API?
The Stranded Records API provides 2 endpoints to query the vinyl record inventory at strandedrecords.com. Use list_products to paginate through the full catalog or a named collection — each page returns up to 250 records with price, availability, SKU, and tags — or use search_products to find matching titles or artists by keyword. Response objects include vendor, product type, image URL, and a direct handle for linking to the product page.
curl -X GET 'https://api.parse.bot/scraper/4cab797e-3bf1-44e8-8585-5975d05bdf2d/list_products?page=1&collection=new-arrivals' \ -H 'X-API-Key: $PARSE_API_KEY'
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 strandedrecords-com-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: Stranded Records SDK — bounded, re-runnable; every call capped."""
from parse_apis.strandedrecords_com_api import StrandedRecords, ParseError
client = StrandedRecords()
# Browse new arrivals
for product in client.products.list(collection="new-arrivals", limit=3):
print(product.title, product.price, product.available)
# Search for a specific artist
results = client.search_results.search(query="pink floyd", limit=3)
for item in results:
print(item.title, item.vendor, item.price)
# Get first search result
hit = client.search_results.search(query="jazz", limit=1).first()
if hit:
try:
print(hit.title, hit.handle, hit.available)
except ParseError as e:
print(f"error: {e}")
print("exercised: products.list / search_results.search")
Browse vinyl records for sale. Returns paginated product listings from the full catalog or a specific collection. Each page returns up to 250 items; an empty page signals the end of results.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| collection | string | Collection handle to filter by (e.g. 'new-arrivals', 'top-selling', 'catalogue'). Omit to browse the full catalog. |
{
"type": "object",
"fields": {
"page": "current page number",
"products": "array of product objects with id, title, handle, vendor, product_type, price, available, sku, image_url, published_at, tags"
},
"sample": {
"data": {
"page": 1,
"products": [
{
"id": 10123894194473,
"sku": "MR511",
"tags": [
"fe",
"september"
],
"price": "34.98",
"title": "Flower Travellin' Band - Satori LP",
"handle": "flower-travellin-band-satori-lp",
"vendor": "Munster",
"available": true,
"image_url": "https://cdn.shopify.com/s/files/1/1427/6532/files/flower-travellin-band-satori-lp.jpg?v=1784304969",
"product_type": "Pre-Order Vinyl",
"published_at": "2026-07-17T09:40:40-07:00"
}
]
},
"status": "success"
}
}About the Stranded Records API
Browsing the Catalog
list_products returns paginated vinyl listings from Stranded Records. Each call returns a page number alongside a products array of up to 250 items. Each product object includes id, title, handle, vendor, product_type, price, available, sku, image_url, published_at, and tags. Increment the page parameter to walk through the full catalog; an empty products array signals the final page. Pass a collection parameter — such as new-arrivals, top-selling, or catalogue — to scope results to a specific section of the store.
Searching by Keyword
search_products accepts a required query string and returns up to 10 matching products from the store's search index. Useful for lookups like 'jazz', 'krautrock', or a specific artist name such as 'pink floyd'. The response echoes back the query alongside a products array, where each item carries id, title, handle, vendor, product_type, price, available, image, and url fields. The url field gives a direct link to the product on the Stranded Records site.
Data Coverage
Both endpoints reflect the current in-store inventory, including the available boolean indicating whether a record is in stock and the price field for the listed sale price. The tags field on list_products responses can carry genre, format, or label metadata attached to a listing. The vendor field typically identifies the artist or label, while product_type often denotes the format (e.g. LP, 7").
The Stranded Records API is a managed, monitored endpoint for strandedrecords.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when strandedrecords.com 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 strandedrecords.com 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.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Monitor new arrivals by polling the
new-arrivalscollection and alerting whenavailableis true for a target title. - Build a genre-filtered vinyl browser using the
tagsfield returned bylist_products. - Check real-time stock availability for specific records using the
availableboolean before directing a customer to the site. - Aggregate pricing data across vinyl retailers by comparing
pricefields from catalog pages. - Create a wishlist tracker that runs
search_productsqueries for specific artists and notifies when a match appears. - Index the full catalog by paginating
list_productswithout a collection filter to collect allskuandhandlevalues. - Display featured or top-selling records in an editorial context using the
top-sellingcollection endpoint.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Stranded Records have an official developer API?+
How does pagination work in `list_products`, and how do I know when I've reached the end?+
page parameter and increment it on each call. Each response returns up to 250 product objects. When the products array in the response is empty, you have passed the last page of results.Does `search_products` return more than 10 results, or can I paginate search results?+
search_products returns up to 10 matching items per query and does not support pagination. For broader catalog browsing, list_products with the collection parameter or no filter covers the full inventory across pages. You can fork this API on Parse and revise it to add paginated search if you need deeper search result coverage.Does the API expose customer reviews, ratings, or track listings for individual records?+
What does the `tags` field contain, and is it consistent across all products?+
tags field is an array attached to each product in list_products responses. It may contain genre labels, format descriptors, or promotional flags, but tag content is set by the store per listing and is not guaranteed to follow a fixed taxonomy across all records.