Keystone Developers
Open Keystone
API reference

Internal API

Contacts

45 endpoints.

GET/api/v1/internal/businesses/{business_id}/contacts

List contacts

Parameters

NameInTypeDescription
business_idrequiredpathstring (uuid)
statusquerystring | null
lifecycle_stagequerystring | null
signalquerystring | null

Filter by signal: hot,warm,cool,new,unassigned

touchquerystring | null

Filter by touch: responsive,slow,unresponsive,ghosted,unassigned

stagequerystring | null

Filter by stage: new,engaged,booked,returning,lapsed,lost,unassigned

needs_attentionqueryboolean | null

Filter contacts requiring supervisory attention

identity_resolution_statusquerystring | null
include_deletedquerybooleandefault false
sourcequerystring | null
created_afterquerystring (date-time) | null
created_beforequerystring (date-time) | null
updated_afterquerystring (date-time) | null
sortquerystring

Sort order. 'last_activity' (default) surfaces the most recent conversation first; also accepts any contact column (created_at, updated_at, ...).

default "last_activity"
cursorquerystring | null
limitqueryintegerdefault 50
x-internal-api-keyheaderstring | null

Responses

200Successful Response
application/jsonSuccessResponse_list_ContactData__
FieldTypeDescription
request_idrequiredstring
successtruedefault true
datarequiredContactData[]
ContactData[] fields
FieldTypeDescription
idrequiredstring
business_idrequiredstring
consumer_idstring | null
first_namestring | null
last_namestring | null
display_namestring | null
statusrequiredstring
lifecycle_stagerequiredstring
identity_resolution_statusrequiredstring
signalstringdefault "unassigned"
touchstringdefault "unassigned"
stagestringdefault "unassigned"
engagement_scoreinteger | null
purchase_intentinteger | null
primary_emailstring | null
primary_phonestring | null
last_contacted_atstring (date-time) | null
last_replied_atstring (date-time) | null
last_inbound_atstring (date-time) | null
last_outbound_atstring (date-time) | null
needs_attentionbooleandefault false
needs_attention_reasonstring | null
needs_attention_atstring (date-time) | null
metadata_object
is_deletedbooleandefault false
deleted_atstring (date-time) | null
merged_into_contact_idstring | null
created_atrequiredstring (date-time)
updated_atrequiredstring (date-time)
first_source_typestring | null
first_source_detailstring | null
first_source_messagestring | null
latest_insightLatestInsightSummary | null
LatestInsightSummary fields

LatestInsightSummary (not expanded)

conversation_idstring | null
message_countintegerdefault 0
auto_contact_enabledbooleandefault false
outreach_suppressedbooleandefault false
metadataResponseMetadata | null
ResponseMetadata fields
FieldTypeDescription
paginationPaginationMetadata | null
PaginationMetadata fields
FieldTypeDescription
limitrequiredinteger
next_cursorstring | null
prev_cursorstring | null
has_morerequiredboolean
has_prevbooleandefault false
total_countinteger | null
status_countsobject | null
object | null fields

Map of string to integer

lifecycle_countsLifecycleCounts | null
LifecycleCounts fields
FieldTypeDescription
leadintegerdefault 0
prospectintegerdefault 0
customerintegerdefault 0
former_customerintegerdefault 0
classification_countsClassificationCounts | null
ClassificationCounts fields
FieldTypeDescription
signalobject
object fields

Nested object (not expanded)

touchobject
object fields

Nested object (not expanded)

stageobject
object fields

Nested object (not expanded)

metaResponseMeta | null
ResponseMeta fields
FieldTypeDescription
totalinteger | null
total_countinteger | null
pageinteger | null
per_pageinteger | null
  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

POST/api/v1/internal/businesses/{business_id}/contacts

Create contact

Parameters

NameInTypeDescription
business_idrequiredpathstring (uuid)
x-internal-api-keyheaderstring | null

Request bodyrequired

application/jsonContactCreateBody
FieldTypeDescription
first_namestring | null
last_namestring | null
display_namestring | null
emailstring | null
phonestring | null
emailsContactEmailInputBody[]
ContactEmailInputBody[] fields
FieldTypeDescription
emailrequiredstring
sourcestring | null
is_primarybooleandefault false
phonesContactPhoneInputBody[]
ContactPhoneInputBody[] fields
FieldTypeDescription
phonerequiredstring
sourcestring | null
is_primarybooleandefault false
statusstringdefault "active"
lifecycle_stagestringdefault "lead"
metadata_object | null
sourceContactSourceBody | null
ContactSourceBody fields
FieldTypeDescription
contact_source_typerequiredContactSourceType
contact_source_detailstring | null
external_ref_idstring | null
consentContactConsentBody | null
ContactConsentBody fields
FieldTypeDescription
transactional_smsboolean | null
marketing_smsboolean | null
marketing_emailboolean | null
tos_privacyboolean | null
ai_initiatebooleandefault false

Responses

201Successful Response
application/jsonSuccessResponse_ContactOutcomeData_
FieldTypeDescription
request_idrequiredstring
successtruedefault true
datarequiredContactOutcomeData
ContactOutcomeData fields
FieldTypeDescription
contactrequiredContactData
ContactData fields

ContactData, expanded above.

operationrequiredstring
consumer_link_statusrequiredstring
duplicate_flaggedbooleandefault false
identity_review_idstring | null
duplicate_review_idstring | null
ai_initiationAiInitiationResult | null
AiInitiationResult fields
FieldTypeDescription
dispatchedrequiredboolean
reasonstring | null
metadataResponseMetadata | null
ResponseMetadata fields

ResponseMetadata, expanded above.

metaResponseMeta | null
ResponseMeta fields

ResponseMeta, expanded above.

  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

GET/api/v1/internal/businesses/{business_id}/contacts/{contact_id}

