Skip to content
Scrappa Get API key
Subito.it Auto API 1 credit/request

Subito.it Auto Search

GET https://scrappa.co/api/subito-motori/search?c=2&cb=000008&ps=10000&pe=20000&lim=2

Search current Subito.it Auto listings (category 2). Filter by brand, model, price, mileage, first-registration year, power, fuel, gearbox, body type, equipment, seller type, region and municipality. Sort by date, relevance, price, year, mileage or power. Offset pagination with a cap of 10 000: at the cap the upstream answers an empty result, which is a valid billable empty. has_more is computed from the live total.

Subito.it Auto Search 1 credit/request

Endpoint

Request preview
GET
https://scrappa.co/api/subito-motori/search?c=2&cb=000008&ps=10000&pe=20000&lim=2
Auth header
x-api-key
Cost
1 credit/request
Response preview
200 OK
{
    "success": true,
    "data": {
        "count_all": 19499,
        "lines": 2,
        "start": 2,
        "has_more": true,
        "filters": {
            "c": "Auto",
            "cb": "FIAT",
            "ps": "10.000",
            "pe": "20.000"
        },
        "ads": [
...

Parameters

Start with the required fields, then add optional filters only when your use case needs them.

Runnable path

This endpoint has no required query parameters.

40 optional filters available.

c integer Optional

Category id. 2 = Auto.

Example value 2
q string Optional

Free text search, e.g. panda.

Example value coffee shops
qso boolean Optional

Restrict the free text search to ad titles.

Example value true
cb string Optional

6-digit brand key from the makes endpoint, e.g. 000008 = FIAT.

Example value 000008
cm array Optional

Repeatable 6-digit model key from the models endpoint, e.g. 003415.

Example value ["example"]
t string Optional

s = In vendita, k = Cercasi, g, u, h.

Example value s
sort string Optional

datedesc, relevance, priceasc, pricedesc, yearasc, yeardesc, mileageasc, mileagedesc, hpasc, hpdesc, vlenasc or vlendesc.

Example value datedesc
ps integer Optional

Minimum price bucket in EUR from the filters endpoint.

Example value 10000
pe integer Optional

Maximum price bucket in EUR from the filters endpoint.

Example value 20000
ms integer Optional

Minimum mileage bucket in km from the filters endpoint.

Example value 10
me integer Optional

Maximum mileage bucket in km from the filters endpoint.

Example value 10
ys integer Optional

Minimum first-registration year.

Example value 10
ye integer Optional

Maximum first-registration year.

Example value 10
hps integer Optional

Minimum power in CV.

Example value 10
hpe integer Optional

Maximum power in CV.

Example value 10
eps integer Optional

Minimum power in kW.

Example value 10
epe integer Optional

Maximum power in kW.

Example value 10
fl array Optional

Repeatable fuel code: 1 petrol, 2 diesel, 3 lpg, 4 electric, 6 hybrid, 7 methane.

Example value ["example"]
gr integer Optional

1 manual, 2 automatic, 3 sequential, 4 other.

Example value 10
ct array Optional

Repeatable body code: 1 utilitaria, 2 berlina, 3 wagon, 4 minivan, 5 SUV, 6 cabrio, 7 coupé, 8 microcar.

Example value ["example"]
pl array Optional

Repeatable emission class 1-13 (13 = euro6e).

Example value ["example"]
cl array Optional

Repeatable color code 1-10.

Example value ["example"]
cvs array Optional

Repeatable condition: 1 usato, 2 km0, 3 nuovo.

Example value ["example"]
dr integer Optional

1 = 2/3, 2 = 4/5, 3 = 6/7.

Example value 10
ss integer Optional

Minimum seat count.

Example value 10
se integer Optional

Maximum seat count.

Example value 10
advt array Optional

Repeatable seller type: 0,2 = privato, 1 = rivenditore (dealer).

Example value ["example"]
eq array Optional

Repeatable equipment key from the filters endpoint.

Example value ["example"]
ic array Optional

Repeatable condition code 10-50 (subitopy).

Example value ["example"]
r integer Optional

Region key 1-20, e.g. 15 = Campania.

Example value 10
ci integer Optional

Province/city key from the geo taxonomy, e.g. 4 = Napoli.

Example value 10
to string Optional

6-digit ISTAT municipality code, e.g. 063049.

Example value example
ndo boolean Optional

Only listings for new drivers.

Example value true
urg boolean Optional

Only urgent listings.

Example value true
shp boolean Optional

Only shippable listings.

Example value true
vatd boolean Optional

Only VAT-deductible listings.

Example value true
qltsf boolean Optional

Only quality-certified listings.

Example value true
qsms array Optional

Repeatable quality seal key from the filters endpoint.

Example value ["example"]
lim integer Optional

Listings per page, 1-100. Defaults to 30.

Example value 2
start integer Optional

Zero-based result offset. The upstream caps at 10 000 and answers an empty result there.

Example value 0

Request Examples

PHP
<?php

$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => "https://scrappa.co/api/subito-motori/search?c=2&cb=000008&ps=10000&pe=20000&lim=2",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 30,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => [
        "x-api-key: YOUR_API_KEY_HERE"
    ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
    echo "cURL Error #:" . $err;
} else {
    echo $response;
}
PHP
<?php

use Illuminate\Support\Facades\Http;

$response = Http::timeout(30)
    ->withHeaders(['x-api-key' => 'YOUR_API_KEY_HERE'])
    ->get('https://scrappa.co/api/subito-motori/search?c=2&cb=000008&ps=10000&pe=20000&lim=2');

if ($response->successful()) {
    echo $response->body();
} else {
    echo "Error: " . $response->status();
}
JavaScript
const options = {
    method: 'GET',
    headers: {
        'x-api-key': 'YOUR_API_KEY_HERE'
    }
};

fetch('https://scrappa.co/api/subito-motori/search?c=2&cb=000008&ps=10000&pe=20000&lim=2', options)
    .then(response => {
        if (!response.ok) {
            throw new Error(`HTTP error! status: ${response.status}`);
        }
        return response.text();
    })
    .then(data => console.log(data))
    .catch(error => console.error('Error:', error));
JavaScript
const axios = require('axios');

const options = {
    method: 'GET',
    url: 'https://scrappa.co/api/subito-motori/search?c=2&cb=000008&ps=10000&pe=20000&lim=2',
    headers: {
        x-api-key: 'YOUR_API_KEY_HERE',
    }
};

try {
    const response = await axios(options);
    console.log(response.data);
} catch (error) {
    console.error('Error:', error.message);
}
Ruby
require 'net/http'
require 'uri'

uri = URI.parse("https://scrappa.co/api/subito-motori/search?c=2&cb=000008&ps=10000&pe=20000&lim=2")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == 'https'

request = Net::HTTP::Get.new(uri.request_uri)
request['x-api-key'] = 'YOUR_API_KEY_HERE'

begin
    response = http.request(request)
    puts response.body
rescue => e
    puts "Error: #{e.message}"
end
Python
import http.client
import json

conn = http.client.HTTPSConnection("scrappa.co")

headers = {
    'x-api-key': 'YOUR_API_KEY_HERE',
}

try:
    conn.request("GET", "/api/subito-motori/search?c=2&cb=000008&ps=10000&pe=20000&lim=2", headers=headers)
    res = conn.getresponse()
    data = res.read()
    print(data.decode("utf-8"))
except Exception as e:
    print(f"Error: {e}")
finally:
    conn.close()
Python
import requests

headers = {
    'x-api-key': 'YOUR_API_KEY_HERE',
}

try:
    response = requests.get('https://scrappa.co/api/subito-motori/search?c=2&cb=000008&ps=10000&pe=20000&lim=2', headers=headers)
    response.raise_for_status()
    print(response.text)
except requests.exceptions.RequestException as e:
    print(f"Error: {e}")
Java
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import java.io.IOException;

public class ApiExample {
    public static void main(String[] args) {
        OkHttpClient client = new OkHttpClient();

        Request request = new Request.Builder()
            .url("https://scrappa.co/api/subito-motori/search?c=2&cb=000008&ps=10000&pe=20000&lim=2")
        .addHeader("x-api-key", "YOUR_API_KEY_HERE")
            .build();

        try (Response response = client.newCall(request).execute()) {
            if (response.isSuccessful()) {
                System.out.println(response.body().string());
            } else {
                System.out.println("Error: " + response.code());
            }
        } catch (IOException e) {
            System.out.println("Error: " + e.getMessage());
        }
    }
}
Go
package main

import (
    "fmt"
    "net/http"
    "io/ioutil"
)

func main() {
    client := &http.Client{}
    req, err := http.NewRequest("GET", "https://scrappa.co/api/subito-motori/search?c=2&cb=000008&ps=10000&pe=20000&lim=2", nil)
    if err != nil {
        fmt.Println("Error creating request:", err)
        return
    }
    req.Header.Set("x-api-key", "YOUR_API_KEY_HERE")

    resp, err := client.Do(req)
    if err != nil {
        fmt.Println("Error making request:", err)
        return
    }
    defer resp.Body.Close()

    body, err := ioutil.ReadAll(resp.Body)
    if err != nil {
        fmt.Println("Error reading response:", err)
        return
    }

    fmt.Println(string(body))
}
Terminal
#!/bin/bash

curl -X GET \
    -H "x-api-key: YOUR_API_KEY_HERE" \
    "https://scrappa.co/api/subito-motori/search?c=2&cb=000008&ps=10000&pe=20000&lim=2"
C#
using System;
using System.Net.Http;
using System.Threading.Tasks;

class Program
{
    static async Task Main()
    {
        using var client = new HttpClient();
        client.DefaultRequestHeaders.Add("x-api-key", "YOUR_API_KEY_HERE");

        try
        {
            var response = await client.SendAsync(new HttpRequestMessage(HttpMethod.Get, "https://scrappa.co/api/subito-motori/search?c=2&cb=000008&ps=10000&pe=20000&lim=2"));
            var content = await response.Content.ReadAsStringAsync();
            Console.WriteLine(content);
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Error: {ex.Message}");
        }
    }
}
TypeScript
import axios from 'axios';

async function run(): Promise<void> {
    try {
        const response = await axios({
            method: 'GET',
            url: 'https://scrappa.co/api/subito-motori/search?c=2&cb=000008&ps=10000&pe=20000&lim=2',
            headers: {
        'x-api-key': 'YOUR_API_KEY_HERE',
            },
        });

        console.log(response.data);
    } catch (error) {
        console.error('Error:', error);
    }
}

void run();
RUST
use reqwest::Client;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let client = Client::new();

    let response = client
        .get("https://scrappa.co/api/subito-motori/search?c=2&cb=000008&ps=10000&pe=20000&lim=2")
        .header("x-api-key", "YOUR_API_KEY_HERE")
        .send()
        .await?;

    println!("{}", response.text().await?);

    Ok(())
}

Response Schema

Example response fields are illustrative; inspect the JSON before integrating.

Example response fields

Scan these fields before integrating.

success data
JSON Response
200 OK
{
    "success": true,
    "data": {
        "count_all": 19499,
        "lines": 2,
        "start": 2,
        "has_more": true,
        "filters": {
            "c": "Auto",
            "cb": "FIAT",
            "ps": "10.000",
            "pe": "20.000"
        },
        "ads": [
            {
                "urn": "id:ad:f1b5e9e8-8ea8-48ee-84a7-03e3b697e384:list:664168473",
                "title": "Fiat 500 cabrio Dolcevita",
                "price": {
                    "amount": 16500,
                    "currency": "EUR"
                },
                "vehicle": {
                    "make": {
                        "key": "000008",
                        "value": "FIAT"
                    }
                },
                "location": {
                    "region": {
                        "key": "2",
                        "value": "Piemonte"
                    }
                },
                "seller": {
                    "user_id": "101581240",
                    "is_dealer": false
                }
            }
        ],
        "meta": {
            "endpoint_family": "search"
        }
    }
}

Errors

Handle these documented responses before retrying or showing customer-facing failures.

Validation Error

A public parameter or range is invalid. This response is not billable.

Service Unavailable

The service could not obtain a complete result. This response is not billable.

Generate Code with AI

Copy a ready-made prompt with all the endpoint details, parameters, and example responses. Paste it into ChatGPT, Claude, or any AI assistant to instantly generate working code.

Try It Live

Test this endpoint in our interactive playground with real data.