Four ways to get your stock onto the site, from adding vehicles one at a time to a fully automated feed that keeps your listings in sync around the clock.
Recommended for day-to-day stock management
Best for bulk onboarding
Set and forget ongoing stock sync
Standard dealer-management-system exports are supported. Flexible field mapping means common feed formats work out of the box — if your export uses different tag or column names, just get in touch and we will help map them.
Push stock directly from your own software
POST https://fast-squid-791.api.macaly.app/api/feeds/ingest x-api-key: YOUR_API_KEY
curl -X POST https://fast-squid-791.api.macaly.app/api/feeds/ingest \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
"vehicles": [{
"externalId": "STOCK-1234",
"make": "Bayliner",
"model": "VR5 OB",
"variant": "Mercury 150 FourStroke",
"year": 2021,
"mileage": 210,
"price": 38995,
"fuelType": "Petrol",
"transmission": "Outboard",
"bodyType": "Speedboat",
"colour": "Magnetic Grey",
"regPlate": "AB21 CDE",
"description": "Immaculate condition, one owner from new.",
"thumbnailUrl": "https://example.com/boat.jpg",
"features": ["Air Conditioning", "Parking Sensors", "Bluetooth"]
}]
}'| Field | Rules |
|---|---|
| externalId | required — your stock reference. Sending the same externalId again UPDATES that listing instead of creating a duplicate |
| make, model | required |
| year | required number, e.g. 2021 |
| mileage | required number, engine hours |
| price | required number, in GBP |
| fuelType | required — Petrol, Diesel, Electric, Hybrid or LPG |
| transmission | required — Outboard, Inboard, Stern Drive, Jet Drive or Sail Drive |
| bodyType | required — Speedboat, RIB, Motor Yacht, Sailing Yacht, Cabin Cruiser, Fishing Boat, Narrowboat or Other |
| variant, regPlate, colour, engineSize, horsepower | optional strings/numbers |
| serviceHistory | optional — Full, Partial or None |
| description | optional — full advert text |
| thumbnailUrl | optional — a link to your main photo. Only use images you have permission to use |
| features | optional array of strings |
{ "inserted": 1, "updated": 0, "failed": 0 } HTTP 200 on success
HTTP 200 with a failed count and errors array when some rows are rejected
401 invalid or missing API key
403 feed is disabled or not an API feed
413 more than 500 vehicles in one pushKeys are per feed. Regenerating your key revokes the old one instantly.
Questions about any option? Contact us and we will help you choose the right route.