Get contact detail

Parameters

NameInTypeDescription
business_idrequiredpathstring (uuid)
contact_idrequiredpathstring (uuid)
x-internal-api-keyheaderstring | null

Responses

200Successful Response
application/jsonSuccessResponse_ContactData_
FieldTypeDescription
request_idrequiredstring
successtruedefault true
datarequiredContactData
ContactData fields

ContactData, expanded above.

metadataResponseMetadata | null
ResponseMetadata fields

ResponseMetadata, expanded above.

metaResponseMeta | null
ResponseMeta fields

ResponseMeta, expanded above.

  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

PATCH/api/v1/internal/businesses/{business_id}/contacts/{contact_id}

Update contact

Parameters

NameInTypeDescription
business_idrequiredpathstring (uuid)
contact_idrequiredpathstring (uuid)
x-internal-api-keyheaderstring | null

Request bodyrequired

application/jsonContactUpdateBody
FieldTypeDescription
first_namestring | null
last_namestring | null
display_namestring | null
statusstring | null
lifecycle_stagestring | null
signalstring | null
touchstring | null
stagestring | null
metadata_object | null
last_contacted_atstring (date-time) | null
auto_contact_enabledboolean | null
outreach_suppressedboolean | null

Responses

200Successful Response
application/jsonSuccessResponse_ContactData_
FieldTypeDescription
request_idrequiredstring
successtruedefault true
datarequiredContactData
ContactData fields

ContactData, expanded above.

metadataResponseMetadata | null
ResponseMetadata fields

ResponseMetadata, expanded above.

metaResponseMeta | null
ResponseMeta fields

ResponseMeta, expanded above.

  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

DELETE/api/v1/internal/businesses/{business_id}/contacts/{contact_id}

Delete contact

Parameters

NameInTypeDescription
business_idrequiredpathstring (uuid)
contact_idrequiredpathstring (uuid)
x-internal-api-keyheaderstring | null

Responses

204Successful Response
  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

PATCH/api/v1/internal/businesses/{business_id}/contacts/{contact_id}/classification

Override contact classification

Override one or more classification dimensions for the contact. Any field omitted in the body is left unchanged. Each changed dimension lands a row in `contact_classification_history` with `changed_by="user:api"` and the supplied `reason`.

Manual overrides are NOT sticky — the next AI classification pass (triggered by inbound messages or DELIVERED/READ status events) may overwrite them. To preserve a manual value, take the conversation out of AUTONOMOUS AI mode.

Parameters

NameInTypeDescription
business_idrequiredpathstring (uuid)
contact_idrequiredpathstring (uuid)
x-internal-api-keyheaderstring | null

Request bodyrequired

application/jsonClassifyBody
FieldTypeDescription
signalstring | null
touchstring | null
stagestring | null
reasonstring | null

Responses

200Successful Response
application/jsonSuccessResponse_ContactData_
FieldTypeDescription
request_idrequiredstring
successtruedefault true
datarequiredContactData
ContactData fields

ContactData, expanded above.

metadataResponseMetadata | null
ResponseMetadata fields

ResponseMetadata, expanded above.

metaResponseMeta | null
ResponseMeta fields

ResponseMeta, expanded above.

  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

GET/api/v1/internal/businesses/{business_id}/contacts/{contact_id}/classification-history

Get classification history

Parameters

NameInTypeDescription
business_idrequiredpathstring (uuid)
contact_idrequiredpathstring (uuid)
fieldquerystring | null

Filter by: signal, touch, stage

cursorquerystring | null
limitqueryintegerdefault 50
x-internal-api-keyheaderstring | null

Responses

200Successful Response
application/jsonSuccessResponse_list_ClassificationHistoryItem__
FieldTypeDescription
request_idrequiredstring
successtruedefault true
datarequiredClassificationHistoryItem[]
ClassificationHistoryItem[] fields
FieldTypeDescription
typestringdefault "classification"
fieldrequiredstring
old_valuestring | null
new_valuerequiredstring
changed_byrequiredstring
reasonstring | null
created_atrequiredstring (date-time)
metadataResponseMetadata | null
ResponseMetadata fields

ResponseMetadata, expanded above.

metaResponseMeta | null
ResponseMeta fields

ResponseMeta, expanded above.

  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

POST/api/v1/internal/businesses/{business_id}/contacts/{contact_id}/classify

Manually classify a contact (legacy POST alias)

Override one or more classification dimensions for the contact. Any field omitted in the body is left unchanged. Each changed dimension lands a row in `contact_classification_history` with `changed_by="user:api"` and the supplied `reason`.

Manual overrides are NOT sticky — the next AI classification pass (triggered by inbound messages or DELIVERED/READ status events) may overwrite them. To preserve a manual value, take the conversation out of AUTONOMOUS AI mode.

Parameters

NameInTypeDescription
business_idrequiredpathstring (uuid)
contact_idrequiredpathstring (uuid)
x-internal-api-keyheaderstring | null

Request bodyrequired

application/jsonClassifyBody

ClassifyBody, expanded above.

Responses

200Successful Response
application/jsonSuccessResponse_ContactData_
FieldTypeDescription
request_idrequiredstring
successtruedefault true
datarequiredContactData
ContactData fields

ContactData, expanded above.

metadataResponseMetadata | null
ResponseMetadata fields

ResponseMetadata, expanded above.

metaResponseMeta | null
ResponseMeta fields

ResponseMeta, expanded above.

  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

GET/api/v1/internal/businesses/{business_id}/contacts/{contact_id}/conversation

Get this contact's conversation

Returns the conversation for this contact's consumer, or `data: null` with 200 when none exists yet. 404 is reserved for the contact itself being missing from this business — the frontend should branch on `data == null`, not on status code.

Parameters

