Spinny Used Car Scraper avatar

Spinny Used Car Scraper

Pricing

from $1.80 / 1,000 car listings

Go to Apify Store
Spinny Used Car Scraper

Spinny Used Car Scraper

Collect public Spinny used-car listings by city or search URL. Get prices, mileage, car specs, hub details, and source links in a dataset for inventory research and price checks.

Pricing

from $1.80 / 1,000 car listings

Rating

0.0

(0)

Developer

Maxime Dupré

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

19 days ago

Last modified

Share

🚗 Compare Spinny used-car listings in one dataset

Car buyers, dealers, and market researchers can collect public Spinny used-car listings with prices, mileage, car specs, and source links. Search by city or use Spinny search URLs, then review the saved data to compare cars and study inventory without copying each listing by hand.

📋 Spinny car data you get

Each row is one valid public car listing. It includes the listing ID, source URL, make, model, price in Indian rupees, year made, and mileage in kilometers. When Spinny publishes them, rows also include loan offers, booking deposits, hub details, photo links, availability, and certification tiers.

The Actor saves the first eligible match for each car and ignores later matches for that same listing. A saved row keeps only that first match. Fields that Spinny does not publish may be absent.

  1. Choose City search or Search URLs.
  2. For City search, enter a Spinny city and any car filters. For Search URLs, add Spinny search-result links with the filters you want.
  3. Set Maximum cars, or leave it empty to return all available results until the source is exhausted.
  4. Start the Actor and open Car listings in the Output tab to review the dataset.

⚙️ Input

Only fields for your chosen search method are used. The car limit applies to both methods. Use City search for used cars in Bangalore or used cars in Hyderabad. Use Search URLs to keep source filters such as brand and price range from your Spinny links.

Input fields

FieldTypeWhat it does
searchMethodstringRequired. Choose city for City search or searchUrls for Search URLs.
citystringSpinny city name, needed for City search.
bodyStylestringOptional City search body style, such as hatchback, sedan, suv, or muv. Leave empty for all styles.
fuelTypestringOptional City search fuel type, such as petrol, diesel, cng, electric, or hybrid. Leave empty for all fuels.
transmissionstringOptional City search transmission, such as manual or automatic. Leave empty for all transmissions.
maxPriceintegerHighest listed City search price in Indian rupees. Must be at least 1 when set. Leave empty for any price.
searchUrlsarray of objectsOne or more Spinny search-result URLs for Search URLs. Each link keeps its source search filters.
searchUrls[].urlstringRequired within each URL entry. A Spinny search-result link.
maxItemsintegerOptional cap on valid car listings saved across the run. Must be at least 1 when set. Leave empty to return all available results until the source is exhausted.

Example input

This input comes from a successful default-input run:

{
"searchMethod": "city",
"city": "Bangalore",
"maxItems": 10
}

🧾 Output

The Output tab links to the saved car listings. Both search methods return the same listing shape.

Run output

FieldTypeWhat it does
listingsstringLink to the run's car listings in the default dataset overview.

Car listing fields

All amounts below are in Indian rupees. Mileage is in kilometers. Optional fields appear only when the source provides them. Dotted paths show fields inside objects; [] shows entries in an array.

