---
openapi: 3.0.1
info:
  title: API Public V1
  version: v1
paths:
  "/api_public/v1/properties/{id}":
    get:
      summary: Retrieves a property
      tags:
      - Properties
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: locale
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: property found
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: integer
                  title:
                    type: string
                  description:
                    type: string
                  prop_photos:
                    type: array
                    items:
                      type: object
                      properties:
                        image:
                          type: string
                  price_sale_current_cents:
                    type: integer
                  price_rental_monthly_current_cents:
                    type: integer
                  currency:
                    type: string
                  area_unit:
                    type: string
                  count_bedrooms:
                    type: integer
                  count_bathrooms:
                    type: integer
                  count_garages:
                    type: integer
                  for_sale:
                    type: boolean
                  for_rent:
                    type: boolean
        '404':
          description: property not found
  "/api_public/v1/properties":
    get:
      summary: Retrieves properties
      tags:
      - Properties
      parameters:
      - name: sale_or_rental
        in: query
        required: false
        schema:
          type: string
      - name: currency
        in: query
        required: false
        schema:
          type: string
      - name: for_sale_price_from
        in: query
        required: false
        schema:
          type: string
      - name: for_sale_price_till
        in: query
        required: false
        schema:
          type: string
      - name: for_rent_price_from
        in: query
        required: false
        schema:
          type: string
      - name: for_rent_price_till
        in: query
        required: false
        schema:
          type: string
      - name: bedrooms_from
        in: query
        required: false
        schema:
          type: string
      - name: bathrooms_from
        in: query
        required: false
        schema:
          type: string
      - name: property_type
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: properties found
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: integer
                    title:
                      type: string
                    price_sale_current_cents:
                      type: integer
                    price_rental_monthly_current_cents:
                      type: integer
                    currency:
                      type: string
                    prop_photos:
                      type: array
                      items:
                        type: object
                        properties:
                          image:
                            type: string
  "/api_public/v1/pages/{id}":
    get:
      summary: Retrieves a page
      tags:
      - Pages
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: page found
          content:
            application/json:
              schema:
                type: object
                properties:
                  slug:
                    type: string
                  link_path:
                    type: string
                  visible:
                    type: boolean
                  page_title:
                    type: string
                  link_title:
                    type: string
                  raw_html:
                    type: string
                  show_in_top_nav:
                    type: boolean
                  show_in_footer:
                    type: boolean
                  page_contents:
                    type: array
                    items:
                      type: object
        '404':
          description: page not found
  "/api_public/v1/pages/by_slug/{slug}":
    get:
      summary: Retrieves a page by slug
      tags:
      - Pages
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
      - name: locale
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: page found
          content:
            application/json:
              schema:
                type: object
                properties:
                  slug:
                    type: string
                  link_path:
                    type: string
                  visible:
                    type: boolean
                  page_title:
                    type: string
                  link_title:
                    type: string
                  raw_html:
                    type: string
                  show_in_top_nav:
                    type: boolean
                  show_in_footer:
                    type: boolean
                  page_contents:
                    type: array
                    items:
                      type: object
        '404':
          description: page not found
  "/api_public/v1/translations":
    get:
      summary: Retrieves translations
      tags:
      - Translations
      parameters:
      - name: locale
        in: query
        required: true
        schema:
          type: string
      responses:
        '200':
          description: translations found
          content:
            application/json:
              schema:
                type: object
                properties:
                  locale:
                    type: string
                  result:
                    type: object
  "/api_public/v1/links":
    get:
      summary: Retrieves links
      tags:
      - Links
      parameters:
      - name: placement
        in: query
        required: false
        schema:
          type: string
      - name: locale
        in: query
        required: false
        schema:
          type: string
      - name: visible_only
        in: query
        required: false
        schema:
          type: boolean
      responses:
        '200':
          description: links found
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    slug:
                      type: string
                    link_path:
                      type: string
                    visible:
                      type: boolean
                    link_title:
                      type: string
                    page_slug:
                      type: string
                    placement:
                      type: string
                    href_class:
                      type: string
                    is_deletable:
                      type: boolean
  "/api_public/v1/site_details":
    get:
      summary: Retrieves site details
      tags:
      - Site Details
      parameters:
      - name: locale
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: site details found
          content:
            application/json:
              schema:
                type: object
                properties:
                  company_display_name:
                    type: string
                  theme_name:
                    type: string
                  default_currency:
                    type: string
                  supported_locales:
                    type: array
                    items:
                      type: string
                  social_media:
                    type: object
                  agency:
                    type: object
                  top_nav_display_links:
                    type: array
                    items:
                      type: object
                  footer_display_links:
                    type: array
                    items:
                      type: object
  "/api_public/v1/select_values":
    get:
      summary: Retrieves select values
      tags:
      - Select Values
      parameters:
      - name: field_names
        in: query
        required: false
        description: Comma separated list of field names
        schema:
          type: string
      responses:
        '200':
          description: select values found
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: array
                  items:
                    type: object
                    properties:
                      value:
                        type: string
                      label:
                        type: string
servers:
- url: https://{defaultHost}
  variables:
    defaultHost:
      default: www.example.com