NameInTypeDescription
business_idrequiredpathstring (uuid)
contact_idrequiredpathstring (uuid)
x-internal-api-keyheaderstring | null

Responses

200Successful Response
application/jsonSuccessResponse_Union_ConversationData__NoneType__
FieldTypeDescription
request_idrequiredstring
successtruedefault true
datarequiredConversationData | null
ConversationData fields
FieldTypeDescription
idrequiredstring
consumer_idstring | null
statusrequiredstring
assigned_tointeger | null
ai_enabledbooleandefault true
ai_modestringdefault "AUTONOMOUS"
last_message_atstring (date-time) | null
last_message_previewstring | null
last_message_channelstring | null
unread_countintegerdefault 0
message_countintegerdefault 0
snoozed_untilstring (date-time) | null
created_atrequiredstring (date-time)
updated_atrequiredstring (date-time)
reply_channelReplyChannelData | null
ReplyChannelData fields
FieldTypeDescription
defaultstring | null
availablestring[]default []
string[] fields

Nested object (not expanded)

metadataResponseMetadata | null
ResponseMetadata fields

ResponseMetadata, expanded above.

metaResponseMeta | null
ResponseMeta fields

ResponseMeta, expanded above.

  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

GET/api/v1/internal/businesses/{business_id}/contacts/{contact_id}/emails

List contact emails

Parameters

NameInTypeDescription
business_idrequiredpathstring (uuid)
contact_idrequiredpathstring (uuid)
x-internal-api-keyheaderstring | null

Responses

200Successful Response
application/jsonSuccessResponse_list_ContactEmailData__
FieldTypeDescription
request_idrequiredstring
successtruedefault true
datarequiredContactEmailData[]
ContactEmailData[] fields
FieldTypeDescription
idrequiredstring
business_contact_idrequiredstring
business_idrequiredstring
raw_inputstring | null
emailrequiredstring
verified_atstring (date-time) | null
sourcestring | null
is_deletedbooleandefault false
created_atrequiredstring (date-time)
updated_atrequiredstring (date-time)
metadataResponseMetadata | null
ResponseMetadata fields

ResponseMetadata, expanded above.

metaResponseMeta | null
ResponseMeta fields

ResponseMeta, expanded above.

  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

POST/api/v1/internal/businesses/{business_id}/contacts/{contact_id}/emails

Add email to contact

Parameters

NameInTypeDescription
business_idrequiredpathstring (uuid)
contact_idrequiredpathstring (uuid)
x-internal-api-keyheaderstring | null

Request bodyrequired

application/jsonContactEmailCreateBody
FieldTypeDescription
emailrequiredstring
sourcestring | null

Responses

201Successful Response
application/jsonSuccessResponse_ContactEmailAddResult_
FieldTypeDescription
request_idrequiredstring
successtruedefault true
datarequiredContactEmailAddResult
ContactEmailAddResult fields
FieldTypeDescription
emailrequiredContactEmailData
ContactEmailData fields

ContactEmailData, expanded above.

identity_review_idstring | null
metadataResponseMetadata | null
ResponseMetadata fields

ResponseMetadata, expanded above.

metaResponseMeta | null
ResponseMeta fields

ResponseMeta, expanded above.

  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

PATCH/api/v1/internal/businesses/{business_id}/contacts/{contact_id}/emails/{email_id}

Update contact email

Parameters

NameInTypeDescription
business_idrequiredpathstring (uuid)
contact_idrequiredpathstring (uuid)
email_idrequiredpathstring (uuid)
x-internal-api-keyheaderstring | null

Request bodyrequired

application/jsonContactEmailPatchBody
FieldTypeDescription
emailstring | null
sourcestring | null

Responses

200Successful Response
application/jsonSuccessResponse_ContactEmailUpdateResult_
FieldTypeDescription
request_idrequiredstring
successtruedefault true
datarequiredContactEmailUpdateResult
ContactEmailUpdateResult fields
FieldTypeDescription
emailrequiredContactEmailData
ContactEmailData fields

ContactEmailData, expanded above.

identity_review_idstring | null
metadataResponseMetadata | null
ResponseMetadata fields

ResponseMetadata, expanded above.

metaResponseMeta | null
ResponseMeta fields

ResponseMeta, expanded above.

  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

DELETE/api/v1/internal/businesses/{business_id}/contacts/{contact_id}/emails/{email_id}

Remove email from contact

Parameters

NameInTypeDescription
business_idrequiredpathstring (uuid)
contact_idrequiredpathstring (uuid)
email_idrequiredpathstring (uuid)
x-internal-api-keyheaderstring | null

Responses

204Successful Response
  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

POST/api/v1/internal/businesses/{business_id}/contacts/{contact_id}/emails/{email_id}/set-primary

Set primary email

Parameters

NameInTypeDescription
business_idrequiredpathstring (uuid)
contact_idrequiredpathstring (uuid)
email_idrequiredpathstring (uuid)
x-internal-api-keyheaderstring | null

Responses

200Successful Response
application/jsonSuccessResponse_ContactData_
FieldTypeDescription
request_idrequiredstring
successtruedefault true
datarequiredContactData
ContactData fields

ContactData, expanded above.

metadataResponseMetadata | null
ResponseMetadata fields

ResponseMetadata, expanded above.

metaResponseMeta | null
ResponseMeta fields

ResponseMeta, expanded above.

  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

GET/api/v1/internal/businesses/{business_id}/contacts/{contact_id}/insights

List contact insights

Parameters

NameInTypeDescription
business_idrequiredpathstring (uuid)
contact_idrequiredpathstring (uuid)
include_dismissedquerybooleandefault false
priorityquerystring | null
limitqueryintegerdefault 20
x-internal-api-keyheaderstring | null

Responses

