Save a Search for a Contact

Saves a listing search for one contact. It shows on the contact in your CRM, url opens it on your website (send it to the lead by WhatsApp, SMS or email), and with emailUpdates the contact gets new matches by email.

POST/v1/crm/contacts/:id/saved-searches

Authentication

API keyAuthorization: Bearer

Secret API key as Authorization: Bearer sk_live_…. Create it in the dashboard under Workspace settings › API Keys, with full access or only the areas it needs (see API Keys & Scopes). Keys are for servers only. Needs the saved_searches:write scope.

Path Parameters

idstring
required

Contact id.

Body Parameters

titlestring
required

Name of the search (3 to 120 characters).

filtersobject
required

The search: the same filters as Search Listings with an API Key (propertyType, city, minPrice, maxPrice, minBeds, minBaths, petsAllowed, sort…), as JSON values.

emailUpdatesenum
optional

Email the contact new matches.

Default:never
neverdailyweekly

Responses

200Success
application/json
idstring

Saved search id.

titlestring
urlstring

The search on your website, ready to send to the lead.

pathstring

The same search as a path (/search?…).

emailUpdatesstring

daily, weekly or never.

createdAtstring | null

ISO 8601 creation time.

Errors

401Missing, invalid or revoked API key. The body is { error: { code, message } }.
403The account has no active subscription (error.code subscription_inactive), or the key lacks the required scope (insufficient_scope, and error.details.required names it).
429More than 120 requests per minute for this key. Wait for the Retry-After header.
404No such contact in this account.
422Validation failed. error.details maps each field to a message; unknown fields are rejected.

Notes

  • Answers 201 with the saved search.
  • On your website the search keeps every filter except furnished: false, which only applies to Search Listings with an API Key.
Request
curl --request POST \
--url "https://api.pandaidx.com/v1/crm/contacts/6ad0c3f2e4b1a2c3d4e5f607/saved-searches" \
--header "Authorization: Bearer {{api_key}}" \
--header "Content-Type: application/json" \
--data '{"title":"Miami Beach rentals","filters":{"propertyType":"Residential Lease","city":"Miami Beach","maxPrice":7000,"minBeds":3,"minBaths":2,"petsAllowed":true}}'
Response200 OK
{
"id": "6ad0c9a1e4b1a2c3d4e5f640",
"title": "Miami Beach rentals",
"slug": "miami-beach-rentals",
"url": "https://anatorres.com/search?type=Residential+Lease&city=Miami+Beach&maxprice=7000&minbeds=3&minbaths=2&petsAllowed=true&sort=listprice",
"path": "/search?type=Residential+Lease&city=Miami+Beach&maxprice=7000&minbeds=3&minbaths=2&petsAllowed=true&sort=listprice",
"total": 0,
"emailUpdates": "weekly",
"previewImages": [],
"createdAt": "2026-10-15T15:12:40.000Z",
"updatedAt": null
}