Skip to main content
The Housera API allows you to publish, edit, and withdraw real estate listings directly from your system, without going through the form on the site. You receive back the status of each listing, the result of moderation, and any changes made in the meantime in the portal.

Who it’s for

Agents

You publish all your stock from one place. Listings appear under the agency name, just like when they are added by an agent from the account.

Owners

Do you have a few properties in a spreadsheet or a custom app? You publish them with a key from your account.

CRMs

You synchronize your clients’ listings by the id from the CRM, listen to webhooks, and reconcile daily.

The same rules as the Housera form

There are no special rules for the API. A listing sent via the API goes through exactly the same checks as one completed in the form on housera.ro:
  • what is mandatory for each type of property (an apartment has a floor, a house has land, a plot has area);
  • what values are allowed for each field;
  • checks between fields (the floor does not exceed the number of floors, bedrooms are not more than rooms);
  • moderation: any new listing is checked by a person before it appears in search.
What you can publish from the account can also be published via API. What the form rejects, the API rejects immediately and with a stable error code.

How the flow looks

1

You create a key

From your account, at Settings → API. Start with a sandbox key.
2

You check your mapping

POST /listings/validate applies all the rules without writing anything. You fix what it signals until you receive {"valid": true}.
3

You publish

POST /listings (or PUT /listings/ref/{ref}, if you are working with your ids). The listing enters moderation, with status pending.
4

You add the pictures

PUT /listings/{code}/photos, with public URLs or with files uploaded directly.
5

You find out the result

You receive a webhook listing.published or listing.rejected. If your endpoint was down, recover from GET /events.

Addresses

All requests use HTTPS and JSON. Each response has the header X-Request-Id, after which you find the request in API log.

Next steps

The first listing in 5 minutes

From key to a listing in moderation, with examples in curl, PHP, JavaScript, and Python.

The fields of a listing

What you send for an apartment, a house, a land or a commercial space.

Moderation and statuses

What happens to a listing after you send it and how you find out the result.

For CRMs

The recommended flow for robust synchronization.

Webhooks

Events, the signature, and retries.

Errors

The error format and all the codes you branch on.
Besides your listings, with a key with access listings:read you can also read the public catalog of active listings: GET /listings and GET /listings/{code}. The details are in the API reference.