200Successful Response
application/jsonSuccessResponse_list_ContactInsightData__
FieldTypeDescription
request_idrequiredstring
successtruedefault true
datarequiredContactInsightData[]
ContactInsightData[] fields
FieldTypeDescription
idrequiredstring
contact_idrequiredstring
business_idrequiredstring
insight_typerequiredstring
titlerequiredstring
bodyrequiredstring
priorityrequiredstring
action_typestring | null
action_dataobject | null
is_dismissedbooleandefault false
expires_atstring (date-time) | null
created_atrequiredstring (date-time)
metadataResponseMetadata | null
ResponseMetadata fields

ResponseMetadata, expanded above.

metaResponseMeta | null
ResponseMeta fields

ResponseMeta, expanded above.

  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

GET/api/v1/internal/businesses/{business_id}/contacts/{contact_id}/insights/{insight_id}

Get a contact insight

Parameters

NameInTypeDescription
business_idrequiredpathstring (uuid)
contact_idrequiredpathstring (uuid)
insight_idrequiredpathstring (uuid)
x-internal-api-keyheaderstring | null

Responses

200Successful Response
application/jsonSuccessResponse_ContactInsightData_
FieldTypeDescription
request_idrequiredstring
successtruedefault true
datarequiredContactInsightData
ContactInsightData fields

ContactInsightData, expanded above.

metadataResponseMetadata | null
ResponseMetadata fields

ResponseMetadata, expanded above.

metaResponseMeta | null
ResponseMeta fields

ResponseMeta, expanded above.

  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

POST/api/v1/internal/businesses/{business_id}/contacts/{contact_id}/insights/{insight_id}/dismiss

Dismiss a contact insight

Parameters

NameInTypeDescription
business_idrequiredpathstring (uuid)
contact_idrequiredpathstring (uuid)
insight_idrequiredpathstring (uuid)
x-internal-api-keyheaderstring | null

Responses

200Successful Response
application/jsonSuccessResponse_ContactInsightData_
FieldTypeDescription
request_idrequiredstring
successtruedefault true
datarequiredContactInsightData
ContactInsightData fields

ContactInsightData, expanded above.

metadataResponseMetadata | null
ResponseMetadata fields

ResponseMetadata, expanded above.

metaResponseMeta | null
ResponseMeta fields

ResponseMeta, expanded above.

  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

DELETE/api/v1/internal/businesses/{business_id}/contacts/{contact_id}/needs-attention

Resolve contact needs-attention overlay

Parameters

NameInTypeDescription
business_idrequiredpathstring (uuid)
contact_idrequiredpathstring (uuid)
re_enable_aiquerybooleandefault false
x-internal-api-keyheaderstring | null

Responses

200Successful Response
application/jsonobject

Map of string to boolean

  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

POST/api/v1/internal/businesses/{business_id}/contacts/{contact_id}/opt-in

Record opt-in

Parameters

NameInTypeDescription
business_idrequiredpathstring (uuid)
contact_idrequiredpathstring (uuid)
x-internal-api-keyheaderstring | null

Request bodyrequired

application/jsonOptInOutBody
FieldTypeDescription
channelrequiredstring
sourcerequiredstring
occurred_atstring (date-time) | null
idempotency_keystring | null

Responses

200Successful Response
application/jsonSuccessResponse_ContactPreferenceData_
FieldTypeDescription
request_idrequiredstring
successtruedefault true
datarequiredContactPreferenceData
ContactPreferenceData fields
FieldTypeDescription
idrequiredstring
business_contact_idrequiredstring
transactional_sms_opt_in_atstring (date-time) | null
transactional_sms_opt_out_atstring (date-time) | null
marketing_sms_opt_in_atstring (date-time) | null
marketing_sms_opt_out_atstring (date-time) | null
marketing_email_opt_in_atstring (date-time) | null
marketing_email_opt_out_atstring (date-time) | null
tos_privacy_accepted_atstring (date-time) | null
created_atrequiredstring (date-time)
updated_atrequiredstring (date-time)
metadataResponseMetadata | null
ResponseMetadata fields

ResponseMetadata, expanded above.

metaResponseMeta | null
ResponseMeta fields

ResponseMeta, expanded above.

  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

POST/api/v1/internal/businesses/{business_id}/contacts/{contact_id}/opt-out

Record opt-out

Parameters

NameInTypeDescription
business_idrequiredpathstring (uuid)
contact_idrequiredpathstring (uuid)
x-internal-api-keyheaderstring | null

Request bodyrequired

application/jsonOptInOutBody

OptInOutBody, expanded above.

Responses

200Successful Response
application/jsonSuccessResponse_ContactPreferenceData_
FieldTypeDescription
request_idrequiredstring
successtruedefault true
datarequiredContactPreferenceData
ContactPreferenceData fields

ContactPreferenceData, expanded above.

metadataResponseMetadata | null
ResponseMetadata fields

ResponseMetadata, expanded above.

metaResponseMeta | null
ResponseMeta fields

ResponseMeta, expanded above.

  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

GET/api/v1/internal/businesses/{business_id}/contacts/{contact_id}/phones

List contact phones

Parameters

NameInTypeDescription
business_idrequiredpathstring (uuid)
contact_idrequiredpathstring (uuid)
x-internal-api-keyheaderstring | null

Responses

200Successful Response
application/jsonSuccessResponse_list_ContactPhoneData__
FieldTypeDescription
request_idrequiredstring
successtruedefault true
datarequiredContactPhoneData[]
ContactPhoneData[] fields
FieldTypeDescription
idrequiredstring
business_contact_idrequiredstring
business_idrequiredstring
raw_inputstring | null
phonerequiredstring
phone_typestring | null
country_codestring | null
verified_atstring (date-time) | null
sourcestring | null
is_deletedbooleandefault false
created_atrequiredstring (date-time)
updated_atrequiredstring (date-time)
metadataResponseMetadata | null
ResponseMetadata fields

