1. Why You Cannot Sign Up for an Official Airbnb Search API Key
Unlike Stripe or GitHub, Airbnb operates a closed partner program limited to large property-management software (PMS) vendors syncing host calendars.
| Capability | PinData API (/v1/stays/*) | Official Partner API | Enterprise STR Data Suites |
|---|---|---|---|
| Self-serve API key in 3 seconds | Yes (12,000 Free Credits) | No (Closed partner application) | Sales contract ($299–$999/mo) |
| Live check-in / check-out pricing | Yes (/v1/stays/search) | Partners only | Historical estimates only |
| HD interior photo galleries + Hex swatches | Included on every stay | Restricted | Rarely included |
| City-wide market listing benchmarks | Yes (/v1/stays/market) | No | Yes |
| Destination & neighborhood autocomplete | Yes (/v1/stays/destinations) | No | Limited |
| Pay-As-You-Go starter option | $9 Indie Pack (never expires) | N/A | Annual lock-in |
2. Querying Live Boutique Stays, Nightly Rates & Coordinates
Combine /v1/stays/destinations autocomplete with /v1/stays/search for date-accurate nightly USD pricing, Superhost filtering, and map coordinates.
Search Paris Boutique Stays with Check-In/Out Dates
Retrieve live nightly rates, total USD stay price, guest ratings, coordinates, and interior photos in a single GET request.
curl "https://api.pindataapi.com/v1/stays/search?location=Paris&checkin=2026-12-14&checkout=2026-12-17&adults=2&limit=5" \
-H "x-api-key: pn_live_your_api_key"import requests
res = requests.get(
"https://api.pindataapi.com/v1/stays/search",
params={
"location": "Paris",
"checkin": "2026-12-14",
"checkout": "2026-12-17",
"adults": 2,
"limit": 5,
},
headers={"x-api-key": "pn_live_your_api_key"},
timeout=20,
)
for stay in res.json()["data"]["stays"]:
print(stay["name"], f"${stay['nightly_rate_usd']}/night", stay["rating"])const res = await fetch(
"https://api.pindataapi.com/v1/stays/search?location=Paris&checkin=2026-12-14&checkout=2026-12-17&adults=2&limit=5",
{ headers: { "x-api-key": process.env.PINDATA_API_KEY } }
);
const { data } = await res.json();
console.log(data.stays);{
"code": 0,
"provider": "https://pindataapi.com",
"status": "ok",
"data": {
"location": "Paris",
"checkin": "2026-12-14",
"checkout": "2026-12-17",
"adults": 2,
"count": 3,
"stays": [
{
"stay_id": "1333842490138337108",
"name": "Bed and breakfast near the Jardin des Plantes",
"city": "Paris",
"lat": 48.8442,
"lng": 2.3537,
"nightly_rate_usd": 333,
"rating": 4.8,
"reviews_count": 30,
"is_superhost": true,
"dominant_color": "#B5838D",
"palette_hex": ["#B5838D", "#FFCDB2", "#DDBEA9", "#6D6875"]
}
]
},
"meta": { "endpoint": "/v1/stays/search", "credits_charged": 15 }
}Interactive Studio Workbench · GET /v1/stays/search
Verify real-time latency, credit math & JSON schema
Frequently Asked Questions
- Why does PinData API combine Pinterest visual discovery and Airbnb boutique stays in one gateway?
- Modern AI travel planners, interior hospitality studios, and lifestyle curation apps start with visual aesthetic inspiration (e.g., 'Parisian Haussmann apartment' or 'Kyoto machiya minimalist interior' pins) and immediately match that visual palette to real bookable boutique stays.
- What if check-in/check-out dates are omitted on /v1/stays/search?
- If checkin and checkout are omitted, our gateway automatically defaults to a future check-in window or seamlessly falls back to market supply so your UI never breaks.