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

# Confirmă că anunțul e disponibil

> Confirmă că anunțul e încă disponibil, la fel ca butonul din contul tău de pe portalul Housera. Un anunț `unconfirmed` revine în căutări și primești evenimentul `listing.reactivated`. Un anunț activ căruia i s-a cerut confirmarea rămâne public, iar `availability.confirm_by` devine null. Dacă nu e nimic de confirmat, răspunsul e 409.



## OpenAPI

````yaml ro/openapi.json POST /listings/{code}/confirm
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}/confirm:
    post:
      tags:
        - Anunțurile tale
      summary: Confirmă că anunțul e disponibil
      description: >-
        Confirmă că anunțul e încă disponibil, la fel ca butonul din contul tău
        de pe portalul Housera. Un anunț `unconfirmed` revine în căutări și
        primești evenimentul `listing.reactivated`. Un anunț activ căruia i s-a
        cerut confirmarea rămâne public, iar `availability.confirm_by` devine
        null. Dacă nu e nimic de confirmat, răspunsul e 409.
      operationId: v1.listings.confirm
      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:
                $ref: '#/components/schemas/ListingWriteResult'
          description: Anunțul e confirmat. Răspunsul conține anunțul.
          headers:
            ETag:
              description: >-
                Versiunea anunțului, aceeași ca în câmpul `etag`. O trimiți
                înapoi în `If-Match` la următoarea editare.
              schema:
                type: string
        '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`).
        '409':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
          description: >-
            Anunțul e modificat chiar acum de altă scriere (`listing_busy`),
            acțiunea nu e permisă în starea lui (`listing_action_refused`) sau
            ai deja un anunț pentru aceeași proprietate (`duplicate_listing`, cu
            anunțul existent în `existing`).
        '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:
    ListingWriteResult:
      type: object
      title: ListingWriteResult
      properties:
        data:
          $ref: '#/components/schemas/AccountListingApiResource'
          description: Rezultatul cererii.
        warnings:
          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: >-
                  Motivul, ca cod stabil: `not_for_type`, `not_for_transaction`,
                  `unknown_feature`, `unknown_field`, `agent_not_member`,
                  `agent_not_allowed` sau `area_from_pin`. Ce înseamnă fiecare e
                  în pagina Editarea.
            required:
              - pointer
              - code
          description: >-
            Ce a ignorat Housera din cerere fără să o refuze, de exemplu un câmp
            care nu există pentru tipul și tranzacția anunțului sau o dotare
            necunoscută. Cererea a reușit, dar e bine să-ți verifici maparea.
      required:
        - data
        - warnings
    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
    AccountListingApiResource:
      type: object
      title: AccountListingApiResource
      properties:
        code:
          type: string
          description: >-
            Codul public al anunțului (8 caractere, ca în adresa lui de pe
            Housera).
        url:
          type: string
          description: Adresa anunțului pe Housera.
        type:
          type:
            - string
            - 'null'
          enum:
            - apartment
            - house
            - room
            - complex
            - land
            - commercial
            - warehouse
            - garage
            - hospitality
            - special
            - null
          description: Tipul proprietății.
        subtype:
          type:
            - string
            - 'null'
          description: Subtipul.
        transaction:
          type:
            - string
            - 'null'
          enum:
            - sale
            - rent
            - null
          description: Tipul tranzacției.
        title:
          type:
            - string
            - 'null'
          description: >-
            Titlul anunțului, în limba din `content_locale`: traducerea aprobată
            în limba cererii, dacă există și e la zi, altfel originalul.
        description:
          type:
            - string
            - 'null'
          description: >-
            Descrierea anunțului, în limba din `content_locale`. Titlul și
            descrierea vin mereu în aceeași limbă, deci fie ambele traduse, fie
            ambele în original.
        content_locale:
          type:
            - string
            - 'null'
          description: >-
            Limba în care vin `title` și `description` în acest răspuns (ISO
            639-1). Când ceri o limbă (`locale` sau `Accept-Language`) și
            anunțul are în ea o traducere aprobată și la zi, primești codul
            acelei limbi, de exemplu `en`. Altfel primești textul original și
            limba în care a fost scris, de exemplu `ro`.
        content_auto_translated:
          type: boolean
          description: >-
            `true` când `title` sau `description` din răspuns sunt traduse
            automat. Dacă arăți textul, spune că e tradus automat. Engleza
            trimisă de agenție prin CRM nu e traducere automată.
        content_origin:
          type: object
          properties:
            title:
              type:
                - string
                - 'null'
              description: Titlul.
            description:
              type:
                - string
                - 'null'
              description: Descrierea.
          required:
            - title
            - description
          description: >-
            `ai` sau `ai_edited` pentru `title` și `description`, dacă textul
            l-a scris un model: `ai` când a rămas cum l-a generat, `ai_edited`
            când autorul l-a schimbat. Restul textelor au `null`.
        title_original:
          type:
            - string
            - 'null'
          description: Titlul original, când `title` e tradus automat; altfel `null`.
        description_original:
          type:
            - string
            - 'null'
          description: >-
            Descrierea originală, când textul primit e tradus automat; altfel
            `null`.
        price:
          type:
            - integer
            - 'null'
          description: Prețul în euro. La ce se referă spune `price_period`.
        currency:
          type: string
          const: EUR
          description: 'Moneda lui `price`: mereu `EUR`.'
        price_period:
          type:
            - string
            - 'null'
          enum:
            - total
            - month
            - null
          description: >-
            La ce se referă prețul: `total` la vânzare, `month` (pe lună) la
            închiriere.
        price_declared:
          type:
            - object
            - 'null'
          properties:
            amount:
              type: integer
              description: Suma.
            currency:
              type: string
              description: Moneda sumei, cod ISO 4217.
          required:
            - amount
            - currency
          description: Prețul exact cum l-a scris proprietarul anunțului, în moneda lui.
        reserved:
          type: boolean
          description: '`true`: un cumpărător l-a rezervat, dar anunțul e încă în ofertă.'
        negotiable:
          type: boolean
          description: Prețul negociabil.
        location:
          type: object
          properties:
            country:
              type:
                - string
                - 'null'
              description: Țara.
            county:
              type:
                - string
                - 'null'
              description: Județul.
            city:
              type:
                - string
                - 'null'
              description: Localitatea.
            area:
              type:
                - string
                - 'null'
              description: Zona sau cartierul.
            lat:
              type:
                - number
                - 'null'
              description: Latitudinea.
            lng:
              type:
                - number
                - 'null'
              description: Longitudinea.
            street:
              type:
                - string
                - 'null'
              description: >-
                Strada, cu tot cu tipul ei (de exemplu `Strada Sărăriei`), cum o
                trimiți la scriere. Null când locația e aproximativă, în afară
                de anunțurile contului tău.
            street_number:
              type:
                - string
                - 'null'
              description: >-
                Numărul străzii. Null când locația e aproximativă, în afară de
                anunțurile contului tău.
            postal_code:
              type:
                - string
                - 'null'
              description: >-
                Codul poștal. Null când locația e aproximativă, în afară de
                anunțurile contului tău.
            landmark:
              type:
                - string
                - 'null'
              description: >-
                Un reper din apropiere, scris de cel care a publicat anunțul.
                Null când locația e aproximativă, în afară de anunțurile
                contului tău.
            precision:
              type: string
              enum:
                - exact
                - approximate
              description: >-
                `exact`, sau `approximate` când pe anunț apare doar zona:
                punctul e rotunjit la ~100 m, iar strada, numărul și codul
                poștal nu se publică.
          required:
            - country
            - county
            - city
            - area
            - lat
            - lng
            - street
            - street_number
            - postal_code
            - landmark
            - precision
          description: Locul anunțului.
        facts:
          type: object
          additionalProperties: {}
          description: >-
            Caracteristicile anunțului: toate câmpurile care există pentru tipul
            și tranzacția lui, null cele nedeclarate. Codurile sunt cele din
            `/schema`.
        features:
          type: array
          items:
            type: string
          description: >-
            Dotările, ca coduri din catalogul de dotări (`features` din
            `/schema`).
        images:
          type: array
          items:
            type: string
          description: Adresele pozelor, în ordine.
        photos:
          type: array
          items:
            type: object
            properties:
              url:
                type: string
                description: Adresa pozei, aceeași ca în `images`.
              position:
                type: integer
                description: Locul pozei în galerie, de la 1. Poza 1 e coperta.
              floor:
                type:
                  - string
                  - 'null'
                description: Nivelul din poză (`floor`), cu un cod din `/schema`, sau null.
              rooms:
                type: array
                items:
                  type: string
                description: Încăperile din poză (`rooms`), cu codurile din `/schema`.
            required:
              - url
              - position
              - floor
              - rooms
          description: >-
            Pozele anunțului ca obiecte, în ordinea afișării, cu etichetele
            trimise în `PUT /listings/{code}/photos`. Adresele sunt aceleași ca
            în `images`.
        floor_plans:
          type: array
          items:
            type: object
            properties:
              url:
                type: string
                description: >-
                  Adresa imaginii planului. La scriere, un URL https de pe care
                  Housera descarcă planul sau adresa unui plan deja pe anunț,
                  care rămâne.
              position:
                type: integer
                description: Locul planului în listă, de la 1.
              level:
                type: string
                description: >-
                  Nivelul planului, cu un cod din `levels` din `/schema` (de
                  exemplu `ground`).
              hotspots:
                type: array
                items:
                  type: object
                  properties:
                    x:
                      type: number
                      description: >-
                        Poziția orizontală a punctului pe imagine, între 0
                        (marginea din stânga) și 1 (marginea din dreapta).
                    'y':
                      type: number
                      description: >-
                        Poziția verticală a punctului pe imagine, între 0 (sus)
                        și 1 (jos).
                    angle:
                      type: number
                      description: >-
                        Direcția în care privește poza, în grade, între 0 și
                        360.
                    photo_position:
                      type: integer
                      description: Locul pozei în `photos`, de la 1.
                    photo_url:
                      type: string
                      description: >-
                        Poza punctului: URL-ul cu care ai trimis-o în `PUT
                        /listings/{code}/photos` sau adresa ei din
                        `photos[].url`.
                  required:
                    - x
                    - 'y'
                    - angle
                    - photo_position
                    - photo_url
                description: >-
                  Punctele de pe plan: unde a fost făcută o poză și în ce
                  direcție privește. O poză are cel mult un punct, pe toate
                  planurile la un loc.
            required:
              - url
              - position
              - level
              - hotspots
          description: >-
            Planurile anunțului, câte unul pe nivel, în ordinea afișării, cu
            punctele care leagă pozele de plan.
        media_links:
          type:
            - object
            - 'null'
          properties:
            video:
              type:
                - string
                - 'null'
              description: Adresa unui video (YouTube, Vimeo).
            tour:
              type:
                - string
                - 'null'
              description: Adresa unui tur virtual.
            plan:
              type:
                - string
                - 'null'
              description: Adresa unei schițe sau a unui plan.
          required:
            - video
            - tour
            - plan
          description: >-
            Legăturile către video (`video`), turul virtual (`tour`) și plan
            (`plan`), cum le-ai trimis. Null dacă anunțul nu are nicio legătură.
        parcel:
          type:
            - array
            - 'null'
          items:
            type: array
            prefixItems:
              - type: number
              - type: number
            minItems: 2
            maxItems: 2
          description: >-
            Conturul parcelei, ca listă de perechi `[lng, lat]`, cum l-ai
            trimis. Public doar când locația e exactă; contul care deține
            anunțul îl vede mereu. Null dacă anunțul nu are parcelă.
        unit_types:
          type:
            - array
            - 'null'
          items:
            type: object
            properties:
              kind:
                type:
                  - string
                  - 'null'
                description: Ce fel de unitate e, cu un cod din `/schema`.
              label:
                type:
                  - string
                  - 'null'
                description: >-
                  Numele tipului de unitate, când nu are un cod `kind`. `null`
                  dacă lipsește.
              floors:
                type:
                  - string
                  - 'null'
                description: Etajele pe care se află unitățile. `null` dacă lipsesc.
              area_sqm:
                type:
                  - number
                  - 'null'
                description: Suprafața utilă, în m² (de la).
              area_sqm_to:
                type:
                  - number
                  - 'null'
                description: Suprafața utilă maximă, în m², când tipul are un interval.
              units_count:
                type:
                  - integer
                  - 'null'
                description: Câte unități de acest tip are ansamblul.
              price_from:
                type:
                  - integer
                  - 'null'
                description: Prețul de la care pornesc unitățile, în euro.
              rooms:
                type:
                  - integer
                  - 'null'
                description: Numărul de camere al unității.
            required:
              - kind
              - label
              - floors
              - area_sqm
              - area_sqm_to
              - units_count
              - price_from
              - rooms
          description: >-
            Tipurile de unități ale unui ansamblu, cum le-ai trimis în
            `unit_types`. Null la celelalte tipuri de anunț.
        inventory:
          type:
            - object
            - 'null'
          properties:
            sale:
              type:
                - object
                - 'null'
              properties:
                source:
                  type: string
                  description: >-
                    `units` când ansamblul are unități publicate în această
                    tranzacție, `declared` cât timp nu are: contoarele sunt
                    atunci zero, iar proiectul se citește din `unit_types`.
                available:
                  type: integer
                  description: Unitățile active și nerezervate.
                reserved:
                  type: integer
                  description: Unitățile active rezervate de un cumpărător.
                sold:
                  type: integer
                  description: Unitățile vândute.
                price_min:
                  type:
                    - integer
                    - 'null'
                  description: Cel mai mic preț al unităților disponibile, în euro.
                price_max:
                  type:
                    - integer
                    - 'null'
                  description: Cel mai mare preț al unităților disponibile, în euro.
                groups:
                  type: array
                  items: {}
                  description: >-
                    Grupele de unități: câte una pe familie, împărțită pe
                    numărul de camere când familia are unități cu camere
                    diferite.
              required:
                - source
                - available
                - reserved
                - sold
                - price_min
                - price_max
                - groups
              description: >-
                Unitățile de vânzare. La un ansamblu de vânzare e mereu prezent,
                altfel e `null` cât timp ansamblul nu are unități de vânzare.
            rent:
              type:
                - object
                - 'null'
              properties:
                source:
                  type: string
                  description: >-
                    `units` când ansamblul are unități publicate în această
                    tranzacție, `declared` cât timp nu are: contoarele sunt
                    atunci zero, iar proiectul se citește din `unit_types`.
                available:
                  type: integer
                  description: Unitățile active și nerezervate.
                reserved:
                  type: integer
                  description: Unitățile active rezervate de un chiriaș.
                sold:
                  type: integer
                  description: Unitățile vândute.
                price_min:
                  type:
                    - integer
                    - 'null'
                  description: Cel mai mic preț al unităților disponibile, în euro.
                price_max:
                  type:
                    - integer
                    - 'null'
                  description: Cel mai mare preț al unităților disponibile, în euro.
                groups:
                  type: array
                  items: {}
                  description: >-
                    Grupele de unități: câte una pe familie, împărțită pe
                    numărul de camere când familia are unități cu camere
                    diferite.
              required:
                - source
                - available
                - reserved
                - sold
                - price_min
                - price_max
                - groups
              description: >-
                Unitățile de închiriat, cu prețurile pe lună. La un ansamblu de
                închiriat e mereu prezent, altfel e `null` cât timp ansamblul nu
                are unități de închiriat.
          required:
            - sale
            - rent
          description: >-
            Inventarul ansamblului, numărat din unitățile legate, pe tranzacții:
            `sale` și `rent`, fiecare cu contoarele, intervalele de preț și
            grupele. `null` la celelalte tipuri.
        developer:
          type:
            - object
            - 'null'
          properties:
            name:
              type: string
              description: Numele firmei ansamblului.
            country:
              type:
                - string
                - 'null'
              description: Țara firmei, cod ISO 3166-1 alpha-2.
            tax_id:
              type:
                - string
                - 'null'
              description: >-
                Codul fiscal, doar când firma e verificată în registru și e
                persoană juridică. `null` la persoanele fizice autorizate și la
                întreprinderile individuale.
            verified:
              type: boolean
              description: >-
                `true` când datele firmei au fost verificate în registrele
                publice.
            url:
              type:
                - string
                - 'null'
              description: >-
                Pagina dezvoltatorului pe Housera. `null` când firma nu are
                cont.
          required:
            - name
            - country
            - tax_id
            - verified
            - url
          description: >-
            Firma care construiește ansamblul. `null` la celelalte tipuri și cât
            timp dezvoltatorul nu e cunoscut.
        marketer:
          type:
            - object
            - 'null'
          properties:
            name:
              type: string
              description: Numele firmei.
            kind:
              type: string
              enum:
                - agency
                - developer
              description: '`agency` (o agenție) sau `developer` (chiar dezvoltatorul).'
            url:
              type: string
              description: Pagina firmei pe Housera.
          required:
            - name
            - kind
            - url
          description: >-
            Firma care comercializează ansamblul: publică pagina și primește
            cererile clienților. `null` la celelalte tipuri.
        complex:
          type:
            - object
            - 'null'
          properties:
            code:
              type: string
              description: Codul public al ansamblului.
            title:
              type:
                - string
                - 'null'
              description: Titlul ansamblului.
            url:
              type: string
              description: Adresa ansamblului pe Housera.
            linked_by:
              type:
                - string
                - 'null'
              enum:
                - import
                - firm
                - partner
                - null
              description: >-
                Cine a legat unitatea: `import` (feed-ul CRM-ului), `firm`
                (firma ansamblului) sau `partner` (o agenție parteneră).
          required:
            - code
            - title
            - url
            - linked_by
          description: >-
            Ansamblul de care ține unitatea, `null` în afara unui ansamblu.
            Catalogul numește doar un ansamblu activ.
        published_at:
          type:
            - string
            - 'null'
          description: Momentul publicării (ISO 8601).
        updated_at:
          type:
            - string
            - 'null'
          description: Ultima modificare (ISO 8601).
        attribution:
          type: object
          properties:
            lister:
              type:
                - string
                - 'null'
              description: >-
                Agenția, sau numele afișat al proprietarului, ca pe pagina
                anunțului.
            source:
              type:
                - string
                - 'null'
              description: >-
                Codul sursei din care a fost preluat anunțul. Null pentru
                anunțurile postate direct pe Housera.
            source_label:
              type:
                - string
                - 'null'
              description: Numele sursei din care a fost preluat anunțul.
            source_external_id:
              type:
                - string
                - 'null'
              description: Id-ul anunțului la sursă.
          required:
            - lister
            - source
            - source_label
            - source_external_id
          description: Cine a publicat anunțul și de unde a fost preluat.
        external_ref:
          type:
            - string
            - 'null'
          description: >-
            Id-ul anunțului în sistemul tău, dacă l-ai creat cu `PUT
            /listings/ref/{ref}`. Îl vede doar o cheie din spațiul în care a
            fost pus; pentru celelalte chei e `null`.
        agent:
          type:
            - object
            - 'null'
          properties:
            name:
              type: string
              description: >-
                Numele contului agentului. Portalul arată numele din
                `display_name`.
            email:
              type: string
              description: >-
                Emailul agentului; `null` când nu avem o adresă reală a lui, de
                exemplu la un coleg venit dintr-un CRM, fără email în fișa lui.
          required:
            - name
            - email
          description: >-
            Agentul firmei care răspunde de anunț, cu numele și emailul. `null`
            la anunțul unei persoane. `email` e `null` când nu avem o adresă
            reală a agentului, de exemplu la un coleg venit dintr-un CRM, fără
            email în fișa lui.
        status:
          $ref: '#/components/schemas/PropertyStatus'
          description: >-
            Starea anunțului: `draft` (ciornă începută în portal), `pending` (la
            moderare), `active` (public), `paused` (oprit de tine), `sold`,
            `rejected`, `hidden` (scos de moderator) sau `unconfirmed`
            (disponibilitatea n-a fost confirmată la termen; o confirmi din cont
            sau cu `POST /listings/{code}/confirm` și anunțul revine).
        moderation:
          type: object
          properties:
            edit_pending:
              type: boolean
              description: >-
                `true`: o editare așteaptă moderarea; anunțul public arată încă
                versiunea aprobată.
            rejection_reason:
              type:
                - string
                - 'null'
              description: >-
                Motivul respingerii, în limba cererii. Null dacă anunțul nu e
                respins.
            rejection_codes:
              type: array
              items:
                type: string
              description: Motivele respingerii, ca coduri stabile.
            restriction_reason:
              type:
                - string
                - 'null'
              description: >-
                Motivul pentru care moderatorii au ascuns anunțul sau l-au
                trimis din nou la verificare, cum l-a primit autorul. Null când
                anunțul nu e în una din aceste stări.
            notes:
              type: array
              items:
                type: object
                properties:
                  field:
                    type: string
                    description: >-
                      Partea anunțului la care se referă: `title`,
                      `description`, `photos`, `floor_plans`, `unit_types` sau
                      `details` (celelalte câmpuri).
                  label:
                    type: string
                    description: Numele secțiunii, cum îl vede autorul.
                  note:
                    type: string
                    description: Textul observației, scris de moderator.
                  kind:
                    type: string
                    enum:
                      - blocking
                      - recommendation
                    description: >-
                      `blocking`: corectura e cerută înainte de aprobare.
                      `recommendation`: un sfat, anunțul poate fi aprobat și
                      fără ea.
              description: >-
                Observațiile moderatorilor trimise autorului și încă deschise,
                pe secțiuni, ca în editorul din portal. Una cu `kind: blocking`
                oprește aprobarea până corectezi anunțul.
            proof:
              type:
                - object
                - 'null'
              properties:
                status:
                  type: string
                  enum:
                    - requested
                    - submitted
                    - accepted
                    - rejected
                  description: >-
                    `requested` (așteaptă dovada), `submitted` (trimisă,
                    așteaptă decizia), `accepted` sau `rejected`.
                reason:
                  type: string
                  description: De ce au cerut moderatorii dovada.
                hidden:
                  type: boolean
                  description: '`true` când anunțul a fost scos de pe site până la decizie.'
                requested_at:
                  type: string
                  format: date-time
                  description: Când a fost cerută dovada.
                submitted_at:
                  type:
                    - string
                    - 'null'
                  format: date-time
                  description: Când ai trimis dovada. `null` dacă n-ai trimis-o încă.
                decided_at:
                  type:
                    - string
                    - 'null'
                  format: date-time
                  description: Când au decis moderatorii. `null` până la decizie.
              description: >-
                Ultima cerere a moderatorilor pentru dovada dreptului de a oferi
                anunțul. `null` dacă nu s-a cerut niciodată.
          description: Starea moderării anunțului.
        media:
          type: object
          properties:
            processing:
              type: boolean
              description: '`true`: pozele trimise sunt încă procesate.'
          description: Starea pozelor.
        availability:
          type: object
          properties:
            confirm_by:
              type:
                - string
                - 'null'
              format: date-time
              description: >-
                Data până la care confirmi că anunțul e încă disponibil, cu
                `POST /listings/{code}/confirm`. După ea, anunțul iese din
                căutări ca `unconfirmed`. Null când nu ți se cere confirmarea.
          description: Confirmarea disponibilității anunțului.
        translations:
          type:
            - object
            - 'null'
          additionalProperties:
            type: object
            properties:
              status:
                type: string
                enum:
                  - approved
                  - pending
                  - outdated
                  - missing
                description: >-
                  `approved`: titlul și descrierea au o traducere aprobată,
                  făcută după textul actual. `pending`: traducerea e în lucru
                  sau așteaptă un moderator. `outdated`: traducerea a fost
                  aprobată, dar titlul sau descrierea s-au schimbat după aceea,
                  așa că publicul citește originalul până la o traducere nouă.
                  `missing`: anunțul nu are traducere în limba asta.
              title:
                type:
                  - string
                  - 'null'
                description: >-
                  Titlul aprobat în limba asta, dacă a fost tradus după titlul
                  actual. Altfel null.
              description:
                type:
                  - string
                  - 'null'
                description: >-
                  Descrierea aprobată în limba asta, dacă a fost tradusă după
                  descrierea actuală. Altfel null.
          description: >-
            Pentru fiecare limbă în care Housera traduce anunțul, în afară de
            limba originalului: starea traducerii și textul aprobat. Null când
            Housera nu traduce anunțurile.
        etag:
          type: string
          description: >-
            Versiunea anunțului. O trimiți în `If-Match` la editare, ca să nu
            suprascrii o modificare făcută între timp.
        unit_ref:
          type:
            - string
            - 'null'
          description: >-
            Identificatorul unității în ansamblu, normalizat (de exemplu
            `B2-14`). Privat: îl citește doar firma care a publicat unitatea.
            Obligatoriu la unitatea unei agenții partenere.
        mandate:
          type:
            - object
            - 'null'
          properties:
            status:
              type: string
              enum:
                - requested
                - confirmed
                - refused
                - withdrawn
                - revoked
                - expired
              description: >-
                `requested` (cererea așteaptă decizia), `confirmed`, `refused`,
                `withdrawn` (agenția și-a retras cererea), `revoked` sau
                `expired`. Ansamblul e public doar cu mandatul `confirmed`.
            decided_via:
              type:
                - string
                - 'null'
              enum:
                - developer
                - moderator
                - legacy
                - null
              description: >-
                Cine a decis: `developer` (dezvoltatorul), `moderator` (un
                moderator Housera) sau `legacy` (o decizie fără o cerere de
                mandat). `null` cât timp nu s-a decis.
            valid_until:
              type:
                - string
                - 'null'
              format: date
              description: >-
                Data de sfârșit a contractului, `YYYY-MM-DD`. `null` când
                contractul nu are una.
          required:
            - status
            - decided_via
            - valid_until
          description: >-
            Mandatul de comercializare al agenției pe ansamblul ei, ultimul
            cerut. `null` la ansamblul pe care îl comercializează chiar
            dezvoltatorul și la celelalte tipuri de anunț. Vezi [Mandatul de
            comercializare](/ro/guides/complex#mandatul-de-comercializare).
        stats_30d:
          type: object
          properties:
            views:
              type: integer
              description: Vizualizările.
            saves:
              type: integer
              description: Salvările la favorite.
            contacts:
              type: integer
              description: Contactele venite prin anunț.
          required:
            - views
            - saves
            - contacts
          description: >-
            Ultimele 30 de zile ale anunțului, cu azi, ca în rândul din
            Anunțurile mele.
        views_total:
          type: integer
          description: Toate vizualizările de la publicare.
        price_per_sqm:
          type:
            - integer
            - 'null'
          description: >-
            Prețul pe metru pătrat, în euro, ca pe pagina anunțului. Doar la
            vânzare; `null` fără preț sau fără suprafață.
      required:
        - code
        - url
        - type
        - subtype
        - transaction
        - title
        - description
        - content_locale
        - content_auto_translated
        - content_origin
        - title_original
        - description_original
        - price
        - currency
        - price_period
        - price_declared
        - reserved
        - negotiable
        - location
        - facts
        - features
        - images
        - photos
        - floor_plans
        - media_links
        - parcel
        - unit_types
        - inventory
        - developer
        - marketer
        - complex
        - published_at
        - updated_at
        - attribution
        - external_ref
        - agent
        - unit_ref
        - mandate
        - status
        - moderation
        - media
        - availability
        - translations
        - etag
    PropertyStatus:
      type: string
      enum:
        - draft
        - pending
        - active
        - rejected
        - paused
        - hidden
        - unconfirmed
        - sold
      title: PropertyStatus
  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.