ResponseMetadata, expanded above.

metaResponseMeta | null
ResponseMeta fields

ResponseMeta, expanded above.

  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

POST/api/v1/internal/businesses/{business_id}/contacts/{contact_id}/phones

Add phone to contact

Parameters

NameInTypeDescription
business_idrequiredpathstring (uuid)
contact_idrequiredpathstring (uuid)
x-internal-api-keyheaderstring | null

Request bodyrequired

application/jsonContactPhoneCreateBody
FieldTypeDescription
phonerequiredstring
sourcestring | null

Responses

201Successful Response
application/jsonSuccessResponse_ContactPhoneAddResult_
FieldTypeDescription
request_idrequiredstring
successtruedefault true
datarequiredContactPhoneAddResult
ContactPhoneAddResult fields
FieldTypeDescription
phonerequiredContactPhoneData
ContactPhoneData fields

ContactPhoneData, expanded above.

identity_review_idstring | null
metadataResponseMetadata | null
ResponseMetadata fields

ResponseMetadata, expanded above.

metaResponseMeta | null
ResponseMeta fields

ResponseMeta, expanded above.

  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

PATCH/api/v1/internal/businesses/{business_id}/contacts/{contact_id}/phones/{phone_id}

Update contact phone

Parameters

NameInTypeDescription
business_idrequiredpathstring (uuid)
contact_idrequiredpathstring (uuid)
phone_idrequiredpathstring (uuid)
x-internal-api-keyheaderstring | null

Request bodyrequired

application/jsonContactPhonePatchBody
FieldTypeDescription
phonestring | null
phone_typestring | null
country_codestring | null
sourcestring | null

Responses

200Successful Response
application/jsonSuccessResponse_ContactPhoneUpdateResult_
FieldTypeDescription
request_idrequiredstring
successtruedefault true
datarequiredContactPhoneUpdateResult
ContactPhoneUpdateResult fields
FieldTypeDescription
phonerequiredContactPhoneData
ContactPhoneData fields

ContactPhoneData, expanded above.

identity_review_idstring | null
metadataResponseMetadata | null
ResponseMetadata fields

ResponseMetadata, expanded above.

metaResponseMeta | null
ResponseMeta fields

ResponseMeta, expanded above.

  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

DELETE/api/v1/internal/businesses/{business_id}/contacts/{contact_id}/phones/{phone_id}

Remove phone from contact

Parameters

NameInTypeDescription
business_idrequiredpathstring (uuid)
contact_idrequiredpathstring (uuid)
phone_idrequiredpathstring (uuid)
x-internal-api-keyheaderstring | null

Responses

204Successful Response
  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

POST/api/v1/internal/businesses/{business_id}/contacts/{contact_id}/phones/{phone_id}/set-primary

Set primary phone

Parameters

NameInTypeDescription
business_idrequiredpathstring (uuid)
contact_idrequiredpathstring (uuid)
phone_idrequiredpathstring (uuid)
x-internal-api-keyheaderstring | null

Responses

200Successful Response
application/jsonSuccessResponse_ContactData_
FieldTypeDescription
request_idrequiredstring
successtruedefault true
datarequiredContactData
ContactData fields

ContactData, expanded above.

metadataResponseMetadata | null
ResponseMetadata fields

ResponseMetadata, expanded above.

metaResponseMeta | null
ResponseMeta fields

ResponseMeta, expanded above.

  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

GET/api/v1/internal/businesses/{business_id}/contacts/{contact_id}/preferences

Get preferences

Parameters

NameInTypeDescription
business_idrequiredpathstring (uuid)
contact_idrequiredpathstring (uuid)
x-internal-api-keyheaderstring | null

Responses

200Successful Response
application/jsonSuccessResponse_ContactPreferenceData_
FieldTypeDescription
request_idrequiredstring
successtruedefault true
datarequiredContactPreferenceData
ContactPreferenceData fields

ContactPreferenceData, expanded above.

metadataResponseMetadata | null
ResponseMetadata fields

ResponseMetadata, expanded above.

metaResponseMeta | null
ResponseMeta fields

ResponseMeta, expanded above.

  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

POST/api/v1/internal/businesses/{business_id}/contacts/{contact_id}/reassess

Trigger a fresh AI classification pass

Publishes a manual `ClassificationRequest` for this contact's consumer. The classification consumer picks it up out-of-band and writes back signal/touch/stage + a fresh `latest_insight`; expect the new values to land within seconds. Returns the current contact snapshot — poll the same contact-detail endpoint to see the updated classification.

Returns 202 even when Kafka is disabled — the next inbound message will pick the contact up; the response includes the current state regardless.

Parameters

NameInTypeDescription
business_idrequiredpathstring (uuid)
contact_idrequiredpathstring (uuid)
x-internal-api-keyheaderstring | null

Responses

202Successful Response
application/jsonSuccessResponse_ContactData_
FieldTypeDescription
request_idrequiredstring
successtruedefault true
datarequiredContactData
ContactData fields

ContactData, expanded above.

metadataResponseMetadata | null
ResponseMetadata fields

ResponseMetadata, expanded above.

metaResponseMeta | null
ResponseMeta fields

ResponseMeta, expanded above.

  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

GET/api/v1/internal/businesses/{business_id}/contacts/{contact_id}/score-history

Get engagement score history

Parameters

NameInTypeDescription
business_idrequiredpathstring (uuid)
contact_idrequiredpathstring (uuid)
cursorquerystring | null
limitqueryintegerdefault 50
x-internal-api-keyheaderstring | null

Responses

