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

# Linkul raportului pentru proprietar

> Îți dă linkul pornit sau face unul nou, cu adresa lui semnată. Un anunț are un singur link pornit, același ca în portal, valabil 90 de zile. Un anunț care nu e pe site primește `422 not_shareable`.



## OpenAPI

````yaml ro/openapi.json POST /listings/{code}/viewing-report/link
openapi: 3.1.2
info:
  title: Housera API
  version: 1.0.0
  description: >-
    Publică și gestionează anunțuri imobiliare pe Housera din CRM-ul sau din
    aplicația ta, cu aceleași reguli ca formularul din portalul Housera.
servers:
  - url: https://staging.housera.ro/api/v1
    description: 'Sandbox (staging): date de test, aceleași reguli ca producția.'
  - url: https://housera.ro/api/v1
    description: 'Producție: anunțurile reale de pe housera.ro.'
security:
  - bearer: []
tags:
  - name: Anunțurile tale
  - name: Poze
  - name: Evenimente
  - name: Vocabular
  - name: Conectează cu Housera
  - name: Cererile clienților
  - name: Firma și echipa
  - name: Mandatele de comercializare
  - name: Vizionări
  - name: Proiecte
  - name: Parteneriate
  - name: Cheia API
  - name: Statistici
paths:
  /listings/{code}/viewing-report/link:
    post:
      tags:
        - Vizionări
      summary: Linkul raportului pentru proprietar
      description: >-
        Îți dă linkul pornit sau face unul nou, cu adresa lui semnată. Un anunț
        are un singur link pornit, același ca în portal, valabil 90 de zile. Un
        anunț care nu e pe site primește `422 not_shareable`.
      operationId: v1.viewing_report.link
      parameters:
        - name: code
          in: path
          required: true
          schema:
            type: string
          description: >-
            Codul public al anunțului (8 caractere, ca în adresa lui de pe
            Housera).
        - name: locale
          in: query
          required: false
          schema:
            type: string
            enum:
              - ro
              - en
            default: ro
          example: ro
          description: >-
            Limba răspunsului, `ro` sau `en`. Schimbă mesajele erorilor
            (`title`, `detail`), etichetele și, când anunțul are o traducere
            aprobată în limba cerută, titlul și descrierea lui. Codurile sunt
            aceleași în orice limbă. Are întâietate față de `Accept-Language` și
            de limba contului.
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      url:
                        type: string
                        description: >-
                          Adresa semnată a raportului. E un acces: păstreaz-o ca
                          pe o parolă.
                      created_at:
                        type: string
                        description: Când a fost făcut linkul.
                      expires_at:
                        type: string
                        description: Când nu mai merge linkul.
                      created:
                        type: boolean
                        description: '`true` când linkul s-a făcut acum.'
                    required:
                      - url
                      - created_at
                      - expires_at
                      - created
                    description: Rezultatul cererii.
                required:
                  - data
          description: Linkul era deja pornit.
        '201':
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      url:
                        type: string
                        description: >-
                          Adresa semnată a raportului. E un acces: păstreaz-o ca
                          pe o parolă.
                      created_at:
                        type: string
                        description: Când a fost făcut linkul.
                      expires_at:
                        type: string
                        description: Când nu mai merge linkul.
                      created:
                        type: boolean
                        description: '`true` când linkul s-a făcut acum.'
                    required:
                      - url
                      - created_at
                      - expires_at
                      - created
                    description: Rezultatul cererii.
                required:
                  - data
          description: Linkul s-a făcut acum.
        '401':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
          description: Cheia lipsește, e revocată sau a expirat (`unauthenticated`).
        '403':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
          description: >-
            Cheia nu are dreptul cerut (`missing_ability`) sau accesul e refuzat
            (`forbidden`).
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
          description: Anunțul nu există sau cheia nu are acces la el (`not_found`).
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ValidationProblem'
          description: >-
            Datele nu trec regulile: câte o intrare pe câmp în `errors[]`, cu un
            `code` stabil.
        '429':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
          description: >-
            Prea multe cereri. Reîncearcă după numărul de secunde din
            `Retry-After`.
        '503':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
          description: >-
            Housera a oprit temporar scrierile prin API (`api_writes_paused`).
            Reîncearcă după numărul de secunde din `Retry-After`.
components:
  schemas:
    Problem:
      type: object
      title: Problem
      properties:
        type:
          type: string
          format: uri
          description: Adresa tipului de problemă (RFC 9457).
        title:
          type: string
          description: Rezumatul problemei, în limba cererii.
        status:
          type: integer
          description: Codul HTTP.
        code:
          type: string
          description: >-
            Codul stabil al refuzului, după care tratezi eroarea (lista e în
            pagina Erori).
        detail:
          type: string
          description: Explicația, în limba cererii.
        existing:
          type: object
          properties:
            code:
              type: string
              description: Codul public al anunțului existent.
            external_ref:
              type:
                - string
                - 'null'
              description: >-
                Id-ul tău pentru anunțul existent, dacă l-ai pus tu cu `PUT
                /listings/ref/{ref}`. Altfel `null`.
          required:
            - code
            - external_ref
          description: >-
            Doar la `409 duplicate_listing`: anunțul pe care îl ai deja pentru
            aceeași proprietate.
      required:
        - type
        - title
        - status
        - code
        - detail
    ValidationProblem:
      type: object
      title: ValidationProblem
      properties:
        type:
          type: string
          format: uri
          description: Adresa tipului de problemă (RFC 9457).
        title:
          type: string
          description: Rezumatul problemei, în limba cererii.
        status:
          type: integer
          description: 'Codul HTTP: `422`.'
        errors:
          type: array
          items:
            type: object
            properties:
              pointer:
                type: string
                description: Câmpul la care se referă, ca JSON Pointer (`/features/2`).
              code:
                type: string
                description: Regula încălcată, ca cod stabil (lista e în pagina Erori).
              detail:
                type: string
                description: >-
                  Explicația, în limba cererii. Textul se poate schimba, așa că
                  tratezi eroarea după `code`.
            required:
              - pointer
              - code
              - detail
          description: Câte o intrare pentru fiecare câmp care nu trece regulile.
      required:
        - type
        - title
        - status
        - errors
  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.