Referencia de la API

puntos finales

POSTCrear análisis de compraPOSTCrear análisis de arbitrajePOSTCrear análisis propioPOSTCrear análisis de Cohost

RECURSOS

Primeros pasosAutenticaciónCódigos de error

Documentación de la API de datos de Airbnb

Bienvenido a la API de BNBCalc. Esta documentación te ayuda a integrar el análisis de propiedades de alquiler a corto plazo en tu aplicación.

Utiliza la API de datos de Airbnb de BNBCalc para obtener ingresos de propiedades, ocupación, ADR, listados comparables activos de Airbnb, percentiles, métricas de inversión y URLs de informes hospedados para aplicaciones, informes, underwriting y herramientas de gestión.


Primeros pasos

Para comenzar a utilizar la API de datos de Airbnb de BNBCalc, necesitarás:

1. Crea una cuenta en BNBCalc o inicia sesión en tu cuenta existente

2. Dirígete a la configuración de tu cuenta para generar una clave API

3. Incluye tu clave de API en todas las solicitudes de la API utilizando el encabezado x-bnbcalc-api-key.

4. Empieza a hacer solicitudes para acceder a los datos y análisis de propiedades.

Todos los endpoints de la API utilizan HTTPS y devuelven respuestas JSON. Mantén las claves de API en tu servidor, no en el código de cliente del navegador o móvil. Las rutas de API externas están actualmente limitadas a 100 solicitudes por segundo y utilizan códigos de respuesta HTTP estándar para indicar el éxito o fracaso.


Autenticación

Todas las solicitudes de API requieren autenticación usando una clave de API. Las claves de API están vinculadas a tu cuenta de BNBCalc, deben mantenerse del lado del servidor y nunca deben ser expuestas en el código del frontend. Incluye tu clave de API en el encabezado de la solicitud como se muestra a continuación:

x-bnbcalc-api-key: YOUR_API_KEY

Puedes generar claves de API de forma auto-servicio desde la página de configuración de tu cuenta. Incluye el encabezado x-bnbcalc-api-key en cada solicitud de API para autenticar.


POST/v1/external/analysis/create/buy

Crear análisis de compra

Crear un nuevo análisis de compra para una propiedad. Requiere detalles de la propiedad, información de la ubicación y precio de compra.

Parámetros de Ubicación (Condicional)

⚠️ Proporcione lat Y lng, O proporcione fullAddress. Se requiere al menos un método.

latnumbercondicional

Coordenada de latitud (debe proporcionarse con lng si no se usa fullAddress)(e.g., 27.7676)

lngnumbercondicional

Coordenada de longitud (debe proporcionarse con lat si no se usa fullAddress)(e.g., -82.6403)

fullAddressstringcondicional

Dirección completa de la propiedad (puede usarse en lugar de coordenadas lat/lng)(e.g., 4935 2nd Avenue North, St. Petersburg, FL 33703)

Parámetros Requeridos

purchasePriceUSDnumberrequerido

Precio de compra en USD(e.g., 350000)

bedroomsnumberrequerido

Número de dormitorios(e.g., 3)

bathroomsnumberrequerido

Número de baños(e.g., 2)

accomodatesnumberrequerido

Número de huéspedes que la propiedad puede alojar(e.g., 6)

Parámetros Opcionales

monthlyRentUSDnumberopcional

Alquiler mensual esperado en USD para alquiler a largo plazo(e.g., 2500)

interestRatePercentagenumberopcional

Porcentaje de la tasa de interés (0-15)(e.g., 5.1)

squareFeetnumberopcional

Superficie en pies cuadrados de la propiedad(e.g., 1500)

statestringopcional

Nombre del estado(e.g., Florida)

citystringopcional

Nombre de la ciudad(e.g., St. Petersburg)

countystringopcional

Nombre del condado(e.g., Pinellas County)

postalCodestringopcional

Código postal(e.g., 33703)

countrystringopcional

Nombre del país(e.g., United States)

streetstringopcional

Nombre de la calle(e.g., 2nd Avenue North)

streetNumberstringopcional

Número de casa(e.g., 4935)

unitstringopcional

Número de unidad o apartamento, si corresponde

Solicitud de ejemplo

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 }'

Respuesta de ejemplo

{ "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

Crear análisis de arbitraje

Crea un nuevo análisis de arbitraje (arbitraje de alquiler) para una propiedad. Utiliza los mismos campos obligatorios que el análisis de compra.

Parámetros de Ubicación (Condicional)

⚠️ Proporcione lat Y lng, O proporcione fullAddress. Se requiere al menos un método.

latnumbercondicional

Coordenada de latitud (debe proporcionarse con lng si no se usa fullAddress)(e.g., 27.7676)

lngnumbercondicional

Coordenada de longitud (debe proporcionarse con lat si no se usa fullAddress)(e.g., -82.6403)

fullAddressstringcondicional

Dirección completa de la propiedad (puede usarse en lugar de coordenadas lat/lng)(e.g., 4935 2nd Avenue North, St. Petersburg, FL 33703)

Parámetros Requeridos

monthlyRentUSDnumberrequerido

Alquiler mensual esperado en USD para alquiler a largo plazo(e.g., 2500)

bedroomsnumberrequerido

Número de dormitorios(e.g., 3)

bathroomsnumberrequerido

Número de baños(e.g., 2)

accomodatesnumberrequerido

Número de huéspedes que la propiedad puede alojar(e.g., 6)

Parámetros Opcionales

purchasePriceUSDnumberopcional

Precio de compra en USD(e.g., 350000)

squareFeetnumberopcional

Superficie en pies cuadrados de la propiedad(e.g., 1500)

statestringopcional

Nombre del estado(e.g., Florida)

citystringopcional

Nombre de la ciudad(e.g., St. Petersburg)

countystringopcional

Nombre del condado(e.g., Pinellas County)

postalCodestringopcional

Código postal(e.g., 33703)

countrystringopcional

Nombre del país(e.g., United States)

streetstringopcional

Nombre de la calle(e.g., 2nd Avenue North)

streetNumberstringopcional

Número de casa(e.g., 4935)

unitstringopcional

Número de unidad o apartamento, si corresponde

Solicitud de ejemplo

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 }'

