> ## 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 attendance sheet

> Who said they're coming to an open house window and who came, most recent first, with the counts and the door sheet's link in `meta`. The rows are people: it needs the `leads:read` ability. Rows are deleted 90 days after the open house.



## OpenAPI

````yaml en/openapi.json GET /viewings/{slot}/attendees
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:
  /viewings/{slot}/attendees:
    get:
      tags:
        - Viewings
      summary: The attendance sheet
      description: >-
        Who said they're coming to an open house window and who came, most
        recent first, with the counts and the door sheet's link in `meta`. The
        rows are people: it needs the `leads:read` ability. Rows are deleted 90
        days after the open house.
      operationId: v1.open_house.attendees.index
      parameters:
        - name: slot
          in: path
          required: true
          schema:
            type: integer
          description: The id of the time or window, from the agenda's `slots[].id`.
        - 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/OpenHouseAttendeeApiResource'
                    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.
                      going:
                        type: integer
                        description: How many people said they're coming.
                      arrived:
                        type: integer
                        description: How many people were marked as arrived.
                      private:
                        type: boolean
                        description: >-
                          `true` on a private person's listing: the list shows
                          who said they're coming, with no sheet at the door.
                      checkin:
                        type:
                          - object
                          - 'null'
                        properties:
                          url:
                            type: string
                            description: >-
                              The report's signed address. It's an access, so
                              keep it like a password.
                          opens_at:
                            type: string
                            description: >-
                              When the sheet starts taking signatures: an hour
                              before the window.
                          closes_at:
                            type: string
                            description: >-
                              When the sheet stops taking signatures: an hour
                              after the window.
                          open:
                            type: boolean
                            description: '`true` while the sheet takes signatures.'
                        required:
                          - url
                          - opens_at
                          - closes_at
                          - open
                        description: >-
                          The door sheet: `url` (the link for the QR code),
                          `opens_at`, `closes_at` and `open`; `null` on a
                          private person's listing.
                    required:
                      - path
                      - per_page
                      - next_cursor
                      - prev_cursor
                      - going
                      - arrived
                      - private
                      - checkin
                    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 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`).
        '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:
    OpenHouseAttendeeApiResource:
      type: object
      properties:
        id:
          type: integer
          description: >-
            The event ID (ULID, increasing). Send it as `after` to continue
            where you left off.
        name:
          type: string
          description: Name.
        phone:
          type:
            - string
            - 'null'
          description: Phone.
        source:
          type: string
          description: >-
            Where the row comes from: `rsvp` (said they're coming on the listing
            page), `checkin` (signed at the door) or `manual` (added by you).
        account:
          type: boolean
          description: '`true` when the row is a Housera account''s.'
        rsvp_at:
          type:
            - string
            - 'null'
          description: When they said they're coming, or `null`.
        arrived_at:
          type:
            - string
            - 'null'
          description: When they arrived, or `null`.
        interested:
          type: boolean
          description: '`true` when you marked them as interested.'
        consent:
          type: boolean
          description: >-
            `true` when the person agreed to be contacted; only then does the
            row keep the phone written at the door.
        consent_at:
          type:
            - string
            - 'null'
          description: When they gave their consent, or `null`.
        consent_version:
          type:
            - string
            - 'null'
          description: The version of the notice they accepted, or `null`.
      required:
        - id
        - name
        - phone
        - source
        - account
        - rsvp_at
        - arrived_at
        - interested
        - consent
        - consent_at
        - consent_version
      title: OpenHouseAttendeeApiResource
    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.