Référence de l'API

points de terminaison

POSTCréer une analyse d'achatPOSTCréer une analyse d'arbitragePOSTCréer une analyse personnellePOSTCréer une analyse Cohost

RESSOURCES

Premiers pasAuthentificationCodes d'erreur

Documentation de l'API de données Airbnb

Bienvenue dans l'API BNBCalc. Cette documentation vous aide à intégrer l'analyse des propriétés de location à court terme dans votre application.

Utilisez l'API de données Airbnb BNBCalc pour obtenir des revenus de propriété, l'occupation, l'ADR, des listes comparables Airbnb actives, des percentiles, des indicateurs d'investissement et des URL de rapports hébergés pour des applications, des rapports, des souscriptions et des outils de gestion.


Premiers pas

Pour commencer à utiliser l'API de données Airbnb BNBCalc, vous devez :

1. Créez un compte BNBCalc ou connectez-vous à votre compte existant

2. Accédez aux paramètres de votre compte pour générer une clé API

3. Incluez votre clé API dans toutes les requêtes API en utilisant l'en-tête x-bnbcalc-api-key.

4. Commencez à faire des demandes pour accéder aux données et analyses immobilières.

Tous les points de terminaison de l'API utilisent HTTPS et renvoient des réponses JSON. Conservez les clés API sur votre serveur, pas dans le code du navigateur ou du client mobile. Les itinéraires API externes sont actuellement limités à 100 requêtes par seconde et utilisent des codes de réponse HTTP standard pour indiquer le succès ou l'échec.


Authentification

Toutes les requêtes API nécessitent une authentification à l'aide d'une clé API. Les clés API sont liées à votre compte BNBCalc, doivent être conservées côté serveur et ne doivent jamais être exposées dans le code frontend. Incluez votre clé API dans l'en-tête de la requête comme indiqué ci-dessous :

x-bnbcalc-api-key: YOUR_API_KEY

Vous pouvez générer des clés API en libre-service depuis la page de configuration de votre compte. Incluez l'en-tête x-bnbcalc-api-key dans chaque requête API pour vous authentifier.


POST/v1/external/analysis/create/buy

Créer une analyse d'achat

Créer une nouvelle analyse d'achat pour une propriété. Nécessite des détails sur la propriété, des informations sur l'emplacement et le prix d'achat.

Paramètres de Localisation (Conditionnel)

⚠️ Fournissez soit lat ET lng, soit fullAddress. Au moins une méthode est requise.

latnumberconditionnel

