Listing Creation

Listing Creation

1.0.0OAS 3.0

Turns structured property data into a finished listing - as a PDF and as a
web view - and publishes it to the channels you choose.

A listing always references exactly one property from Property
Management
. Standalone listings without a property are intentionally
not supported, so mandatory disclosures and history stay maintained in a
single place.

Workflow

  1. POST /listings starts the generation. The response carries status: "in_progress".
  2. Once the document is ready, the status changes to completed. We recommend
    subscribing to the listing.completed event instead of polling.
  3. GET /listings/{listingId}/pdf returns the document.
  4. POST /listings/{listingId}/publish puts it live on the chosen channels.

Mandatory disclosures

Before publication the API checks the disclosures required by law - most
importantly the energy-certificate figures and the commission statement.
If something is missing, the API responds with 422 and
code: "mandatory_disclosure_missing".

API Base URL
  • Server 1:https://api.realestateagency.example/v1

    Production

  • Server 2:https://sandbox.api.realestateagency.example/v1

    Sandbox - data is reset nightly

Security
apiKey (apiKey)

Every call carries an API key in the apikey header. You generate the
key in the Real Estate portal under “My Apps”; it’s shown exactly once.

Each key has the scopes it’s allowed to use attached to it. If one is
missing, the API responds with 403 and code: "scope_missing"; the
missing scope is in details[].field.

Additional Information
Contact API Support - Real Estate Agency (api-support@realestateagency.example)

For demonstration purposes only License

Listings

Generate, retrieve and publish

List listings

Returns the agency’s listings, optionally filtered by property and status.

get

Query Parameters

property_idstring

Only listings for this property.

Example:prop_8f2c1a

statusstring

Lifecycle of a listing.

Allowed values:in_progresscompletedpublishedwithdrawnfailed

Example:completed

limitinteger

Default:25

>= 1<= 100

cursorstring

Cursor from page.next_cursor of the previous response.

Response

application/json

Results list

dataarray[object]
Show Child Parameters
pageobject

Cursor-based pagination.

Show Child Parameters
get/listings
 
application/json

Create a listing

Starts the generation of a listing from a property and a template.
Processing runs asynchronously; the response initially carries
status: "in_progress".

post

Body

application/json

CreateListingRequest

property_idstringrequired

Property the listing is generated from.

Example:prop_8f2c1a

template_idstringrequired

Design template of the agency.

Example:tpl_classic

languagestring

Language of the generated document. Useful when marketing to international buyers.

Allowed values:enesfrde

Default:en

sectionsarray[string]

Content block of the listing.

Allowed values:locationfeaturesenergyfloor_plancommissionneighborhoodhistory

internal_notestring

Internal remark; does not appear in the document.

<= 500 characters

Example:Owner prefers viewings starting September 1st.

Response

application/json

Generation accepted

Listing

idstring

Example:lst_4d9b2e

property_idstring

Example:prop_8f2c1a

template_idstring

Example:tpl_classic

languagestring

Example:en

statusstring

Lifecycle of a listing.

Allowed values:in_progresscompletedpublishedwithdrawnfailed

Example:completed

pdf_urlstring(uri)

Only set once status: completed. The link is valid for 24 hours.

Example:https://api.realestateagency.example/v1/listings/lst_4d9b2e/pdf

pagesinteger

Page count of the generated document.

Example:6

disclosuresobject

Result of the mandatory-disclosure check.

Show Child Parameters
created_atstring(date-time)

Example:2026-08-20T09:41:12Z

completed_atstring | null(date-time)

Example:2026-08-20T09:41:20Z

post/listings

Body

{ "property_id": "prop_8f2c1a", "template_id": "tpl_classic", "language": "en", "sections": [ "location", "features", "energy", "floor_plan", "commission" ] }
 
application/json

Retrieve a listing

Returns status, metadata and the mandatory-disclosure report.

get

Path Parameters

listingIdstringrequired

Identifier of the listing.

Example:lst_4d9b2e

Response

application/json

Listing

Listing

idstring

Example:lst_4d9b2e

property_idstring

Example:prop_8f2c1a

template_idstring

Example:tpl_classic

languagestring

Example:en

statusstring

Lifecycle of a listing.

Allowed values:in_progresscompletedpublishedwithdrawnfailed

Example:completed

pdf_urlstring(uri)

Only set once status: completed. The link is valid for 24 hours.

Example:https://api.realestateagency.example/v1/listings/lst_4d9b2e/pdf

pagesinteger

Page count of the generated document.

Example:6

disclosuresobject

Result of the mandatory-disclosure check.

Show Child Parameters
created_atstring(date-time)

Example:2026-08-20T09:41:12Z

completed_atstring | null(date-time)

Example:2026-08-20T09:41:20Z

get/listings/{listingId}
 
application/json