Listings
List your listings, or retrieve a single listing by id.
The listing model
Listings represent properties you publish on Twentybaan. The API returns a stable subset of fields for integrations (spreadsheets, CRMs, automation).
Properties
- Name
id- Type
- integer
- Description
- Unique identifier for the listing.
- Name
status- Type
- string
- Description
- Publishing status (for example
draft,published).
- Name
slug- Type
- string
- Description
- URL-friendly identifier for the listing.
- Name
title- Type
- string
- Description
- Public title of the listing.
- Name
city- Type
- string
- Description
- City of the property.
- Name
area- Type
- string
- Description
- Area/neighborhood label.
- Name
property_type- Type
- string
- Description
- Property type (for example
condo,house).
- Name
offer_type- Type
- string
- Description
- Offer type (for example
rent,sale).
- Name
rent_price_amount- Type
- integer
- Description
- Numeric rent price amount (when applicable).
- Name
rent_price_period- Type
- string
- Description
- Rent period (for example
month).
- Name
sale_price_amount- Type
- integer|null
- Description
- Numeric sale price amount (when applicable).
- Name
price_text- Type
- string
- Description
- Human-friendly price text.
- Name
beds_text- Type
- string
- Description
- Bedrooms (free-form).
- Name
area_sqm- Type
- number|null
- Description
- Floor area in square meters (when available).
- Name
image_url- Type
- string|null
- Description
- Primary image URL (when set).
- Name
published_at- Type
- timestamp|null
- Description
- Timestamp of when the listing was published.
- Name
created_at- Type
- timestamp
- Description
- Timestamp of when the listing was created.
- Name
updated_at- Type
- timestamp
- Description
- Timestamp of when the listing was last updated.
GET/v1/listings/
List all listings
Retrieve a paginated list of listings owned by the authenticated user. By default, a maximum of 50 listings are returned per request.
Optional attributes
- Name
limit- Type
- integer
- Description
- Limit the number of listings returned (default 50, max 200).
- Name
before_id- Type
- integer
- Description
- Return listings with
idless than this value (cursor pagination).
Required scope
Tokens must include read:listings (OAuth tokens and API keys).
Request
GET
/v1/listings/curl -G https://api.twentybaan.com/v1/listings/ \
-H "Accept: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d limit=10Response
{
"ok": true,
"items": [
{
"id": 123,
"status": "published",
"slug": "modern-condo-sukhumvit",
"title": "Modern condo near BTS",
"city": "Bangkok",
"area": "Sukhumvit",
"property_type": "condo",
"offer_type": "rent",
"rent_price_amount": 35000,
"rent_price_period": "month",
"sale_price_amount": null,
"price_text": "฿35,000 / month",
"beds_text": "2",
"area_sqm": 62,
"image_url": "https://...",
"published_at": "2026-01-01T12:34:56Z",
"created_at": "2025-12-15T09:12:00Z",
"updated_at": "2026-01-02T03:45:00Z"
}
],
"next_before_id": 120
}GET/v1/listings?id=:id
Retrieve a listing
Fetch a single listing by id. The authenticated user must own the listing.
Required attributes
- Name
id- Type
- integer
- Description
- The listing id to retrieve.
Errors
Returns 404 if the listing does not exist or does not belong to the authenticated user.
Request
GET
/v1/listings/curl -G https://api.twentybaan.com/v1/listings/ \
-H "Accept: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d id=123Response
{
"ok": true,
"listing": {
"id": 123,
"status": "published",
"slug": "modern-condo-sukhumvit",
"title": "Modern condo near BTS",
"city": "Bangkok",
"area": "Sukhumvit",
"property_type": "condo",
"offer_type": "rent",
"rent_price_amount": 35000,
"rent_price_period": "month",
"sale_price_amount": null,
"price_text": "฿35,000 / month",
"beds_text": "2",
"area_sqm": 62,
"image_url": "https://...",
"published_at": "2026-01-01T12:34:56Z",
"created_at": "2025-12-15T09:12:00Z",
"updated_at": "2026-01-02T03:45:00Z"
}
}