Back to top

API Documentation

AI Tools

Overview

List and invoke Rechat’s AI tools directly for a brand (e.g. from an MCP server).

List AI tools

List AI tools
GET/brands/:brand/ai/tools

Example URI

GET /brands/:brand/ai/tools
URI Parameters
HideShow
brand
string (required) Example: 1c057a36-7120-4cb2-9fd5-b745d9e908b8
Response  200
HideShow
Body
{
  "code": "OK",
  "data": [
    {
      "name": "contact-finder",
      "description": "useful for when you need to list or find one or more people and detailed information about them like their email address, phone numer, birthdays, tags, etc. If the user asks doing something but you can't find the right contact ask them to give you more information. don't come up with example contacts.",
      "input_schema": {
        "type": "object",
        "properties": {
          "query": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "not": {}
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              {
                "type": "null"
              }
            ],
            "description": "The query to find contacts, this must be a string, for example the name, email address or any kind of attribute of a contact. Example: \"John Doe\". For all contacts use \"\"."
          },
          "tags": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "not": {}
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              {
                "type": "null"
              }
            ],
            "description": "Filter by tags, Example: [\"buyer\", \"agent\"]"
          },
          "source_type": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "not": {}
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              {
                "type": "null"
              }
            ],
            "description": "Filter by source type, Example: \"Buyer\""
          },
          "my_leads": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "not": {}
                  },
                  {
                    "type": "boolean"
                  }
                ]
              },
              {
                "type": "null"
              }
            ],
            "description": "If true, only show contacts assigned to me (my leads)"
          }
        },
        "additionalProperties": false,
        "$schema": "http://json-schema.org/draft-07/schema#"
      }
    },
    {
      "name": "contact-updator",
      "description": "Use this tool to update existing contacts and add tags or remove tags from them.",
      "input_schema": {
        "type": "object",
        "properties": {
          "query": {
            "type": [
              "string",
              "null"
            ],
            "description": "The query to find contacts. Example: \"John Doe\""
          },
          "attributes": {
            "type": "object",
            "properties": {
              "address": {
                "type": "object",
                "properties": {
                  "city": {
                    "anyOf": [
                      {
                        "anyOf": [
                          {
                            "not": {}
                          },
                          {
                            "type": "string"
                          }
                        ]
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "country": {
                    "anyOf": [
                      {
                        "anyOf": [
                          {
                            "not": {}
                          },
                          {
                            "type": "string"
                          }
                        ]
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "postal_code": {
                    "anyOf": [
                      {
                        "anyOf": [
                          {
                            "not": {}
                          },
                          {
                            "type": "string"
                          }
                        ]
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "state": {
                    "anyOf": [
                      {
                        "anyOf": [
                          {
                            "not": {}
                          },
                          {
                            "type": "string"
                          }
                        ]
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "street_name": {
                    "anyOf": [
                      {
                        "anyOf": [
                          {
                            "not": {}
                          },
                          {
                            "type": "string"
                          }
                        ]
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "street_number": {
                    "anyOf": [
                      {
                        "anyOf": [
                          {
                            "not": {}
                          },
                          {
                            "type": "string"
                          }
                        ]
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "street_prefix": {
                    "anyOf": [
                      {
                        "anyOf": [
                          {
                            "not": {}
                          },
                          {
                            "type": "string"
                          }
                        ]
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "street_suffix": {
                    "anyOf": [
                      {
                        "anyOf": [
                          {
                            "not": {}
                          },
                          {
                            "type": "string"
                          }
                        ]
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "unit_number": {
                    "anyOf": [
                      {
                        "anyOf": [
                          {
                            "not": {}
                          },
                          {
                            "type": "string"
                          }
                        ]
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "additionalProperties": false
              },
              "birthday": {
                "anyOf": [
                  {
                    "anyOf": [
                      {
                        "not": {}
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "company": {
                "anyOf": [
                  {
                    "anyOf": [
                      {
                        "not": {}
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "email": {
                "anyOf": [
                  {
                    "anyOf": [
                      {
                        "not": {}
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "first_name": {
                "anyOf": [
                  {
                    "anyOf": [
                      {
                        "not": {}
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "job_title": {
                "anyOf": [
                  {
                    "anyOf": [
                      {
                        "not": {}
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "last_name": {
                "anyOf": [
                  {
                    "anyOf": [
                      {
                        "not": {}
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "phone_number": {
                "anyOf": [
                  {
                    "anyOf": [
                      {
                        "not": {}
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "partner": {
                "type": "object",
                "properties": {
                  "first_name": {
                    "anyOf": [
                      {
                        "anyOf": [
                          {
                            "not": {}
                          },
                          {
                            "type": "string"
                          }
                        ]
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "last_name": {
                    "anyOf": [
                      {
                        "anyOf": [
                          {
                            "not": {}
                          },
                          {
                            "type": "string"
                          }
                        ]
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "additionalProperties": false
              },
              "tags": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "additionalProperties": false,
            "description": "The attributes to update. like email, phone, tags, etc. If none is provided, use null . Don't lie and be as truthful as possible"
          }
        },
        "additionalProperties": false,
        "$schema": "http://json-schema.org/draft-07/schema#"
      }
    },
    {
      "name": "contact-creator",
      "description": "use for creating new contacts that don't already exist.",
      "input_schema": {
        "type": "object",
        "properties": {
          "contacts": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "address": {
                  "type": "object",
                  "properties": {
                    "city": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "not": {}
                            },
                            {
                              "type": "string"
                            }
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "country": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "not": {}
                            },
                            {
                              "type": "string"
                            }
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "postal_code": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "not": {}
                            },
                            {
                              "type": "string"
                            }
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "state": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "not": {}
                            },
                            {
                              "type": "string"
                            }
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "street_name": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "not": {}
                            },
                            {
                              "type": "string"
                            }
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "street_number": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "not": {}
                            },
                            {
                              "type": "string"
                            }
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "street_prefix": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "not": {}
                            },
                            {
                              "type": "string"
                            }
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "street_suffix": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "not": {}
                            },
                            {
                              "type": "string"
                            }
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "unit_number": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "not": {}
                            },
                            {
                              "type": "string"
                            }
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  },
                  "additionalProperties": false
                },
                "birthday": {
                  "anyOf": [
                    {
                      "anyOf": [
                        {
                          "not": {}
                        },
                        {
                          "type": "string"
                        }
                      ]
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "company": {
                  "anyOf": [
                    {
                      "anyOf": [
                        {
                          "not": {}
                        },
                        {
                          "type": "string"
                        }
                      ]
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "email": {
                  "anyOf": [
                    {
                      "anyOf": [
                        {
                          "not": {}
                        },
                        {
                          "type": "string"
                        }
                      ]
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "first_name": {
                  "anyOf": [
                    {
                      "anyOf": [
                        {
                          "not": {}
                        },
                        {
                          "type": "string"
                        }
                      ]
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "job_title": {
                  "anyOf": [
                    {
                      "anyOf": [
                        {
                          "not": {}
                        },
                        {
                          "type": "string"
                        }
                      ]
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "last_name": {
                  "anyOf": [
                    {
                      "anyOf": [
                        {
                          "not": {}
                        },
                        {
                          "type": "string"
                        }
                      ]
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "phone_number": {
                  "anyOf": [
                    {
                      "anyOf": [
                        {
                          "not": {}
                        },
                        {
                          "type": "string"
                        }
                      ]
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "partner": {
                  "type": "object",
                  "properties": {
                    "first_name": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "not": {}
                            },
                            {
                              "type": "string"
                            }
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "last_name": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "not": {}
                            },
                            {
                              "type": "string"
                            }
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  },
                  "additionalProperties": false
                },
                "tags": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "additionalProperties": false
            },
            "description": "The collection of all contacts that need to be created"
          }
        },
        "required": [
          "contacts"
        ],
        "additionalProperties": false,
        "$schema": "http://json-schema.org/draft-07/schema#"
      }
    },
    {
      "name": "listing-finder",
      "description": "use for finding listings, properties, homes. When there are no listings found respectfully apologize and let the user know. Example: Sorry couldn't find such listings.",
      "input_schema": {
        "type": "object",
        "properties": {
          "minimum_price": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "not": {}
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              {
                "type": "null"
              }
            ],
            "description": "The minimum price to find listing, this must be a number."
          },
          "maximum_price": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "not": {}
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              {
                "type": "null"
              }
            ],
            "description": "The maximum price to find listing, this must be a number."
          },
          "minimum_bedrooms": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "not": {}
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              {
                "type": "null"
              }
            ],
            "description": "The minimum bedroom to find listing, this must be a number."
          },
          "maximum_bedrooms": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "not": {}
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              {
                "type": "null"
              }
            ],
            "description": "The maximum bedroom to find listing, this must be a number."
          },
          "minimum_bathrooms": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "not": {}
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              {
                "type": "null"
              }
            ],
            "description": "The minimum bathroom to find listing, this must be a number."
          },
          "maximum_bathrooms": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "not": {}
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              {
                "type": "null"
              }
            ],
            "description": "The maximum bathroom to find listing, this must be a number."
          },
          "minimum_year_built": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "not": {}
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              {
                "type": "null"
              }
            ],
            "description": "the earliest construction year of a listed property, this must be a number."
          },
          "maximum_year_built": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "not": {}
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              {
                "type": "null"
              }
            ],
            "description": "latest construction year of a listed property, this must be a number."
          },
          "limit": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "not": {}
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              {
                "type": "null"
              }
            ],
            "description": "the number of listings user asked in the prompt, this must be a number."
          },
          "postal_codes": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "not": {}
                  },
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                ]
              },
              {
                "type": "null"
              }
            ],
            "description": "the postal code of listing."
          },
          "mls": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "not": {}
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              {
                "type": "null"
              }
            ],
            "description": "this is the name of the MLS, MLS stands for \"Multiple Listing Service.\" It is a comprehensive database used by real estate professionals to share information about properties that are currently on the market for sale or rent, this must be a string."
          },
          "listing_statuses": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "not": {}
                  },
                  {
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "not": {}
                        },
                        {
                          "type": "string",
                          "enum": [
                            "Active",
                            "Lease",
                            "Coming Soon",
                            "Pending",
                            "Active Kick Out",
                            "Active Contingent",
                            "Active Option Contract",
                            "Active Under Contract",
                            "Lease Contract",
                            "Sold",
                            "Leased",
                            "Expired",
                            "Archived",
                            "Cancelled",
                            "Contract Terminated",
                            "Withdrawn",
                            "Temp Off Market",
                            "Withdrawn Sublisting"
                          ]
                        }
                      ],
                      "description": "The status of the listing"
                    }
                  }
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "minimum_square_meters": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "not": {}
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              {
                "type": "null"
              }
            ],
            "description": "the minimum square meter of a listed property, this must be a number."
          },
          "maximum_square_meters": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "not": {}
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              {
                "type": "null"
              }
            ],
            "description": "the maximum square meter of a listed property, this must be a number."
          },
          "number_of_pets_allowed": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "not": {}
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              {
                "type": "null"
              }
            ],
            "description": "this is a number of pets allowed for a listed property, this must be a number."
          },
          "property_types": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "Residential",
                "Residential Lease",
                "Multi-Family",
                "Commercial",
                "Lots & Acreage"
              ]
            },
            "description": "these are the type of a listed property"
          },
          "pool": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "this represent whether a listed property has pool or not. the value should be true or false"
          },
          "furnished": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "this represent whether a listed property has furnished or not. the value should be true or false"
          },
          "pets": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "this represent whether a listed property has furnished or not. the value should be true or false. the value should be true or false"
          },
          "appliances": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "this represent whether a listed property has appliances or not. the value should be true or false. the value should be true or false"
          },
          "fenced_yard": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "this represent whether a yard of listed property is enclosed by a fence or not. the value should be true or false. the value should be true or false"
          },
          "open_house": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "this represent whether of listed property has open house. the value should be true or false. the value should be true or false"
          },
          "minimum_lot_square_meters": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "not": {}
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              {
                "type": "null"
              }
            ],
            "description": "the minimum square meter of a lot of listed property, this must be a number."
          },
          "maximum_lot_square_meters": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "not": {}
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              {
                "type": "null"
              }
            ],
            "description": "the maximum square meter of a lot of listed property, this must be a number."
          },
          "minimum_parking_spaces": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "not": {}
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              {
                "type": "null"
              }
            ],
            "description": "the minimum parking space of a listed property, this must be a number."
          },
          "search": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "not": {}
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              {
                "type": "null"
              }
            ],
            "description": "this is the address of a listing that is a string"
          },
          "content": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "not": {}
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              {
                "type": "null"
              }
            ],
            "description": "this can be any string that can not be categorized in other filters"
          },
          "sort_order": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "-close_price",
                "+close_price",
                "-price",
                "+price",
                "-list_date",
                "+list_date",
                "-bedrooms",
                "+bedrooms",
                "-bathrooms",
                "+bathrooms",
                "-square_feet",
                "+square_feet",
                "-lot_size",
                "+lot_size",
                "-year_built",
                "+year_built"
              ]
            },
            "description": "For ascending use + and for descending use -"
          },
          "center": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "not": {}
                  },
                  {
                    "type": "object",
                    "properties": {
                      "latitude": {
                        "type": "number",
                        "description": "Latitude of the center point."
                      },
                      "longitude": {
                        "type": "number",
                        "description": "Longitude of the center point."
                      }
                    },
                    "required": [
                      "latitude",
                      "longitude"
                    ],
                    "additionalProperties": false
                  }
                ]
              },
              {
                "type": "null"
              }
            ],
            "description": "Center point for a radius-based geographic search. Use together with `radius`. Read the latitude/longitude from a listing's `address.location` — e.g. to find listings near a known property, pass that property's location here."
          },
          "radius": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "not": {}
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              {
                "type": "null"
              }
            ],
            "description": "Search radius in MILES around `center`. Only applied when `center` is also provided."
          }
        },
        "required": [
          "property_types",
          "sort_order"
        ],
        "additionalProperties": false,
        "$schema": "http://json-schema.org/draft-07/schema#"
      }
    },
    {
      "name": "geocode",
      "description": "Convert a street address or place name into a geographic location ({ latitude, longitude }) using Mapbox.\n\nUse this when you have an address but need coordinates — most commonly to drive a radius search: geocode the address, then pass the returned location to the 'listing-finder' tool as its 'center' (with a 'radius' in miles).",
      "input_schema": {
        "type": "object",
        "properties": {
          "address": {
            "type": "string",
            "minLength": 1,
            "description": "The address or place to geocode, e.g. \"101 West 14th Street, New York, NY 10011\" or \"Dallas, TX\"."
          }
        },
        "required": [
          "address"
        ],
        "additionalProperties": false,
        "$schema": "http://json-schema.org/draft-07/schema#"
      }
    },
    {
      "name": "task-creator",
      "description": "use for creating and scheduling tasks, reminders and alerts.",
      "input_schema": {
        "type": "object",
        "properties": {
          "tasks": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "title": {
                  "type": "string",
                  "description": "The title of the tasks, reminders and alert"
                },
                "due_date": {
                  "type": "string",
                  "description": "Due date. it must be a valid javascript date object"
                },
                "task_type": {
                  "type": "string",
                  "enum": [
                    "Call",
                    "Message",
                    "Todo",
                    "In-Person Meeting",
                    "Email",
                    "Mail",
                    "Text",
                    "Open House"
                  ],
                  "description": "The type of task."
                }
              },
              "required": [
                "title",
                "due_date",
                "task_type"
              ],
              "additionalProperties": false
            },
            "description": "The JSON for task, reminder or alert to create"
          }
        },
        "required": [
          "tasks"
        ],
        "additionalProperties": false,
        "description": "JSON definition for creating tasks, reminders and alerts,",
        "$schema": "http://json-schema.org/draft-07/schema#"
      }
    },
    {
      "name": "task-finder",
      "description": "useful for when you need to list or find one or more tasks. current date is: Tue Jun 02 2026 15:30:12 GMT+0000 (Coordinated Universal Time)",
      "input_schema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "The query to find tasks"
          },
          "filters": {
            "type": "object",
            "properties": {
              "task_type": {
                "type": "string",
                "enum": [
                  "Call",
                  "Message",
                  "Todo",
                  "In-Person Meeting",
                  "Email",
                  "Mail",
                  "Text",
                  "Open House"
                ],
                "description": "The type of task"
              },
              "status": {
                "type": "string",
                "enum": [
                  "PENDING",
                  "DONE"
                ],
                "description": "The status of the task"
              },
              "due_gte": {
                "type": "string",
                "description": "The due date greater than or equal to, it must be a valid javascript date object"
              },
              "due_lte": {
                "type": "string",
                "description": "The due date lesser than or equal to, it must be a valid javascript date object"
              }
            },
            "additionalProperties": false
          }
        },
        "required": [
          "filters"
        ],
        "additionalProperties": false,
        "$schema": "http://json-schema.org/draft-07/schema#"
      }
    },
    {
      "name": "cma-creator",
      "description": "Use for creating a Comparative Market Analysis (CMA) and Presentations.\n\nDo not ask the human for property facts, MLS data, comp criteria, neighborhood info, or anything else you can look up with tools. The human gave you the subject listing — that is enough to start. Discover everything else via 'listing-finder' (and 'think' to reason). The ONLY thing worth checking with the human is the final curated set of comps right before you build the CMA, and even that is optional — if you have a confident set, just build it.\n\nBefore calling this tool you MUST select high-quality comparable listings (\"comps\") for the subject property. Comps are selected using the listing-finder tool. This tool does NOT search for comps on its own — you are responsible for picking them like a savvy, experienced real estate agent would.\n\nWHERE TO GET THE SUBJECT'S ATTRIBUTES:\nYou already have a 'subject_listing_id'. To get the subject's bedrooms, bathrooms, square footage, year built, subtype, neighborhood, postal code, price, etc., call 'listing-finder' with the subject's MLS id, address, or postal code. Do NOT ask the human \"how many bedrooms does it have\", \"what neighborhood is it in\", \"what's the square footage\" — read it off the listing.\n\nWHAT MAKES A GOOD COMP (best practices):\n- Same property type AND subtype (e.g. Single Family matched with Single Family, not with Townhouse).\n- Same or directly adjacent neighborhood / subdivision / school zone. Hyper-local beats \"close enough\" — a comp two blocks away in a different school zone is not a comp.\n- Same bedroom count, and same or ±1 bathroom count.\n- Living area within ~15% of the subject's square footage; broaden to ~25% only if needed.\n- Similar lot size, year built (within ~10–15 years), and condition/amenities (pool, garage, fenced yard, etc.).\n- Recent activity: Sold listings within the last 3–6 months are gold; broaden to 12 months only if the market is thin.\n- Healthy status mix when possible: prioritize Sold (proves what buyers actually paid), then Pending (where the market is heading), then Active (current competition).\n- Aim for 3–6 strong comps. Quality beats quantity — 3 tight comps are far better than 8 loose ones.\n\nHOW TO SELECT COMPS — ITERATIVE / PROGRESSIVE SEARCH:\nYou should call listing-finder MULTIPLE times, tightening or loosening filters between calls until you have a clean set of comps. Do not settle for the first batch. The loop is search → THINK → adjust → search again, and the think step is mandatory on EVERY iteration.\nGo up to 5 iterations if needed.\n\n1. Start TIGHT. Use the subject listing's attributes to query listing-finder with narrow filters: same property_types and subtype, ±10–15% square_meters, same bedrooms, same or ±1 bathrooms, sold within the last ~6 months, and restricted to the immediate area. When the subject listing has a location, GEO-FENCE the search to it: pass listing-finder's 'center' set to the subject's 'address.location' ({ latitude, longitude }) together with a 'radius' in miles. START VERY CLOSE — about 0.25 mi (a few blocks) — and increase the radius only one step at a time across iterations (e.g. 0.25 → 0.5 → 1 → 2 → 3 mi) until you have enough strong comps. The nearer the comp the better, so prefer a tight radius with a few excellent comps over a wide one full of mediocre matches. Prefer this radius search over postal_code; it keeps comps genuinely close to the subject. Fall back to postal_code only when you truly have no coordinates (for an off-market subject, geocode its address first — see below — so you can radius-search it too).\n\n2. Call the 'think' tool immediately after every listing-finder call. In the thought, evaluate each candidate against the subject:\n   - Is it in the same neighborhood/subdivision/school zone as the subject?\n   - Is the property subtype the same?\n   - Is the living area within ~15% (acceptable up to ~25%) of the subject?\n   - Are the bedroom and bathroom counts a match (±1 bath at most)?\n   - Is the year built within ~10–15 years of the subject?\n   - Is the lot size and condition/amenity profile (pool, garage, fenced yard, etc.) comparable?\n   - For sold comps, is the sale recent (within ~6 months, ~12 months at the outside)?\n   - Does anything look like an outlier — distressed sale, off-market flip, wildly different lot, wrong street side, etc.?\n   Name each listing explicitly, say which ones you're keeping and dropping and why, and count how many strong comps you have so far.\n\n3. End the thought with a clear DECISION on what to do next:\n   - If you have 3–6 strong comps you'd defend to a client, STOP and call this tool.\n   - If you have fewer than ~3 solid comps, BROADEN one dimension at a time and search again — start by bumping the radius up one step (e.g. 0.25 → 0.5 → 1 → 2 → 3 mi), then if still thin widen the sqft band to ±25%, extend the sold window to 12 months, or relax the subtype. Do not loosen everything at once; you want to know which constraint was the blocker.\n   - If you have plenty of results but they're noisy, TIGHTEN — e.g. restrict to Sold only, narrow the price band, or pull in only the same subdivision.\n   - If a whole dimension is failing (e.g. nothing recent has sold in the area), pivot to a different angle (e.g. include Pending/Active for market signal) rather than endlessly broadening.\n\n4. REPEAT steps 1–3. Every iteration must include a 'think' call between the listing-finder result and the next action. Only call cma-creator once the thought concludes that you have a curated set of 3–6 comps that genuinely match the subject.\n\nADJUSTMENTS:\nEach comp can carry a tiny list of price adjustments that account for material differences between that comp and the subject. Keep them minimal — usually 0 to 3 per comp, only for differences a buyer would actually pay for.\n\nEach adjustment is { description: string, value: number (USD) }. Sign convention:\n- POSITIVE value → the subject has something the comp lacks; the comp's price is adjusted UP to be comparable to the subject.\n- NEGATIVE value → the comp has something the subject lacks; the comp's price is adjusted DOWN to be comparable to the subject.\n\nExamples:\n- Subject is a penthouse, comp is not → '{ \"description\": \"Penthouse\", \"value\": 30000 }'\n- Comp has a pool, subject doesn't → '{ \"description\": \"Pool\", \"value\": -15000 }'\n- Subject has 1 extra bedroom → '{ \"description\": \"Extra bedroom\", \"value\": 20000 }'\n- Comp is ~200 sqft larger than subject → '{ \"description\": \"200 sqft larger\", \"value\": -25000 }'\n\nDo NOT call this tool with comps you have not personally vetted via listing-finder. Do NOT include the subject listing in comps.\n\n- Try to find the listing information using 'listing-finder' first. If you can't find it, then ask the human for the MLS id or address of the subject listing.\n- 'ask-human' can be used for getting feedback from the human during the process.\n\nSUBJECT LISTING — TWO WAYS TO IDENTIFY IT:\nYou must provide exactly one of these two arguments for the subject (never both, never neither):\n\n1. 'subject_listing_id' — the preferred path. Use this whenever the subject is in any MLS. Always try 'listing-finder' first (by MLS id, address, or postal code) and pass the resulting listing id here.\n\n2. 'off_market_listing' — only when the subject is off-market: it has never been on any MLS, or you've tried 'listing-finder' and confirmed it's not there. The agent is doing a pre-listing CMA, a private valuation, or a CMA for a property the owner is considering selling.\n   In this case, ask the human for property information.\n   Ask him to give you all details of the property (address, bedrooms, bathrooms, square footage, year built, lot size, property type/subtype, neighborhood, postal code, price, amenities, etc). \n   Once you have details above, GEOCODE the property's address with the 'geocode' tool to get its location ({ latitude, longitude }), then find comps exactly as you would for an MLS subject — pass that location as listing-finder's 'center' with a small 'radius' in miles to radius-search around the off-market property instead of relying on postal_code. When you call cma-creator, also set that geocoded location on the off-market subject's address (off_market_listing.property.address.location = { latitude, longitude }) so the subject is pinned on the CMA map. Then create the cma presentation.\n   You can ask for questions, but shouldn't be too chatty.\n   If the user doesn't provide a list price, you need to think hard about the provided data and come up with an estimated price for the subject property. You can use your knowledge of the market, recent sales, and other factors to make an informed estimate. If you are unsure, you can ask the human for their opinion on the estimated price.\n\n   Once you have the data you need proceed to create the cma using `cma-creator` tool. No need to give the human a summary.\n\n   Comps are still real MLS listings selected via 'listing-finder' — the off-market path only applies to the subject.",
      "input_schema": {
        "type": "object",
        "properties": {
          "subject_listing_id": {
            "type": "string",
            "format": "uuid",
            "description": "id (uuid) of the subject listing that the CMA is being created for. Use this whenever the subject exists in our MLS data — look it up via listing-finder first."
          },
          "off_market_listing": {
            "type": "object",
            "properties": {
              "price": {
                "type": "number",
                "description": "The agent's asking-price estimate, if any. Leave null when the CMA is meant to help establish a price."
              },
              "property": {
                "type": "object",
                "properties": {
                  "bedroom_count": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "bathroom_count": {
                    "type": "number",
                    "minimum": 0,
                    "description": "Total bathroom count, can be fractional (e.g. 2.5)."
                  },
                  "full_bathroom_count": {
                    "type": [
                      "number",
                      "null"
                    ]
                  },
                  "half_bathroom_count": {
                    "type": [
                      "number",
                      "null"
                    ]
                  },
                  "square_meters": {
                    "type": [
                      "number",
                      "null"
                    ],
                    "description": "Living area in square meters (not square feet). Convert from sqft using 1 sqft = 0.092903 sqm."
                  },
                  "lot_square_meters": {
                    "type": [
                      "number",
                      "null"
                    ],
                    "description": "Lot size in square meters. Convert from sqft using 1 sqft = 0.092903 sqm, or from acres using 1 acre = 4046.86 sqm."
                  },
                  "year_built": {
                    "anyOf": [
                      {
                        "type": "integer"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "property_type": {
                    "type": "string",
                    "enum": [
                      "Residential",
                      "Residential Lease",
                      "Multi-Family",
                      "Commercial",
                      "Lots & Acreage"
                    ]
                  },
                  "property_subtype": {
                    "type": "string",
                    "description": "e.g. \"Single Family\", \"Condominium\", \"Townhouse\"."
                  },
                  "subdivision_name": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "pool_yn": {
                    "type": [
                      "boolean",
                      "null"
                    ]
                  },
                  "description": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "address": {
                    "type": "object",
                    "properties": {
                      "street_number": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "e.g. \"123\""
                      },
                      "street_dir_prefix": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "Directional prefix, e.g. \"N\", \"E\", \"SW\"."
                      },
                      "street_name": {
                        "type": "string",
                        "description": "Street name without number or suffix, e.g. \"Main\"."
                      },
                      "street_suffix": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "e.g. \"St\", \"Ave\", \"Blvd\", \"Dr\"."
                      },
                      "street_dir_suffix": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "unit_number": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "Apartment, suite, or unit number if any."
                      },
                      "city": {
                        "type": "string"
                      },
                      "state": {
                        "type": "string",
                        "description": "Full state name, e.g. \"Texas\"."
                      },
                      "state_code": {
                        "type": "string",
                        "description": "Two-letter state code, e.g. \"TX\"."
                      },
                      "postal_code": {
                        "type": "string"
                      },
                      "neighborhood": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "county_or_parish": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "full_address": {
                        "type": "string"
                      },
                      "location": {
                        "anyOf": [
                          {
                            "type": "object",
                            "properties": {
                              "latitude": {
                                "type": "number"
                              },
                              "longitude": {
                                "type": "number"
                              }
                            },
                            "required": [
                              "latitude",
                              "longitude"
                            ],
                            "additionalProperties": false
                          },
                          {
                            "type": "null"
                          }
                        ],
                        "description": "Geocoded location of the property ({ latitude, longitude }), obtained from the geocode tool. Pass it so the off-market subject is pinned on the CMA map."
                      }
                    },
                    "required": [
                      "street_name",
                      "city",
                      "state",
                      "state_code",
                      "postal_code",
                      "full_address"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "bedroom_count",
                  "bathroom_count",
                  "property_type",
                  "property_subtype",
                  "address"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "price",
              "property"
            ],
            "additionalProperties": false,
            "description": "Use only when the subject property is genuinely not in any MLS — never been listed, or its MLS record cannot be located via listing-finder. Always attempt listing-finder first."
          },
          "comps": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "listing_id": {
                  "type": "string",
                  "format": "uuid",
                  "description": "id (uuid) of the comparable listing"
                },
                "adjustments": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "description": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Short label for what is being adjusted, e.g. \"Penthouse\", \"Pool\", \"Extra bedroom\", \"Smaller lot\"."
                      },
                      "value": {
                        "type": "number",
                        "description": "Dollar value in USD applied to the comp. POSITIVE if the subject has the feature/advantage and the comp does not (raises the comp toward the subject). NEGATIVE if the comp has the feature/advantage and the subject does not (lowers the comp toward the subject)."
                      }
                    },
                    "required": [
                      "description",
                      "value"
                    ],
                    "additionalProperties": false
                  },
                  "default": [],
                  "description": "Optional small list of price adjustments for this comp. Keep it tiny — 0 to 3 adjustments per comp, only for material differences vs. the subject."
                }
              },
              "required": [
                "listing_id"
              ],
              "additionalProperties": false
            },
            "minItems": 1,
            "description": "Comparable listings to use in the CMA. These must be selected by the AI using the listing-finder tool. Do not include the subject listing here."
          }
        },
        "required": [
          "comps"
        ],
        "additionalProperties": false,
        "$schema": "http://json-schema.org/draft-07/schema#"
      }
    },
    {
      "name": "website-creator",
      "description": "use for creating listing websites",
      "input_schema": {
        "type": "object",
        "properties": {
          "listing_id": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "not": {}
                  },
                  {
                    "type": "string",
                    "description": "id (uuid) of the listing"
                  }
                ],
                "description": "id (uuid) of the listing"
              },
              {
                "type": "null"
              }
            ],
            "description": "id (uuid) of the listing"
          },
          "query": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "not": {}
                  },
                  {
                    "type": "string",
                    "description": "address or mlsid to find the listing to create website for"
                  }
                ],
                "description": "address or mlsid to find the listing to create website for"
              },
              {
                "type": "null"
              }
            ],
            "description": "address or mlsid to find the listing to create website for"
          },
          "content_instructions": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "not": {}
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              {
                "type": "null"
              }
            ],
            "description": "high level instructions for the content of the website. leave as null if user has no explicit instructions regarding content of the website"
          }
        },
        "additionalProperties": false,
        "description": "either listing_id or query must be sent not both",
        "$schema": "http://json-schema.org/draft-07/schema#"
      }
    },
    {
      "name": "website-updator",
      "description": "use for updating websites",
      "input_schema": {
        "type": "object",
        "properties": {
          "website_id": {
            "type": "string",
            "description": "id of website to edit"
          },
          "content_instructions": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "not": {}
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              {
                "type": "null"
              }
            ],
            "description": "high level instructions for the content of the website. leave as null if user has no explicit instructions regarding content of the website"
          }
        },
        "required": [
          "website_id"
        ],
        "additionalProperties": false,
        "$schema": "http://json-schema.org/draft-07/schema#"
      }
    },
    {
      "name": "social-marketing-creator",
      "description": "use for creating social (instagram post, facebook post) and video marketing",
      "input_schema": {
        "type": "object",
        "properties": {
          "type": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "not": {}
                  },
                  {
                    "type": "string",
                    "enum": [
                      "Agent",
                      "BackToSchool",
                      "BoxingDay",
                      "ChineseNewYear",
                      "Christmas",
                      "ColumbusDay",
                      "DaylightSaving",
                      "Diwali",
                      "Easter",
                      "EidalFitr",
                      "FathersDay",
                      "FourthOfJuly",
                      "Halloween",
                      "Hanukkah",
                      "IndependenceDay",
                      "Kwanzaa",
                      "LaborDay",
                      "MemorialDay",
                      "MLKDay",
                      "MothersDay",
                      "NewYear",
                      "OtherHoliday",
                      "Passover",
                      "PatriotsDay",
                      "Ramadan",
                      "RoshHashanah",
                      "September11",
                      "StPatrick",
                      "Thanksgiving",
                      "Valentines",
                      "VeteransDay",
                      "WomansDay",
                      "JuneTeenth",
                      "FirstDayOfSummer",
                      "Pride",
                      "AsianAmericanAndPacificIslanderHeritageMonth",
                      "NativeAmericanHeritageMonth",
                      "BlackHistoryMonth",
                      "EarthDay",
                      "FirstDayOfSpring",
                      "CincoDeMayo",
                      "FirstDayOfFall",
                      "FirstDayOfWinter",
                      "YomKippur",
                      "DonutDay",
                      "EmojiDay",
                      "GetToKnowYourCustomersDay",
                      "SMoresDay",
                      "HomeMatchMaker",
                      "NationalIceCreamDay",
                      "NationalBubbleBathDay",
                      "NationalCleanOffYourDeskDay",
                      "NationalHouseplantAppreciationDay",
                      "NationalStickerDay",
                      "OrganizeYourHomeDay",
                      "NationalPizzaDay",
                      "InventorsDay",
                      "ActsOfKindnessDay",
                      "NationalLoveYourPetDay",
                      "WomenHistoryMonth",
                      "AwkwardMomentsDay",
                      "InternationalDayOfHappiness",
                      "NationalPetDay",
                      "NationalGardeningDay",
                      "NationalTaxDay",
                      "MilitaryAppreciationMonth",
                      "NationalLoyaltyDay",
                      "NewHomeownersDay",
                      "StarWarsDay",
                      "ApplePieDay",
                      "NationalHomeOwnershipMonth",
                      "GreatOutdoorsMonth",
                      "SummerSolstice",
                      "SocialMediaDay",
                      "InternationalHappinessMonth",
                      "911RemembranceDay",
                      "HispanicHeritageMonth",
                      "WorldGratitudeDay",
                      "AskAStupidQuestionDay",
                      "NationalGoodNeighborDay",
                      "NationalFamilyDay",
                      "BreastCancerAwarenessMonth",
                      "NationalCoffeeDay",
                      "WorldSmileDay",
                      "NationalMakeADifferenceDay",
                      "NationalNachoDay",
                      "NationalPickleDay",
                      "CleanOutYourRefrigeratorDay",
                      "TakeHikeDay",
                      "NationalBrownieDay",
                      "NationalSalespersonDay",
                      "NationalPoinsettiaDay",
                      "GingerbreadHouseDay",
                      "NationalUnderdogDay",
                      "DeviceAppreciationDay",
                      "WinterSolstice",
                      "CrosswordPuzzleDay",
                      "CanadaDay",
                      "BCDay",
                      "FamilyDay",
                      "VictoriaDay",
                      "RemembranceDay",
                      "TruthAndReconciliation",
                      "WomenEntrepreneurshipDay",
                      "LabourDay",
                      "ThanksgivingCA",
                      "BackToSchoolCA",
                      "IndigenousPeoples",
                      "PresidentDay",
                      "MentalHealthAwarenessDay",
                      "DiaDeLosMuertos",
                      "HappyHolidays",
                      "FairHousingMonth",
                      "GoodFriday",
                      "AsSeenIn",
                      "ComingSoon",
                      "JustListed",
                      "JustSold",
                      "JustRented",
                      "ForRent",
                      "OpenHouse",
                      "PriceImprovement",
                      "UnderContract",
                      "NewDevelopment",
                      "PrivateExclusive",
                      "InEscrow",
                      "ForSale"
                    ]
                  }
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "medium": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "not": {}
                  },
                  {
                    "type": "string",
                    "enum": [
                      "Social",
                      "InstagramStory",
                      "Reel"
                    ]
                  }
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "query": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "not": {}
                  },
                  {
                    "type": "string",
                    "description": "address or mlsid to find the listing"
                  }
                ],
                "description": "address or mlsid to find the listing"
              },
              {
                "type": "null"
              }
            ],
            "description": "address or mlsid to find the listing"
          },
          "listing_id": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "not": {}
                  },
                  {
                    "type": "string",
                    "description": "id (uuid) of the listing"
                  }
                ],
                "description": "id (uuid) of the listing"
              },
              {
                "type": "null"
              }
            ],
            "description": "id (uuid) of the listing"
          },
          "content_instructions": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "not": {}
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              {
                "type": "null"
              }
            ],
            "description": "high level instructions for the content of the website. leave as null if user has no explicit instructions regarding content of the website"
          }
        },
        "additionalProperties": false,
        "description": "either listing_uuid or query must be sent not both",
        "$schema": "http://json-schema.org/draft-07/schema#"
      }
    },
    {
      "name": "print-marketing-creator",
      "description": "use for creating print marketing materials including: brochures, business cards, postcards, folded postcards, newsletters, flyers, legal documents, index cards, and letters. Can create generic print materials or specify specific print format(s).",
      "input_schema": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "Agent",
              "BackToSchool",
              "BoxingDay",
              "ChineseNewYear",
              "Christmas",
              "ColumbusDay",
              "DaylightSaving",
              "Diwali",
              "Easter",
              "EidalFitr",
              "FathersDay",
              "FourthOfJuly",
              "Halloween",
              "Hanukkah",
              "IndependenceDay",
              "Kwanzaa",
              "LaborDay",
              "MemorialDay",
              "MLKDay",
              "MothersDay",
              "NewYear",
              "OtherHoliday",
              "Passover",
              "PatriotsDay",
              "Ramadan",
              "RoshHashanah",
              "September11",
              "StPatrick",
              "Thanksgiving",
              "Valentines",
              "VeteransDay",
              "WomansDay",
              "JuneTeenth",
              "FirstDayOfSummer",
              "Pride",
              "AsianAmericanAndPacificIslanderHeritageMonth",
              "NativeAmericanHeritageMonth",
              "BlackHistoryMonth",
              "EarthDay",
              "FirstDayOfSpring",
              "CincoDeMayo",
              "FirstDayOfFall",
              "FirstDayOfWinter",
              "YomKippur",
              "DonutDay",
              "EmojiDay",
              "GetToKnowYourCustomersDay",
              "SMoresDay",
              "HomeMatchMaker",
              "NationalIceCreamDay",
              "NationalBubbleBathDay",
              "NationalCleanOffYourDeskDay",
              "NationalHouseplantAppreciationDay",
              "NationalStickerDay",
              "OrganizeYourHomeDay",
              "NationalPizzaDay",
              "InventorsDay",
              "ActsOfKindnessDay",
              "NationalLoveYourPetDay",
              "WomenHistoryMonth",
              "AwkwardMomentsDay",
              "InternationalDayOfHappiness",
              "NationalPetDay",
              "NationalGardeningDay",
              "NationalTaxDay",
              "MilitaryAppreciationMonth",
              "NationalLoyaltyDay",
              "NewHomeownersDay",
              "StarWarsDay",
              "ApplePieDay",
              "NationalHomeOwnershipMonth",
              "GreatOutdoorsMonth",
              "SummerSolstice",
              "SocialMediaDay",
              "InternationalHappinessMonth",
              "911RemembranceDay",
              "HispanicHeritageMonth",
              "WorldGratitudeDay",
              "AskAStupidQuestionDay",
              "NationalGoodNeighborDay",
              "NationalFamilyDay",
              "BreastCancerAwarenessMonth",
              "NationalCoffeeDay",
              "WorldSmileDay",
              "NationalMakeADifferenceDay",
              "NationalNachoDay",
              "NationalPickleDay",
              "CleanOutYourRefrigeratorDay",
              "TakeHikeDay",
              "NationalBrownieDay",
              "NationalSalespersonDay",
              "NationalPoinsettiaDay",
              "GingerbreadHouseDay",
              "NationalUnderdogDay",
              "DeviceAppreciationDay",
              "WinterSolstice",
              "CrosswordPuzzleDay",
              "CanadaDay",
              "BCDay",
              "FamilyDay",
              "VictoriaDay",
              "RemembranceDay",
              "TruthAndReconciliation",
              "WomenEntrepreneurshipDay",
              "LabourDay",
              "ThanksgivingCA",
              "BackToSchoolCA",
              "IndigenousPeoples",
              "PresidentDay",
              "MentalHealthAwarenessDay",
              "DiaDeLosMuertos",
              "HappyHolidays",
              "FairHousingMonth",
              "GoodFriday",
              "AsSeenIn",
              "ComingSoon",
              "JustListed",
              "JustSold",
              "JustRented",
              "ForRent",
              "OpenHouse",
              "PriceImprovement",
              "UnderContract",
              "NewDevelopment",
              "PrivateExclusive",
              "InEscrow",
              "ForSale"
            ]
          },
          "query": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "not": {}
                  },
                  {
                    "type": "string",
                    "description": "search query, address or mlsid to find the listing"
                  }
                ],
                "description": "search query, address or mlsid to find the listing"
              },
              {
                "type": "null"
              }
            ],
            "description": "search query, address or mlsid to find the listing"
          },
          "listing_id": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "not": {}
                  },
                  {
                    "type": "string",
                    "description": "id (uuid) of the listing"
                  }
                ],
                "description": "id (uuid) of the listing"
              },
              {
                "type": "null"
              }
            ],
            "description": "id (uuid) of the listing"
          },
          "format": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "not": {}
                  },
                  {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "Any",
                        "Letter",
                        "BusinessCard",
                        "PostCard",
                        "FoldedPostCard",
                        "Brochure",
                        "FoldedBrochure",
                        "Newsletter",
                        "Legal",
                        "Flyer",
                        "IndexCard"
                      ]
                    },
                    "description": "print format(s) to create. Options: Letter, BusinessCard, PostCard, FoldedPostCard, Brochure, FoldedBrochure, Newsletter, Legal, Flyer, IndexCard. Use 'Any' or omit to search all formats. Can specify multiple formats like ['Brochure', 'Flyer']."
                  }
                ],
                "description": "print format(s) to create. Options: Letter, BusinessCard, PostCard, FoldedPostCard, Brochure, FoldedBrochure, Newsletter, Legal, Flyer, IndexCard. Use 'Any' or omit to search all formats. Can specify multiple formats like ['Brochure', 'Flyer']."
              },
              {
                "type": "null"
              }
            ],
            "description": "print format(s) to create. Options: Letter, BusinessCard, PostCard, FoldedPostCard, Brochure, FoldedBrochure, Newsletter, Legal, Flyer, IndexCard. Use 'Any' or omit to search all formats. Can specify multiple formats like ['Brochure', 'Flyer']."
          },
          "start_time": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "not": {}
                  },
                  {
                    "type": "string",
                    "description": "open house start date and time in ISO 8601 format, exactly as the user stated it (e.g. 2026-04-10T20:00:00). Do not convert timezones."
                  }
                ],
                "description": "open house start date and time in ISO 8601 format, exactly as the user stated it (e.g. 2026-04-10T20:00:00). Do not convert timezones."
              },
              {
                "type": "null"
              }
            ],
            "description": "open house start date and time in ISO 8601 format, exactly as the user stated it (e.g. 2026-04-10T20:00:00). Do not convert timezones."
          },
          "end_time": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "not": {}
                  },
                  {
                    "type": "string",
                    "description": "open house end date and time in ISO 8601 format, exactly as the user stated it. Do not convert timezones."
                  }
                ],
                "description": "open house end date and time in ISO 8601 format, exactly as the user stated it. Do not convert timezones."
              },
              {
                "type": "null"
              }
            ],
            "description": "open house end date and time in ISO 8601 format, exactly as the user stated it. Do not convert timezones."
          }
        },
        "required": [
          "type"
        ],
        "additionalProperties": false,
        "description": "either listing_id or query must be sent not both",
        "$schema": "http://json-schema.org/draft-07/schema#"
      }
    },
    {
      "name": "email-composer",
      "description": "use for composing and creating email, eblast, blast, campaign, announcement",
      "input_schema": {
        "type": "object",
        "properties": {
          "subject": {
            "type": "string",
            "description": "subject of the email. could be promotional. using emoji is allowed"
          },
          "body": {
            "type": "string",
            "description": "The body of the email. Can be HTML formatted. Instead of [Your Name] use Unit Test"
          },
          "address_or_mls_number": {
            "type": "string",
            "description": "address or mlsid to find the listing"
          },
          "listing_uuid": {
            "type": "string",
            "description": "id (uuid) of the listing"
          },
          "holiday": {
            "type": "string",
            "enum": [
              "Agent",
              "BackToSchool",
              "BoxingDay",
              "ChineseNewYear",
              "Christmas",
              "ColumbusDay",
              "DaylightSaving",
              "Diwali",
              "Easter",
              "EidalFitr",
              "FathersDay",
              "FourthOfJuly",
              "Halloween",
              "Hanukkah",
              "IndependenceDay",
              "Kwanzaa",
              "LaborDay",
              "MemorialDay",
              "MLKDay",
              "MothersDay",
              "NewYear",
              "OtherHoliday",
              "Passover",
              "PatriotsDay",
              "Ramadan",
              "RoshHashanah",
              "September11",
              "StPatrick",
              "Thanksgiving",
              "Valentines",
              "VeteransDay",
              "WomansDay",
              "JuneTeenth",
              "FirstDayOfSummer",
              "Pride",
              "AsianAmericanAndPacificIslanderHeritageMonth",
              "NativeAmericanHeritageMonth",
              "BlackHistoryMonth",
              "EarthDay",
              "FirstDayOfSpring",
              "CincoDeMayo",
              "FirstDayOfFall",
              "FirstDayOfWinter",
              "YomKippur",
              "DonutDay",
              "EmojiDay",
              "GetToKnowYourCustomersDay",
              "SMoresDay",
              "HomeMatchMaker",
              "NationalIceCreamDay",
              "NationalBubbleBathDay",
              "NationalCleanOffYourDeskDay",
              "NationalHouseplantAppreciationDay",
              "NationalStickerDay",
              "OrganizeYourHomeDay",
              "NationalPizzaDay",
              "InventorsDay",
              "ActsOfKindnessDay",
              "NationalLoveYourPetDay",
              "WomenHistoryMonth",
              "AwkwardMomentsDay",
              "InternationalDayOfHappiness",
              "NationalPetDay",
              "NationalGardeningDay",
              "NationalTaxDay",
              "MilitaryAppreciationMonth",
              "NationalLoyaltyDay",
              "NewHomeownersDay",
              "StarWarsDay",
              "ApplePieDay",
              "NationalHomeOwnershipMonth",
              "GreatOutdoorsMonth",
              "SummerSolstice",
              "SocialMediaDay",
              "InternationalHappinessMonth",
              "911RemembranceDay",
              "HispanicHeritageMonth",
              "WorldGratitudeDay",
              "AskAStupidQuestionDay",
              "NationalGoodNeighborDay",
              "NationalFamilyDay",
              "BreastCancerAwarenessMonth",
              "NationalCoffeeDay",
              "WorldSmileDay",
              "NationalMakeADifferenceDay",
              "NationalNachoDay",
              "NationalPickleDay",
              "CleanOutYourRefrigeratorDay",
              "TakeHikeDay",
              "NationalBrownieDay",
              "NationalSalespersonDay",
              "NationalPoinsettiaDay",
              "GingerbreadHouseDay",
              "NationalUnderdogDay",
              "DeviceAppreciationDay",
              "WinterSolstice",
              "CrosswordPuzzleDay",
              "CanadaDay",
              "BCDay",
              "FamilyDay",
              "VictoriaDay",
              "RemembranceDay",
              "TruthAndReconciliation",
              "WomenEntrepreneurshipDay",
              "LabourDay",
              "ThanksgivingCA",
              "BackToSchoolCA",
              "IndigenousPeoples",
              "PresidentDay",
              "MentalHealthAwarenessDay",
              "DiaDeLosMuertos",
              "HappyHolidays",
              "FairHousingMonth",
              "GoodFriday"
            ]
          },
          "category": {
            "type": "string",
            "enum": [
              "AsSeenIn",
              "ComingSoon",
              "JustListed",
              "JustSold",
              "JustRented",
              "ForRent",
              "OpenHouse",
              "PriceImprovement",
              "UnderContract",
              "NewDevelopment",
              "PrivateExclusive",
              "InEscrow",
              "ForSale"
            ]
          },
          "to": {
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "type": "object",
                  "properties": {
                    "email": {
                      "type": "string",
                      "format": "email",
                      "description": "The email address of the recipient. To whom the email must be sent to."
                    },
                    "recipient_type": {
                      "type": "string",
                      "enum": [
                        "Email"
                      ],
                      "description": "Used for sending to a specific email address"
                    }
                  },
                  "required": [
                    "email",
                    "recipient_type"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "properties": {
                    "tag": {
                      "type": "string",
                      "description": "The tag to send to"
                    },
                    "recipient_type": {
                      "type": "string",
                      "enum": [
                        "Tag"
                      ],
                      "description": "Used to send an email to all contacts with a specific tag"
                    }
                  },
                  "required": [
                    "tag",
                    "recipient_type"
                  ],
                  "additionalProperties": false
                }
              ]
            },
            "default": []
          },
          "cc": {
            "$ref": "#/properties/to"
          },
          "bcc": {
            "$ref": "#/properties/to"
          }
        },
        "required": [
          "subject"
        ],
        "additionalProperties": false,
        "$schema": "http://json-schema.org/draft-07/schema#"
      }
    },
    {
      "name": "email-updater",
      "description": "can be used for updating emails and eblasts and rewriting them",
      "input_schema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "id of the email campaign to update"
          },
          "subject": {
            "type": "string",
            "description": "subject of the email. could be promotional. using emoji is allowed"
          },
          "body": {
            "type": "string",
            "description": "The body of the email. Can be HTML formatted. Instead of [Your Name] use Unit Test"
          },
          "address_or_mls_number": {
            "type": "string",
            "description": "address or mlsid to find the listing"
          },
          "listing_uuid": {
            "type": "string",
            "description": "id (uuid) of the listing"
          },
          "holiday": {
            "type": "string",
            "enum": [
              "Agent",
              "BackToSchool",
              "BoxingDay",
              "ChineseNewYear",
              "Christmas",
              "ColumbusDay",
              "DaylightSaving",
              "Diwali",
              "Easter",
              "EidalFitr",
              "FathersDay",
              "FourthOfJuly",
              "Halloween",
              "Hanukkah",
              "IndependenceDay",
              "Kwanzaa",
              "LaborDay",
              "MemorialDay",
              "MLKDay",
              "MothersDay",
              "NewYear",
              "OtherHoliday",
              "Passover",
              "PatriotsDay",
              "Ramadan",
              "RoshHashanah",
              "September11",
              "StPatrick",
              "Thanksgiving",
              "Valentines",
              "VeteransDay",
              "WomansDay",
              "JuneTeenth",
              "FirstDayOfSummer",
              "Pride",
              "AsianAmericanAndPacificIslanderHeritageMonth",
              "NativeAmericanHeritageMonth",
              "BlackHistoryMonth",
              "EarthDay",
              "FirstDayOfSpring",
              "CincoDeMayo",
              "FirstDayOfFall",
              "FirstDayOfWinter",
              "YomKippur",
              "DonutDay",
              "EmojiDay",
              "GetToKnowYourCustomersDay",
              "SMoresDay",
              "HomeMatchMaker",
              "NationalIceCreamDay",
              "NationalBubbleBathDay",
              "NationalCleanOffYourDeskDay",
              "NationalHouseplantAppreciationDay",
              "NationalStickerDay",
              "OrganizeYourHomeDay",
              "NationalPizzaDay",
              "InventorsDay",
              "ActsOfKindnessDay",
              "NationalLoveYourPetDay",
              "WomenHistoryMonth",
              "AwkwardMomentsDay",
              "InternationalDayOfHappiness",
              "NationalPetDay",
              "NationalGardeningDay",
              "NationalTaxDay",
              "MilitaryAppreciationMonth",
              "NationalLoyaltyDay",
              "NewHomeownersDay",
              "StarWarsDay",
              "ApplePieDay",
              "NationalHomeOwnershipMonth",
              "GreatOutdoorsMonth",
              "SummerSolstice",
              "SocialMediaDay",
              "InternationalHappinessMonth",
              "911RemembranceDay",
              "HispanicHeritageMonth",
              "WorldGratitudeDay",
              "AskAStupidQuestionDay",
              "NationalGoodNeighborDay",
              "NationalFamilyDay",
              "BreastCancerAwarenessMonth",
              "NationalCoffeeDay",
              "WorldSmileDay",
              "NationalMakeADifferenceDay",
              "NationalNachoDay",
              "NationalPickleDay",
              "CleanOutYourRefrigeratorDay",
              "TakeHikeDay",
              "NationalBrownieDay",
              "NationalSalespersonDay",
              "NationalPoinsettiaDay",
              "GingerbreadHouseDay",
              "NationalUnderdogDay",
              "DeviceAppreciationDay",
              "WinterSolstice",
              "CrosswordPuzzleDay",
              "CanadaDay",
              "BCDay",
              "FamilyDay",
              "VictoriaDay",
              "RemembranceDay",
              "TruthAndReconciliation",
              "WomenEntrepreneurshipDay",
              "LabourDay",
              "ThanksgivingCA",
              "BackToSchoolCA",
              "IndigenousPeoples",
              "PresidentDay",
              "MentalHealthAwarenessDay",
              "DiaDeLosMuertos",
              "HappyHolidays",
              "FairHousingMonth",
              "GoodFriday"
            ]
          },
          "category": {
            "type": "string",
            "enum": [
              "AsSeenIn",
              "ComingSoon",
              "JustListed",
              "JustSold",
              "JustRented",
              "ForRent",
              "OpenHouse",
              "PriceImprovement",
              "UnderContract",
              "NewDevelopment",
              "PrivateExclusive",
              "InEscrow",
              "ForSale"
            ]
          },
          "to": {
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "type": "object",
                  "properties": {
                    "email": {
                      "type": "string",
                      "format": "email",
                      "description": "The email address of the recipient. To whom the email must be sent to."
                    },
                    "recipient_type": {
                      "type": "string",
                      "enum": [
                        "Email"
                      ],
                      "description": "Used for sending to a specific email address"
                    }
                  },
                  "required": [
                    "email",
                    "recipient_type"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "properties": {
                    "tag": {
                      "type": "string",
                      "description": "The tag to send to"
                    },
                    "recipient_type": {
                      "type": "string",
                      "enum": [
                        "Tag"
                      ],
                      "description": "Used to send an email to all contacts with a specific tag"
                    }
                  },
                  "required": [
                    "tag",
                    "recipient_type"
                  ],
                  "additionalProperties": false
                }
              ]
            },
            "default": []
          },
          "cc": {
            "$ref": "#/properties/to"
          },
          "bcc": {
            "$ref": "#/properties/to"
          }
        },
        "required": [
          "id",
          "subject"
        ],
        "additionalProperties": false,
        "$schema": "http://json-schema.org/draft-07/schema#"
      }
    },
    {
      "name": "question-answering-with-location",
      "description": "\n      Use if Unit Test asks any question that includes a location, neighborhood, city, or region.\n      This tool can answer questions about market statistics, property values, days on market, pricing trends, \n      and other real estate metrics for specific locations. Always use when the user asks about real estate \n      market data for a specific place.\n    ",
      "input_schema": {
        "type": "object",
        "properties": {
          "location": {
            "type": "string",
            "description": "The name of the area to get market stats for (e.g. \"Beverly Hills, CA\")"
          },
          "property_type": {
            "type": "string",
            "description": "The type of property to get market stats for (e.g. \"single_family\", \"condo_townhome\", etc.)\n      - single_family\n      - condo_townhome\n      - all_residential_properties\n      - multi_family_under_5_units\n      - vacant_land\n      - multi_family_under_5_units\n      "
          },
          "selection": {
            "type": "string",
            "description": "The selected option from input form (e.g. \"1st option\")"
          }
        },
        "required": [
          "property_type"
        ],
        "additionalProperties": false,
        "$schema": "http://json-schema.org/draft-07/schema#"
      }
    },
    {
      "name": "question-answering",
      "description": "Use if Unit Test asks any questions.",
      "input_schema": {
        "type": "object",
        "properties": {
          "question": {
            "type": "string",
            "description": "The question to answer"
          }
        },
        "required": [
          "question"
        ],
        "additionalProperties": false,
        "$schema": "http://json-schema.org/draft-07/schema#"
      }
    },
    {
      "name": "calendar-finder",
      "description": "Use this tool to find events in the user's calendar for a specific date range. Current date is: 2026-06-02T15:30:12.328Z. Use this to check availability, find scheduled appointments, meetings, tasks, and other calendar events. IMPORTANT: When presenting calendar results to the user, format them as plain text in <text> tags, NOT as a widget. Simply incorporate the tool's response naturally into your conversational text.",
      "input_schema": {
        "type": "object",
        "properties": {
          "start_date": {
            "type": "string",
            "description": "Start date for the range. Must be a valid javascript date object. Example: \"2025-10-15T00:00:00Z\""
          },
          "end_date": {
            "type": "string",
            "description": "End date for the range. Must be a valid javascript date object. Example: \"2025-10-20T23:59:59Z\""
          },
          "limit": {
            "type": "number",
            "description": "Maximum number of events to return. Defaults to 100"
          }
        },
        "required": [
          "start_date",
          "end_date"
        ],
        "additionalProperties": false,
        "$schema": "http://json-schema.org/draft-07/schema#"
      }
    }
  ],
  "info": {
    "count": 17,
    "total": 0
  }
}

