AI Search
Turns a natural-language request such as "2 bedroom condos in Miami under 800k" into property search filters. It does not run the search itself.
POST
/v1/ai/searchAuthentication
Public key
?key=pk_…Public key in the `key` query parameter. No OAuth, no secret.
Edge cache: no-store
Query Parameters
keystringThe site's public key (pk_…). It selects the account. Safe to ship to the browser.
Body Parameters
messagestringWhat the visitor is looking for, 1 to 500 characters.
Responses
200Success
application/jsonmessagestringShort description of the search.
invalidbooleanTrue when the text is not a property search. `message` explains why.
autocompleteobject`{ query, type }` of the place. Send them as `q` and `qtype` in `GET /v1/search`.
Errors
400`message` is missing or not 1 to 500 characters, or the AI answer could not be read.401Missing or invalid public key.403The account is not active. The body also has `code: "TENANT_INACTIVE"`.404The key's account does not exist.429Too many requests. The limit is 12 per minute per visitor IP and account. The `Retry-After` header gives the wait in seconds.500Internal Server Error.Notes
- Other filter keys can appear, such as `minbaths`, `minarea`, `water`, `waterfrontFeatures`, `pool`, `gated`, `penthouse` and `sort`. Empty range bounds come back as `""`.
- Rate limited to 12 requests per minute per visitor IP and account. Handle 429 by waiting `Retry-After` seconds.
- Call it from your server or from the browser, then pass the filters to `GET /v1/search`.
Request
curl --request POST \--url "https://api.pandaidx.com/v1/ai/search?key={{public_key}}" \--header "Content-Type: application/json" \--data '{"message":"2 bedroom condos in Miami under 800k"}'
Response200 OK
{"message": "2+ bedroom condos in Miami under $800K","autocomplete": {"query": "MIAMI","type": "city"},"minbeds": 2,"maxbeds": "","minprice": "","maxprice": 800000,"group": "sale","status": "Active","type": "Residential","subtypes": ["Condominium"]}