200Successful Response
application/jsonSuccessResponse_list_ScoreHistoryItem__
FieldTypeDescription
request_idrequiredstring
successtruedefault true
datarequiredScoreHistoryItem[]
ScoreHistoryItem[] fields
FieldTypeDescription
engagement_scorerequiredinteger
purchase_intentinteger | null
model_versionstring | null
reasoningstring | null
input_signalsobject | null
created_atrequiredstring (date-time)
metadataResponseMetadata | null
ResponseMetadata fields

ResponseMetadata, expanded above.

metaResponseMeta | null
ResponseMeta fields

ResponseMeta, expanded above.

  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

GET/api/v1/internal/businesses/{business_id}/contacts/{contact_id}/sources

List sources

Parameters

NameInTypeDescription
business_idrequiredpathstring (uuid)
contact_idrequiredpathstring (uuid)
x-internal-api-keyheaderstring | null

Responses

200Successful Response
application/jsonSuccessResponse_list_ContactSourceData__
FieldTypeDescription
request_idrequiredstring
successtruedefault true
datarequiredContactSourceData[]
ContactSourceData[] fields
FieldTypeDescription
idrequiredstring
business_contact_idrequiredstring
contact_source_typerequiredContactSourceType
contact_source_detailstring | null
external_ref_idstring | null
created_atrequiredstring (date-time)
updated_atrequiredstring (date-time)
metadataResponseMetadata | null
ResponseMetadata fields

ResponseMetadata, expanded above.

metaResponseMeta | null
ResponseMeta fields

ResponseMeta, expanded above.

  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

POST/api/v1/internal/businesses/{business_id}/contacts/{contact_id}/sources

Add source

Parameters

NameInTypeDescription
business_idrequiredpathstring (uuid)
contact_idrequiredpathstring (uuid)
x-internal-api-keyheaderstring | null

Request bodyrequired

application/jsonContactSourceCreateBody
FieldTypeDescription
contact_source_typerequiredContactSourceType
contact_source_detailstring | null
external_ref_idstring | null

Responses

201Successful Response
application/jsonSuccessResponse_ContactSourceData_
FieldTypeDescription
request_idrequiredstring
successtruedefault true
datarequiredContactSourceData
ContactSourceData fields

ContactSourceData, expanded above.

metadataResponseMetadata | null
ResponseMetadata fields

ResponseMetadata, expanded above.

metaResponseMeta | null
ResponseMeta fields

ResponseMeta, expanded above.

  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

GET/api/v1/internal/businesses/{business_id}/contacts/export

Export contacts as CSV

Stream every matching contact as a CSV file (one server request, no client-side paging).

Parameters

NameInTypeDescription
business_idrequiredpathstring (uuid)
qquerystring | null

Optional search query; when set, matches the search view

statusquerystring | null
lifecycle_stagequerystring | null
signalquerystring | null
touchquerystring | null
stagequerystring | null
needs_attentionqueryboolean | null
identity_resolution_statusquerystring | null
include_deletedquerybooleandefault false
sourcequerystring | null
created_afterquerystring (date-time) | null
created_beforequerystring (date-time) | null
updated_afterquerystring (date-time) | null
x-internal-api-keyheaderstring | null

Responses

200Successful Response
application/jsonany
  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

POST/api/v1/internal/businesses/{business_id}/contacts/lookup

Lookup contact by email/phone

Parameters

NameInTypeDescription
business_idrequiredpathstring (uuid)
x-internal-api-keyheaderstring | null

Request bodyrequired

application/jsonContactLookupBody
FieldTypeDescription
emailstring | null
phonestring | null

Responses

200Successful Response
application/jsonSuccessResponse_ContactLookupResult_
FieldTypeDescription
request_idrequiredstring
successtruedefault true
datarequiredContactLookupResult
ContactLookupResult fields
FieldTypeDescription
match_typerequiredstring
contactsrequiredContactData[]
ContactData[] fields

ContactData (not expanded)

metadataResponseMetadata | null
ResponseMetadata fields

ResponseMetadata, expanded above.

metaResponseMeta | null
ResponseMeta fields

ResponseMeta, expanded above.

  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

POST/api/v1/internal/businesses/{business_id}/contacts/merge

Merge contacts

Parameters

NameInTypeDescription
business_idrequiredpathstring (uuid)
x-internal-api-keyheaderstring | null

Request bodyrequired

application/jsonContactMergeBody
FieldTypeDescription
surviving_contact_idrequiredstring (uuid)
merged_contact_idrequiredstring (uuid)
field_resolutionsobject | null
object | null fields

Map of string to string

merge_reasonstring | null

Responses

200Successful Response
application/jsonSuccessResponse_ContactData_
FieldTypeDescription
request_idrequiredstring
successtruedefault true
datarequiredContactData
ContactData fields

ContactData, expanded above.

metadataResponseMetadata | null
ResponseMetadata fields

ResponseMetadata, expanded above.

metaResponseMeta | null
ResponseMeta fields

ResponseMeta, expanded above.

  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

GET/api/v1/internal/businesses/{business_id}/contacts/needs-attention

List contacts needing attention

Parameters

NameInTypeDescription
business_idrequiredpathstring (uuid)
limitqueryintegerdefault 10
x-internal-api-keyheaderstring | null

Responses

200Successful Response
application/jsonSuccessResponse_NeedsAttentionData_
FieldTypeDescription
request_idrequiredstring
successtruedefault true
datarequiredNeedsAttentionData
NeedsAttentionData fields
FieldTypeDescription
itemsrequiredNeedsAttentionItem[]
NeedsAttentionItem[] fields

NeedsAttentionItem (not expanded)

totalrequiredinteger
metadataResponseMetadata | null
ResponseMetadata fields

ResponseMetadata, expanded above.

metaResponseMeta | null
ResponseMeta fields

ResponseMeta, expanded above.

  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

GET/api/v1/internal/businesses/{business_id}/contacts/pipeline-summary

