Rex Software MCP by usefulapi

Read contacts, listings, tenancies and tasks; create a person contact, note or reminder.

我該用這個嗎

品質與安全性

A
說明品質
96%
結構描述完整度
89%
命名品質
80%
汙染風險
80%
權限相符程度
100%
協定合規性
100%

發現項目(2)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool description contains suspicious base64-like encoded string在 rex_list_accessible_accounts 中

根據工具定義與協定合規性的自動化分析。

上下文成本

~11,443Token(工具定義)
~3.0 KB典型回應大小
顯著的注意力影響(128k 上下文的 8.94%)

這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。

安裝

一鍵安裝

將以下內容加入你的 `claude_desktop_config.json` 檔案:

{
  "mcpServers": {
    "rex-software": {
      "url": "https://rex-software.usefulapi.io/mcp"
    }
  }
}

遠端端點

https://rex-software.usefulapi.io/mcpstreamable-http

它能做什麼

工具清單

工具(33)

🟢 唯讀🟡 寫入🔴 刪除⚪ 未知
🟢rex_get_user_profile

The Rex user this server is signed in as: user id, name, email, whether they own the account, position and default office. Good first call. POST /v1/rex/UserProfile/read.

輸入結構描述

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢rex_list_accessible_accounts

The Rex agency accounts (account_id and name) this user can sign in to. A user with several accounts picks one with the Account id field when connecting. POST /v1/rex/UserProfile/getAccessibleAccounts.

輸入結構描述

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢rex_describe_search_fields(service, match, include_order_by)

The field names a search on the given service accepts in criteria, each with its label, type and (for enums) the value list. Call this before building criteria on a field you are not sure of. Sorting (order_by) uses a separate list of sortable fields whose names can differ (for example name_last, not contact.name_last): set include_order_by to get it. POST /v1/rex/<Service>/describeSearchFields (and <Service>/describeModel for include_order_by).

輸入結構描述

