← Airbnb Interview Insights

Airbnb·Software Engineer·Onsite - System Design / Architecture·Senior

SeniorPrefer not to say
May 2026

Summary

Airbnb system design round, one big meaty question about split-stay search. The kind of problem that sounds manageable until you're actually in it and realize how many edge cases are hiding underneath.

Questions Asked (1)

Q1

Design an HTTP API endpoint that takes a date range and a set of Airbnb listings with their availability, and returns all valid two-listing split-stay combinations where one listing covers the first part of the range and another covers the rest, with no gaps and at most one move between listings.

System DesignAPI & IntegrationsAlgorithms & Data Structures
Author's notes

This question has a lot of layers and I underestimated how many until I was already mid-explanation.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Clarify requirements and constraints first, then outline the API contract (endpoint, request/response schema) and the core algorithm. The algorithm should iterate over possible split points, check availability for each listing segment, and collect valid combinations while ensuring no gaps and at most one move.

Pro tip: Discuss how to handle edge cases like same-day turnover, time zones, and partial availability, and mention that you'd optimize by pre-filtering listings that cover any part of the range to reduce the search space.

1. Clarify Requirements and Assumptions

Ask about date range inclusivity, time zone handling, definition of 'valid' (e.g., check-in/check-out times), and whether listings can be used more than once. Confirm that a split-stay means exactly two listings with one move.

2. Define API Contract

Specify the HTTP method (POST), endpoint (e.g., /split-stays), request body (date range and listings with availability intervals), and response format (list of valid combinations with listing IDs and split date).

3. Design Core Algorithm

For each possible split date between start and end, check if there exists a listing available from start to split and another from split to end. Ensure no overlap and no gap, and that the two listings are distinct.

4. Optimize and Handle Edge Cases

Pre-process listings to index availability, use efficient interval checks, and handle edge cases like same-day turnover, time zones, and empty results. Discuss time/space complexity.

5. Discuss Scalability and Extensions

Mention how to scale for many listings (e.g., using interval trees, caching), and potential extensions like supporting more than two listings or filtering by price.

Key Points to Mention

  • API design: RESTful endpoint, request/response schema, error handling
  • Algorithm: iterate over split points, check availability, ensure no gaps/overlaps
  • Data structures: interval trees or sorted lists for efficient availability queries
  • Edge cases: same-day turnover, time zones, partial availability, no valid combinations
  • Complexity analysis: time and space, and optimization strategies
  • Scalability: handling large datasets, caching, and potential extensions

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.