### Authorization Header Example Source: https://api.doorloop.com/reference/put-vendor-bill This snippet shows an example of how to format the Authorization header for API requests. Ensure you replace 'dl_api_key_A11I3SasdCkasdkjVJh20jG00czp5f7q6' with your actual API key. ```json { "name": "Authorization", "description": "Your API key should go here, for example bearer dl_api_key_A11I3SasdCkasdkjVJh20jG00czp5f7q6" } ``` -------------------------------- ### API Key Authentication Example Source: https://api.doorloop.com/reference/authentication This example demonstrates how to authenticate an API request using a bearer token in the Authorization header. Replace 'your_api_token_goes_here' with your actual API token. ```APIDOC ## GET /api/accounts ### Description Retrieves a list of accounts. This is an example endpoint to demonstrate authentication. ### Method GET ### Endpoint https://app.doorloop.com/api/accounts ### Parameters #### Query Parameters None #### Request Body None ### Request Example ```curl curl --request GET \ --url https://app.doorloop.com/api/accounts \ --header 'Accept: application/json' \ --header 'Authorization: bearer your_api_token_goes_here' ``` ### Response #### Success Response (200) - **accounts** (array) - A list of account objects. #### Response Example ```json { "accounts": [ { "id": "123e4567-e89b-12d3-a456-426614174000", "name": "Example Company", "createdAt": "2023-01-01T12:00:00Z" } ] } ``` ### Error Handling - **401 Unauthorized**: If the API token is missing or invalid. - **403 Forbidden**: If the API token does not have permission to access this resource. - **405 METHOD_NOT_ALLOWED**: If the API token or user does not have access to this specific method. ``` -------------------------------- ### API Key Example Source: https://api.doorloop.com/reference/get-lease Your API key should be included in the Authorization header as a Bearer token. Example: bearer dl_api_key_A11I3SasdCkasdkjVJh20jG00czp5f7q6 ```json { "description": "Your API key should go here, for example bearer dl_api_key_A11I3SasdCkasdkjVJh20jG00czp5f7q6" } ``` -------------------------------- ### OpenAPI Configuration Example Source: https://api.doorloop.com/reference/post-tenant This snippet shows a configuration block within an OpenAPI definition, enabling explorer and proxy features. ```json "explorer-enabled": true, "proxy-enabled": true } } ``` -------------------------------- ### List Properties with Custom Page Size (First Page) Source: https://api.doorloop.com/reference/pagination Omit 'page_number' to use the default value of 1. This example fetches the first 100 results. ```curl url --request GET \ --url https://app.doorloop.com/api/properties?page_size=100 \ --header 'Accept: application/json' \ --header 'Authorization: bearer your_api_token_goes_here' ``` -------------------------------- ### List Properties with Pagination (Page 2, Size 50) Source: https://api.doorloop.com/reference/pagination Use 'page_number' and 'page_size' to retrieve specific pages of results. This example fetches records 51-100. ```curl url --request GET \ --url https://app.doorloop.com/api/properties?page_number=2&page_size=50 \ --header 'Accept: application/json' \ --header 'Authorization: bearer your_api_token_goes_here' ``` -------------------------------- ### Get Lease Credits Source: https://api.doorloop.com/reference/get-lease-credits Retrieves lease credits based on provided parameters. ```APIDOC ## GET /lease-credits ### Description Retrieves a list of lease credits. Supports filtering by lease ID, date, and batch. ### Method GET ### Endpoint /lease-credits ### Query Parameters - **lease** (string) - Required - The ID of the lease. - **date** (string) - Optional - The date for which to retrieve credits (format: YYYY-MM-DD). - **batch** (string) - Optional - The batch identifier for credits. ``` -------------------------------- ### Get Tasks Source: https://api.doorloop.com/reference/get-tasks Retrieves a list of tasks. Supports filtering by requested user, tenant, or owner ID. ```APIDOC ## GET /tasks ### Description Retrieves a list of tasks. Supports filtering by requested user, tenant, or owner ID. ### Method GET ### Endpoint /tasks ### Query Parameters - **filter_requestedById** (string) - Optional - Filters tasks by the ID of the user, tenant, or owner who requested them. ``` -------------------------------- ### Retrieve a Portfolio by ID Source: https://api.doorloop.com/reference/get-property-group Use this endpoint to get details of a specific portfolio. You need to provide the portfolio ID in the path. The response includes the total number of portfolios and the portfolio data itself. ```json { "openapi": "3.1.0", "x-stoplight": { "id": "cz75kvx8cjg25" }, "info": { "title": "DoorLoop API Reference", "version": "1.0", "summary": "This is the DoorLoop API", "description": "It does some pretty cool stuff and gives you complete access to DoorLoop's data", "license": { "name": "Terms and Conditions", "url": "https://www.doorloop.com/legal/terms" }, "contact": { "name": "DoorLoop Inc.", "url": "www.doorloop.com", "email": "support@doorloop.com" }, "termsOfService": "https://www.doorloop.com/legal/terms" }, "servers": [ { "url": "https://app.doorloop.com/api", "description": "Production" } ], "paths": { "/property-groups/{portfolioId}": { "get": { "summary": "Retrieve a Portfolio", "tags": [ "Portfolios" ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "total": { "type": "string" }, "data": { "$ref": "#/components/schemas/propertyGroup" } } } } } } }, "operationId": "get-property-group", "security": [ { "Key": [] } ], "description": "Retreieves a Portfolio" }, "parameters": [ { "schema": { "type": "string" }, "name": "portfolioId", "in": "path", "required": true } ] } }, "components": { "schemas": { "propertyGroup": { "title": "", "x-stoplight": { "id": "pmuqa1tixt7kj" }, "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "properties": { "type": "array", "description": "An array of Property Ids for properties in this portfolio.", "items": { "type": "string" } } }, "required": [ "name", "properties" ] } }, "securitySchemes": { "Key": { "type": "apiKey", "in": "header", "name": "Authorization", "description": "Your API key should go here, for example bearer dl_api_key_A11I3SasdCkasdkjVJh20jG00czp5f7q6" } } }, "x-readme": { "explorer-enabled": true, "proxy-enabled": true } } ``` -------------------------------- ### Create Task Source: https://api.doorloop.com/reference/post-task Creates a new task. ```APIDOC ## POST /tasks ### Description Creates a Task ### Method POST ### Endpoint /tasks ``` -------------------------------- ### Authenticate GET Request with Bearer Token Source: https://api.doorloop.com/reference/authentication Use this cURL command to make a GET request to the API, including your API token in the Authorization header. Replace 'your_api_token_goes_here' with your actual API token. All API requests must be made over HTTPS. ```curl curl --request GET \ --url https://app.doorloop.com/api/accounts \ --header 'Accept: application/json' \ --header 'Authorization: bearer your_api_token_goes_here' ``` -------------------------------- ### List all Portfolios Source: https://api.doorloop.com/reference/get-property-groups Lists all Portfolios ```APIDOC ## GET /property-groups ### Description Lists all Portfolios ### Method GET ### Endpoint /property-groups ### Parameters #### Query Parameters None #### Request Body None ### Response #### Success Response (200) - **total** (string) - - **data** (object) - #### Response Example { "example": { "total": "string", "data": { "id": "string", "name": "string", "properties": [ "string" ] } } } ### Security - **Key**: ApiKey (header: Authorization) ``` -------------------------------- ### Get Leases Source: https://api.doorloop.com/reference/get-leases Retrieves a list of leases, with options for filtering. ```APIDOC ## GET /leases ### Description Retrieves a list of leases. Supports filtering by term. ### Method GET ### Endpoint /leases ### Query Parameters - **term** (string) - Optional - Filters leases by their term ('Fixed' or 'AtWill'). ### Security - **Key**: API Key authentication required in the header. ### Response #### Success Response (200) - **Lease** (object) - An array of Lease objects. ### Response Example ```json [ { "id": "507f191e810c19729de860ea", "property": "507f191e810c19729de860ea", "name": "Lease Agreement 1", "notes": "Standard lease for unit 101.", "reference": "REF12345", "start": "2023-01-01", "end": "2023-12-31", "term": "Fixed", "rolloverToAtWill": "false", "units": [ "507f191e810c19729de860ea" ], "status": "ACTIVE", "evictonPending": false, "proofOfInsuranceRequired": true, "totalBalancedue": 0, "totalDepositsHeld": 500, "totalRecurringRent": 1500, "totalRecurringPayments": 1500, "totalRecurringCredits": 0, "TotalRecurringCharges": 1500 } ] ``` ``` -------------------------------- ### Get Owner Details Source: https://api.doorloop.com/reference/get-owner Retrieves detailed information about a specific owner. ```APIDOC ## GET /owner ### Description Retrieves a list of owners. ### Method GET ### Endpoint /owner ### Parameters #### Query Parameters - **limit** (integer) - Optional - The maximum number of owners to return. - **offset** (integer) - Optional - The number of owners to skip before starting to collect the result set. ### Response #### Success Response (200) - **owners** (array) - A list of owner objects. - **owner** (object) - Contains owner details. - **active** (boolean) - Indicates if the owner is active. - **managementStartDate** (string) - The start date of management in YYYY-MM-DD format. - **managementEndDate** (string) - The end date of management in YYYY-MM-DD format. - **federalTaxInfo** (object) - Information related to federal taxes. - **addressFor1099SameAsPrimaryAddress** (boolean) - If true, uses the primary address for the 1099 form. - **addressFor1099** (object) - The address for the 1099 form (required if `addressFor1099SameAsPrimaryAddress` is false). - **taxpayerName** (string) - The name of the taxpayer. - **taxpayerId** (string) - The ID of the taxpayer. ### Response Example ```json { "owners": [ { "active": true, "managementStartDate": "2023-01-01", "managementEndDate": null, "federalTaxInfo": { "addressFor1099SameAsPrimaryAddress": true, "taxpayerName": "John Doe", "taxpayerId": "123-45-6789" } } ] } ``` ``` -------------------------------- ### List Properties with Pagination Source: https://api.doorloop.com/reference/pagination Demonstrates how to use pagination parameters to retrieve specific pages of data from the List all Properties endpoint. ```APIDOC ## GET /api/properties ### Description Lists properties with support for pagination. ### Method GET ### Endpoint /api/properties ### Query Parameters - **page_number** (integer) - Optional - The page number to retrieve. Defaults to 1. - **page_size** (integer) - Optional - The number of records to return per page. Defaults to 50, max 1,000. ### Request Example ```curl curl --request GET \ --url https://app.doorloop.com/api/properties?page_number=2&page_size=50 \ --header 'Accept: application/json' \ --header 'Authorization: bearer your_api_token_goes_here' ``` ### Response #### Success Response (200) - **total** (integer) - The total number of records available. - **data** (array) - An array of objects containing the actual records for the requested page. #### Response Example ```json { "total": 150, "data": [ { ... }, { ... } ] } ``` ``` -------------------------------- ### Get Current User Source: https://api.doorloop.com/reference/get-current-user Retrieves the user that created this API key. ```APIDOC ## GET /users/me ### Description Retrieves the the user that created this api key ### Method GET ### Endpoint /users/me ### Parameters ### Request Example ### Response #### Success Response (200) - **user** (user) - Description of the user object #### Response Example { "example": "response body" } ``` -------------------------------- ### Get All Users Source: https://api.doorloop.com/reference/get-users Retrieves a list of all users in the system. Supports filtering and pagination. ```APIDOC ## GET /users ### Description Retrieves a list of all users in the system. Supports filtering and pagination. ### Method GET ### Endpoint /users ### Query Parameters - **limit** (integer) - Optional - The maximum number of users to return. - **offset** (integer) - Optional - The number of users to skip before starting to collect the result set. - **filter** (string) - Optional - A filter to apply to the user list. For example, `filter=active=true`. ### Response #### Success Response (200) - **users** (array) - A list of user objects. - **id** (string) - The unique identifier for the user. - **firstName** (string) - The first name of the user. - **lastName** (string) - The last name of the user. - **email** (object) - The email address of the user. - **type** (string) - The type of email (e.g., "Primary", "Work"). - **address** (string) - The email address. - **phone** (object) - The phone number of the user. - **type** (string) - The type of phone number (e.g., "Home", "Mobile"). - **number** (string) - The phone number. - **active** (boolean) - Indicates if the user is active. - **loginEmail** (string) - The email address used for login. - **role** (string) - The role of the user. - **properties** (string) - Additional properties of the user. - **lastSeenAt** (string) - The timestamp of the last user activity. #### Response Example ```json { "users": [ { "id": "user_123", "firstName": "John", "lastName": "Doe", "email": { "type": "Primary", "address": "john.doe@example.com" }, "phone": { "type": "Mobile", "number": "123-456-7890" }, "active": true, "loginEmail": "john.doe@example.com", "role": "Admin", "properties": "some_properties", "lastSeenAt": "2023-10-27T10:00:00Z" } ] } ``` ``` -------------------------------- ### Create Account Source: https://api.doorloop.com/reference/post-account Creates a new account in the system. Requires account details in the request body. ```APIDOC ## POST /accounts ### Description Creates an Account. ### Method POST ### Endpoint /accounts ### Request Body - **name** (string) - Required - The name of the account. - **active** (boolean) - Required - Indicates if the account is active. - **type** (string) - Required - The type of the account. Must be one of: ASSET_ACCOUNTS_RECEIVABLE, ASSET_OTHER_CURRENT_ASSETS, ASSET_BANK, ASSET_FIXED_ASSETS, ASSET_OTHER_ASSETS, LIABILITY_ACCOUNTS_PAYABLE, LIABILITY_CREDIT_CARD, LIABILITY_OTHER_CURRENT_LIABILIY, LIABILITY_LONG_TERM_LIABILITY, EQUITY_EQUITY, REVENUE_INCOME, REVENUE_OTHER_INCOME, EXPENSE_EXPENSE, EXPENSE_OTHER_EXPENSE, EXPENSE_COGS. - **description** (string) - Optional - A description for the account. ### Request Example { "name": "string", "active": true, "type": "ASSET_ACCOUNTS_RECEIVABLE", "description": "string" } ### Response #### Success Response (200) - **id** (string) - The unique identifier for the created account. - **name** (string) - The name of the account. - **active** (boolean) - Indicates if the account is active. - **type** (string) - The type of the account. - **description** (string) - A description for the account. #### Response Example { "id": "string", "name": "string", "active": true, "type": "ASSET_ACCOUNTS_RECEIVABLE", "description": "string" } ``` -------------------------------- ### Get Cash Flow Statement Source: https://api.doorloop.com/reference/get-reports-cash-flow-statement Fetches the cash flow statement for a specified property. ```APIDOC ## GET /reports/cash-flow-statement ### Description Retrieves the cash flow statement for a specified property. This report details the cash generated and used by the entity during a period. ### Method GET ### Endpoint /reports/cash-flow-statement ### Parameters #### Query Parameters - **property_id** (string) - Required - The unique identifier of the property for which to retrieve the cash flow statement. ### Response #### Success Response (200) - **data** (object) - Contains the cash flow statement details. - **operating_activities** (object) - Cash flows from operating activities. - **investing_activities** (object) - Cash flows from investing activities. - **financing_activities** (object) - Cash flows from financing activities. - **net_change_in_cash** (number) - The net change in cash during the period. - **beginning_cash_balance** (number) - The cash balance at the beginning of the period. - **ending_cash_balance** (number) - The cash balance at the end of the period. #### Response Example ```json { "data": { "operating_activities": { "net_income": 50000, "depreciation_and_amortization": 10000, "changes_in_working_capital": -5000, "total_operating_cash_flow": 55000 }, "investing_activities": { "purchase_of_property_plant_and_equipment": -20000, "proceeds_from_sale_of_assets": 5000, "total_investing_cash_flow": -15000 }, "financing_activities": { "proceeds_from_debt": 30000, "repayment_of_debt": -10000, "dividends_paid": -5000, "total_financing_cash_flow": 15000 }, "net_change_in_cash": 55000 - 15000 + 15000, "beginning_cash_balance": 100000, "ending_cash_balance": 155000 } } ``` ``` -------------------------------- ### Create Tenant Source: https://api.doorloop.com/reference/post-tenant Creates a new tenant. Tenants are initially created as PROSPECT_TENANT and can be converted to LEASE_TENANT upon association with a lease. ```APIDOC ## POST /tenants ### Description Creates a Prospect. In DoorLoop there are 2 types of Tenants: if (type = LEASE_TENANT): This tenant has been associated with a lease. if (type = PROSPECT_TENANT): This tenant has not been associated with a leasa and is considered a "Prospect". All Tenants are created as a PROSPECT_TENANT, and their type changes once they are associated with a lease. ### Method POST ### Endpoint /tenants ### Request Body - **schema** (object) - Required - The schema for the tenant object. ### Request Example { "example": "request body" } ### Response #### Success Response (200) - **schema** (object) - Description of the tenant schema. #### Response Example { "example": "response body" } ``` -------------------------------- ### Get Current User Information Source: https://api.doorloop.com/reference/get-current-user Fetches the details of the user making the API request. ```APIDOC ## GET /user ### Description Retrieves the profile information for the currently authenticated user. ### Method GET ### Endpoint /user ### Parameters This endpoint does not accept any parameters. ### Request Example (No request body is required for this GET request) ### Response #### Success Response (200) - **active** (boolean) - Indicates if the user account is active. - **loginEmail** (string) - The email address used for login. - **role** (string) - The role assigned to the user (e.g., 'Admin', 'Tenant'). - **properties** (string) - Additional properties associated with the user. - **lastSeenAt** (string) - Timestamp of the user's last activity. #### Response Example ```json { "active": true, "loginEmail": "user@example.com", "role": "Admin", "properties": "some_properties", "lastSeenAt": "2023-10-27T10:00:00Z" } ``` ``` -------------------------------- ### Create Tenant Source: https://api.doorloop.com/reference/post-tenant This operation creates a new tenant. It accepts a Tenant object in the request body, which can include personal information, contact details, lease terms, and more. ```APIDOC ## POST /tenants ### Description Creates a new tenant in the system. ### Method POST ### Endpoint /tenants ### Request Body - **type** (string) - Required - The type of tenant, either LEASE_TENANT or PROSPECT_TENANT. - **firstName** (string) - Required - The first name of the tenant. - **lastName** (string) - Required - The last name of the tenant. - **email** (object) - Required - The email address of the tenant. See the `email` schema for details. - **phone** (object) - Required - The phone number of the tenant. See the `phone` schema for details. - **status** (string) - Optional - The current status of the tenant. Possible values: "ACTIVE", "INACTIVE", "CLOSED_MOVED_IN", "CLOSED_LOST". - **moveInDate** (string) - Optional - The expected move-in date for the tenant. Format: YYYY-MM-DD. - **moveOutDate** (string) - Optional - The expected move-out date for the tenant. Format: YYYY-MM-DD. - **notes** (string) - Optional - Any additional notes about the tenant. - **lease** (object) - Optional - Lease details for the tenant. - **rent** (number) - Optional - The monthly rent amount. - **leaseStart** (string) - Optional - The start date of the lease. Format: YYYY-MM-DD. - **leaseEnd** (string) - Optional - The end date of the lease. Format: YYYY-MM-DD. - **interests** (array) - Optional - Properties and/or units the prospect is interested in. - **property** (string) - Reference the Property Id. - **unit** (string) - Reference the Unit Id. - **leadSource** (string) - Optional - References to the Tag Id. - **minBathrooms** (number) - Optional - Minimum number of bathrooms desired. - **minBedrooms** (number) - Optional - Minimum number of bedrooms desired. - **maxRent** (number) - Optional - Maximum monthly rent desired. - **expectedMoveInDate** (string) - Optional - Expected move-in date. Format: YYYY-MM-DD. - **creditScore** (integer) - Optional - The tenant's credit score. - **monthlyIncome** (number) - Optional - The tenant's monthly income. - **campaignSource** (string) - Optional - The source of the campaign. - **campaignMedium** (string) - Optional - The medium of the campaign. - **campaignName** (string) - Optional - The name of the campaign. - **campaignContent** (string) - Optional - The content of the campaign. - **campaignTerm** (string) - Optional - The term of the campaign. ### Request Example ```json { "type": "PROSPECT_TENANT", "firstName": "John", "lastName": "Doe", "email": { "type": "Primary", "address": "john.doe@example.com" }, "phone": { "type": "Mobile", "number": "123-456-7890" }, "status": "ACTIVE", "moveInDate": "2024-01-01", "interests": [ { "property": "prop_123", "unit": "unit_456" } ], "minBedrooms": 2, "maxRent": 2000, "expectedMoveInDate": "2024-02-15" } ``` ### Response #### Success Response (201 Created) - **id** (string) - The unique identifier for the newly created tenant. - **type** (string) - The type of tenant. - **firstName** (string) - The first name of the tenant. - **lastName** (string) - The last name of the tenant. - **email** (object) - The email address of the tenant. - **phone** (object) - The phone number of the tenant. - **status** (string) - The current status of the tenant. - **moveInDate** (string) - The move-in date for the tenant. - **moveOutDate** (string) - The move-out date for the tenant. - **notes** (string) - Additional notes about the tenant. - **lease** (object) - Lease details for the tenant. - **interests** (array) - Properties and/or units the prospect is interested in. - **leadSource** (string) - References to the Tag Id. - **minBathrooms** (number) - Minimum number of bathrooms desired. - **minBedrooms** (number) - Minimum number of bedrooms desired. - **maxRent** (number) - Maximum monthly rent desired. - **expectedMoveInDate** (string) - Expected move-in date. - **nextTaskDate** (string) - Read Only. The date of the next task associated with the tenant. Format: YYYY-MM-DD. - **creditScore** (integer) - The tenant's credit score. - **monthlyIncome** (number) - The tenant's monthly income. - **campaignSource** (string) - The source of the campaign. - **campaignMedium** (string) - The medium of the campaign. - **campaignName** (string) - The name of the campaign. - **campaignContent** (string) - The content of the campaign. - **campaignTerm** (string) - The term of the campaign. - **portalInfo** (object) - Information about the tenant's portal access. - **allowAccess** (boolean) - Whether the tenant is allowed portal access. - **lastSeenAt** (string) - Read Only. The last time the tenant accessed the portal. Format: YYYY-MM-DD. - **loginEmail** (string) - The email address used for portal login. - **status** (string) - Read Only. The status of the tenant's portal access. Possible values: "ACTIVE", "INACTIVE", "INVITED". - **invitationLastSentAt** (string) - Read Only. The last time the portal invitation was sent. Format: YYYY-MM-DD. #### Response Example ```json { "id": "tenant_abc123", "type": "PROSPECT_TENANT", "firstName": "John", "lastName": "Doe", "email": { "type": "Primary", "address": "john.doe@example.com" }, "phone": { "type": "Mobile", "number": "123-456-7890" }, "status": "ACTIVE", "moveInDate": "2024-01-01", "moveOutDate": null, "notes": "Interested in a 2-bedroom unit.", "lease": { "rent": 1800, "leaseStart": "2024-02-01", "leaseEnd": "2025-01-31" }, "interests": [ { "property": "prop_123", "unit": "unit_456" } ], "leadSource": "tag_xyz", "minBathrooms": 1, "minBedrooms": 2, "maxRent": 2000, "expectedMoveInDate": "2024-02-15", "nextTaskDate": "2023-12-15", "creditScore": 750, "monthlyIncome": 6000, "campaignSource": "web", "campaignMedium": "organic", "campaignName": "winter_promo", "campaignContent": "banner_ad", "campaignTerm": "3_months", "portalInfo": { "allowAccess": true, "lastSeenAt": "2023-11-20", "loginEmail": "john.doe@example.com", "status": "ACTIVE", "invitationLastSentAt": "2023-11-18" } } ``` ``` -------------------------------- ### Get Current User Source: https://api.doorloop.com/reference/get-current-user Retrieves the user details for the API key that is making the request. ```APIDOC ## GET /users/current ### Description Retrieves the user that created this api key. ### Method GET ### Endpoint /users/current ``` -------------------------------- ### List all Files Source: https://api.doorloop.com/reference/get-files Retrieves a list of all files, with options to filter by resource ID, creation date, creator, tags, and text content. ```APIDOC ## GET /files ### Description Lists all Files. ### Method GET ### Endpoint /files ### Parameters #### Query Parameters - **filter_resourceId** (string) - Optional - Filters files associated with a specific resource ID. - **filter_createdAt_from** (string) - Optional - Filters files created on or after the specified date. Format: YYYY-MM-DD. - **filter_createdAt_to** (string) - Optional - Filters files created on or before the specified date. Format: YYYY-MM-DD. - **filter_createdBy** (string) - Optional - Filters files created by a specific user. - **filter_tags** (string) - Optional - Filters files by associated tags. - **filter_text** (string) - Optional - Filters by File Name or Notes. ### Response #### Success Response (200) - **total** (integer) - The total number of files returned. - **data** (array) - An array of file objects. ### Response Example ```json { "total": 10, "data": [ { "id": "507f191e810c19729de860ea", "name": "document.pdf", "notes": "Lease agreement for tenant.", "linkedResource": { "resourceId": "507f191e810c19729de860eb", "resourceType": "LEASE" }, "tags": ["507f191e810c19729de860ec"], "size": 102400, "mimeType": "application/pdf", "createdBy": "user123" } ] } ``` ``` -------------------------------- ### Get Tenant by ID Source: https://api.doorloop.com/reference/get-tenant Retrieves detailed information about a specific tenant using their unique identifier. ```APIDOC ## GET /tenants/{tenantId} ### Description Retrieves detailed information about a specific tenant using their unique identifier. ### Method GET ### Endpoint /tenants/{tenantId} ### Parameters #### Path Parameters - **tenantId** (string) - Required - The unique identifier of the tenant to retrieve. ### Response #### Success Response (200) - **id** (string) - The unique identifier of the tenant. - **name** (string) - The full name of the tenant. - **firstName** (string) - The first name of the tenant. - **lastName** (string) - The last name of the tenant. - **email** (object) - The email address of the tenant. See [email](#email) for details. - **phone** (object) - The phone number of the tenant. See [phone](#phone) for details. - **type** (string) - The type of tenant (e.g., LEASE_TENANT, PROSPECT_TENANT). - **status** (string) - The current status of the tenant. - **lease** (object) - Lease-related information for the tenant. - **prospect** (object) - Prospect-related information for the tenant. - **portalInfo** (object) - Information about the tenant's portal access. #### Response Example ```json { "id": "64a7a1b2c3d4e5f6a7b8c9d0", "name": "John Doe", "firstName": "John", "lastName": "Doe", "email": { "type": "Primary", "address": "john.doe@example.com" }, "phone": { "type": "Mobile", "number": "123-456-7890" }, "type": "LEASE_TENANT", "status": "ACTIVE", "lease": { "id": "lease123", "startDate": "2023-01-01", "endDate": "2023-12-31" }, "prospect": null, "portalInfo": { "allowAccess": true, "lastSeenAt": "2023-10-26T10:00:00Z", "loginEmail": "john.doe@example.com", "status": "ACTIVE", "invitationLastSentAt": null } } ``` ``` -------------------------------- ### Get Tenants Source: https://api.doorloop.com/reference/get-tenants Retrieves a list of tenants. Supports filtering by tenant type and date range. ```APIDOC ## GET /tenants ### Description Retrieves a list of tenants. You can filter the results by specifying parameters such as `type`, `createdAfter`, and `createdBefore`. ### Method GET ### Endpoint /tenants ### Query Parameters - **type** (string) - Optional - Filters tenants by type. Allowed values: `LEASE_TENANT`, `PROSPECT_TENANT`. - **createdAfter** (string) - Optional - Filters tenants created after a specific date. Format: YYYY-MM-DD. - **createdBefore** (string) - Optional - Filters tenants created before a specific date. Format: YYYY-MM-DD. ### Response #### Success Response (200) - **data** (array) - An array of tenant objects. - **id** (string) - The unique identifier for the tenant. - **firstName** (string) - The first name of the tenant. - **lastName** (string) - The last name of the tenant. - **email** (object) - The email address of the tenant. - **type** (string) - The type of email address (e.g., `Primary`, `Work`). - **address** (string) - The email address. - **phone** (object) - The phone number of the tenant. - **type** (string) - The type of phone number (e.g., `Home`, `Mobile`). - **number** (string) - The phone number. - **createdAt** (string) - The date and time when the tenant was created. - **updatedAt** (string) - The date and time when the tenant was last updated. #### Response Example ```json { "data": [ { "id": "tenant_123", "firstName": "John", "lastName": "Doe", "email": { "type": "Primary", "address": "john.doe@example.com" }, "phone": { "type": "Mobile", "number": "123-456-7890" }, "createdAt": "2023-10-27T10:00:00Z", "updatedAt": "2023-10-27T10:00:00Z" } ] } ``` ``` -------------------------------- ### Create a Task Source: https://api.doorloop.com/reference/post-task Creates a new task within the DoorLoop system. This endpoint allows for the creation of various task types, such as internal tasks, tenant requests, owner requests, or work orders. ```APIDOC ## POST /tasks ### Description Creates a Task. ### Method POST ### Endpoint /tasks ### Request Body - **type** (string) - Required - Enum: INTERNAL_TASK, TENANT_REQUEST, OWNER_REQUEST, WORK_ORDER - **reference** (string) - Optional - **subject** (string) - Optional - Max Length: 255 - **description** (string) - Optional - Max Length: 10000 - **dueDate** (string) - Optional - Format: YYYY-MM-DD - **status** (string) - Optional - Enum: NOT_STARTED, RECEIVED, IN_PROGRESS, COMPLETED, ARCHIVED - **priority** (string) - Optional - Enum: LOW, MEDIUM, HIGH - **requestedByUser** (string) - Optional - The User Id who requested this task. Required if type == INTERNAL_TASK. - **requestedByTenant** (string) - Optional - The Tenant Id who requested this task. Required if type == TENANT_REQUEST. - **requestedByOwner** (string) - Optional - The Owner Id who requested this task. Required if type == OWNER_REQUEST. - **assignedToUsers** (array) - Optional - Array of User Ids - **property** (string) - Optional - Property Id - **unit** (string) - Optional - Unit Id - **notifyTenant** (boolean) - Optional - If type = TENANT_REQUEST and notifyTenant = "true" the tenants will be notified when this task is created or updated. - **notifyAssignees** (boolean) - Optional - If set to "true", the assigned to users will be notified when this task is created or updated. - **entryNotes** (string) - Optional - Max Length: 10000 ### Response #### Success Response (200) - **id** (string) - The unique identifier for the task. - **type** (string) - Enum: INTERNAL_TASK, TENANT_REQUEST, OWNER_REQUEST, WORK_ORDER - **reference** (string) - **subject** (string) - **description** (string) - **dueDate** (string) - Format: YYYY-MM-DD - **status** (string) - Enum: NOT_STARTED, RECEIVED, IN_PROGRESS, COMPLETED, ARCHIVED - **priority** (string) - Enum: LOW, MEDIUM, HIGH - **requestedByUser** (string) - **requestedByTenant** (string) - **requestedByOwner** (string) - **assignedToUsers** (array) - Array of User Ids - **property** (string) - **unit** (string) - **notifyTenant** (boolean) - **notifyAssignees** (boolean) - **entryNotes** (string) #### Response Example { "id": "60f1b9b9c7b3a4a0a4a0a4a0", "type": "TENANT_REQUEST", "reference": "REQ-123", "subject": "Leaky faucet in unit 101", "description": "The faucet in the kitchen sink is dripping constantly.", "dueDate": "2023-12-31", "status": "RECEIVED", "priority": "MEDIUM", "requestedByUser": null, "requestedByTenant": "60f1b9b9c7b3a4a0a4a0a4a1", "requestedByOwner": null, "assignedToUsers": [], "property": "60f1b9b9c7b3a4a0a4a0a4a2", "unit": "60f1b9b9c7b3a4a0a4a0a4a3", "notifyTenant": true, "notifyAssignees": false, "entryNotes": "Tenant reported the issue via the portal." } ``` -------------------------------- ### Get Lease Payments Source: https://api.doorloop.com/reference/get-lease-payments Retrieves a list of lease payments. Supports filtering by various criteria. ```APIDOC ## GET /leases/{leaseId}/payments ### Description Retrieves a list of payments associated with a specific lease. ### Method GET ### Endpoint /leases/{leaseId}/payments ### Query Parameters - **limit** (integer) - Optional - The maximum number of payments to return. - **offset** (integer) - Optional - The number of payments to skip before returning results. - **sort** (string) - Optional - The field to sort the payments by (e.g., 'date'). - **order** (string) - Optional - The order of sorting ('asc' or 'desc'). ### Response #### Success Response (200) - **payments** (array) - A list of payment objects. - **amountReceived** (number) - The amount of the payment received. - **paymentMethod** (string) - The method used for the payment (e.g., 'CASH', 'CHECK'). - **paymentDate** (string) - The date the payment was received. - **lease** (string) - The ID of the lease associated with the payment. - **depositToAccount** (string) - The account where the deposit was made. - **autoApplyPaymentOnCharges** (boolean) - Indicates if the payment was automatically applied to charges. - **returned** (boolean) - Indicates if the payment was returned. - **returnedPaymentId** (string) - If returned, references the ID of the returned payment. #### Response Example ```json { "payments": [ { "amountReceived": 1200.00, "paymentMethod": "CREDIT_CARD", "paymentDate": "2023-10-27T10:00:00Z", "lease": "60b8d6d5f1b2c3d4e5f6a7b8", "depositToAccount": "operating", "autoApplyPaymentOnCharges": true, "returned": false, "returnedPaymentId": null } ] } ``` ```