Rex Software MCP by usefulapi
Read contacts, listings, tenancies and tasks; create a person contact, note or reminder.
¿Debería usar esto?
Calidad y seguridad
Hallazgos (2)
- HIGH
- MEDIUMen rex_list_accessible_accounts
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"rex-software": {
"url": "https://rex-software.usefulapi.io/mcp"
}
}
}Puntos de conexión remotos
https://rex-software.usefulapi.io/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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).
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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"
}Comunidad
Evidencia