openapi: 3.0.3
info:
title: Uplisting Public and Partner Account Properties API
description: 'Uplisting is short-term / vacation rental management software and a channel manager. This OpenAPI describes Uplisting''s invite-only Public and Partner REST API, which lets partners read properties, bookings, availability, and calendar data (prices and restrictions), create confirmed bookings, and register webhooks that push booking changes.
Base URL: https://connect.uplisting.io (production). Staging uses the same paths on a different base domain; accounts and API keys are environment-specific.
Authentication is HTTP Basic: send `Authorization: Basic <base64(api_key)>`. API keys are generated on the Connect page in the Uplisting app. V2 endpoints additionally require a Client ID (partner identifier). API access is invite-only - request access from support@uplisting.io.
Grounding note: the Users, Properties, Bookings, Availability, and Calendar surfaces and the webhook behavior are confirmed from Uplisting''s public documentation. The exact request/response schemas and the Rates, Guests, and Messages resources are MODELED from Uplisting''s documented product behavior because the full reference is behind an invite-only Postman collection. Operations that are modeled are marked with `x-modeled: true`.'
version: '1.0'
contact:
name: Uplisting Support
url: https://support.uplisting.io/docs/api
email: support@uplisting.io
servers:
- url: https://connect.uplisting.io
description: Production
security:
- basicAuth: []
tags:
- name: Properties
description: Properties (listings) in the account.
paths:
/properties:
get:
operationId: listProperties
tags:
- Properties
summary: List properties
description: Lists the properties (listings) in the account, including the property slug used to build direct booking and payment-page links. Confirmed endpoint; response fields modeled.
responses:
'200':
description: A list of properties.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Property'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/TooManyRequests'
/properties/{propertyId}:
get:
operationId: getProperty
tags:
- Properties
summary: Get a property
description: Retrieves a single property by its identifier. Confirmed surface; response fields modeled.
parameters:
- $ref: '#/components/parameters/PropertyId'
responses:
'200':
description: The property.
content:
application/json:
schema:
$ref: '#/components/schemas/Property'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
components:
parameters:
PropertyId:
name: propertyId
in: path
required: true
schema:
type: string
description: The property (listing) identifier.
responses:
NotFound:
description: The requested resource was not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
TooManyRequests:
description: Rate limit exceeded. Back off and retry.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
Unauthorized:
description: Missing or invalid API key.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
schemas:
Property:
type: object
description: A property (listing). Fields modeled.
properties:
id:
type: string
name:
type: string
slug:
type: string
description: Slug used to build direct booking and payment-page URLs.
address:
type: string
bedrooms:
type: integer
max_guests:
type: integer
currency:
type: string
example: USD
active:
type: boolean
Error:
type: object
properties:
error:
type: string
message:
type: string
securitySchemes:
basicAuth:
type: http
scheme: basic
description: 'HTTP Basic auth. Send `Authorization: Basic <base64(api_key)>`, where api_key is generated on the Uplisting Connect page. V2 endpoints also require a Client ID partner identifier.'