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

# O cerere de la un client

> Cererea, după `id`-ul primit în listă sau în evenimentele `lead.created` și `lead.updated`. Cere dreptul `leads:read`. Pentru o cerere la care cheia nu are acces, răspunsul e `404`.



## OpenAPI

````yaml ro/openapi.json GET /leads/{lead}
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:
  /leads/{lead}:
    get:
      tags:
        - Cererile clienților
      summary: O cerere de la un client
      description: >-
        Cererea, după `id`-ul primit în listă sau în evenimentele `lead.created`
        și `lead.updated`. Cere dreptul `leads:read`. Pentru o cerere la care
        cheia nu are acces, răspunsul e `404`.
      operationId: v1.leads.show
      parameters:
        - name: lead
          in: path
          required: true
          schema:
            type: integer
          description: >-
            Id-ul cererii, din listă sau din evenimentele `lead.created` și
            `lead.updated`.
        - 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:
                    $ref: '#/components/schemas/LeadApiResource'
                    description: Rezultatul cererii.
                required:
                  - data
          description: Cererea a reușit.
        '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`).
        '429':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
          description: >-
            Prea multe cereri. Reîncearcă după numărul de secunde din
            `Retry-After`.
components:
  schemas:
    LeadApiResource:
      type: object
      properties:
        id:
          type: integer
          description: >-
            Id-ul cererii. E același în evenimentele `lead.created` și
            `lead.updated`.
        source:
          type:
            - string
            - 'null'
          enum:
            - phone
            - message
            - viewing_request
            - referral
            - other
            - null
          description: >-
            Cum a ajuns cererea: `message` (mesaj), `phone` (cerere de apel),
            `viewing_request` (cerere de vizionare), `referral` sau `other`
            (adăugată de mână în portal). E canalul primei cereri: o cerere nouă
            a aceluiași client pe același anunț vine ca evenimentul
            `lead.updated`, cu canalul ei în `source`.
        status:
          type: string
          enum:
            - new
            - contacted
            - viewing
            - offer
            - closed
          description: >-
            Etapa cererii în portal: `new`, `contacted`, `viewing`, `offer` sau
            `closed`.
        listing:
          type:
            - object
            - 'null'
          properties:
            code:
              type: string
              description: Codul public al anunțului.
            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`.
          required:
            - code
            - external_ref
          description: >-
            Anunțul pe care a venit cererea; `null` pentru o cerere trimisă de
            pe pagina agenției sau adăugată de mână.
        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.
          required:
            - code
            - title
            - url
          description: >-
            La un dezvoltator, proiectul cererii: ansamblul pe care a venit sau
            cel din care face parte unitatea, cu `code`, `title` și `url`.
            `null` în afara unui proiect.
        contact:
          type: object
          properties:
            name:
              type: string
              description: Numele clientului.
            phone:
              type:
                - string
                - 'null'
              description: Telefonul clientului (E.164), dacă îl are.
            email:
              type:
                - string
                - 'null'
              description: Emailul clientului, dacă îl are.
          required:
            - name
            - phone
            - email
          description: Datele de contact ale clientului.
        message:
          type:
            - string
            - 'null'
          description: >-
            Ce a scris clientul: primul lui mesaj pe anunț sau textul trimis de
            pe pagina agenției. `null` dacă n-a scris nimic, de exemplu la o
            cerere de apel.
        erased:
          type: boolean
          description: >-
            `true` când clientul și-a șters contul: numele e anonimizat, iar
            telefonul, emailul, mesajul și nota sunt `null`. Ștergi datele
            clientului și din copia ta.
        note:
          type:
            - string
            - 'null'
          description: >-
            Nota contului despre cerere, ca în portal. La o cerere trimisă de pe
            pagina agenției, nota pornește cu textul clientului.
        price:
          type:
            - integer
            - 'null'
          description: >-
            Suma oferită de client, în euro întregi, ca în portal; `null` dacă
            nu e trecută.
        agent:
          type:
            - object
            - 'null'
          properties:
            name:
              type: string
              description: >-
                Numele contului agentului. Portalul arată numele din
                `display_name`.
            email:
              type:
                - string
                - 'null'
              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.
            display_name:
              type: string
              description: >-
                Numele public aprobat al agentului, cel pe care îl arată
                portalul în dreptul cererii. Diferă de `name` când agentul are
                aprobat un alt nume public.
          required:
            - name
            - email
            - display_name
          description: >-
            Agentul care are cererea în portal; `null` cât timp așteaptă în
            căsuța firmei să o preia cineva.
        requests:
          type: object
          properties:
            callback_at:
              type:
                - string
                - 'null'
              description: >-
                Ultima cerere de apel a clientului (ISO 8601); `null` dacă n-a
                cerut să fie sunat.
            viewing_at:
              type:
                - string
                - 'null'
              description: >-
                Ultima cerere de vizionare a clientului (ISO 8601); `null` dacă
                n-a cerut o vizionare.
          required:
            - callback_at
            - viewing_at
          description: >-
            Când a cerut clientul ultima oară să fie sunat și să vină la
            vizionare, ca în portal. `source` spune doar canalul primei cereri.
        office:
          type:
            - object
            - 'null'
          properties:
            id:
              type: integer
              description: >-
                Id-ul punctului de lucru. Îl trimiți ca `office` în `GET
                /leads`.
            name:
              type: string
              description: >-
                Numele punctului de lucru. Sediul are numele „Sediu”, în limba
                răspunsului.
          required:
            - id
            - name
          description: >-
            Punctul de lucru al cererii; `null` pentru o cerere din afara unei
            firme.
        inbox:
          type:
            - object
            - 'null'
          properties:
            reason:
              type: string
              enum:
                - no_listing
                - left
                - no_agent
              description: >-
                De ce așteaptă: `no_listing` (clientul a scris de pe pagina
                firmei), `left` (agentul care avea cererea sau anunțul a plecat
                din firmă ori a fost dezactivat) sau `no_agent` (anunțul nu are
                un agent activ).
            since:
              type:
                - string
                - 'null'
              description: Momentul în care a venit cererea (ISO 8601), ca în portal.
          required:
            - reason
            - since
          description: >-
            De ce așteaptă cererea în „De preluat” și când a venit; `null` cât
            timp are un responsabil.
        created_at:
          type:
            - string
            - 'null'
          description: Momentul cererii (ISO 8601).
        updated_at:
          type:
            - string
            - 'null'
          description: Ultima modificare a cererii în portal (ISO 8601).
      required:
        - id
        - source
        - status
        - listing
        - complex
        - contact
        - message
        - erased
        - note
        - price
        - agent
        - requests
        - office
        - inbox
        - created_at
        - updated_at
      title: LeadApiResource
    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
  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.