API Airbnb Ricerca
Stato di salute dell'API
- Operatività nelle ultime 24 ore
- Normale
- Buono / normale
- Disponibile
- Limitato
- Quasi del tutto inattivo
Ultime 24 ore
Ultimi 30 giorni
Trova alloggi Airbnb per una destinazione indicata in keyword, con filtri facoltativi per valuta, lingua e fascia di prezzo. Ogni riga riporta tipo di struttura, numero di ospiti, prezzo e valutazione così come vengono mostrati, ma non conferma la disponibilità per date specifiche.
Invia POST https://api.everyinfra.com/api/v1/social con platform impostato su airbnb e action impostato su search. Prezzo $1.39 per 1.000 richieste ($0.001389 per chiamata). Le chiamate non riuscite e i risultati vuoti non vengono addebitati. Sincrona. Per i job più lenti, aggiungi "mode": "async" al corpo della richiesta, recupera il job_id ed esegui il polling.
Prompt per l'AI
#Aiutami a scrivere uno script di raccolta dei dati con l'endpoint Airbnb Ricerca di EveryInfra (airbnb/search).
Come funziona l'endpoint:
- Richiesta: POST https://api.everyinfra.com/api/v1/social con l'header Authorization: Bearer <chiave API>. Leggi la chiave dalla variabile d'ambiente EVERYINFRA_API_KEY e non scriverla mai direttamente nel codice.
- Nel corpo della richiesta imposta platform su airbnb e action su search, e inserisci i parametri in params.
- Parametri obbligatori:
- keyword: Specifica la località, la città, la regione o il nome della destinazione (ad esempio Tokyo) per l'azione search. Passa il nome di un luogo, non lo username di un host o l'ID di un alloggio.
- Parametri facoltativi:
- currency: Specifica la valuta in cui visualizzare i prezzi degli annunci nei risultati di ricerca di Airbnb (predefinita USD; vedi i valori consentiti). (valori consentiti: aed / aud / bgn / brl / cad / chf / clp / cny)
- lang: Specifica la combinazione di lingua e regione con codici compatti come enus per en-US, zhcn per zh-CN o jajp per ja-JP. (valori consentiti: arxx / azaz / bgbg / bsba / caes / cscz / dadk / deat)
- locale: Imposta la lingua e l'area di visualizzazione delle pagine di Airbnb (predefinita en-US), ad esempio en-US o zh-CN. Non passare locale insieme a lang: lang ha la precedenza e sovrascrive la lingua selezionata.
- max_price: Imposta il filtro sul prezzo massimo dell'alloggio come valore numerico. Deve essere maggiore o uguale a min_price.
- min_price: Imposta il filtro sul prezzo minimo dell'alloggio come valore numerico, insieme a max_price. Questo parametro filtra i risultati di ricerca degli annunci e non imposta un limite all'uso dell'API.
- limit: Numero massimo di righe da restituire in questa chiamata: un intero da 1 a 100. Se lo ometti, viene applicato il valore predefinito; una chiamata può restituire meno righe. (predefinito: 20)
- Restituisce un elenco di record. Campi principali di ogni record: id, url, title, text, property_type, person_capacity, price, rating, rating_scale, review_count, lat, lng; 18 campi in totale, elenco completo su https://api.everyinfra.com/api/v1/social/catalog?platform=airbnb.
- Esempio di corpo della richiesta:
{
"platform": "airbnb",
"action": "search",
"params": {
"keyword": "Tokyo"
}
}
- Prezzo: $1.39 per 1.000 richieste; le richieste non riuscite e i risultati vuoti non vengono addebitati.
- Per decine o centinaia di target, aggiungi "mode": "async" al corpo: ricevi subito un job_id ed esegui il polling su GET https://api.everyinfra.com/api/v1/jobs/{job_id} per ottenere il risultato.
- In caso di 422, correggi la richiesta usando i nomi dei parametri e i valori consentiti suggeriti nell'errore; in caso di 429 o 503, attendi il tempo indicato da Retry-After e riprova.
Prima di scrivere il codice, chiedimi quali target mi servono, quanti, quali campi e quale formato di output voglio; poi conferma con me il piano e il costo indicativo.Parametri della richiesta
#| Nome | Posizione | Tipo | Obbligatorio | Predefinito | Descrizione |
|---|---|---|---|---|---|
Authorization | header | string | Sì | - | Bearer seguito dalla tua chiave API. Creala nella console; non inserirla mai in un URL o in un repository di codice. |
platform | body | string | Sì | airbnb | Identificativo della piattaforma, valore fisso. |
action | body | string | Sì | search | Identificativo della funzionalità, valore fisso. |
keyword | body.params | string | Sì | - | Specifica la località, la città, la regione o il nome della destinazione (ad esempio Tokyo) per l'azione search. Passa il nome di un luogo, non lo username di un host o l'ID di un alloggio. |
currency | body.params | string (enum) | No | - | Specifica la valuta in cui visualizzare i prezzi degli annunci nei risultati di ricerca di Airbnb (predefinita USD; vedi i valori consentiti). Questa impostazione cambia la valuta in cui sono espressi i prezzi degli alloggi, ma non modifica l'addebito delle richieste API di EveryInfra né la valuta del portafoglio.Valori consentitiaedaudbgnbrlcadchfclpcnycopcrcczkdkkegpeurgbpghshkdhrkhufidrilsinrjpykeskrwkztmadmxnmyrnoknzdpenphpplnqarronsarseksgdthbtrytwduahugxusduyuvndzar |
lang | body.params | string (enum) | No | - | Specifica la combinazione di lingua e regione con codici compatti come enus per en-US, zhcn per zh-CN o jajp per ja-JP. Passa esattamente uno dei valori consentiti elencati, non codici di lingua generici di due lettere come en.Valori consentitiarxxazazbgbgbsbacaescsczdadkdeatdechdededeluelgrenaeenauencaengbengyenieeninennzensgenuses419esaresboesbzesclescoescresecesesesgteshnesmxesniespaespeespyessvesusesveeteefififrbefrcafrchfrfrfrlugaieheilhiinhrhrhuhuhyamididisisitchititjajpkagekokrltltlvlvmkmkmsmymtmtnlbenlnlnonoplplptbrptptrororuruskskslsisqalsrmesrrssvseswxxththtlphtrtrukuavivnxhzazhcnzhhkzhtwzhtwuszhuszuza |
locale | body.params | string | No | - | Imposta la lingua e l'area di visualizzazione delle pagine di Airbnb (predefinita en-US), ad esempio en-US o zh-CN. Non passare locale insieme a lang: lang ha la precedenza e sovrascrive la lingua selezionata. Questo parametro non filtra le recensioni in base alla nazionalità di chi le scrive. |
max_price | body.params | number | No | - | Imposta il filtro sul prezzo massimo dell'alloggio come valore numerico. Deve essere maggiore o uguale a min_price. Serve a filtrare i risultati di ricerca, non a limitare il costo delle singole richieste API o il budget complessivo per l'alloggio. Il filtro usa numeri interi: i decimali vengono arrotondati per eccesso (145.98 diventa 146). |
min_price | body.params | number | No | - | Imposta il filtro sul prezzo minimo dell'alloggio come valore numerico, insieme a max_price. Questo parametro filtra i risultati di ricerca degli annunci e non imposta un limite all'uso dell'API. Il filtro usa numeri interi: i decimali vengono arrotondati per difetto (39.81 diventa 39). |
limit | body.params | integer (1–100) | No | 20 | Numero massimo di righe da restituire in questa chiamata: un intero da 1 a 100. Se lo ometti, viene applicato il valore predefinito; una chiamata può restituire meno righe. I valori più alti restituiscono 422 prima di qualsiasi addebito. |
Esempi di codice
#curl -X POST 'https://api.everyinfra.com/api/v1/social' \
-H "Authorization: Bearer $EVERYINFRA_API_KEY" \
-H 'Content-Type: application/json' \
--data-raw '{
"platform": "airbnb",
"action": "search",
"params": {
"keyword": "Tokyo"
}
}'Definizione OpenAPI (JSON)Gli esempi leggono la chiave dalla variabile d'ambiente EVERYINFRA_API_KEY; il codice copiato non contiene mai la tua chiave.
Esempio di risposta
#{ "id": "req_…", "platform": "airbnb", "action": "search", "results": [ { "id": "•••", "url": "https://www.airbnb.com/rooms/1746823474981624114?locale=en-US¤cy=USD&check_in=2026-10-12&check_out=2026-10-17", "title": "9-minute walk to Ryogoku Station | Spacious 40㎡ with WiFi | Maximum 5 people, 3 beds | Sky Tree area | AS7 Building", "text": "AS7 BuildingIt is a spacious and beautiful 40 ㎡ room!It is a fully private rental with a kitchen, separate bath and toilet, and no common areas, so you can enjoy a comfortable stay in a private space ♪It can accommodate up to 5 guests, and there are 3 beds.9 minutes on foot from …", "property_type": "Entire rental unit", "person_capacity": 5, "rating": 5, "review_count": 9, "lat": 35.6927, "lng": 139.7923, "location": "Sumida-ku, Tokyo Prefecture, Japan", "host_name": "Hiro", "amenities": [ "Location features", "Services", "Bathroom" ], "image_url": "https://a0.muscache.com/im/pictures/hosting/Hosting-1746823474981624114/original/ab7ce007-da59-4bc8-821e-39b54b342cb5.png", "check_in": "2026-10-12", "check_out": "2026-10-17", "platform": "airbnb", "rating_scale": 5 }, { "id": "•••", "url": "https://www.airbnb.com/rooms/1748346102404796338?locale=en-US¤cy=USD&check_in=2026-10-04&check_out=2026-10-09", "title": "About a 30-minute drive to Asakusa, Skytree, and Disneyland.About 60 minutes drive from Narita airport.One free parking space.", "text": "One free parking space (one for each room).About a 30-minute drive to Asakusa, Skytree, and Disneyland.About 60 minutes drive from Narita airport.There are two beautiful, separate 2LDK rooms on the second floor (Rooms 201 and 202).If you book 2 rooms at the same time, they can ac…", "property_type": "Entire rental unit", "person_capacity": 4, "rating": 5, "review_count": 66, "lat": 35.7698, "lng": 139.8862, "location": "Matsudo, Chiba, Japan", "host_name": "守道", "amenities": [ "Location features", "Parking and facilities", "Services" ], "image_url": "https://a0.muscache.com/im/pictures/hosting/Hosting-1748346102404796338/original/69b19373-9040-43b8-910f-1730c548e81c.jpeg", "check_in": "2026-10-04", "check_out": "2026-10-09", "platform": "airbnb", "rating_scale": 5 } ], "count": 20, "billing": { "charged": …, "charged_usd": …, "balance_after_usd": …, … }, "quota": { … }}
Campi della risposta
#I dati di business si trovano in results. La tabella elenca i campi che un record può contenere; i valori che la piattaforma non mostra non vengono mai inventati.
| Campo | Significato |
|---|---|
id | ID univoco del record sulla piattaforma. È univoco solo all'interno di una piattaforma; gli ID possono ripetersi tra piattaforme diverse. |
url | Link al record sulla piattaforma. |
title | Titolo. null quando la piattaforma non prevede titoli (ad esempio post di solo testo). |
text | Testo del contenuto senza HTML, restituito per intero e mai troncato (su alcune piattaforme i risultati degli elenchi contengono solo un estratto; lo indicano le note sui campi della piattaforma). |
property_type | Mantiene il significato attribuito dalla piattaforma |
person_capacity | Mantiene il significato attribuito dalla piattaforma |
price | Prezzo come numero senza simbolo di valuta; vedi currency. |
rating | Valutazione. La scala varia in base alla piattaforma: rating_scale nella stessa riga indica il valore massimo (di solito 5; Booking, Douban, iQIYI e NAVER usano 10). Converti con rating_scale prima di confrontare piattaforme diverse, altrimenti il confronto può risultare invertito. |
rating_scale | Valore massimo di rating nella stessa riga: 5 per le scale a cinque stelle, 10 per quelle a dieci punti. Presente solo se la riga ha una valutazione. |
review_count | Numero di recensioni, per le funzionalità relative a prodotti e attività. null significa non reso noto, non 0. |
lat | Mantiene il significato attribuito dalla piattaforma |
lng | Mantiene il significato attribuito dalla piattaforma |
location | Descrizione della località passata così com'è; il formato varia in base alla piattaforma. |
host_name | Mantiene il significato attribuito dalla piattaforma |
amenities | Mantiene il significato attribuito dalla piattaforma |
image_url | Link all'immagine. Le funzionalità con più immagini possono restituire un array image_urls. |
check_in | Mantiene il significato attribuito dalla piattaforma |
check_out | Mantiene il significato attribuito dalla piattaforma |
platform | Identificativo della piattaforma di origine, uguale a platform nella richiesta (ad esempio xiaohongshu, tiktok). |
Errori e addebiti
#- 401
- Chiave mancante o non valida.
- 402
- Saldo insufficiente. Effettua prima una ricarica.
- 422
- Nome o valore del parametro non valido. Correggilo seguendo i suggerimenti dell'errore. Nessun addebito.
- 429
- Raggiunto il limite di richieste al minuto. Attendi il tempo indicato da Retry-After, poi riprova.
- 503
- Impossibile completare. L'importo trattenuto torna sul tuo saldo. Se l'esito è incerto, verificalo prima di riprovare.
- Risposta 200 vuota
- Nessun dato. Nessun addebito.