Innago Properties API

Manage properties and units

OpenAPI Specification

innago-properties-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Innago Expenses Properties API
  description: REST API for Innago property management platform enabling programmatic access to properties, units, tenants, leases, invoices, payments, expenses, and maintenance tickets. Authentication uses Bearer token and API key headers.
  version: v1
  contact:
    name: Innago Support
    url: https://innago.com/contact/
    email: support@innago.com
  termsOfService: https://auth.innago.com/termsandcondition
servers:
- url: https://api-my.innago.com/openapi
  description: Innago production API
security:
- BearerAuth: []
  ApiKeyAuth: []
tags:
- name: Properties
  description: Manage properties and units
paths:
  /v1/properties:
    get:
      operationId: listProperties
      summary: Get all properties
      description: Get all properties for the authenticated PO. PO identifier is fetched from token claims.
      tags:
      - Properties
      parameters:
      - name: pageNumber
        in: query
        schema:
          type: integer
        description: Pagination support; defaults to 1
      responses:
        '200':
          description: List of properties
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PropertyInfoListResponseModelResponse'
  /v1/properties/{propertyUid}:
    get:
      operationId: getProperty
      summary: Get property by ID
      description: Get all properties for a PO by propertyId. PO Identifier will be fetched from the token claims.
      tags:
      - Properties
      parameters:
      - name: propertyUid
        in: path
        required: true
        schema:
          type: string
          format: uuid
        description: The unique identifier for a specific property
      responses:
        '200':
          description: Property details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PropertyInfoResponseModelResponse'
  /v1/properties/{propertyUid}/units:
    get:
      operationId: listPropertyUnits
      summary: Get all units for a property
      description: Get all property units by propertyId.
      tags:
      - Properties
      parameters:
      - name: propertyUid
        in: path
        required: true
        schema:
          type: string
          format: uuid
        description: The Id of the specific property
      responses:
        '200':
          description: List of property units
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PropertyUnitListResponseModelResponse'
  /v1/properties/{propertyUid}/units/{unitUid}:
    get:
      operationId: getPropertyUnit
      summary: Get details of a specific unit
      description: Get details of a specific unit under a property.
      tags:
      - Properties
      parameters:
      - name: propertyUid
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: unitUid
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Property unit details including tenants
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PropertyUnitDetailResponseModelResponse'
components:
  schemas:
    TenantShortModel:
      type: object
      properties:
        tenantUid:
          type: string
          format: uuid
        firstName:
          type: string
        lastName:
          type: string
        email:
          type: string
        phone:
          type: string
    AddressResponseModel:
      type: object
      properties:
        addressLine1:
          type: string
        addressLine2:
          type: string
        country:
          type: string
        state:
          type: string
        stateShortName:
          type: string
        city:
          type: string
        zipcode:
          type: string
        latitude:
          type: number
          format: double
        longitude:
          type: number
          format: double
    PropertyInfoListResponseModelResponse:
      type: object
      properties:
        data:
          type: object
          properties:
            properties:
              type: array
              items:
                $ref: '#/components/schemas/PropertyInfoModel'
            pagingModel:
              $ref: '#/components/schemas/PagingModel'
        error:
          $ref: '#/components/schemas/ErrorResponse'
    ErrorResponse:
      type: object
      properties:
        errorMessage:
          type: string
          nullable: true
        errorCode:
          type: string
          nullable: true
    PropertyUnitDetailResponseModelResponse:
      type: object
      properties:
        data:
          type: object
          properties:
            unit:
              $ref: '#/components/schemas/PropertyUnitModel'
            tenants:
              type: array
              items:
                $ref: '#/components/schemas/TenantShortModel'
            entityType:
              type: string
        error:
          $ref: '#/components/schemas/ErrorResponse'
    PropertyInfoModel:
      type: object
      properties:
        propertyUid:
          type: string
          format: uuid
        name:
          type: string
        description:
          type: string
        numberOfUnits:
          type: integer
        availableUnits:
          type: integer
        totalTenants:
          type: integer
        numberOfOpenMainatainanceRequests:
          type: integer
        propertyType:
          type: string
        isArchived:
          type: boolean
        address:
          $ref: '#/components/schemas/AddressResponseModel'
        entityType:
          type: string
        propertyOwnerUid:
          type: string
          format: uuid
    PropertyInfoResponseModelResponse:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/PropertyInfoModel'
        error:
          $ref: '#/components/schemas/ErrorResponse'
    PropertyUnitModel:
      type: object
      properties:
        name:
          type: string
        propertyUnitUid:
          type: string
          format: uuid
    PagingModel:
      type: object
      properties:
        pageSize:
          type: integer
        currentPage:
          type: integer
        pageCount:
          type: integer
        totalRecords:
          type: integer
    PropertyUnitListResponseModelResponse:
      type: object
      properties:
        data:
          type: object
          properties:
            units:
              type: array
              items:
                $ref: '#/components/schemas/PropertyUnitModel'
        error:
          $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key