Saved searches

Replay a saved search

Replay a stored PEOPLE saved search. Equivalent to POST /prospects/search with savedSearchId; both echo the resolved filters, and this one always includes ignoredFilterKeys because the source is always a stored search.

The optional body carries only the caller's half of the search — size, scrollToken, linkedinUrl — or may be omitted entirely. The stored filters ARE the search: any other key, filters included, is rejected with 422 VALIDATION_FAILED naming it rather than silently ignored. That body is validated on its own before the stored search is loaded, so a bad size is reported as your error; SAVED_SEARCH_INVALID means the STORED filters no longer run.

A company saved search cannot be replayed here — it answers 422 SAVED_SEARCH_TYPE_MISMATCH; run it with POST /companies/search and savedSearchId instead.

Rows and paging behave exactly as in POST /prospects/search: provider person records plus Fuse's pdlId, the LinkedIn relation ids and — on every row the cache could store — _id and savedProfile / savedBy, a nullable scrollToken, and the true match total. No row carries an email address or a phone number, enrichment history included. Billing: 2 credits per requested profile pre-checked, 2 credits per profile returned debited. (Enforced by the public row transformer, which removes Fuse's enrichment overlay and the provider's own work_email, personal_emails, recommended_personal_email, mobile_phone and phone_numbers before the row is returned.)

Errors:

  • 402 INSUFFICIENT_CREDITS — The balance does not cover 2 credits per requested profile; nothing was billed.
  • 404 SAVED_SEARCH_NOT_FOUND — No saved search of yours has that id.
  • 422 VALIDATION_FAILED — The request failed the declared schema; param names the offending key and message quotes the rule it broke.
  • 422 SAVED_SEARCH_TYPE_MISMATCH — The saved search stores COMPANY filters, which this endpoint cannot run; param is savedSearchId. Run it with POST /companies/search and savedSearchId instead.
  • 422 SAVED_SEARCH_INVALID — The STORED filters no longer form a runnable search — every value was retired, or the blob translates to nothing. Never used for anything the caller sent.
  • 422 SEARCH_FILTERS_INVALID — The provider rejected the assembled query as malformed.
  • 429 RATE_LIMITED — Per-token rate limit for this bucket exhausted; retry after the window in the RateLimit-Reset header.
  • 500 UNEXPECTED_ERROR — The request failed inside the service; nothing was billed and the request_id identifies the failure.

Requires one of the following token scopes: search.

post/business/saved-searches/{savedSearchId}/run

Request

  • Base URL: https://api.tryfuse.ai/api/v1
  • URL: https://api.tryfuse.ai/api/v1/business/saved-searches/{savedSearchId}/run
  • Auth: HTTP basic

Path parameters

savedSearchIdstring required

Id of the saved search (24-character hex ObjectId), as returned by GET /saved-searches.

Request body

sizeinteger

Profiles per page (1-100, default 10); the search pre-checks 2 credits per requested profile and debits 2 credits per profile returned.

scrollTokenstring

The scrollToken returned by the previous page, sent together with the same filter source, to fetch the next page.

linkedinUrlstring

A LinkedIn profile URL to look up one person (normalised before matching); counts as search criteria on its own.

Response

Success

scrollTokenstring nullable required

Send back as scrollToken for the next page; null when the provider returned no continuation.

totalinteger required

Total number of people matching the stored filters, not the page size.

filtersobject required

The stored filters translated into the POST /prospects/search vocabulary — send these to reproduce the run there.

ignoredFilterKeysstring[] required

Stored keys with no equivalent search field, dropped before running; the product's UI skips them too.

Changes

No recorded changes to this operation across all 1 revision of this API.