DormBix Public API
The Public API from DormBix — 3 operation(s) for public.
The Public API from DormBix — 3 operation(s) for public.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/dormbix-com:dormbix-com-public-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: DormBix — Dorm Search & Availability API (Thailand) Public…
description: 'The public, no-auth SEARCH surface of DormBix, a Thai dorm-management platform. It lets AI agents help renters find apartments and dormitories: listing name, location, pricing, amenities and contact details. Vacancy status exists only for the subset of listings whose owner runs the DormBix management system, and it is the value that owner last saved — each result carries its own update time, so check it and tell the user to confirm with the dorm. Totals and scope: https://www.dormbix.com/llms.txt. NOTE: dorm MANAGEMENT for owners (rooms, meters, billing, tenants) is a separate authenticated surface via Model Context Protocol at https://www.dormbix.com/api/mcp (overview at https://www.dormbix.com/ai) — not part of this search API.'
version: 2.2.0
contact:
name: DormBix AI Team
url: https://www.dormbix.com
servers:
- url: https://www.dormbix.com
description: Production Server
tags:
- name: Public
paths:
/api/public/ai/search:
get:
operationId: searchDorms
summary: Search for dormitories with intent mapping
description: 'Primary tool to find dorms in Thailand. Use this when users ask for housing near landmarks or with specific features. INTENT MAPPING: the `keyword` parameter understands Thai context like "หอถูก" (cheap), "เลี้ยงสัตว์ได้" (pet-friendly), and university abbreviations. Listings whose owner runs the DormBix management system are returned first, because they are the only ones that carry a vacancy figure.'
parameters:
- name: province
in: query
required: false
schema:
type: string
description: Province name in Thai (e.g., นครปฐม, กรุงเทพ)
- name: nearby
in: query
required: false
schema:
type: string
description: Landmark or university name (e.g., ม.ศิลปากร, มหิดล)
- name: keyword
in: query
required: false
schema:
type: string
description: Natural language search. Can include multiple criteria in one string.
- name: price_max
in: query
required: false
schema:
type: integer
description: Budget limit in Thai Baht (THB)
- name: pet_friendly
in: query
required: false
schema:
type: boolean
description: If true, only shows properties allowing pets.
- name: available_now
in: query
required: false
schema:
type: boolean
description: 'IMPORTANT: If true, filters out properties with no current vacancies.'
- name: limit
in: query
required: false
schema:
type: integer
default: 10
maximum: 20
responses:
'200':
description: Search results including intent mapping confirmation
content:
application/json:
schema:
type: object
properties:
ok:
type: boolean
count:
type: integer
dorms:
type: array
items:
type: object
properties:
dorm_id:
type: string
name:
type: string
tier:
type: string
enum:
- verified
- listing
vacant_rooms:
type: integer
nullable: true
min_rent:
type: number
canonical_url:
type: string
format: uri
tags:
- Public
/api/public/ai/availability:
get:
operationId: checkAvailability
summary: Check the last-saved vacancy status of up to 10 listings
description: 'Pass dorm_id values taken from searchDorms. Each result carries updated_at and age_days: the status is what the dorm owner last saved in DormBix, not a live reservation feed, so tell the user to confirm with the dorm. Listings that are not published on DormBix, or whose owner opted out of AI access, come back with status "not_listed".'
parameters:
- name: dorm_ids
in: query
required: true
schema:
type: string
description: Comma-separated dorm_id values (UUID), at most 10. May also be repeated.
example: 4ab547d7-a217-4415-9d52-310e337d0713
responses:
'200':
$ref: '#/components/responses/AvailabilityResult'
'400':
$ref: '#/components/responses/BadRequest'
tags:
- Public
post:
operationId: batchCheckAvailability
summary: Same as checkAvailability, with the ids in a JSON body
description: Identical behaviour to the GET form. Use whichever your client supports; the GET form works for agents that can only browse URLs.
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- dorm_ids
properties:
dorm_ids:
type: array
items:
type: string
format: uuid
maxItems: 10
description: dorm_id values (UUID) from search results.
example:
- 4ab547d7-a217-4415-9d52-310e337d0713
responses:
'200':
$ref: '#/components/responses/AvailabilityResult'
'400':
$ref: '#/components/responses/BadRequest'
tags:
- Public
/api/public/ai/dorm/{id}:
get:
operationId: getDormDetails
summary: Get exhaustive dorm details and room inventory
description: Get full details for a specific dorm including specific room types, inventory, and property policies. Use this when a user selects a specific dorm and wants to see everything about it.
parameters:
- name: id
in: path
required: true
schema:
type: string
description: Dorm unique identifier (id or slug)
responses:
'200':
description: Comprehensive dorm profile
content:
application/json:
schema:
type: object
properties:
ok:
type: boolean
dorm:
type: object
vacancy:
type: object
tags:
- Public
components:
responses:
AvailabilityResult:
description: Last-saved vacancy status per listing
content:
application/json:
schema:
type: object
properties:
ok:
type: boolean
generated_at:
type: string
format: date-time
availability:
type: array
items:
type: object
properties:
dorm_id:
type: string
format: uuid
name:
type: string
nullable: true
status:
type: string
enum:
- available
- full
- contact_required
- not_listed
vacant_count:
type: integer
nullable: true
description: Only present when the owner chose to disclose room counts.
updated_at:
type: string
format: date-time
nullable: true
age_days:
type: integer
nullable: true
description: Days since the owner last changed this listing or its rooms.
note:
type: string
description: Wording to pass on to the user (Thai).
BadRequest:
description: dorm_ids missing or not UUID values
content:
application/json:
schema:
type: object
properties:
ok:
type: boolean
error:
type: string
invalid_ids:
type: array
items:
type: string