Get pipeline summary

Parameters

NameInTypeDescription
business_idrequiredpathstring (uuid)
x-internal-api-keyheaderstring | null

Responses

200Successful Response
application/jsonSuccessResponse_PipelineSummaryData_
FieldTypeDescription
request_idrequiredstring
successtruedefault true
datarequiredPipelineSummaryData
PipelineSummaryData fields
FieldTypeDescription
summaryrequiredstring
statsrequiredobject
generated_atrequiredstring (date-time)
metadataResponseMetadata | null
ResponseMetadata fields

ResponseMetadata, expanded above.

metaResponseMeta | null
ResponseMeta fields

ResponseMeta, expanded above.

  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

GET/api/v1/internal/businesses/{business_id}/contacts/search

Search contacts

Parameters

NameInTypeDescription
business_idrequiredpathstring (uuid)
qrequiredquerystring
statusquerystring | null
lifecycle_stagequerystring | null
signalquerystring | null

Filter by signal: hot,warm,cool,new,unassigned

touchquerystring | null

Filter by touch: responsive,slow,unresponsive,ghosted,unassigned

stagequerystring | null

Filter by stage: new,engaged,booked,returning,lapsed,lost,unassigned

needs_attentionqueryboolean | null

Filter contacts requiring supervisory attention

identity_resolution_statusquerystring | null
include_deletedquerybooleandefault false
sourcequerystring | null
created_afterquerystring (date-time) | null
created_beforequerystring (date-time) | null
updated_afterquerystring (date-time) | null
sortquerystringdefault "relevance"
cursorquerystring | null
limitqueryintegerdefault 50
x-internal-api-keyheaderstring | null

Responses

200Successful Response
application/jsonSuccessResponse_list_ContactData__
FieldTypeDescription
request_idrequiredstring
successtruedefault true
datarequiredContactData[]
ContactData[] fields

ContactData, expanded above.

metadataResponseMetadata | null
ResponseMetadata fields

ResponseMetadata, expanded above.

metaResponseMeta | null
ResponseMeta fields

ResponseMeta, expanded above.

  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

GET/api/v1/internal/businesses/{business_id}/contacts/stats

Get classification stats

Parameters

NameInTypeDescription
business_idrequiredpathstring (uuid)
statusquerystring | null
lifecycle_stagequerystring | null
signalquerystring | null
touchquerystring | null
stagequerystring | null
needs_attentionqueryboolean | null
identity_resolution_statusquerystring | null
sourcequerystring | null
created_afterquerystring (date-time) | null
created_beforequerystring (date-time) | null
updated_afterquerystring (date-time) | null
x-internal-api-keyheaderstring | null

Responses

200Successful Response
application/jsonSuccessResponse_ClassificationStatsData_
FieldTypeDescription
request_idrequiredstring
successtruedefault true
datarequiredClassificationStatsData
ClassificationStatsData fields
FieldTypeDescription
totalrequiredinteger
signalrequiredobject
object fields

Map of string to integer

touchrequiredobject
object fields

Map of string to integer

stagerequiredobject
object fields

Map of string to integer

lifecycle_stagerequiredobject
object fields

Map of string to integer

metadataResponseMetadata | null
ResponseMetadata fields

ResponseMetadata, expanded above.

metaResponseMeta | null
ResponseMeta fields

ResponseMeta, expanded above.

  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

PUT/api/v1/internal/businesses/{business_id}/contacts/upsert

Upsert contact

Parameters

NameInTypeDescription
business_idrequiredpathstring (uuid)
x-internal-api-keyheaderstring | null

Request bodyrequired

application/jsonContactCreateBody

ContactCreateBody, expanded above.

Responses

200Successful Response
application/jsonSuccessResponse_ContactOutcomeData_
FieldTypeDescription
request_idrequiredstring
successtruedefault true
datarequiredContactOutcomeData
ContactOutcomeData fields

ContactOutcomeData, expanded above.

metadataResponseMetadata | null
ResponseMetadata fields

ResponseMetadata, expanded above.

metaResponseMeta | null
ResponseMeta fields

ResponseMeta, expanded above.

  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

GET/api/v1/internal/businesses/{business_id}/duplicate-reviews

List duplicate reviews

Parameters

NameInTypeDescription
business_idrequiredpathstring (uuid)
statusquerystring | null
created_afterquerystring (date-time) | null
created_beforequerystring (date-time) | null
cursorquerystring | null
limitqueryintegerdefault 50
x-internal-api-keyheaderstring | null

Responses

200Successful Response
application/jsonSuccessResponse_list_DuplicateReviewData__
FieldTypeDescription
request_idrequiredstring
successtruedefault true
datarequiredDuplicateReviewData[]
DuplicateReviewData[] fields
FieldTypeDescription
idrequiredstring
business_idrequiredstring
contact_id_arequiredstring
contact_id_brequiredstring
match_typerequiredstring
confidence_scorenumber | null
statusrequiredstring
resolved_bystring | null
resolved_atstring (date-time) | null
created_atrequiredstring (date-time)
updated_atrequiredstring (date-time)
contact_aContactSummary | null
ContactSummary fields

ContactSummary (not expanded)

contact_bContactSummary | null
ContactSummary fields

ContactSummary (not expanded)

metadataResponseMetadata | null
ResponseMetadata fields

ResponseMetadata, expanded above.

metaResponseMeta | null
ResponseMeta fields

ResponseMeta, expanded above.

  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

GET/api/v1/internal/businesses/{business_id}/duplicate-reviews/{review_id}

Get duplicate review

Parameters

NameInTypeDescription
business_idrequiredpathstring (uuid)
review_idrequiredpathstring (uuid)
x-internal-api-keyheaderstring | null

Responses

