ackDB

Find the single closest person (per-field)

The person analog of /contacts/search and /entities/search. Send whichever field you have — params are ANDed and at least one is required: q (name + every key value), name, email, linkedin, identity (any key value, optionally pinned with identityType). email/linkedin are normalized before matching, so a raw pasted URL or mixed-case address still lands an exact-tier hit.

Ranked case-insensitive substring (exact > prefix > contains); returns ONE active person, hydrated exactly like GET /persons/{personId} (person + keys + affiliations + recent events), plus a matchedOn block. matchedOn.contacts names WHERE the matched value lives: every stint whose edge carries it verbatim (email / contact identity links; former stints included, disabled excluded), each with entity: { entityId, name, domain } — so a hit through an old employer's address is attributable even though data reports the current one. A name hit returns [] (a name sits on every stint alike). No match → 404.

get/api/v1/ackdb/persons/search

Request

  • Base URL
    http://localhost:3009
  • Auth
    HTTP bearer

Query parameters

qstring

Match across the name and all key values.

namestring
emailstring
linkedinstring
identitystring

Match any durable key value (product ids included).

identityTypestring

Pin identity to one key type, e.g. perplexity_user_id.

contactLimitinteger
eventLimitinteger

Response

{ data: PersonProfile, matchedOn: { field, value, tier, contacts: [{ contactId, status, title, startedAt, endedAt, entity: { entityId, name, domain } }] } }.

dataunknown required

Changes

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