Create, update, list, and manage prospects
List Prospects
Accepts optional query filters, returns matching prospects, and includes a consistent list envelope with pagination metadata. Results are paginated with limit and pageToken; responses include pagination.nextPageToken when another page is available. When no matches are found, returns 200 with an empty items array and pagination.totalCount: 0. When multiple labels are provided, results include prospects that match any of those labels. Date filters apply to prospect createdAt.
query Parameters
emailstringExample: avery.coleman@example.comphonestringExample: +15551234567namestringExample: Avery ColemantitlestringExample: Sales ManagercompanystringExample: Northwind HealthstageIdstringOptional. Filter prospects by stage ID. Same identifier used on create/update and returned on prospect responses as
stageId.Example: 9a3d7c1e4b2f48d6a5c0e1f9b7d2a346labelstyle: form · explode: trueOptional. Filter by label(s). Supports repeated query params (
?label=Hot&label=Inbound) or a comma-separated value (?label=Hot,Inbound). Matches prospects that contain any provided label. Up to 10 labels.createdAfterOptional lower bound for prospect createdAt as Unix epoch milliseconds (integer) or ISO 8601 date string.
createdBeforeOptional upper bound for prospect createdAt as Unix epoch milliseconds (integer) or ISO 8601 date string.
limitinteger · max: 1000Example: 25Default: 25pageTokenstringOpaque pagination token returned from a prior
GET /prospectsresponse.Example: eyJpZCI6InByb3NwZWN0XzAxSFY2VzhGSjJQN1IyTTVUOVkxUTRDIn0=fieldsstringOptional comma-separated list of top-level field names to include in each list item. Use this to reduce response payload size for large list requests.
idis always included when present on the source document. Nested paths are not supported. Unknown field names or invalid syntax (for example nested selectors) return HTTP 400 withinvalidFieldsand/orinvalidSyntaxin the error body.Example: id,prospectId,hireDate
Responses
OK
successboolean · requireditemsobject[] · requiredpaginationobject · requiredPagination metadata. Fields are included only when that resource supports them.
Example: {"nextPageToken":"opaque-page-token-example","hasMore":true,"totalCount":125}
Create or Update Prospect
Creates a new prospect, or matches an existing one by email or phone.
update defaults to true. When a match is found and update is enabled, the existing prospect is updated with the fields you send. Omitted fields are left as-is; send null to clear a supported field.
Set update to false if you only want to look up the existing record without changing it.
For address fields (streetAddress, city, state, postalCode), only the fields you include are updated; omitted address fields are preserved.
If phone is invalid, the request can still succeed; the response may include a warning in message and phone may be null.
Headers
X-Idempotency-Keystring · maxLength: 512Optional. Client-generated key used to make mutation retries safe. Reuse the same key only when retrying the exact same request.
Example: idem_prospect_create_01HV6W0J7Y7A5Q3T4J6N8M2P
Request Body
firstNamestring · requiredProspect first name.
lastNamestring · requiredProspect last name.
updatebooleanDefaults to true. When true and a prospect already exists (matched by email or phone), that prospect is updated with the submitted fields. When false, the existing prospect is returned without applying changes. Omitted fields are preserved on update; send explicit null to clear supported fields.
Default: trueemailstring | null · emailProspect email address. When updating a matched prospect, send
nullto clear the email.phonestring | nullProspect phone number. When updating a matched prospect, send
nullto clear the phone.stageIdstringStage ID to place the prospect in. When provided, this takes precedence over
pipelineId. Use the samestageIdto filterGET /prospectsandGET /prospects/count.pipelineIdstringOptional pipeline ID used only when stageId is omitted. The prospect is routed to that pipeline's configured default stage.
licenseStatusstring | null · enumLicense status for the prospect. When updating a matched prospect, send
nullto clear the license status.Enum values:not_startedin_progresslicensedlabelsOptional labels to attach to the prospect. Accepts either a comma-separated string or an array of strings.
notesstringOptional plain-text notes for the prospect profile.
titlestring | nullProspect job title. When updating a matched prospect, send
nullto clear the title.companystring | nullProspect company name. When updating a matched prospect, send
nullto clear the company.userIdstringUser id performing the create/update operation.
streetAddressstring | nullProspect street address. When updating a matched prospect, send
nullto clear this address field.citystring | nullProspect city. When updating a matched prospect, send
nullto clear this address field.statestring | nullProspect state or region. When updating a matched prospect, send
nullto clear this address field.postalCodestring | nullProspect postal/zip code. When updating a matched prospect, send
nullto clear this address field.officeIdstring | nullOptional office id to associate with the prospect. When updating a matched prospect, send
nullto clear the office association.sourceIdstring | nullExisting source id to associate with the prospect. For matched-prospect updates, source changes are restricted by existing business rules; send
nullonly when intentionally clearing an eligible source.newSourceNamestringNew source name to create/use when sourceId is not provided.
resumeobjectOptional resume payload for parsing and storage.
muteWebhookbooleanIf true, suppresses outbound webhook notifications for this write.
jobIdstringOptional job id. When provided, links the prospect to a job and records an apply timestamp.
applicationQuestionsobject[]Optional job application question responses (label, answer, and optional type/id per item).
Responses
Existing prospect returned or updated
successboolean · requireditemobject · requiredExample: {"id":"c1a7e9d34b8f4c2aa6d15e0f7b3c9d42","message":null,"firstName":"Avery","lastName":"Coleman","email":"avery.coleman@example.com","phone":"+15551234567","currentStage":"New Lead","stageId":"9a3d7c1e4b2f48d6a5c0e1f9b7d2a346","pipelineId":"3d9a1c7e4b2f46d8a5c0e1f9b7d2a348","labels":["Hot","Inbound"],"title":"Sales Manager","company":"Northwind Health","createdAt":1717000000000,"updatedAt":1717003600000}
Count Prospects
Returns only the count of prospects matching the same optional filters as GET /prospects, without returning prospect documents. Date filters apply to prospect createdAt. limit and fields are ignored.
query Parameters
emailstringExample: avery.coleman@example.comphonestringExample: +15551234567namestringExample: Avery ColemantitlestringExample: Sales ManagercompanystringExample: Northwind HealthstageIdstringOptional. Filter prospects by stage ID. Same identifier used on create/update and returned on prospect responses as
stageId.Example: 9a3d7c1e4b2f48d6a5c0e1f9b7d2a346labelstyle: form · explode: trueOptional. Filter by label(s). Supports repeated query params or a comma-separated value. Up to 10 labels.
createdAfterOptional lower bound for prospect createdAt as Unix epoch milliseconds (integer) or ISO 8601 date string.
createdBeforeOptional upper bound for prospect createdAt as Unix epoch milliseconds (integer) or ISO 8601 date string.
Responses
OK
successboolean · requiredcountinteger · required
Get Prospect by ID
Accepts a required prospectId path parameter, fetches that specific prospect, and returns it in item when found.
path Parameters
prospectIdstring · requiredExample: c1a7e9d34b8f4c2aa6d15e0f7b3c9d42
Responses
OK
successboolean · requireditemobject · requiredExample: {"id":"c1a7e9d34b8f4c2aa6d15e0f7b3c9d42","message":null,"firstName":"Avery","lastName":"Coleman","email":"avery.coleman@example.com","phone":"+15551234567","currentStage":"New Lead","stageId":"9a3d7c1e4b2f48d6a5c0e1f9b7d2a346","pipelineId":"3d9a1c7e4b2f46d8a5c0e1f9b7d2a348","labels":["Hot","Inbound"],"title":"Sales Manager","company":"Northwind Health","createdAt":1717000000000,"updatedAt":1717003600000}
Delete Prospect
Accepts a required prospectId and deletes the matching prospect.
path Parameters
prospectIdstring · requiredExample: c1a7e9d34b8f4c2aa6d15e0f7b3c9d42
Headers
X-Idempotency-Keystring · maxLength: 512Optional. Client-generated key used to make mutation retries safe. Reuse the same key only when retrying the exact same request.
Example: idem_prospect_create_01HV6W0J7Y7A5Q3T4J6N8M2P
Responses
Deleted
successboolean · requiredmessagestring · required

