> ## 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.

# A listing's viewing report

> The report for the last 14 days, like the listing report page on the portal: how many requests came in, how many were confirmed, how many people came and how many want to come back, plus the finished viewings with numbered visitors. It has no names, phone numbers, emails or notes. Firms only: a private person's listing gets a 404.



## OpenAPI

````yaml en/openapi.json GET /account/listings/{code}/viewing-report
openapi: 3.1.2
info:
  title: Housera API
  version: 1.0.0
  description: >-
    Publish and manage real estate listings on Housera from your CRM or your own
    application, under the same rules as the form on the Housera portal.
servers:
  - url: https://staging.housera.ro/api/v1
    description: 'Sandbox (staging): test data, same rules as production.'
  - url: https://housera.ro/api/v1
    description: 'Production: the real listings on housera.ro.'
security:
  - bearer: []
tags:
  - name: Your listings
  - name: Photos
  - name: Events
  - name: Vocabulary
  - name: Connect with Housera
  - name: Client requests
  - name: The company and its team
  - name: Marketing mandates
  - name: Viewings
  - name: Projects
  - name: Partnerships
  - name: API key
  - name: Statistics
paths:
  /account/listings/{code}/viewing-report:
    get:
      tags:
        - Viewings
      summary: A listing's viewing report
      description: >-
        The report for the last 14 days, like the listing report page on the
        portal: how many requests came in, how many were confirmed, how many
        people came and how many want to come back, plus the finished viewings
        with numbered visitors. It has no names, phone numbers, emails or notes.
        Firms only: a private person's listing gets a 404.
      operationId: v1.viewing_report.show
      parameters:
        - name: code
          in: path
          required: true
          schema:
            type: string
          description: The listing's public code (8 characters, as in its URL on Housera).
        - name: locale
          in: query
          required: false
          schema:
            type: string
            enum:
              - ro
              - en
            default: en
          example: en
          description: >-
            The response language, `ro` or `en`. It changes error messages
            (`title`, `detail`), labels and, when the listing has an approved
            translation in that language, its title and description. Codes are
            the same in every language. It takes precedence over
            `Accept-Language` and over the account's language.
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      from:
                        type: string
                        description: The first day of the period.
                      to:
                        type: string
                        description: The last day of the period.
                      timezone:
                        type: string
                        description: The time zone the days are counted in.
                      funnel:
                        type: object
                        properties:
                          requests:
                            type: integer
                            description: >-
                              The requests received in the period, including
                              cancelled, declined or expired ones.
                          confirmed:
                            type: integer
                            description: How many requests were confirmed now.
                          came:
                            type: integer
                            minimum: 0
                            description: The visits where the person showed up.
                          again:
                            type: integer
                            minimum: 0
                            description: >-
                              The visits after which the person wants to come
                              back or made an offer.
                        required:
                          - requests
                          - confirmed
                          - came
                          - again
                        description: >-
                          The period's funnel: `requests` (every request
                          received, including cancelled, declined or expired
                          ones), `confirmed`, `came`, `again` (want to come back
                          or made an offer).
                      rows:
                        type: array
                        items: {}
                        description: >-
                          The period's finished viewings, newest first:
                          `starts_at`, `visitor` (a number, the same for the
                          same person) and `outcome`.
                      open_houses:
                        type: array
                        items: {}
                        description: >-
                          The open houses of the period, newest first, with how
                          many came (`came`) and how many of them are interested
                          (`interested`); nobody is named.
                      link:
                        type:
                          - object
                          - 'null'
                        properties:
                          created_at:
                            type: string
                            description: When the event happened (ISO 8601, UTC).
                          expires_at:
                            type: string
                            description: When the link stops working.
                        required:
                          - created_at
                          - expires_at
                        description: >-
                          The owner's link that's on, without its address
                          (`created_at`, `expires_at`), or `null`.
                      shareable:
                        type: boolean
                        description: >-
                          `false` while the listing isn't on the site; then
                          neither the link nor the email goes out.
                    required:
                      - from
                      - to
                      - timezone
                      - funnel
                      - rows
                      - open_houses
                      - link
                      - shareable
                    description: The result of the request.
                required:
                  - data
          description: The request succeeded.
        '401':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
          description: The key is missing, revoked or expired (`unauthenticated`).
        '403':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
          description: >-
            The key lacks the required permission (`missing_ability`) or access
            is denied (`forbidden`).
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
          description: >-
            The listing does not exist or the key has no access to it
            (`not_found`).
        '429':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
          description: >-
            Too many requests. Try again after the number of seconds in
            `Retry-After`.
components:
  schemas:
    Problem:
      type: object
      title: Problem
      properties:
        type:
          type: string
          format: uri
          description: The URL of the problem type (RFC 9457).
        title:
          type: string
          description: A short summary of the problem, in the request's language.
        status:
          type: integer
          description: The HTTP status code.
        code:
          type: string
          description: >-
            The stable code of the refusal, the one to handle the error by (the
            list is on the Errors page).
        detail:
          type: string
          description: The explanation, in the request's language.
        existing:
          type: object
          properties:
            code:
              type: string
              description: The existing listing's public code.
            external_ref:
              type:
                - string
                - 'null'
              description: >-
                Your ID for the existing listing, if you set it with `PUT
                /listings/ref/{ref}`. Otherwise `null`.
          required:
            - code
            - external_ref
          description: >-
            Only on `409 duplicate_listing`: the listing you already have for
            the same property.
      required:
        - type
        - title
        - status
        - code
        - detail
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
      description: 'Authorization: Bearer <key>'

````

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