DoorLoop · Schema

tenant

Property ManagementReal EstateLeasesRent CollectionMaintenanceAccountingTenant Communication

Properties

Name Type Description
id object
name string Read Only
firstName string
middleName string
lastName string
gender string
fullName string Read Only
dateOfBirth string Format: YYYY-MM-DD
timezone string
company string
companyName string
jobTitle string
notes string
phones array
emails array
primaryAddress object
pictureUrl string
string
dependants array
pets array
vehicles array
emergencyContacts array
prospectInfo object
portalInfo object
type string
View JSON Schema on GitHub

JSON Schema

doorloop-tenant-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/doorloop/main/json-schema/doorloop-tenant-schema.json",
  "title": "tenant",
  "x-generated": "2026-10-14",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/doorloop-api-reference-openapi.yml#/components/schemas/tenant",
  "allOf": [
    {
      "$ref": "#/$defs/person"
    },
    {
      "type": "object",
      "properties": {
        "dependants": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "firstName": {
                "type": "string"
              },
              "middleName": {
                "type": "string"
              },
              "lastName": {
                "type": "string"
              },
              "dateOfBirth": {
                "type": "string"
              },
              "relationship": {
                "type": "string"
              }
            }
          }
        },
        "pets": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "petType": {
                "type": "string"
              },
              "weight": {
                "type": "number"
              },
              "age": {
                "type": "integer"
              },
              "color": {
                "type": "string",
                "maxLength": 100
              },
              "breed": {
                "type": "string",
                "maxLength": 100
              },
              "name": {
                "type": "string",
                "maxLength": 100
              },
              "gender": {
                "type": "string",
                "maxLength": 100
              },
              "isSpayedOrNeutered": {
                "type": "boolean"
              },
              "isServiceAnimal": {
                "type": "boolean"
              },
              "notes": {
                "type": "string",
                "maxLength": 1000
              }
            }
          }
        },
        "vehicles": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "make": {
                "type": "string",
                "maxLength": 100
              },
              "model": {
                "type": "string",
                "maxLength": 100
              },
              "year": {
                "type": "integer",
                "minimum": 1950,
                "maximum": 2050
              },
              "color": {
                "type": "string",
                "maxLength": 50
              },
              "licensePlatae": {
                "type": "string",
                "maxLength": 20
              },
              "state": {
                "type": "string",
                "maxLength": 20
              },
              "notes": {
                "type": "string",
                "maxLength": 1000
              }
            }
          }
        },
        "emergencyContacts": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "maxLength": 255
              },
              "relationship": {
                "type": "string",
                "maxLength": 100
              },
              "email": {
                "type": "string",
                "maxLength": 100
              },
              "phone": {
                "type": "string",
                "maxLength": 100
              }
            }
          }
        },
        "prospectInfo": {
          "type": "object",
          "properties": {
            "assignedToUser": {
              "type": "string",
              "description": "The User Id this Prospect is assigned to"
            },
            "status": {
              "type": "string",
              "enum": [
                "NEW",
                "CONTACT_ATTEMPTED",
                "CONTACT_MADE",
                "SHOWING_SCHEDULED",
                "SHOWING_COMPLETED",
                "APPLICATION_SENT",
                "APPLICATION_SUBMITTED",
                "LEASE_OFFER_MADE",
                "LEASE_OFFER_ACCEPTED",
                "LEASE_SENT_FOR_SIGNATURE",
                "CLOSED_MOVED_IN",
                "CLOSED_LOST"
              ]
            },
            "interests": {
              "type": "array",
              "description": "Represents all the properties and/or units this prospect is interested moving into",
              "items": {
                "type": "object",
                "properties": {
                  "property": {
                    "type": "string",
                    "description": "Reference the Property Id"
                  },
                  "unit": {
                    "type": "string",
                    "description": "Reference the Unit Id"
                  }
                }
              }
            },
            "leadSource": {
              "type": "string",
              "description": "References to the Tag Id"
            },
            "minBathrooms": {
              "type": "number",
              "minimum": 0
            },
            "minBedrooms": {
              "type": "number",
              "minimum": 0
            },
            "maxRent": {
              "type": "number",
              "minimum": 0
            },
            "expectedMoveInDate": {
              "type": "string",
              "description": "Format: YYYY-MM-DD"
            },
            "creditScore": {
              "type": "integer"
            },
            "monthlyIncome": {
              "type": "number"
            },
            "campaignSource": {
              "type": "string"
            },
            "campaignMedium": {
              "type": "string"
            },
            "campaignName": {
              "type": "string"
            },
            "campaignContent": {
              "type": "string"
            },
            "campaignTerm": {
              "type": "string"
            },
            "nextTaskDate": {
              "type": "string",
              "description": "Read Only. Format: YYYY-MM-DD"
            }
          }
        },
        "portalInfo": {
          "type": "object",
          "properties": {
            "allowAccess": {
              "type": "boolean"
            },
            "lastSeenAt": {
              "type": "string",
              "description": "Read Only. Format: YYYY-MM-DD"
            },
            "loginEmail": {
              "type": "string",
              "maxLength": 255
            },
            "status": {
              "type": "string",
              "description": "Read Only",
              "enum": [
                "ACTIVE",
                "INACTIVE",
                "INVITED"
              ]
            },
            "invitationLastSentAt": {
              "type": "string",
              "description": "Read Only. Format: YYYY-MM-DD"
            }
          }
        },
        "type": {
          "type": "string",
          "enum": [
            "LEASE_TENANT",
            "PROSPECT_TENANT"
          ]
        }
      }
    }
  ],
  "$defs": {
    "address": {
      "title": "address",
      "x-stoplight": {
        "id": "a6vhbqoeituyk"
      },
      "type": "object",
      "description": "",
      "properties": {
        "street1": {
          "type": "string"
        },
        "street2": {
          "type": "string"
        },
        "city": {
          "type": "string"
        },
        "zip": {
          "type": "string"
        },
        "country": {
          "type": "string"
        },
        "lat": {
          "type": "string"
        },
        "lng": {
          "type": "string"
        }
      }
    },
    "email": {
      "title": "email",
      "x-stoplight": {
        "id": "33vnq3pmvuy4l"
      },
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "Primary",
            "Secondary",
            "Personal",
            "Work",
            "Other"
          ]
        },
        "address": {
          "type": "string"
        }
      },
      "required": [
        "type",
        "address"
      ]
    },
    "mongoId": {
      "type": "string",
      "title": "mongoId",
      "x-stoplight": {
        "id": "40j7qlmpihfdj"
      },
      "pattern": "/^[a-f\\d]{24}$/i"
    },
    "person": {
      "title": "person",
      "x-stoplight": {
        "id": "w8ihhyv3ctmy8"
      },
      "type": "object",
      "description": "",
      "properties": {
        "id": {
          "$ref": "#/$defs/mongoId"
        },
        "name": {
          "type": "string",
          "description": "Read Only"
        },
        "firstName": {
          "type": "string"
        },
        "middleName": {
          "type": "string"
        },
        "lastName": {
          "type": "string"
        },
        "gender": {
          "type": "string",
          "enum": [
            "MALE",
            "FEMALE",
            "PREFER_NOT_TO_SAY"
          ]
        },
        "fullName": {
          "type": "string",
          "description": "Read Only"
        },
        "dateOfBirth": {
          "type": "string",
          "description": "Format: YYYY-MM-DD"
        },
        "timezone": {
          "type": "string"
        },
        "company": {
          "type": "string"
        },
        "companyName": {
          "type": "string"
        },
        "jobTitle": {
          "type": "string"
        },
        "notes": {
          "type": "string"
        },
        "phones": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/phone"
          }
        },
        "emails": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/email"
          }
        },
        "primaryAddress": {
          "$ref": "#/$defs/address"
        },
        "pictureUrl": {
          "type": "string"
        },
        "": {
          "type": "string"
        }
      },
      "required": [
        "firstName",
        "lastName"
      ]
    },
    "phone": {
      "title": "phone",
      "x-stoplight": {
        "id": "9kqyepto63cpi"
      },
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "Home",
            "Work",
            "Mobile",
            "Fax",
            "Other"
          ]
        },
        "number": {
          "type": "string",
          "maxLength": 50
        }
      },
      "required": [
        "type",
        "number"
      ]
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/doorloop-tenant"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.