{
  "type": "object",
  "properties": {
    "service": {
      "type": "string",
      "enum": [
        "Contacts",
        "Listings",
        "Properties",
        "Leads",
        "Appraisals",
        "Tenancies",
        "Reminders",
        "Appointments",
        "Notes",
        "Deals",
        "Activities",
        "ListingEvents",
        "AccountUsers",
        "Campaigns"
      ],
      "description": "The Rex service, for example Contacts or Listings."
    },
    "match": {
      "description": "Only fields whose name or label contains this text (case-insensitive). The big services have hundreds of fields, so filter.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "include_order_by": {
      "description": "Also return the service's model description, which lists the fields order_by accepts (they can differ from the search field names).",
      "type": "boolean"
    }
  },
  "required": [
    "service"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢rex_list_value_lists

The names of Rex's value lists (the allowed ids for fields such as note types, reminder types, lead sources and property categories). Use a name with rex_get_value_list. POST /v1/rex/SystemValues/getValueCategories.

輸入結構描述

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢rex_get_value_list(list_name)

The allowed values (id and label) of one value list, for example property_category. The ids are what writes and criteria expect. POST /v1/rex/SystemValues/getCategoryValues.

輸入結構描述

{
  "type": "object",
  "properties": {
    "list_name": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_.]{1,100}$",
      "description": "The list name from rex_list_value_lists."
    }
  },
  "required": [
    "list_name"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢rex_autocomplete_contacts(search_string, limit)

Quick lookup of contacts by (part of) a name: returns the best matches with id, name, email and phone. Use the id with rex_get_contact. POST /v1/rex/Contacts/autocomplete.

輸入結構描述

{
  "type": "object",
  "properties": {
    "search_string": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Part of the contact's or company's name."
    },
    "limit": {
      "description": "Matches to return, 1-50 (default 10).",
      "type": "integer",
      "minimum": 1,
      "maximum": 50
    }
  },
  "required": [
    "search_string"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢rex_autocomplete_listings(search_string, listing_states, limit)

Quick lookup of listings by (part of) an address: returns the best matches with listing id and address. Use the id with rex_get_listing. POST /v1/rex/Listings/autocomplete.

輸入結構描述

{
  "type": "object",
  "properties": {
    "search_string": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Part of the property address, for example '12 Smith St' or 'Subiaco'."
    },
    "listing_states": {
      "description": "Only listings in these states, for example [\"current\"] (see rex_get_value_list listing_system_state).",
      "maxItems": 10,
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^[a-z_]{1,40}$"
      }
    },
    "limit": {
      "description": "Matches to return, 1-50 (default 10).",
      "type": "integer",
      "minimum": 1,
      "maximum": 50
    }
  },
  "required": [
    "search_string"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢rex_search_contacts(criteria, order_by, offset, limit, search_state)

Search contacts (people and companies). Filters (criteria) combine with AND; results are paged with offset/limit (next_offset says where to continue). Useful fields: contact.name_full, contact.name_first, contact.name_last, contact.email_address, contact.phone_number, contact.type, contact.tags, contact.interest_level, contact.last_contacted_date, system_modtime. To find someone by name, rex_autocomplete_contacts is simpler. POST /v1/rex/Contacts/search.

輸入結構描述

{
  "type": "object",
  "properties": {
    "criteria": {
      "description": "Filters, combined with AND: [{ name, type?, value }]. Only the in type gives an OR. Field names come from rex_describe_search_fields.",
      "maxItems": 30,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200,
            "pattern": "^[A-Za-z0-9_.]+$",
            "description": "Search field name, as listed by rex_describe_search_fields (for example contact.email_address, listing.system_listing_state)."
          },
          "type": {
            "description": "Comparison; default \"=\". between takes [min, max]; in takes a list; is/isnot take \"Null\".",
            "type": "string",
            "enum": [
              "=",
              ">",
              ">=",
              "<",
              "<=",
              "is",
              "isnot",
              "between",
              "in",
              "intersect_any",
              "intersect_all",
              "intersect_all_right",
              "intersect_none"
            ]
          },
          "value": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "number"
              },
              {
                "type": "boolean"
              },
              {
                "type": "null"
              },
              {
                "maxItems": 200,
                "type": "array",
                "items": {
                  "type": [
                    "string",
                    "number"
                  ]
                }
              }
            ],
            "description": "The value to compare with (a list for in, between and intersect_*)."
          }
        },
        "required": [
          "name",
          "value"
        ]
      }
    },
    "order_by": {
      "description": "Sort, sortable field name to direction, for example { \"system_modtime\": \"DESC\" }. Sortable names can differ from search field names (rex_describe_search_fields with include_order_by lists them).",
      "type": "object",
      "propertyNames": {
        "type": "string",
        "pattern": "^[A-Za-z0-9_.]{1,200}$"
      },
      "additionalProperties": {
        "type": "string",
        "enum": [
          "ASC",
          "DESC",
          "asc",
          "desc"
        ]
      }
    },
    "offset": {
      "description": "Rows to skip (default 0). Use next_offset from the previous reply.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "limit": {
      "description": "Rows to return, 1-100 (default 20).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "search_state": {
      "description": "Which records to search: active (default), archive or trash.",
      "type": "string",
      "enum": [
        "active",
        "archive",
        "trash"
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢rex_search_listings(criteria, order_by, offset, limit, search_state)

Search listings (properties for sale or rent). Filters (criteria) combine with AND; results are paged with offset/limit (next_offset says where to continue). Useful fields: listing.system_listing_state (for example "current"), listing.system_publication_status, listing.price_match, listing.listing_agent_id, listing.listing_category_id, property.adr_suburb_or_town, property.adr_postcode, property.adr_street_name, property.attr_bedrooms. To find a listing by address, rex_autocomplete_listings is simpler. POST /v1/rex/Listings/search.

輸入結構描述

{
  "type": "object",
  "properties": {
    "criteria": {
      "description": "Filters, combined with AND: [{ name, type?, value }]. Only the in type gives an OR. Field names come from rex_describe_search_fields.",
      "maxItems": 30,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200,
            "pattern": "^[A-Za-z0-9_.]+$",
            "description": "Search field name, as listed by rex_describe_search_fields (for example contact.email_address, listing.system_listing_state)."
          },
          "type": {
            "description": "Comparison; default \"=\". between takes [min, max]; in takes a list; is/isnot take \"Null\".",
            "type": "string",
            "enum": [
              "=",
              ">",
              ">=",
              "<",
              "<=",
              "is",
              "isnot",
              "between",
              "in",
              "intersect_any",
              "intersect_all",
              "intersect_all_right",
              "intersect_none"
            ]
          },
          "value": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "number"
              },
              {
                "type": "boolean"
              },
              {
                "type": "null"
              },
              {
                "maxItems": 200,
                "type": "array",
                "items": {
                  "type": [
                    "string",
                    "number"
                  ]
                }
              }
            ],
            "description": "The value to compare with (a list for in, between and intersect_*)."
          }
        },
        "required": [
          "name",
          "value"
        ]
      }
    },
    "order_by": {
      "description": "Sort, sortable field name to direction, for example { \"system_modtime\": \"DESC\" }. Sortable names can differ from search field names (rex_describe_search_fields with include_order_by lists them).",
      "type": "object",
      "propertyNames": {
        "type": "string",
        "pattern": "^[A-Za-z0-9_.]{1,200}$"
      },
      "additionalProperties": {
        "type": "string",
        "enum": [
          "ASC",
          "DESC",
          "asc",
          "desc"
        ]
      }
    },
    "offset": {
      "description": "Rows to skip (default 0). Use next_offset from the previous reply.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "limit": {
      "description": "Rows to return, 1-100 (default 20).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "search_state": {
      "description": "Which records to search: active (default), archive or trash.",
      "type": "string",
      "enum": [
        "active",
        "archive",
        "trash"
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢rex_search_properties(criteria, order_by, offset, limit, search_state)

Search properties (the physical addresses behind listings, appraisals and tenancies). Filters (criteria) combine with AND; results are paged with offset/limit (next_offset says where to continue). Useful fields: property.system_search_key, property.adr_suburb_or_town, property.adr_postcode, property.adr_street_name, property.attr_bedrooms, property.attr_bathrooms. POST /v1/rex/Properties/search.

輸入結構描述

{
  "type": "object",
  "properties": {
    "criteria": {
      "description": "Filters, combined with AND: [{ name, type?, value }]. Only the in type gives an OR. Field names come from rex_describe_search_fields.",
      "maxItems": 30,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200,
            "pattern": "^[A-Za-z0-9_.]+$",
            "description": "Search field name, as listed by rex_describe_search_fields (for example contact.email_address, listing.system_listing_state)."
          },
          "type": {
            "description": "Comparison; default \"=\". between takes [min, max]; in takes a list; is/isnot take \"Null\".",
            "type": "string",
            "enum": [
              "=",
              ">",
              ">=",
              "<",
              "<=",
              "is",
              "isnot",
              "between",
              "in",
              "intersect_any",
              "intersect_all",
              "intersect_all_right",
              "intersect_none"
            ]
          },
          "value": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "number"
              },
              {
                "type": "boolean"
              },
              {
                "type": "null"
              },
              {
                "maxItems": 200,
                "type": "array",
                "items": {
                  "type": [
                    "string",
                    "number"
                  ]
                }
              }
            ],
            "description": "The value to compare with (a list for in, between and intersect_*)."
          }
        },
        "required": [
          "name",
          "value"
        ]
      }
    },
    "order_by": {
      "description": "Sort, sortable field name to direction, for example { \"system_modtime\": \"DESC\" }. Sortable names can differ from search field names (rex_describe_search_fields with include_order_by lists them).",
      "type": "object",
      "propertyNames": {
        "type": "string",
        "pattern": "^[A-Za-z0-9_.]{1,200}$"
      },
      "additionalProperties": {
        "type": "string",
        "enum": [
          "ASC",
          "DESC",
          "asc",
          "desc"
        ]
      }
    },
    "offset": {
      "description": "Rows to skip (default 0). Use next_offset from the previous reply.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "limit": {
      "description": "Rows to return, 1-100 (default 20).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "search_state": {
      "description": "Which records to search: active (default), archive or trash.",
      "type": "string",
      "enum": [
        "active",
        "archive",
        "trash"
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢rex_search_leads(criteria, order_by, offset, limit, search_state)

Search leads (enquiries from portals, the website and email). Filters (criteria) combine with AND; results are paged with offset/limit (next_offset says where to continue). Useful fields: lead.contact_id, lead.listing_id, lead.property_id, lead.assignee_id, lead.lead_source_id, lead.lead_status_id, lead.system_completed_time, system_ctime. POST /v1/rex/Leads/search.

輸入結構描述

{
  "type": "object",
  "properties": {
    "criteria": {
      "description": "Filters, combined with AND: [{ name, type?, value }]. Only the in type gives an OR. Field names come from rex_describe_search_fields.",
      "maxItems": 30,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200,
            "pattern": "^[A-Za-z0-9_.]+$",
            "description": "Search field name, as listed by rex_describe_search_fields (for example contact.email_address, listing.system_listing_state)."
          },
          "type": {
            "description": "Comparison; default \"=\". between takes [min, max]; in takes a list; is/isnot take \"Null\".",
            "type": "string",
            "enum": [
              "=",
              ">",
              ">=",
              "<",
              "<=",
              "is",
              "isnot",
              "between",
              "in",
              "intersect_any",
              "intersect_all",
              "intersect_all_right",
              "intersect_none"
            ]
          },
          "value": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "number"
              },
              {
                "type": "boolean"
              },
              {
                "type": "null"
              },
              {
                "maxItems": 200,
                "type": "array",
                "items": {
                  "type": [
                    "string",
                    "number"
                  ]
                }
              }
            ],
            "description": "The value to compare with (a list for in, between and intersect_*)."
          }
        },
        "required": [
          "name",
          "value"
        ]
      }
    },
    "order_by": {
      "description": "Sort, sortable field name to direction, for example { \"system_modtime\": \"DESC\" }. Sortable names can differ from search field names (rex_describe_search_fields with include_order_by lists them).",
      "type": "object",
      "propertyNames": {
        "type": "string",
        "pattern": "^[A-Za-z0-9_.]{1,200}$"
      },
      "additionalProperties": {
        "type": "string",
        "enum": [
          "ASC",
          "DESC",
          "asc",
          "desc"
        ]
      }
    },
    "offset": {
      "description": "Rows to skip (default 0). Use next_offset from the previous reply.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "limit": {
      "description": "Rows to return, 1-100 (default 20).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "search_state": {
      "description": "Which records to search: active (default), archive or trash.",
      "type": "string",
      "enum": [
        "active",
        "archive",
        "trash"
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢rex_search_appraisals(criteria, order_by, offset, limit, search_state)

Search appraisals (listing presentations / market appraisals). Filters (criteria) combine with AND; results are paged with offset/limit (next_offset says where to continue). Useful fields: appraisal_date, appraisal_state, appraisal_type_id, agent_id, property_id, listing_id, pipeline_stage_id, expected_close_date, price_asking. POST /v1/rex/Appraisals/search.

輸入結構描述

{
  "type": "object",
  "properties": {
    "criteria": {
      "description": "Filters, combined with AND: [{ name, type?, value }]. Only the in type gives an OR. Field names come from rex_describe_search_fields.",
      "maxItems": 30,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200,
            "pattern": "^[A-Za-z0-9_.]+$",
            "description": "Search field name, as listed by rex_describe_search_fields (for example contact.email_address, listing.system_listing_state)."
          },
          "type": {
            "description": "Comparison; default \"=\". between takes [min, max]; in takes a list; is/isnot take \"Null\".",
            "type": "string",
            "enum": [
              "=",
              ">",
              ">=",
              "<",
              "<=",
              "is",
              "isnot",
              "between",
              "in",
              "intersect_any",
              "intersect_all",
              "intersect_all_right",
              "intersect_none"
            ]
          },
          "value": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "number"
              },
              {
                "type": "boolean"
              },
              {
                "type": "null"
              },
              {
                "maxItems": 200,
                "type": "array",
                "items": {
                  "type": [
                    "string",
                    "number"
                  ]
                }
              }
            ],
            "description": "The value to compare with (a list for in, between and intersect_*)."
          }
        },
        "required": [
          "name",
          "value"
        ]
      }
    },
    "order_by": {
      "description": "Sort, sortable field name to direction, for example { \"system_modtime\": \"DESC\" }. Sortable names can differ from search field names (rex_describe_search_fields with include_order_by lists them).",
      "type": "object",
      "propertyNames": {
        "type": "string",
        "pattern": "^[A-Za-z0-9_.]{1,200}$"
      },
      "additionalProperties": {
        "type": "string",
        "enum": [
          "ASC",
          "DESC",
          "asc",
          "desc"
        ]
      }
    },
    "offset": {
      "description": "Rows to skip (default 0). Use next_offset from the previous reply.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "limit": {
      "description": "Rows to return, 1-100 (default 20).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "search_state": {
      "description": "Which records to search: active (default), archive or trash.",
      "type": "string",
      "enum": [
        "active",
        "archive",
        "trash"
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢rex_search_tenancies(criteria, order_by, offset, limit, search_state)

Search tenancies (property management leases). Filters (criteria) combine with AND; results are paged with offset/limit (next_offset says where to continue). Useful fields: id, property_id, system_record_state, lease_current_expiry, crt.contact_id. POST /v1/rex/Tenancies/search.

輸入結構描述

{
  "type": "object",
  "properties": {
    "criteria": {
      "description": "Filters, combined with AND: [{ name, type?, value }]. Only the in type gives an OR. Field names come from rex_describe_search_fields.",
      "maxItems": 30,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200,
            "pattern": "^[A-Za-z0-9_.]+$",
            "description": "Search field name, as listed by rex_describe_search_fields (for example contact.email_address, listing.system_listing_state)."
          },
          "type": {
            "description": "Comparison; default \"=\". between takes [min, max]; in takes a list; is/isnot take \"Null\".",
            "type": "string",
            "enum": [
              "=",
              ">",
              ">=",
              "<",
              "<=",
              "is",
              "isnot",
              "between",
              "in",
              "intersect_any",
              "intersect_all",
              "intersect_all_right",
              "intersect_none"
            ]
          },
          "value": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "number"
              },
              {
                "type": "boolean"
              },
              {
                "type": "null"
              },
              {
                "maxItems": 200,
                "type": "array",
                "items": {
                  "type": [
                    "string",
                    "number"
                  ]
                }
              }
            ],
            "description": "The value to compare with (a list for in, between and intersect_*)."
          }
        },
        "required": [
          "name",
          "value"
        ]
      }
    },
    "order_by": {
      "description": "Sort, sortable field name to direction, for example { \"system_modtime\": \"DESC\" }. Sortable names can differ from search field names (rex_describe_search_fields with include_order_by lists them).",
      "type": "object",
      "propertyNames": {
        "type": "string",
        "pattern": "^[A-Za-z0-9_.]{1,200}$"
      },
      "additionalProperties": {
        "type": "string",
        "enum": [
          "ASC",
          "DESC",
          "asc",
          "desc"
        ]
      }
    },
    "offset": {
      "description": "Rows to skip (default 0). Use next_offset from the previous reply.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "limit": {
      "description": "Rows to return, 1-100 (default 20).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "search_state": {
      "description": "Which records to search: active (default), archive or trash.",
      "type": "string",
      "enum": [
        "active",
        "archive",
        "trash"
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢rex_search_reminders(criteria, order_by, offset, limit, search_state)

Search reminders (follow-up tasks) linked to contacts, properties and listings. Filters (criteria) combine with AND; results are paged with offset/limit (next_offset says where to continue). Useful fields: reminder_date, system_completed_time, remindee_user_id, contact_id, property_id, listing_id, reminder_type_id, priority_id. Open reminders have no system_completed_time (type is, value Null). POST /v1/rex/Reminders/search.

輸入結構描述

{
  "type": "object",
  "properties": {
    "criteria": {
      "description": "Filters, combined with AND: [{ name, type?, value }]. Only the in type gives an OR. Field names come from rex_describe_search_fields.",
      "maxItems": 30,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200,
            "pattern": "^[A-Za-z0-9_.]+$",
            "description": "Search field name, as listed by rex_describe_search_fields (for example contact.email_address, listing.system_listing_state)."
          },
          "type": {
            "description": "Comparison; default \"=\". between takes [min, max]; in takes a list; is/isnot take \"Null\".",
            "type": "string",
            "enum": [
              "=",
              ">",
              ">=",
              "<",
              "<=",
              "is",
              "isnot",
              "between",
              "in",
              "intersect_any",
              "intersect_all",
              "intersect_all_right",
              "intersect_none"
            ]
          },
          "value": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "number"
              },
              {
                "type": "boolean"
              },
              {
                "type": "null"
              },
              {
                "maxItems": 200,
                "type": "array",
                "items": {
                  "type": [
                    "string",
                    "number"
                  ]
                }
              }
            ],
            "description": "The value to compare with (a list for in, between and intersect_*)."
          }
        },
        "required": [
          "name",
          "value"
        ]
      }
    },
    "order_by": {
      "description": "Sort, sortable field name to direction, for example { \"system_modtime\": \"DESC\" }. Sortable names can differ from search field names (rex_describe_search_fields with include_order_by lists them).",
      "type": "object",
      "propertyNames": {
        "type": "string",
        "pattern": "^[A-Za-z0-9_.]{1,200}$"
      },
      "additionalProperties": {
        "type": "string",
        "enum": [
          "ASC",
          "DESC",
          "asc",
          "desc"
        ]
      }
    },
    "offset": {
      "description": "Rows to skip (default 0). Use next_offset from the previous reply.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "limit": {
      "description": "Rows to return, 1-100 (default 20).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "search_state": {
      "description": "Which records to search: active (default), archive or trash.",
      "type": "string",
      "enum": [
        "active",
        "archive",
        "trash"
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢rex_search_appointments(criteria, order_by, offset, limit, search_state)

Search appointments (calendar items such as inspections and meetings). Filters (criteria) combine with AND; results are paged with offset/limit (next_offset says where to continue). The searchable fields follow Reminders (reminder_date, remindee_user_id, contact_id, property_id, listing_id). Call rex_describe_search_fields with service Appointments for the full list. POST /v1/rex/Appointments/search.

輸入結構描述

{
  "type": "object",
  "properties": {
    "criteria": {
      "description": "Filters, combined with AND: [{ name, type?, value }]. Only the in type gives an OR. Field names come from rex_describe_search_fields.",
      "maxItems": 30,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200,
            "pattern": "^[A-Za-z0-9_.]+$",
            "description": "Search field name, as listed by rex_describe_search_fields (for example contact.email_address, listing.system_listing_state)."
          },
          "type": {
            "description": "Comparison; default \"=\". between takes [min, max]; in takes a list; is/isnot take \"Null\".",
            "type": "string",
            "enum": [
              "=",
              ">",
              ">=",
              "<",
              "<=",
              "is",
              "isnot",
              "between",
              "in",
              "intersect_any",
              "intersect_all",
              "intersect_all_right",
              "intersect_none"
            ]
          },
          "value": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "number"
              },
              {
                "type": "boolean"
              },
              {
                "type": "null"
              },
              {
                "maxItems": 200,
                "type": "array",
                "items": {
                  "type": [
                    "string",
                    "number"
                  ]
                }
              }
            ],
            "description": "The value to compare with (a list for in, between and intersect_*)."
          }
        },
        "required": [
          "name",
          "value"
        ]
      }
    },
    "order_by": {
      "description": "Sort, sortable field name to direction, for example { \"system_modtime\": \"DESC\" }. Sortable names can differ from search field names (rex_describe_search_fields with include_order_by lists them).",
      "type": "object",
      "propertyNames": {
        "type": "string",
        "pattern": "^[A-Za-z0-9_.]{1,200}$"
      },
      "additionalProperties": {
        "type": "string",
        "enum": [
          "ASC",
          "DESC",
          "asc",
          "desc"
        ]
      }
    },
    "offset": {
      "description": "Rows to skip (default 0). Use next_offset from the previous reply.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "limit": {
      "description": "Rows to return, 1-100 (default 20).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "search_state": {
      "description": "Which records to search: active (default), archive or trash.",
      "type": "string",
      "enum": [
        "active",
        "archive",
        "trash"
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢rex_search_notes(criteria, order_by, offset, limit, search_state)

Search notes recorded against contacts and properties. Filters (criteria) combine with AND; results are paged with offset/limit (next_offset says where to continue). Useful fields: system_ctime, system_created_user_id, id. Call rex_describe_search_fields with service Notes for related contact and property fields. POST /v1/rex/Notes/search.

輸入結構描述

{
  "type": "object",
  "properties": {
    "criteria": {
      "description": "Filters, combined with AND: [{ name, type?, value }]. Only the in type gives an OR. Field names come from rex_describe_search_fields.",
      "maxItems": 30,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200,
            "pattern": "^[A-Za-z0-9_.]+$",
            "description": "Search field name, as listed by rex_describe_search_fields (for example contact.email_address, listing.system_listing_state)."
          },
          "type": {
            "description": "Comparison; default \"=\". between takes [min, max]; in takes a list; is/isnot take \"Null\".",
            "type": "string",
            "enum": [
              "=",
              ">",
              ">=",
              "<",
              "<=",
              "is",
              "isnot",
              "between",
              "in",
              "intersect_any",
              "intersect_all",
              "intersect_all_right",
              "intersect_none"
            ]
          },
          "value": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "number"
              },
              {
                "type": "boolean"
              },
              {
                "type": "null"
              },
              {
                "maxItems": 200,
                "type": "array",
                "items": {
                  "type": [
                    "string",
                    "number"
                  ]
                }
              }
            ],
            "description": "The value to compare with (a list for in, between and intersect_*)."
          }
        },
        "required": [
          "name",
          "value"
        ]
      }
    },
    "order_by": {
      "description": "Sort, sortable field name to direction, for example { \"system_modtime\": \"DESC\" }. Sortable names can differ from search field names (rex_describe_search_fields with include_order_by lists them).",
      "type": "object",
      "propertyNames": {
        "type": "string",
        "pattern": "^[A-Za-z0-9_.]{1,200}$"
      },
      "additionalProperties": {
        "type": "string",
        "enum": [
          "ASC",
          "DESC",
          "asc",
          "desc"
        ]
      }
    },
    "offset": {
      "description": "Rows to skip (default 0). Use next_offset from the previous reply.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "limit": {
      "description": "Rows to return, 1-100 (default 20).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "search_state": {
      "description": "Which records to search: active (default), archive or trash.",
      "type": "string",
      "enum": [
        "active",
        "archive",
        "trash"
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢rex_search_deals(criteria, order_by, offset, limit, search_state)

Search deals (the sales pipeline). Filters (criteria) combine with AND; results are paged with offset/limit (next_offset says where to continue). Useful fields: deal.deal_state, deal.expected_close_date, deal.archive_date, deal.tags, deal.description. POST /v1/rex/Deals/search.

輸入結構描述

{
  "type": "object",
  "properties": {
    "criteria": {
      "description": "Filters, combined with AND: [{ name, type?, value }]. Only the in type gives an OR. Field names come from rex_describe_search_fields.",
      "maxItems": 30,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200,
            "pattern": "^[A-Za-z0-9_.]+$",
            "description": "Search field name, as listed by rex_describe_search_fields (for example contact.email_address, listing.system_listing_state)."
          },
          "type": {
            "description": "Comparison; default \"=\". between takes [min, max]; in takes a list; is/isnot take \"Null\".",
            "type": "string",
            "enum": [
              "=",
              ">",
              ">=",
              "<",
              "<=",
              "is",
              "isnot",
              "between",
              "in",
              "intersect_any",
              "intersect_all",
              "intersect_all_right",
              "intersect_none"
            ]
          },
          "value": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "number"
              },
              {
                "type": "boolean"
              },
              {
                "type": "null"
              },
              {
                "maxItems": 200,
                "type": "array",
                "items": {
                  "type": [
                    "string",
                    "number"
                  ]
                }
              }
            ],
            "description": "The value to compare with (a list for in, between and intersect_*)."
          }
        },
        "required": [
          "name",
          "value"
        ]
      }
    },
    "order_by": {
      "description": "Sort, sortable field name to direction, for example { \"system_modtime\": \"DESC\" }. Sortable names can differ from search field names (rex_describe_search_fields with include_order_by lists them).",
      "type": "object",
      "propertyNames": {
        "type": "string",
        "pattern": "^[A-Za-z0-9_.]{1,200}$"
      },
      "additionalProperties": {
        "type": "string",
        "enum": [
          "ASC",
          "DESC",
          "asc",
          "desc"
        ]
      }
    },
    "offset": {
      "description": "Rows to skip (default 0). Use next_offset from the previous reply.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "limit": {
      "description": "Rows to return, 1-100 (default 20).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "search_state": {
      "description": "Which records to search: active (default), archive or trash.",
      "type": "string",
      "enum": [
        "active",
        "archive",
        "trash"
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢rex_search_activities(criteria, order_by, offset, limit, search_state)

Search activities (the log of calls, emails and other actions on records). Filters (criteria) combine with AND; results are paged with offset/limit (next_offset says where to continue). Useful fields: parent_object_type, parent_object_id, type_id, system_ctime, system_created_user_id. POST /v1/rex/Activities/search.

輸入結構描述

{
  "type": "object",
  "properties": {
    "criteria": {
      "description": "Filters, combined with AND: [{ name, type?, value }]. Only the in type gives an OR. Field names come from rex_describe_search_fields.",
      "maxItems": 30,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200,
            "pattern": "^[A-Za-z0-9_.]+$",
            "description": "Search field name, as listed by rex_describe_search_fields (for example contact.email_address, listing.system_listing_state)."
          },
          "type": {
            "description": "Comparison; default \"=\". between takes [min, max]; in takes a list; is/isnot take \"Null\".",
            "type": "string",
            "enum": [
              "=",
              ">",
              ">=",
              "<",
              "<=",
              "is",
              "isnot",
              "between",
              "in",
              "intersect_any",
              "intersect_all",
              "intersect_all_right",
              "intersect_none"
            ]
          },
          "value": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "number"
              },
              {
                "type": "boolean"
              },
              {
                "type": "null"
              },
              {
                "maxItems": 200,
                "type": "array",
                "items": {
                  "type": [
                    "string",
                    "number"
                  ]
                }
              }
            ],
            "description": "The value to compare with (a list for in, between and intersect_*)."
          }
        },
        "required": [
          "name",
          "value"
        ]
      }
    },
    "order_by": {
      "description": "Sort, sortable field name to direction, for example { \"system_modtime\": \"DESC\" }. Sortable names can differ from search field names (rex_describe_search_fields with include_order_by lists them).",
      "type": "object",
      "propertyNames": {
        "type": "string",
        "pattern": "^[A-Za-z0-9_.]{1,200}$"
      },
      "additionalProperties": {
        "type": "string",
        "enum": [
          "ASC",
          "DESC",
          "asc",
          "desc"
        ]
      }
    },
    "offset": {
      "description": "Rows to skip (default 0). Use next_offset from the previous reply.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "limit": {
      "description": "Rows to return, 1-100 (default 20).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "search_state": {
      "description": "Which records to search: active (default), archive or trash.",
      "type": "string",
      "enum": [
        "active",
        "archive",
        "trash"
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢rex_search_listing_events(criteria, order_by, offset, limit, search_state)

Search listing events (open homes and inspections). Filters (criteria) combine with AND; results are paged with offset/limit (next_offset says where to continue). Call rex_describe_search_fields with service ListingEvents for the searchable fields. POST /v1/rex/ListingEvents/search.

輸入結構描述

{
  "type": "object",
  "properties": {
    "criteria": {
      "description": "Filters, combined with AND: [{ name, type?, value }]. Only the in type gives an OR. Field names come from rex_describe_search_fields.",
      "maxItems": 30,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200,
            "pattern": "^[A-Za-z0-9_.]+$",
            "description": "Search field name, as listed by rex_describe_search_fields (for example contact.email_address, listing.system_listing_state)."
          },
          "type": {
            "description": "Comparison; default \"=\". between takes [min, max]; in takes a list; is/isnot take \"Null\".",
            "type": "string",
            "enum": [
              "=",
              ">",
              ">=",
              "<",
              "<=",
              "is",
              "isnot",
              "between",
              "in",
              "intersect_any",
              "intersect_all",
              "intersect_all_right",
              "intersect_none"
            ]
          },
          "value": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "number"
              },
              {
                "type": "boolean"
              },
              {
                "type": "null"
              },
              {
                "maxItems": 200,
                "type": "array",
                "items": {
                  "type": [
                    "string",
                    "number"
                  ]
                }
              }
            ],
            "description": "The value to compare with (a list for in, between and intersect_*)."
          }
        },
        "required": [
          "name",
          "value"
        ]
      }
    },
    "order_by": {
      "description": "Sort, sortable field name to direction, for example { \"system_modtime\": \"DESC\" }. Sortable names can differ from search field names (rex_describe_search_fields with include_order_by lists them).",
      "type": "object",
      "propertyNames": {
        "type": "string",
        "pattern": "^[A-Za-z0-9_.]{1,200}$"
      },
      "additionalProperties": {
        "type": "string",
        "enum": [
          "ASC",
          "DESC",
          "asc",
          "desc"
        ]
      }
    },
    "offset": {
      "description": "Rows to skip (default 0). Use next_offset from the previous reply.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "limit": {
      "description": "Rows to return, 1-100 (default 20).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "search_state": {
      "description": "Which records to search: active (default), archive or trash.",
      "type": "string",
      "enum": [
        "active",
        "archive",
        "trash"
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢rex_search_users(criteria, order_by, offset, limit, search_state)

Search the users (staff) of the agency account. Filters (criteria) combine with AND; results are paged with offset/limit (next_offset says where to continue). Useful fields: first_name, last_name, email, status, user_group_id. User ids are used elsewhere as agent, assignee and remindee ids. POST /v1/rex/AccountUsers/search.

輸入結構描述

{
  "type": "object",
  "properties": {
    "criteria": {
      "description": "Filters, combined with AND: [{ name, type?, value }]. Only the in type gives an OR. Field names come from rex_describe_search_fields.",
      "maxItems": 30,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200,
            "pattern": "^[A-Za-z0-9_.]+$",
            "description": "Search field name, as listed by rex_describe_search_fields (for example contact.email_address, listing.system_listing_state)."
          },
          "type": {
            "description": "Comparison; default \"=\". between takes [min, max]; in takes a list; is/isnot take \"Null\".",
            "type": "string",
            "enum": [
              "=",
              ">",
              ">=",
              "<",
              "<=",
              "is",
              "isnot",
              "between",
              "in",
              "intersect_any",
              "intersect_all",
              "intersect_all_right",
              "intersect_none"
            ]
          },
          "value": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "number"
              },
              {
                "type": "boolean"
              },
              {
                "type": "null"
              },
              {
                "maxItems": 200,
                "type": "array",
                "items": {
                  "type": [
                    "string",
                    "number"
                  ]
                }
              }
            ],
            "description": "The value to compare with (a list for in, between and intersect_*)."
          }
        },
        "required": [
          "name",
          "value"
        ]
      }
    },
    "order_by": {
      "description": "Sort, sortable field name to direction, for example { \"system_modtime\": \"DESC\" }. Sortable names can differ from search field names (rex_describe_search_fields with include_order_by lists them).",
      "type": "object",
      "propertyNames": {
        "type": "string",
        "pattern": "^[A-Za-z0-9_.]{1,200}$"
      },
      "additionalProperties": {
        "type": "string",
        "enum": [
          "ASC",
          "DESC",
          "asc",
          "desc"
        ]
      }
    },
    "offset": {
      "description": "Rows to skip (default 0). Use next_offset from the previous reply.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "limit": {
      "description": "Rows to return, 1-100 (default 20).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "search_state": {
      "description": "Which records to search: active (default), archive or trash.",
      "type": "string",
      "enum": [
        "active",
        "archive",
        "trash"
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢rex_search_campaigns(criteria, order_by, offset, limit, search_state)

Search campaigns (nurture and marketing campaigns with their members). Filters (criteria) combine with AND; results are paged with offset/limit (next_offset says where to continue). Call rex_describe_search_fields with service Campaigns for the searchable fields. POST /v1/rex/Campaigns/search.

輸入結構描述

{
  "type": "object",
  "properties": {
    "criteria": {
      "description": "Filters, combined with AND: [{ name, type?, value }]. Only the in type gives an OR. Field names come from rex_describe_search_fields.",
      "maxItems": 30,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200,
            "pattern": "^[A-Za-z0-9_.]+$",
            "description": "Search field name, as listed by rex_describe_search_fields (for example contact.email_address, listing.system_listing_state)."
          },
          "type": {
            "description": "Comparison; default \"=\". between takes [min, max]; in takes a list; is/isnot take \"Null\".",
            "type": "string",
            "enum": [
              "=",
              ">",
              ">=",
              "<",
              "<=",
              "is",
              "isnot",
              "between",
              "in",
              "intersect_any",
              "intersect_all",
              "intersect_all_right",
              "intersect_none"
            ]
          },
          "value": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "number"
              },
              {
                "type": "boolean"
              },
              {
                "type": "null"
              },
              {
                "maxItems": 200,
                "type": "array",
                "items": {
                  "type": [
                    "string",
                    "number"
                  ]
                }
              }
            ],
            "description": "The value to compare with (a list for in, between and intersect_*)."
          }
        },
        "required": [
          "name",
          "value"
        ]
      }
    },
    "order_by": {
      "description": "Sort, sortable field name to direction, for example { \"system_modtime\": \"DESC\" }. Sortable names can differ from search field names (rex_describe_search_fields with include_order_by lists them).",
      "type": "object",
      "propertyNames": {
        "type": "string",
        "pattern": "^[A-Za-z0-9_.]{1,200}$"
      },
      "additionalProperties": {
        "type": "string",
        "enum": [
          "ASC",
          "DESC",
          "asc",
          "desc"
        ]
      }
    },
    "offset": {
      "description": "Rows to skip (default 0). Use next_offset from the previous reply.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "limit": {
      "description": "Rows to return, 1-100 (default 20).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "search_state": {
      "description": "Which records to search: active (default), archive or trash.",
      "type": "string",
      "enum": [
        "active",
        "archive",
        "trash"
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢rex_get_contact(id, fields)

One contact by id (names, emails, phones, addresses, tags, relationships and the related properties and listings). The id comes from a search or autocomplete. POST /v1/rex/Contacts/read.

輸入結構描述

{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The contact id."
    },
    "fields": {
      "description": "Limit the reply to these parts of the record (\"core\" is always included; related data is \"related.<name>\"). Omit for the whole record, which is large.",
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^[A-Za-z0-9_.]{1,100}$"
      }
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢rex_get_listing(id, fields)

One listing by id (state, price, agents, the property with its attributes, images, related contacts and events). The id comes from a search or autocomplete. POST /v1/rex/Listings/read.

輸入結構描述

{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The listing id."
    },
    "fields": {
      "description": "Limit the reply to these parts of the record (\"core\" is always included; related data is \"related.<name>\"). Omit for the whole record, which is large.",
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^[A-Za-z0-9_.]{1,100}$"
      }
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢rex_get_property(id, fields)

One property by id (address, attributes (bedrooms, land area and so on), features, owners and the property's history). The id comes from a search or autocomplete. POST /v1/rex/Properties/read.

輸入結構描述

{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The property id."
    },
    "fields": {
      "description": "Limit the reply to these parts of the record (\"core\" is always included; related data is \"related.<name>\"). Omit for the whole record, which is large.",
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^[A-Za-z0-9_.]{1,100}$"
      }
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢rex_get_lead(id)

One lead by id (contact, source, status, assignee and the original enquiry). The id comes from a search or autocomplete. POST /v1/rex/Leads/read.

輸入結構描述

{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The lead id."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢rex_get_appraisal(id)

One appraisal by id (date, state, agents, property, price expectations and commission estimate). The id comes from a search or autocomplete. POST /v1/rex/Appraisals/read.

輸入結構描述

{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The appraisal id."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢rex_get_tenancy(id)

One tenancy by id (property, tenants, lease dates and rent). The id comes from a search or autocomplete. POST /v1/rex/Tenancies/read.

輸入結構描述

{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The tenancy id."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢rex_get_note(id)

One note by id (text, type and the contacts and properties it is linked to). The id comes from a search or autocomplete. POST /v1/rex/Notes/read.

輸入結構描述

{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The note id."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢rex_get_deal(id)

One deal by id (state, value, parties and expected close date). The id comes from a search or autocomplete. POST /v1/rex/Deals/read.

輸入結構描述

{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The deal id."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢rex_get_reminder(id)

One reminder by id (description, date, remindee, completion state and linked records). The id comes from a search or autocomplete. POST /v1/rex/Reminders/read.

輸入結構描述

{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The reminder id."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴rex_create_contact(first_name, last_name, email, phone, phone_type)

WRITE: create a new person contact in Rex with a name and optionally one email and one phone. Search first (rex_autocomplete_contacts) to avoid duplicates. Not retried. Returns the new contact id. POST /v1/rex/Contacts/create.

輸入結構描述

{
  "type": "object",
  "properties": {
    "first_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "First name."
    },
    "last_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "Last name."
    },
    "email": {
      "description": "Primary email address.",
      "type": "string",
      "maxLength": 254,
      "pattern": "^[^\\s@<>\",;]+@[^\\s@<>\",;]+\\.[^\\s@<>\",;]+$"
    },
    "phone": {
      "description": "Primary phone number.",
      "type": "string",
      "minLength": 3,
      "maxLength": 40
    },
    "phone_type": {
      "description": "Phone type id from the value list (for example mobile, home or work); omit to let Rex choose.",
      "type": "string",
      "pattern": "^[a-z_]{1,30}$"
    }
  },
  "required": [
    "first_name",
    "last_name"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴rex_create_note(note, note_type, contact_ids, property_ids, update_last_contacted)

WRITE: add a note to one or more contacts and/or properties (for example after a call or an open home). Not retried. Returns the new note id. POST /v1/rex/Notes/create.

輸入結構描述

{
  "type": "object",
  "properties": {
    "note": {
      "type": "string",
      "minLength": 1,
      "maxLength": 20000,
      "description": "The note text."
    },
    "note_type": {
      "description": "Note type id from the value list (for example phonecall); omit to use Rex's default.",
      "type": "string",
      "pattern": "^[a-z_]{1,40}$"
    },
    "contact_ids": {
      "description": "Contacts the note is about.",
      "maxItems": 20,
      "type": "array",
      "items": {
        "type": "integer",
        "exclusiveMinimum": 0,
        "maximum": 9007199254740991,
        "description": "A contact id."
      }
    },
    "property_ids": {
      "description": "Properties the note is about.",
      "maxItems": 20,
      "type": "array",
      "items": {
        "type": "integer",
        "exclusiveMinimum": 0,
        "maximum": 9007199254740991,
        "description": "A property id."
      }
    },
    "update_last_contacted": {
      "description": "Also set the contacts' last-contacted date to today.",
      "type": "boolean"
    }
  },
  "required": [
    "note"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴rex_create_reminder(description, date, reminder_type, priority, contact_id, ...)

WRITE: create a follow-up reminder (task) due on a date, optionally linked to a contact, property or listing and assigned to a user (default: Rex's default remindee). Not retried. Returns the new reminder id. POST /v1/rex/Reminders/create.

輸入結構描述

{
  "type": "object",
  "properties": {
    "description": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2000,
      "description": "What to do, for example 'Call Will about the appraisal'."
    },
    "date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Due date, yyyy-mm-dd."
    },
    "reminder_type": {
      "description": "Reminder type id from the value list (for example email); omit to use Rex's default.",
      "type": "string",
      "pattern": "^[a-z_]{1,40}$"
    },
    "priority": {
      "description": "Priority id from the value list (for example high).",
      "type": "string",
      "pattern": "^[a-z_]{1,40}$"
    },
    "contact_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Contact id to link."
    },
    "property_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Property id to link."
    },
    "listing_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Listing id to link."
    },
    "remindee_user_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The Rex user id to remind (from rex_search_users); omit for the default."
    }
  },
  "required": [
    "description",
    "date"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

社群

為此伺服器評分

證據

近期觀測

已驗證未記錄版本33 個工具