FieldTypeWhat it does
listingIdstringSpinny listing ID for matching the same car across exports.
urlstringSource car listing page.
makestringVehicle make.
modelstringVehicle model.
variantstringVehicle variant or trim.
manufacturingYearintegerYear the vehicle was made.
registrationYearintegerYear the vehicle was registered.
mileagenumberDistance driven in kilometers.
colorstringListed vehicle color.
bodyStylestringVehicle body style.
fuelTypestringVehicle fuel type.
transmissionstringTransmission type.
transmissionSubtypestringMore specific source transmission type.
previousOwnerCountintegerListed number of previous owners.
insuranceValiditystringInsurance validity stated by Spinny.
pricenumberCurrent listed price.
pricingobjectOther published prices and charges.
pricing.originalPricenumberOriginal listed price.
pricing.finalPayableAmountnumberFinal amount to pay, as published by Spinny.
pricing.componentsarray of objectsPublished taxes, fees, and add-on charges.
pricing.components[].namestringName of the charge.
pricing.components[].amountnumberCharge amount.
pricing.createdAtstringSource date when the price record was created.
financingobjectPublished loan terms and offers.
financing.monthlyEminumberPublished monthly loan payment.
financing.offersarray of objectsAvailable financing offers.
financing.offers[].loanAmountnumberOffered loan amount.
financing.offers[].interestRatenumberPublished interest rate as a percent.
financing.offers[].termMonthsintegerLoan repayment term in months.
financing.offers[].monthlyEminumberMonthly payment for this offer.
bookingDepositobjectPublished booking deposit terms.
bookingDeposit.amountnumberBooking deposit amount.
bookingDeposit.maximumnumberHighest allowed deposit.
citystringCity where the car is listed.
hubobjectCar hub offering the vehicle.
hub.idstringSource hub ID.
hub.namestringPublished hub name.
hub.addressstringPublished hub address.
hub.classificationstringPublished hub type.
hub.latitudenumberPublished hub latitude.
hub.longitudenumberPublished hub longitude.
registrationAuthoritystringListed vehicle registration authority.
locationobjectPublished geographic details.
location.areastringPublished area name.
location.statestringPublished state name.
photosarray of objectsSource-hosted vehicle photos.
photos[].urlstringSource photo URL.
photos[].labelstringSource photo label.
photos[].kindstringPhoto type, including photos with the background removed when published.
media360array of objectsSource-published 360-degree media.
media360[].urlstringSource media URL.
media360[].typestringSource media type.
availabilityobjectAvailability stated by Spinny.
availability.soldbooleanWhether Spinny marks the car as sold.
availability.bookedbooleanWhether Spinny marks the car as booked.
availability.onHoldbooleanWhether Spinny marks the car as on hold.
availability.upcomingbooleanWhether Spinny marks the car as upcoming.
availability.publicationStatusstringSource publication status.
availability.availableFromstringSource date when the car becomes available.
certificationTierstringCertification tier published by Spinny.
procurementClassificationstringVehicle procurement class published by Spinny.
homeTestDriveAvailablebooleanWhether Spinny offers a home test drive for this car.
fixedPricebooleanWhether Spinny states that the purchase price is fixed.
assessmentsarray of objectsPublished vehicle assessments.
assessments[].namestringAssessment name.
assessments[].descriptionstringPublished assessment details.
assessments[].prioritynumberSource priority for the assessment.
benefitsarray of objectsPublished benefits and perks.
benefits[].namestringBenefit name.
benefits[].descriptionstringPublished benefit details.
benefits[].prioritynumberSource priority for the benefit.
badgesarray of objectsPromotional badges published for the car.
badges[].labelstringPublished badge text.
badges[].prioritynumberSource priority for the badge.
rankingScorenumberSpinny's ranking score, not an Actor-calculated score.
shortlistCountintegerShortlist count published by Spinny.
publishedAtstringSource listing publication date.

Example car listing

This genuine row comes from the successful default-input run. It is shortened: the large photos and media360 arrays are replaced with "...". All other fields and values are kept as saved.

