Spinny Used Car Scraper
Pricing
from $1.80 / 1,000 car listings
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é
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
19 days ago
Last modified
Categories
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.
- Collect Used cars in Bangalore for local price and inventory checks.
- Find Used cars under 5 lakhs within a set budget.
- Compare Used SUV cars with listed prices and mileage.
- Collect Used automatic cars to review cars with automatic transmission.
- Find Used CNG cars for fuel-type research.
📋 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.
▶️ Run a Spinny car search
- Choose City search or Search URLs.
- For City search, enter a Spinny city and any car filters. For Search URLs, add Spinny search-result links with the filters you want.
- Set Maximum cars, or leave it empty to return all available results until the source is exhausted.
- 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
| Field | Type | What it does |
|---|---|---|
searchMethod | string | Required. Choose city for City search or searchUrls for Search URLs. |
city | string | Spinny city name, needed for City search. |
bodyStyle | string | Optional City search body style, such as hatchback, sedan, suv, or muv. Leave empty for all styles. |
fuelType | string | Optional City search fuel type, such as petrol, diesel, cng, electric, or hybrid. Leave empty for all fuels. |
transmission | string | Optional City search transmission, such as manual or automatic. Leave empty for all transmissions. |
maxPrice | integer | Highest listed City search price in Indian rupees. Must be at least 1 when set. Leave empty for any price. |
searchUrls | array of objects | One or more Spinny search-result URLs for Search URLs. Each link keeps its source search filters. |
searchUrls[].url | string | Required within each URL entry. A Spinny search-result link. |
maxItems | integer | Optional 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
| Field | Type | What it does |
|---|---|---|
listings | string | Link 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.
| Field | Type | What it does |
|---|---|---|
listingId | string | Spinny listing ID for matching the same car across exports. |
url | string | Source car listing page. |
make | string | Vehicle make. |
model | string | Vehicle model. |
variant | string | Vehicle variant or trim. |
manufacturingYear | integer | Year the vehicle was made. |
registrationYear | integer | Year the vehicle was registered. |
mileage | number | Distance driven in kilometers. |
color | string | Listed vehicle color. |
bodyStyle | string | Vehicle body style. |
fuelType | string | Vehicle fuel type. |
transmission | string | Transmission type. |
transmissionSubtype | string | More specific source transmission type. |
previousOwnerCount | integer | Listed number of previous owners. |
insuranceValidity | string | Insurance validity stated by Spinny. |
price | number | Current listed price. |
pricing | object | Other published prices and charges. |
pricing.originalPrice | number | Original listed price. |
pricing.finalPayableAmount | number | Final amount to pay, as published by Spinny. |
pricing.components | array of objects | Published taxes, fees, and add-on charges. |
pricing.components[].name | string | Name of the charge. |
pricing.components[].amount | number | Charge amount. |
pricing.createdAt | string | Source date when the price record was created. |
financing | object | Published loan terms and offers. |
financing.monthlyEmi | number | Published monthly loan payment. |
financing.offers | array of objects | Available financing offers. |
financing.offers[].loanAmount | number | Offered loan amount. |
financing.offers[].interestRate | number | Published interest rate as a percent. |
financing.offers[].termMonths | integer | Loan repayment term in months. |
financing.offers[].monthlyEmi | number | Monthly payment for this offer. |
bookingDeposit | object | Published booking deposit terms. |
bookingDeposit.amount | number | Booking deposit amount. |
bookingDeposit.maximum | number | Highest allowed deposit. |
city | string | City where the car is listed. |
hub | object | Car hub offering the vehicle. |
hub.id | string | Source hub ID. |
hub.name | string | Published hub name. |
hub.address | string | Published hub address. |
hub.classification | string | Published hub type. |
hub.latitude | number | Published hub latitude. |
hub.longitude | number | Published hub longitude. |
registrationAuthority | string | Listed vehicle registration authority. |
location | object | Published geographic details. |
location.area | string | Published area name. |
location.state | string | Published state name. |
photos | array of objects | Source-hosted vehicle photos. |
photos[].url | string | Source photo URL. |
photos[].label | string | Source photo label. |
photos[].kind | string | Photo type, including photos with the background removed when published. |
media360 | array of objects | Source-published 360-degree media. |
media360[].url | string | Source media URL. |
media360[].type | string | Source media type. |
availability | object | Availability stated by Spinny. |
availability.sold | boolean | Whether Spinny marks the car as sold. |
availability.booked | boolean | Whether Spinny marks the car as booked. |
availability.onHold | boolean | Whether Spinny marks the car as on hold. |
availability.upcoming | boolean | Whether Spinny marks the car as upcoming. |
availability.publicationStatus | string | Source publication status. |
availability.availableFrom | string | Source date when the car becomes available. |
certificationTier | string | Certification tier published by Spinny. |
procurementClassification | string | Vehicle procurement class published by Spinny. |
homeTestDriveAvailable | boolean | Whether Spinny offers a home test drive for this car. |
fixedPrice | boolean | Whether Spinny states that the purchase price is fixed. |
assessments | array of objects | Published vehicle assessments. |
assessments[].name | string | Assessment name. |
assessments[].description | string | Published assessment details. |
assessments[].priority | number | Source priority for the assessment. |
benefits | array of objects | Published benefits and perks. |
benefits[].name | string | Benefit name. |
benefits[].description | string | Published benefit details. |
benefits[].priority | number | Source priority for the benefit. |
badges | array of objects | Promotional badges published for the car. |
badges[].label | string | Published badge text. |
badges[].priority | number | Source priority for the badge. |
rankingScore | number | Spinny's ranking score, not an Actor-calculated score. |
shortlistCount | integer | Shortlist count published by Spinny. |
publishedAt | string | Source 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 🫡
🔗 Related Actors
- CarAndBike India Used Car Scraper collects another Indian used-car source for price and inventory comparisons.
- Carsales.com.au Scraper collects Australian vehicle listings with prices, specs, and seller details.
- Autotrader Scraper collects US car listings for vehicle price and mileage research.
- OLX Scraper collects public marketplace listings for price checks across its supported European markets.
- Spinny Used Car Search Scraper offers another Spinny search-URL workflow for used-car listing research.
Made with ❤️ by Maxime Dupré