Coordonnée de latitude (doit être fournie avec lng si fullAddress n'est pas utilisée)(e.g., 27.7676)

lngnumberconditionnel

Coordonnée de longitude (doit être fournie avec lat si fullAddress n'est pas utilisée)(e.g., -82.6403)

fullAddressstringconditionnel

Adresse complète de la propriété (peut être utilisée à la place des coordonnées lat/lng)(e.g., 4935 2nd Avenue North, St. Petersburg, FL 33703)

Paramètres Requis

purchasePriceUSDnumberobligatoire

Prix d'achat en USD(e.g., 350000)

bedroomsnumberobligatoire

Nombre de chambres(e.g., 3)

bathroomsnumberobligatoire

Nombre de salles de bains(e.g., 2)

accomodatesnumberobligatoire

Nombre d'invités que la propriété peut accueillir(e.g., 6)

Paramètres Optionnels

monthlyRentUSDnumberoptionnel

Loyer mensuel attendu en USD pour une location à long terme(e.g., 2500)

interestRatePercentagenumberoptionnel

Pourcentage du taux d'intérêt (0-15)(e.g., 5.1)

squareFeetnumberoptionnel

Surface en pieds carrés de la propriété(e.g., 1500)

statestringoptionnel

Nom de l'État(e.g., Florida)

citystringoptionnel

Nom de la ville(e.g., St. Petersburg)

countystringoptionnel

Nom du comté(e.g., Pinellas County)

postalCodestringoptionnel

Code postal(e.g., 33703)

countrystringoptionnel

Nom du pays(e.g., United States)

streetstringoptionnel

Nom de la rue(e.g., 2nd Avenue North)

streetNumberstringoptionnel

Numéro de rue(e.g., 4935)

unitstringoptionnel

Numéro d'unité/appartement, le cas échéant

Demande d'exemple

curl -X POST \ https://atlas.bnbcalc.com/v1/external/analysis/create/buy \ -H "x-bnbcalc-api-key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "lat": 27.7676, "lng": -82.6403, "bedrooms": 3, "bathrooms": 2, "accomodates": 6, "purchasePriceUSD": 400000 }'

Réponse d'exemple

{ "success": true, "data": { "_id": "000000000000000000000000", "url": "https://www.bnbcalc.com/analysis/example-property/000000000000000000000000", "currency": "USD", "ratePerNightUSD": 364.73770491803276, "occupancyRatePercentage": 48, "bedrooms": 4, "bathrooms": 4, "commonSpaces": 1, "accomodates": 12, "fullAddress": "4935 2nd Avenue North, St. Petersburg, FL 33703", "location": { "type": "Point", "coordinates": [ -82.6403, 27.7676 ] }, "revenue": { "p25": 48210, "p50": 58440, "p75": 63944.76398163934, "p90": 74280, "avg": 60310 }, "adr": { "p25": 214, "p50": 288, "p75": 364.73770491803276, "p90": 431, "avg": 318 }, "occupancy": { "p25": 0.38, "p50": 0.44, "p75": 0.48, "p90": 0.56, "avg": 0.46 }, "quartiles": { "25th_percentile": { "average_daily_rate": 214, "occupancy_rate": 38, "revenue": 48210 }, "50th_percentile": { "average_daily_rate": 288, "occupancy_rate": 44, "revenue": 58440 }, "75th_percentile": { "average_daily_rate": 364.73770491803276, "occupancy_rate": 48, "revenue": 63944.76398163934 }, "90th_percentile": { "average_daily_rate": 431, "occupancy_rate": 56, "revenue": 74280 } }, "comparables": [ { "airbnbId": "12345678", "name": "Modern 4BR near downtown", "listingUrl": "https://www.airbnb.com/rooms/12345678", "bedrooms": 4, "bathrooms": 3, "accommodates": 10, "annualRevenueUSD": 68420, "occupancyRatePercentage": 52, "averageDailyRateUSD": 361, "distanceMiles": 0.4 } ], "downPaymentPercentage": 20, "mortgageLength": 30, "yearsRemainingOnMortgage": 30, "interestRatePercentage": 4, "propertyTaxPercentage": 0.75, "monthlyRevenueUSD": 5328.730331803278, "monthlyExpensesUSD": 1474.1603364983607, "monthlyTaxesUSD": 250, "yearOneRevenueUSD": 63944.76398163934, "yearOneOperatingIncomeUSD": 46254.83994365901, "yearOneMorgageAndTaxesUSD": 21324, "yearOneCashFlowUSD": 24930.83994365901, "yearOneCashOnCashPercentage": 24.86817214984141, "yearOneCapRatePercentage": 11.563709985914752, "yearOneReturnOnInvestmentPercentage": 63.78402823049849, "yearOnePrincipalPaydownUSD": 85635.31658640636, "yearOneAppreciationUSD": 12000, "totalCashInvestment": 100252, "ltrPerMonthUSD": 1500, "ltrMonthlyExpensesPercentage": 10 } }

POST/v1/external/analysis/create/arb

Créer une analyse d'arbitrage

Créez une nouvelle analyse d'arbitrage (arbitrage locatif) pour un bien immobilier. Utilise les mêmes champs obligatoires que l'analyse d'achat.

Paramètres de Localisation (Conditionnel)

⚠️ Fournissez soit lat ET lng, soit fullAddress. Au moins une méthode est requise.

latnumberconditionnel

Coordonnée de latitude (doit être fournie avec lng si fullAddress n'est pas utilisée)(e.g., 27.7676)

lngnumberconditionnel

Coordonnée de longitude (doit être fournie avec lat si fullAddress n'est pas utilisée)(e.g., -82.6403)

fullAddressstringconditionnel

Adresse complète de la propriété (peut être utilisée à la place des coordonnées lat/lng)(e.g., 4935 2nd Avenue North, St. Petersburg, FL 33703)

Paramètres Requis

monthlyRentUSDnumberobligatoire

Loyer mensuel attendu en USD pour une location à long terme(e.g., 2500)

bedroomsnumberobligatoire

Nombre de chambres(e.g., 3)

bathroomsnumberobligatoire

Nombre de salles de bains(e.g., 2)

accomodatesnumberobligatoire

Nombre d'invités que la propriété peut accueillir(e.g., 6)

Paramètres Optionnels

purchasePriceUSDnumberoptionnel

Prix d'achat en USD(e.g., 350000)

squareFeetnumberoptionnel

Surface en pieds carrés de la propriété(e.g., 1500)

statestringoptionnel

Nom de l'État(e.g., Florida)

citystringoptionnel

Nom de la ville(e.g., St. Petersburg)

countystringoptionnel

Nom du comté(e.g., Pinellas County)

postalCodestringoptionnel

Code postal(e.g., 33703)

countrystringoptionnel

Nom du pays(e.g., United States)

streetstringoptionnel

Nom de la rue(e.g., 2nd Avenue North)

streetNumberstringoptionnel

Numéro de rue(e.g., 4935)

unitstringoptionnel

Numéro d'unité/appartement, le cas échéant

Demande d'exemple

curl -X POST \ https://atlas.bnbcalc.com/v1/external/analysis/create/arb \ -H "x-bnbcalc-api-key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "lat": 27.7676, "lng": -82.6403, "bedrooms": 3, "bathrooms": 2, "accomodates": 6, "monthlyRentUSD": 2000 }'

Réponse d'exemple

{ "success": true, "data": { "_id": "000000000000000000000000", "url": "https://www.bnbcalc.com/analysis/example-property/000000000000000000000000", "currency": "USD", "ratePerNightUSD": 364.73770491803276, "occupancyRatePercentage": 48, "bedrooms": 4, "bathrooms": 4, "commonSpaces": 1, "accomodates": 12, "fullAddress": "4935 2nd Avenue North, St. Petersburg, FL 33703", "location": { "type": "Point", "coordinates": [ -82.6403, 27.7676 ] }, "revenue": { "p25": 48210, "p50": 58440, "p75": 63944.76398163934, "p90": 74280, "avg": 60310 }, "adr": { "p25": 214, "p50": 288, "p75": 364.73770491803276, "p90": 431, "avg": 318 }, "occupancy": { "p25": 0.38, "p50": 0.44, "p75": 0.48, "p90": 0.56, "avg": 0.46 }, "quartiles": { "25th_percentile": { "average_daily_rate": 214, "occupancy_rate": 38, "revenue": 48210 }, "50th_percentile": { "average_daily_rate": 288, "occupancy_rate": 44, "revenue": 58440 }, "75th_percentile": { "average_daily_rate": 364.73770491803276, "occupancy_rate": 48, "revenue": 63944.76398163934 }, "90th_percentile": { "average_daily_rate": 431, "occupancy_rate": 56, "revenue": 74280 } }, "comparables": [ { "airbnbId": "12345678", "name": "Modern 4BR near downtown", "listingUrl": "https://www.airbnb.com/rooms/12345678", "bedrooms": 4, "bathrooms": 3, "accommodates": 10, "annualRevenueUSD": 68420, "occupancyRatePercentage": 52, "averageDailyRateUSD": 361, "distanceMiles": 0.4 } ], "monthlyRentUSD": 2000, "yearOneRentUSD": 24000, "monthlyRevenueUSD": 13432.825977452352, "monthlyExpensesUSD": 2263.6108575197586, "yearOneRevenueUSD": 161193.91172942822, "yearOneOperatingIncomeUSD": 134030.58143919113, "yearOneCashFlowUSD": 110030.58143919116, "yearOneCashOnCashPercentage": 1317.415965507557, "totalCashInvestment": 8352 } }

POST/v1/external/analysis/create/owned

Créer une analyse personnelle

Créer une nouvelle analyse pour un bien immobilier détenu. Utilise les mêmes champs obligatoires que l'analyse d'achat.

Paramètres de Localisation (Conditionnel)

⚠️ Fournissez soit lat ET lng, soit fullAddress. Au moins une méthode est requise.

latnumberconditionnel

Coordonnée de latitude (doit être fournie avec lng si fullAddress n'est pas utilisée)(e.g., 27.7676)

lngnumberconditionnel

Coordonnée de longitude (doit être fournie avec lat si fullAddress n'est pas utilisée)(e.g., -82.6403)

fullAddressstringconditionnel

Adresse complète de la propriété (peut être utilisée à la place des coordonnées lat/lng)(e.g., 4935 2nd Avenue North, St. Petersburg, FL 33703)

Paramètres Requis

purchasePriceUSDnumberobligatoire

Prix d'achat en USD(e.g., 350000)

downPaymentPercentagenumberobligatoire

Pourcentage de paiement initial (0-40)(e.g., 20)

interestRatePercentagenumberobligatoire

Pourcentage du taux d'intérêt (0-15)(e.g., 5.1)

mortgageLengthnumberobligatoire

Durée du prêt hypothécaire en années (0-30)(e.g., 30)

yearsRemainingOnMortgagenumberobligatoire

Années restantes sur l'hypothèque (Ne peut pas dépasser la durée de l'hypothèque)

bedroomsnumberobligatoire

Nombre de chambres(e.g., 3)

bathroomsnumberobligatoire

Nombre de salles de bains(e.g., 2)

accomodatesnumberobligatoire

Nombre d'invités que la propriété peut accueillir(e.g., 6)

Paramètres Optionnels

monthlyRentUSDnumberoptionnel

Loyer mensuel attendu en USD pour une location à long terme(e.g., 2500)

squareFeetnumberoptionnel

Surface en pieds carrés de la propriété(e.g., 1500)

statestringoptionnel

Nom de l'État(e.g., Florida)

citystringoptionnel

Nom de la ville(e.g., St. Petersburg)

countystringoptionnel

Nom du comté(e.g., Pinellas County)

postalCodestringoptionnel

Code postal(e.g., 33703)

countrystringoptionnel

Nom du pays(e.g., United States)

streetstringoptionnel

Nom de la rue(e.g., 2nd Avenue North)

streetNumberstringoptionnel

Numéro de rue(e.g., 4935)

unitstringoptionnel

Numéro d'unité/appartement, le cas échéant

Demande d'exemple

curl -X POST \ https://atlas.bnbcalc.com/v1/external/analysis/create/owned \ -H "x-bnbcalc-api-key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "lat": 27.7676, "lng": -82.6403, "bedrooms": 3, "bathrooms": 2, "accomodates": 6, "purchasePriceUSD": 350000, "downPaymentPercentage": 20, "interestRatePercentage": 5.1, "mortgageLength": 30, "yearsRemainingOnMortgage": 30 }'

Réponse d'exemple

{ "success": true, "data": { "_id": "000000000000000000000000", "url": "https://www.bnbcalc.com/analysis/example-property/000000000000000000000000", "currency": "USD", "ratePerNightUSD": 364.73770491803276, "occupancyRatePercentage": 48, "bedrooms": 4, "bathrooms": 4, "commonSpaces": 1, "accomodates": 12, "fullAddress": "4935 2nd Avenue North, St. Petersburg, FL 33703", "location": { "type": "Point", "coordinates": [ -82.6403, 27.7676 ] }, "revenue": { "p25": 48210, "p50": 58440, "p75": 63944.76398163934, "p90": 74280, "avg": 60310 }, "adr": { "p25": 214, "p50": 288, "p75": 364.73770491803276, "p90": 431, "avg": 318 }, "occupancy": { "p25": 0.38, "p50": 0.44, "p75": 0.48, "p90": 0.56, "avg": 0.46 }, "quartiles": { "25th_percentile": { "average_daily_rate": 214, "occupancy_rate": 38, "revenue": 48210 }, "50th_percentile": { "average_daily_rate": 288, "occupancy_rate": 44, "revenue": 58440 }, "75th_percentile": { "average_daily_rate": 364.73770491803276, "occupancy_rate": 48, "revenue": 63944.76398163934 }, "90th_percentile": { "average_daily_rate": 431, "occupancy_rate": 56, "revenue": 74280 } }, "comparables": [ { "airbnbId": "12345678", "name": "Modern 4BR near downtown", "listingUrl": "https://www.airbnb.com/rooms/12345678", "bedrooms": 4, "bathrooms": 3, "accommodates": 10, "annualRevenueUSD": 68420, "occupancyRatePercentage": 52, "averageDailyRateUSD": 361, "distanceMiles": 0.4 } ], "downPaymentPercentage": 20, "mortgageLength": 30, "yearsRemainingOnMortgage": 30, "interestRatePercentage": 5.1, "propertyTaxPercentage": 0.75, "monthlyRevenueUSD": 5328.730331803278, "monthlyExpensesUSD": 1474.1603364983607, "monthlyTaxesUSD": 250, "yearOneRevenueUSD": 63944.76398163934, "yearOneOperatingIncomeUSD": 46254.83994365901, "yearOneMorgageAndTaxesUSD": 21324, "yearOneCashFlowUSD": 24930.83994365901, "yearOneCashOnCashPercentage": 24.86817214984141, "yearOneCapRatePercentage": 11.563709985914752, "yearOneReturnOnInvestmentPercentage": 63.78402823049849, "yearOnePrincipalPaydownUSD": 85635.31658640636, "yearOneAppreciationUSD": 12000, "totalCashInvestment": 100252, "ltrPerMonthUSD": 1500, "ltrMonthlyExpensesPercentage": 10 } }

POST/v1/external/analysis/create/cohost

Créer une analyse Cohost

Créer l'historique des co-hôtes

Paramètres de Localisation (Conditionnel)

⚠️ Fournissez soit lat ET lng, soit fullAddress. Au moins une méthode est requise.

latnumberconditionnel

Coordonnée de latitude (doit être fournie avec lng si fullAddress n'est pas utilisée)(e.g., 27.7676)

lngnumberconditionnel

Coordonnée de longitude (doit être fournie avec lat si fullAddress n'est pas utilisée)(e.g., -82.6403)

fullAddressstringconditionnel

Adresse complète de la propriété (peut être utilisée à la place des coordonnées lat/lng)(e.g., 4935 2nd Avenue North, St. Petersburg, FL 33703)

Paramètres Requis

bedroomsnumberobligatoire

Nombre de chambres(e.g., 3)

bathroomsnumberobligatoire

Nombre de salles de bains(e.g., 2)

accomodatesnumberobligatoire

Nombre d'invités que la propriété peut accueillir(e.g., 6)

Paramètres Optionnels

cohostCommissionPercentagenumberoptionnel

Pourcentage de commission du co-hôte(e.g., 10)

squareFeetnumberoptionnel

Surface en pieds carrés de la propriété(e.g., 1500)

statestringoptionnel

Nom de l'État(e.g., Florida)

citystringoptionnel

Nom de la ville(e.g., St. Petersburg)

countystringoptionnel

Nom du comté(e.g., Pinellas County)

postalCodestringoptionnel

Code postal(e.g., 33703)

countrystringoptionnel

Nom du pays(e.g., United States)

streetstringoptionnel

Nom de la rue(e.g., 2nd Avenue North)

streetNumberstringoptionnel

Numéro de rue(e.g., 4935)

unitstringoptionnel

Numéro d'unité/appartement, le cas échéant

Demande d'exemple

curl -X POST \ https://atlas.bnbcalc.com/v1/external/analysis/create/cohost \ -H "x-bnbcalc-api-key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "lat": 27.7676, "lng": -82.6403, "bedrooms": 3, "bathrooms": 2, "accomodates": 6 }'

Réponse d'exemple

{ "success": true, "data": { "_id": "000000000000000000000000", "url": "https://www.bnbcalc.com/analysis/example-property/000000000000000000000000", "currency": "USD", "ratePerNightUSD": 364.73770491803276, "occupancyRatePercentage": 48, "bedrooms": 4, "bathrooms": 4, "commonSpaces": 1, "accomodates": 12, "fullAddress": "4935 2nd Avenue North, St. Petersburg, FL 33703", "location": { "type": "Point", "coordinates": [ -82.6403, 27.7676 ] }, "revenue": { "p25": 48210, "p50": 58440, "p75": 63944.76398163934, "p90": 74280, "avg": 60310 }, "adr": { "p25": 214, "p50": 288, "p75": 364.73770491803276, "p90": 431, "avg": 318 }, "occupancy": { "p25": 0.38, "p50": 0.44, "p75": 0.48, "p90": 0.56, "avg": 0.46 }, "quartiles": { "25th_percentile": { "average_daily_rate": 214, "occupancy_rate": 38, "revenue": 48210 }, "50th_percentile": { "average_daily_rate": 288, "occupancy_rate": 44, "revenue": 58440 }, "75th_percentile": { "average_daily_rate": 364.73770491803276, "occupancy_rate": 48, "revenue": 63944.76398163934 }, "90th_percentile": { "average_daily_rate": 431, "occupancy_rate": 56, "revenue": 74280 } }, "comparables": [ { "airbnbId": "12345678", "name": "Modern 4BR near downtown", "listingUrl": "https://www.airbnb.com/rooms/12345678", "bedrooms": 4, "bathrooms": 3, "accommodates": 10, "annualRevenueUSD": 68420, "occupancyRatePercentage": 52, "averageDailyRateUSD": 361, "distanceMiles": 0.4 } ], "yearOneRevenueUSD": 161193.91172942825, "yearOneCohostReturnUSD": 116059.61644518835, "yearOneCohostCommissionUSD": 32238.78234588565 } }

Codes d'erreur

L'API BNBCalc utilise des codes d'état de réponse HTTP standard pour indiquer le succès ou l'échec des requêtes API. Les rapports créés avec succès renvoient des codes 2xx, tandis que les erreurs renvoient des codes 4xx ou 5xx avec des informations d'erreur supplémentaires dans le corps de la réponse. Vous serez facturé uniquement pour les rapports créés avec succès.

200

Succès


400

Mauvaise demande - Paramètres invalides


401

Non autorisé - Clé API invalide


429

Trop de requêtes - limite d'itinéraire API externe dépassée


500

Erreur interne du serveur