{
"listingId": "32351812",
"url": "https://www.spinny.com/buy-used-cars/bangalore/renault/kwid/10-rxt-2016/32351812/",
"make": "Renault",
"model": "Kwid",
"variant": "1.0 RXT",
"manufacturingYear": 2016,
"registrationYear": 2016,
"mileage": 55974,
"color": "bronze",
"bodyStyle": "hatchback",
"fuelType": "petrol",
"transmission": "manual",
"transmissionSubtype": "regular",
"previousOwnerCount": 2,
"insuranceValidity": "2027-10-06",
"price": 272000,
"pricing": {
"originalPrice": 272000,
"finalPayableAmount": 272000,
"components": [
{
"name": "RC transfer, insurance & more",
"amount": 15360
},
{
"name": "RC transfer facilitation",
"amount": 4000
},
{
"name": "Insurance",
"amount": 2860
},
{
"name": "Car cleaning & dry cleaning",
"amount": 4000
},
{
"name": "Pre delivery servicing cost",
"amount": 4000
},
{
"name": "Fuel top-up",
"amount": 500
},
{
"name": "Warranty (Protect)",
"amount": 4515
},
{
"name": "GST (govt. taxes)",
"amount": 2253
}
],
"createdAt": "2026-10-04 16:51:25"
},
"financing": {
"monthlyEmi": 4951,
"offers": [
{
"loanAmount": 163200,
"interestRate": 13,
"monthlyEmi": 4951,
"termMonths": 36
}
]
},
"bookingDeposit": {
"amount": 5000,
"maximum": 25000
},
"city": "Bangalore",
"hub": {
"id": "66",
"name": "Spinny Park, Yelahanka, Bangalore",
"address": "Spinny Park, 4JB8+4M4, Hunasamaranahalli, Yelahanka, Bengaluru-562157",
"classification": "park",
"latitude": 13.142731,
"longitude": 77.616743
},
"registrationAuthority": "KA01",
"location": {
"area": "Yelahanka",
"state": "Karnataka"
},
"photos": "...",
"media360": "...",
"availability": {
"sold": false,
"booked": false,
"onHold": true,
"upcoming": false,
"publicationStatus": "published"
},
"certificationTier": "budget",
"procurementClassification": "budget",
"homeTestDriveAvailable": true,
"fixedPrice": true,
"assessments": [],
"benefits": [
{
"name": "Warranty",
"description": "Engine and transmission: 6 months\nComprehensive: 2 months"
},
{
"description": "Servicing and dry cleaning"
},
{
"description": "5-day money back guarantee"
},
{
"name": "Great performance in segment",
"description": "Stands out with a powerful 1.0L engine punching 67 bhp power & 91 Nm torque",
"priority": 10
}
],
"badges": [
{
"label": "Performance",
"priority": 10
}
],
"rankingScore": 0.4080287597363691,
"shortlistCount": 1,
"publishedAt": "2026-10-05 09:49:53"
}

💳 Pricing

One Car listing charge applies to each valid public used-car listing saved to your dataset. Listings that cannot be read or fail validation are not paid listings. A run with no saved listings has no car listing charge. See the Store pricing panel for current tier prices.

🔌 Integrations

Use the Apify API to start runs and read the saved dataset. You can also export the dataset from Apify for your own reports or data tools.

❓ FAQ

Why are my city filters ignored when I use Search URLs?

Search URLs uses the filters in each Spinny link. The separate city, body style, fuel type, transmission, and maximum price fields apply only to City search.

How do I filter by brand or a price range?

Use Search URLs and add a Spinny search-result link with those source filters. City search offers a maximum price field in Indian rupees.

What if one search URL fails?

The Actor continues collecting valid listings from the other submitted search URLs. Check the run's warning logs for failed URLs.

Will the same car appear more than once?

The Actor saves the first eligible occurrence of a listing and ignores later matches for the same listing. It does not combine data from later matches into the saved row.

Why are some fields missing?

Extra fields, such as financing offers or certification tiers, depend on what Spinny publishes. A failed read does not mean that a car was sold or removed.

What happens if I leave Maximum cars empty?

The Actor returns all available results until the source is exhausted. A search can return fewer cars than a limit you set.

Is this Spinny's official website or a car-buying service?

Spinny's source website is spinny.com. This Actor collects its public used-car listings for research. It does not buy or book cars, apply for financing, or schedule test drives.

📝 Changelog

v0.0 (06-10-2026)

  • Initial release.

🆘 Support

For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡

Made with ❤️ by Maxime Dupré