Respuesta de ejemplo

{ "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

Crear análisis propio

Crear un nuevo análisis de propiedad propia. Utiliza los mismos campos obligatorios que el análisis de compra.

Parámetros de Ubicación (Condicional)

⚠️ Proporcione lat Y lng, O proporcione fullAddress. Se requiere al menos un método.

latnumbercondicional

Coordenada de latitud (debe proporcionarse con lng si no se usa fullAddress)(e.g., 27.7676)

lngnumbercondicional

Coordenada de longitud (debe proporcionarse con lat si no se usa fullAddress)(e.g., -82.6403)

fullAddressstringcondicional

Dirección completa de la propiedad (puede usarse en lugar de coordenadas lat/lng)(e.g., 4935 2nd Avenue North, St. Petersburg, FL 33703)

Parámetros Requeridos

purchasePriceUSDnumberrequerido

Precio de compra en USD(e.g., 350000)

downPaymentPercentagenumberrequerido

Porcentaje de pago inicial (0-40)(e.g., 20)

interestRatePercentagenumberrequerido

Porcentaje de la tasa de interés (0-15)(e.g., 5.1)

mortgageLengthnumberrequerido

Plazo de hipoteca en años (0-30)(e.g., 30)

yearsRemainingOnMortgagenumberrequerido

Años restantes de la hipoteca (No puede ser mayor que la duración de la hipoteca)

bedroomsnumberrequerido

Número de dormitorios(e.g., 3)

bathroomsnumberrequerido

Número de baños(e.g., 2)

accomodatesnumberrequerido

Número de huéspedes que la propiedad puede alojar(e.g., 6)

Parámetros Opcionales

monthlyRentUSDnumberopcional

Alquiler mensual esperado en USD para alquiler a largo plazo(e.g., 2500)

squareFeetnumberopcional

Superficie en pies cuadrados de la propiedad(e.g., 1500)

statestringopcional

Nombre del estado(e.g., Florida)

citystringopcional

Nombre de la ciudad(e.g., St. Petersburg)

countystringopcional

Nombre del condado(e.g., Pinellas County)

postalCodestringopcional

Código postal(e.g., 33703)

countrystringopcional

Nombre del país(e.g., United States)

streetstringopcional

Nombre de la calle(e.g., 2nd Avenue North)

streetNumberstringopcional

Número de casa(e.g., 4935)

unitstringopcional

Número de unidad o apartamento, si corresponde

Solicitud de ejemplo

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 }'

Respuesta de ejemplo

{ "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

Crear análisis de Cohost

Crear historial de coanfitriones

Parámetros de Ubicación (Condicional)

⚠️ Proporcione lat Y lng, O proporcione fullAddress. Se requiere al menos un método.

latnumbercondicional

Coordenada de latitud (debe proporcionarse con lng si no se usa fullAddress)(e.g., 27.7676)

lngnumbercondicional

Coordenada de longitud (debe proporcionarse con lat si no se usa fullAddress)(e.g., -82.6403)

fullAddressstringcondicional

Dirección completa de la propiedad (puede usarse en lugar de coordenadas lat/lng)(e.g., 4935 2nd Avenue North, St. Petersburg, FL 33703)

Parámetros Requeridos

bedroomsnumberrequerido

Número de dormitorios(e.g., 3)

bathroomsnumberrequerido

Número de baños(e.g., 2)

accomodatesnumberrequerido

Número de huéspedes que la propiedad puede alojar(e.g., 6)

Parámetros Opcionales

cohostCommissionPercentagenumberopcional

Porcentaje de comisión del coanfitrión(e.g., 10)

squareFeetnumberopcional

Superficie en pies cuadrados de la propiedad(e.g., 1500)

statestringopcional

Nombre del estado(e.g., Florida)

citystringopcional

Nombre de la ciudad(e.g., St. Petersburg)

countystringopcional

Nombre del condado(e.g., Pinellas County)

postalCodestringopcional

Código postal(e.g., 33703)

countrystringopcional

Nombre del país(e.g., United States)

streetstringopcional

Nombre de la calle(e.g., 2nd Avenue North)

streetNumberstringopcional

Número de casa(e.g., 4935)

unitstringopcional

Número de unidad o apartamento, si corresponde

Solicitud de ejemplo

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 }'

Respuesta de ejemplo

{ "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 } }

Códigos de error

La API de BNBCalc utiliza códigos de estado de respuesta HTTP estándar para indicar el éxito o fracaso de las solicitudes de API. Los informes creados con éxito devuelven códigos 2xx, mientras que los errores devuelven códigos 4xx o 5xx con información adicional sobre el error en el cuerpo de la respuesta. Solo se te cobrará por los informes creados con éxito.

200

Éxito


400

Solicitud incorrecta - Parámetros inválidos


401

No autorizado - Clave API inválida


429

Demasiadas Solicitudes - Límite de ruta de API externa excedido


500

Error interno del servidor