Create, update, list, and manage prospects
List Prospects
Accepts optional query filters, returns matching prospects, and includes a consistent list envelope with pagination metadata. 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.
query Parameters
emailstringExample: avery.coleman@example.comphonestringExample: +15551234567namestringExample: Avery ColemantitlestringExample: Sales ManagercompanystringExample: Northwind HealthstagestringExample: New Leadlabelstyle: 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.limitintegerExample: 25Default: 25
Responses
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.
If a match is found and the prospect was created more than 24 hours ago, the API also adds a note on the prospect and a task for the prospect's owner so your team can review the repeat submission.
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.stageIdstringOptional stage ID to place the prospect in. When provided, this takes precedence over pipelineId.
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","currentStageId":"9a3d7c1e4b2f48d6a5c0e1f9b7d2a346","pipelineId":"3d9a1c7e4b2f46d8a5c0e1f9b7d2a348","labels":["Hot","Inbound"],"title":"Sales Manager","company":"Northwind Health","createdAt":1717000000000,"updatedAt":1717003600000}
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","currentStageId":"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