200Successful Response
application/jsonSuccessResponse_DuplicateReviewData_
FieldTypeDescription
request_idrequiredstring
successtruedefault true
datarequiredDuplicateReviewData
DuplicateReviewData fields

DuplicateReviewData, expanded above.

metadataResponseMetadata | null
ResponseMetadata fields

ResponseMetadata, expanded above.

metaResponseMeta | null
ResponseMeta fields

ResponseMeta, expanded above.

  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

POST/api/v1/internal/businesses/{business_id}/duplicate-reviews/{review_id}/dismiss

Dismiss duplicate pair

Parameters

NameInTypeDescription
business_idrequiredpathstring (uuid)
review_idrequiredpathstring (uuid)
x-internal-api-keyheaderstring | null

Request bodyrequired

application/jsonDuplicateReviewDismissBody
FieldTypeDescription
reasonstring | null

Responses

200Successful Response
application/jsonSuccessResponse_DuplicateReviewData_
FieldTypeDescription
request_idrequiredstring
successtruedefault true
datarequiredDuplicateReviewData
DuplicateReviewData fields

DuplicateReviewData, expanded above.

metadataResponseMetadata | null
ResponseMetadata fields

ResponseMetadata, expanded above.

metaResponseMeta | null
ResponseMeta fields

ResponseMeta, expanded above.

  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

POST/api/v1/internal/businesses/{business_id}/duplicate-reviews/{review_id}/merge

Merge duplicate pair

Parameters

NameInTypeDescription
business_idrequiredpathstring (uuid)
review_idrequiredpathstring (uuid)
x-internal-api-keyheaderstring | null

Request bodyrequired

application/jsonDuplicateReviewMergeBody
FieldTypeDescription
surviving_contact_idrequiredstring
field_resolutionsobject | null

Responses

200Successful Response
application/jsonSuccessResponse_DuplicateReviewData_
FieldTypeDescription
request_idrequiredstring
successtruedefault true
datarequiredDuplicateReviewData
DuplicateReviewData fields

DuplicateReviewData, expanded above.

metadataResponseMetadata | null
ResponseMetadata fields

ResponseMetadata, expanded above.

metaResponseMeta | null
ResponseMeta fields

ResponseMeta, expanded above.

  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

GET/api/v1/internal/businesses/{business_id}/identity-reviews

List identity reviews

Parameters

NameInTypeDescription
business_idrequiredpathstring (uuid)
statusquerystring | null
business_contact_idquerystring (uuid) | null
email_matched_consumer_idquerystring (uuid) | null
phone_matched_consumer_idquerystring (uuid) | null
created_afterquerystring (date-time) | null
created_beforequerystring (date-time) | null
cursorquerystring | null
limitqueryintegerdefault 50
x-internal-api-keyheaderstring | null

Responses

200Successful Response
application/jsonSuccessResponse_list_IdentityReviewData__
FieldTypeDescription
request_idrequiredstring
successtruedefault true
datarequiredIdentityReviewData[]
IdentityReviewData[] fields
FieldTypeDescription
idrequiredstring
business_contact_idrequiredstring
email_matched_consumer_idstring | null
phone_matched_consumer_idstring | null
conflict_snapshotrequiredobject
statusrequiredstring
resolved_consumer_idstring | null
resolution_actionstring | null
resolved_bystring | null
resolved_atstring (date-time) | null
notesstring | null
created_atrequiredstring (date-time)
updated_atrequiredstring (date-time)
contactContactSummary | null
ContactSummary fields

ContactSummary (not expanded)

email_matched_consumerConsumerSummary | null
ConsumerSummary fields

ConsumerSummary (not expanded)

phone_matched_consumerConsumerSummary | null
ConsumerSummary fields

ConsumerSummary (not expanded)

metadataResponseMetadata | null
ResponseMetadata fields

ResponseMetadata, expanded above.

metaResponseMeta | null
ResponseMeta fields

ResponseMeta, expanded above.

  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

GET/api/v1/internal/businesses/{business_id}/identity-reviews/{review_id}

Get identity review

Parameters

NameInTypeDescription
business_idrequiredpathstring (uuid)
review_idrequiredpathstring (uuid)
x-internal-api-keyheaderstring | null

Responses

200Successful Response
application/jsonSuccessResponse_IdentityReviewData_
FieldTypeDescription
request_idrequiredstring
successtruedefault true
datarequiredIdentityReviewData
IdentityReviewData fields

IdentityReviewData, expanded above.

metadataResponseMetadata | null
ResponseMetadata fields

ResponseMetadata, expanded above.

metaResponseMeta | null
ResponseMeta fields

ResponseMeta, expanded above.

  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.

POST/api/v1/internal/businesses/{business_id}/identity-reviews/{review_id}/resolve

Resolve identity review

Parameters

NameInTypeDescription
business_idrequiredpathstring (uuid)
review_idrequiredpathstring (uuid)
x-internal-api-keyheaderstring | null

Request bodyrequired

application/jsonIdentityReviewResolveBody
FieldTypeDescription
actionrequiredenumone of "link_to_consumer", "merge_consumers_and_link", "create_new_consumer", "ignore"
target_consumer_idstring | null
notesstring | null

Responses

200Successful Response
application/jsonSuccessResponse_IdentityReviewData_
FieldTypeDescription
request_idrequiredstring
successtruedefault true
datarequiredIdentityReviewData
IdentityReviewData fields

IdentityReviewData, expanded above.

metadataResponseMetadata | null
ResponseMetadata fields

ResponseMetadata, expanded above.

metaResponseMeta | null
ResponseMeta fields

ResponseMeta, expanded above.

  • 400Bad request
  • 401Unauthorized
  • 403Forbidden
  • 404Not found
  • 422Validation error
  • 500Internal server error
  • 503Service unavailable

Error bodies: ErrorResponse. See Errors.