> ## Documentation Index
> Fetch the complete documentation index at: https://api.housera.ro/llms.txt
> Use this file to discover all available pages before exploring further.

# Viewing reports

> How you read the viewing report of a listing or a project and give the owner a link to it.

The report shows what happened with a listing's viewings over the last 14 days: how many requests came in, how many were confirmed, how many people came and how many want to come back. Through the API you read it and give the owner a link to it. It's the same report as the listing report page in your account.

Only firms have reports, for whoever manages the listing or runs its viewings. For a private person's listing, or a listing the key can't reach, the answer is `404`.

## The listing's report

`GET /account/listings/{code}/viewing-report` needs the `listings:read` ability:

```json theme={null}
{ "data": {
  "from": "2026-10-29", "to": "2026-11-12", "timezone": "Europe/Bucharest",
  "funnel": { "requests": 14, "confirmed": 11, "came": 8, "again": 3 },
  "rows": [ { "starts_at": "2026-11-10T08:00:00+00:00", "visitor": 3, "outcome": "again" } ],
  "link": { "created_at": "2026-11-09T12:00:00+00:00", "expires_at": "2027-02-07T12:00:00+00:00" },
  "shareable": true
} }
```

* The period is the last 14 days, on the listing's local clock (`timezone`).
* `funnel.requests` counts every request received, including those cancelled, declined or expired. `confirmed` is the confirmed ones, `came` the visits where the person showed up, and `again` those after which they want to come back or made an offer.
* `rows` are the finished viewings, newest first. `visitor` is a number, not a person: the same person has the same number on every visit in the period. `outcome` is the answer to "How did it go?" (`offer`, `again`, `not_interested`, `no_show`), or `null` if you haven't given one yet.
* `open_houses` are the open houses of the period, newest first, as in the portal: `starts_at`, `came` (how many came) and `interested` (how many of them you marked "Interested"). Nobody is named. The funnel counts only booked viewings.
* The report has no names, phone numbers, emails or notes.
* `link` describes the owner's link without its address, and is `null` when none is on. `shareable` is `false` while the listing isn't on the site (a draft, in moderation, sold, withdrawn or expired).

## The owner's link

`POST /listings/{code}/viewing-report/link` gives you the link that's on, or makes a new one, and answers with its address:

```json theme={null}
{ "data": { "url": "https://housera.ro/raport-vizionari/…", "created_at": "2026-11-12T09:00:00+00:00", "expires_at": "2027-02-10T09:00:00+00:00", "created": true } }
```

A listing has one link on at a time, the same on the portal and in the API. The answer is `201` when the link was made just now and `200` when it was already on; two requests at once get the same link. The link works for 90 days. The owner opens it without an account and sees the report, without the visitors' names. The address is an access, so keep it like a password. For a listing that isn't on the site you get `422 not_shareable`.

`DELETE /listings/{code}/viewing-report/link` turns the link off. Whoever has it sees that it no longer works. The answer is `204`, also when no link was on.

## Sending it by email

`POST /listings/{code}/viewing-report/send` emails the link to the address in `email`, with your name and your firm's name. If no link is on, one is made. The answer is `202` with `{ "data": { "sent": true } }`.

Each person can send at most 20 reports a day, counting the portal and the API together. The 21st gets `422 viewing_report_send_limit` on `/email`; you can still get the link with `POST …/link`. Housera doesn't keep the address. For a listing that isn't on the site you get `422 not_shareable`.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.