Invoke an AI tool

Invoke an AI tool
POST/brands/:brand/ai/tools/:tool

Example URI

POST /brands/:brand/ai/tools/:tool
URI Parameters
HideShow
brand
string (required) Example: 1c057a36-7120-4cb2-9fd5-b745d9e908b8
tool
string (required) Example: contact-finder
Request
HideShow
Body
{
  "query": ""
}
Response  200
HideShow
Body
{
  "result": "[{\"id\":\"aa5c025e-8b68-4e77-a6a3-f723e9c26ca5\",\"type\":\"contact\",\"first_name\":\"John\",\"last_name\":\"Doe\",\"partner_name\":\"Jane Doe\",\"email\":\"[email protected]\",\"phone_number\":\"+989124834198\",\"company\":\"Rechat\",\"tags\":[\"poo\",\"foo\",\"New\"],\"last_touch_action\":null,\"next_touch\":null,\"touch_freq\":null,\"birthday\":\"1970-01-12T00:00:00.000Z\"}]",
  "widgets": [
    [
      {
        "id": "aa5c025e-8b68-4e77-a6a3-f723e9c26ca5",
        "type": "contact",
        "first_name": "John",
        "last_name": "Doe",
        "partner_name": "Jane Doe",
        "email": "[email protected]",
        "phone_number": "+989124834198",
        "company": "Rechat",
        "tags": [
          "poo",
          "foo",
          "New"
        ],
        "last_touch_action": null,
        "next_touch": null,
        "touch_freq": null,
        "birthday": "1970-01-12T00:00:00.000Z"
      }
    ]
  ]
}

Generated by aglio on 02 Jun 2026