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

# The company's mandates

> The company's marketing mandates, as on the portal's Mandates screen: for an agency, the ones it asked for; for a developer, the ones that name it. Oldest first, with cursor pagination, with each one's status and the step it has reached, without the contract. Only for the company's owner and admins, with a key bound to the company; any other key gets 403 (`forbidden`). Requires the `listings:read` permission.



## OpenAPI

````yaml en/openapi.json GET /account/mandates
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/mandates:
    get:
      tags:
        - Marketing mandates
      summary: The company's mandates
      description: >-
        The company's marketing mandates, as on the portal's Mandates screen:
        for an agency, the ones it asked for; for a developer, the ones that
        name it. Oldest first, with cursor pagination, with each one's status
        and the step it has reached, without the contract. Only for the
        company's owner and admins, with a key bound to the company; any other
        key gets 403 (`forbidden`). Requires the `listings:read` permission.
      operationId: v1.mandates.index
      parameters:
        - name: status
          in: query
          schema:
            type:
              - string
              - 'null'
          description: >-
            `requested` for the waiting mandates, `confirmed` for the confirmed
            ones, `closed` for the history (refused, withdrawn, revoked and
            expired). Without it you get them all.
        - name: per_page
          in: query
          schema:
            type:
              - integer
              - 'null'
            minimum: 1
            maximum: 100
          description: Results per page (default 50, maximum 100).
        - name: cursor
          in: query
          schema:
            type:
              - string
              - 'null'
          description: >-
            The next page's cursor, from `meta.next_cursor`, sent exactly as you
            received it. Any other value gets 422 (`pagination_cursor`).
        - 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: array
                    items:
                      $ref: '#/components/schemas/MandateApiResource'
                    description: The result of the request.
                  links:
                    type: object
                    properties:
                      first:
                        type:
                          - string
                          - 'null'
                        description: The first page's URL.
                      last:
                        type:
                          - string
                          - 'null'
                        description: The last page's URL (null with cursor pagination).
                      prev:
                        type:
                          - string
                          - 'null'
                        description: The previous page's URL, or null.
                      next:
                        type:
                          - string
                          - 'null'
                        description: >-
                          The next page: its URL, or the cursor to pass on. Null
                          when there is nothing left.
                    required:
                      - first
                      - last
                      - prev
                      - next
                    description: Pagination links.
                  meta:
                    type: object
                    properties:
                      path:
                        type:
                          - string
                          - 'null'
                        description: The list's base URL.
                      per_page:
                        type: integer
                        minimum: 0
                        description: Results per page.
                      next_cursor:
                        type:
                          - string
                          - 'null'
                        description: The next page's cursor; null when the list has ended.
                      prev_cursor:
                        type:
                          - string
                          - 'null'
                        description: The previous page's cursor; null on the first page.
                    required:
                      - path
                      - per_page
                      - next_cursor
                      - prev_cursor
                    description: >-
                      Data about the response, outside the result, for example a
                      list's pagination.
                required:
                  - data
                  - links
                  - meta
          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 ability required (`missing_ability`), or the
            account is not the owner or an admin of the key's company
            (`forbidden`).
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ValidationProblem'
          description: >-
            The data fails the rules: one entry per field in `errors[]`, each
            with a stable `code`.
        '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:
    MandateApiResource:
      type: object
      properties:
        id:
          type: integer
          description: >-
            The mandate's id, the same as `mandate_id` in the
            `complex.mandate_*` events.
        side:
          type: string
          description: >-
            Which side the key's company is on: `agency` (it markets the
            development) or `developer` (its developer).
        status:
          type: string
          description: >-
            `requested`, `confirmed`, `refused`, `withdrawn`, `revoked` or
            `expired`.
        step:
          type: string
          enum:
            - better_contract_requested
            - awaiting_developer
            - awaiting_moderation
            - to_declare
            - renewal_to_check
            - confirmed
            - ended
          description: >-
            Where the mandate stands: `awaiting_developer`,
            `awaiting_moderation`, `better_contract_requested`, `to_declare`,
            `renewal_to_check`, `confirmed` or `ended`. The mandates guide says
            what each one means.
        legacy:
          type: boolean
          description: >-
            `true` for a mandate from before the current rules, which the agency
            has to declare.
        complex:
          type:
            - object
            - 'null'
          properties:
            code:
              type: string
              description: The development's public code.
            title:
              type:
                - string
                - 'null'
              description: The development's title.
            url:
              type: string
              description: The development's address on Housera.
          required:
            - code
            - title
            - url
          description: The mandate's development, with `code`, `title` and `url`.
        agency:
          type:
            - object
            - 'null'
          properties:
            id:
              type: integer
              description: The agency's id.
            name:
              type: string
              description: The agency's name.
          required:
            - id
            - name
          description: The agency that markets the development, with `id` and `name`.
        developer:
          type:
            - object
            - 'null'
          properties:
            name:
              type: string
              description: The name of the development's company.
            legal_name:
              type:
                - string
                - 'null'
              description: The developer's registered name.
            tax_id:
              type:
                - string
                - 'null'
              description: >-
                The tax ID, only when the company is verified in the register
                and is a legal entity. `null` for sole traders (PFA) and
                individual enterprises.
            on_platform:
              type: boolean
              description: >-
                `true` when the developer has its own company on Housera and
                decides the request.
          required:
            - name
            - legal_name
            - tax_id
            - on_platform
          description: The development's developer; `null` if it is not known yet.
        valid_until:
          type:
            - string
            - 'null'
          description: >-
            The day the contract ends (`YYYY-MM-DD`); `null` if it has no end
            date.
        decided_via:
          type:
            - string
            - 'null'
          description: >-
            Who decided: `developer`, `moderator` or `legacy`; `null` while the
            request is waiting.
        created_at:
          type: string
          description: When it was requested (ISO 8601).
        decided_at:
          type:
            - string
            - 'null'
          description: >-
            When it was confirmed or refused (ISO 8601); `null` while the
            request is waiting.
        ended_at:
          type:
            - string
            - 'null'
          description: When the mandate ended (ISO 8601); `null` while it is open.
      required:
        - id
        - side
        - status
        - step
        - legacy
        - complex
        - agency
        - developer
        - valid_until
        - decided_via
        - created_at
        - decided_at
        - ended_at
      title: MandateApiResource
    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
    ValidationProblem:
      type: object
      title: ValidationProblem
      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: `422`.'
        errors:
          type: array
          items:
            type: object
            properties:
              pointer:
                type: string
                description: The field it refers to, as a JSON Pointer (`/features/2`).
              code:
                type: string
                description: >-
                  The rule that failed, as a stable code (the list is on the
                  Errors page).
              detail:
                type: string
                description: >-
                  The explanation, in the request's language. The wording can
                  change, so handle the error by `code`.
            required:
              - pointer
              - code
              - detail
          description: One entry for each field that fails the rules.
      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.