---
title: "Search for individual profiles"
method: POST
path: "/v2/search/serviceprofiles"
tags: ["Search"]
---

# Search for individual profiles

`POST /v2/search/serviceprofiles`

Search for Individuals that match the provided search parameters.  Search parameters are supplied in the form of an entity object, similar to how you would create an individual.

## Headers

- `api_key` string, required
- `X-Frankie-CustomerID` string, required
- `X-Frankie-CustomerChildID` string
- `X-Frankie-Channel` string
- `X-Frankie-Username` string

## Request body

- SearchProfile
  - `search` SearchCriteria
    - `type` 'EXACT' | 'FUZZY', required — Specifies the type of search to perform. - "EXACT": Returns only results that exactly match the search term. - "FUZZY": Returns results that are similar to the search term.
    - `terms` SearchTerm[], required — List of search terms to be used as criteria.
      - `term` string, required — The value to search for in profiles. This term will be matched against the specified field.
      - `field` 'NAME' | 'GIVEN_NAME' | 'FAMILY_NAME' | 'MIDDLE_NAME' | 'DISPLAY_NAME' | 'OTHER_NAME' | 'ADDRESS' | 'EMAIL_ADDRESS' | 'PHONE_NUMBER' | 'DOCUMENT_IDENTIFIER' | 'EXTERNAL_REFERENCE' | 'REGISTERED_NAME' | 'ALTERNATE_NAME' | 'REGISTRATION_NUMBER', required — List of fields that can be searched. - "NAME": Searches all name parts of the profile. - "GIVEN_NAME": Searches the given name of the individual linked to the profile. - "FAMILY_NAME": Searches the family name of the individual linked to the profile. - "MIDDLE_NAME": Searches the middle name of the individual linked to the profile. - "DISPLAY_NAME": Searches the preferred display name. By default, this is the combined given, middle, and family names. - "OTHER_NAME": Searches other names of the individual linked to the profile. - "EXTERNAL_REFERENCE": Searches the external reference of the entity linked to the profile. - "REGISTERED_NAME": Searches the registered names of the organization linked to the profile. - "ALTERNATE_NAME": Searches the alternate (other than registered) names of the organization linked to the profile. - "REGISTRATION_NUMBER": Searches the registration numbers of the organization linked to the profile. Planned for future implementation: - "ADDRESS": Searches the address of the entity linked to the profile. - "EMAIL_ADDRESS": Searches the email address of the entity linked to the profile. - "PHONE_NUMBER": Searches the phone number of the entity linked to the profile. - "DOCUMENT_IDENTIFIER": Searches primary and secondary identifiers in documents linked to the profile. If an individual field type is specified and the search is limited to organizations, or vice versa, then nothing will be found for those fields. The "NAME" and "EXTERNAL_REFERENCE" field types will search both individuals and organziations, if both are requested in the search, which is the default.
  - `filters` SearchFilters
    - `entityIds` string[] — Entity IDs to filter the Service Profiles by.
    - `entityTypes` SearchFilterEntityType[] — Limit result to entities of the given types. By default all types are considered. Accepted values are: - INDIVIDUAL - ORGANIZATION
    - `createdAtBefore` string, date-time — Filter Service Profiles created on or before this date and time (inclusive).
    - `createdAtAfter` string, date-time — Filter Service Profiles created on or after this date and time (inclusive).
    - `updatedAtAfter` string, date-time — Filter Service Profiles updated on or after this date and time (inclusive).
    - `updatedAtBefore` string, date-time — Filter Service Profiles updated on or before this date and time (inclusive).
    - `assignees` string[] — Filter Service Profiles by assignee(s).
    - `reviewers` string[] — Filter Service Profiles by reviewer(s).
    - `states` ServiceProfileState[] — List of Service Profile state values to filter Service Profiles.
    - `workflowNames` string[] — Filter by workflow execution summary workflow names.
    - `workflowExecutionStatuses` WorkflowExecutionStatuses[] — Filter by combinations of workflowStatus and statusOverrideType. If this filter is used, the deprecated statusOverrideType and workflowStatuses filters are ignored.
      - `overrideType` 'ONLY_OVERRIDDEN' | 'EXCLUDE_OVERRIDDEN' | 'ALL', required — Filter on the status override type. Accepted values are: - ONLY_OVERRIDDEN: Returns only profiles with manually overridden statuses. - EXCLUDE_OVERRIDDEN: Excludes profiles with manually overridden statuses. - ALL: Returns both profiles with and without manually overridden statuses.
      - `status` WorkflowExecutionResultEnum[], required — List of workflowStatus value that the Service Profiles will be filter with
    - `statusOverrideType` 'ONLY_OVERRIDDEN' | 'EXCLUDE_OVERRIDDEN' | 'ALL' — Filter by status override type. Accepted values are: - ONLY_OVERRIDDEN: Returns only profiles with manually overridden statuses. - EXCLUDE_OVERRIDDEN: Excludes profiles with manually overridden statuses. - ALL: Returns both profiles with and without manually overridden statuses. If not provided, the default behavior is ALL.
    - `workflowStatuses` WorkflowExecutionResultEnum[] — List of workflowStatus values to filter Service Profiles.
    - `issueCategories` WorkflowIssueCategory[] — List of issue categories to filter Service Profiles.
    - `issueSeverities` WorkflowIssueSeverity[] — List of issue severities to filter Service Profiles.
    - `riskLevels` RiskLevel[] — Filter by workflow execution summary risk levels. If workflow name is not provided, all execution summaries are searched.
    - `issues` WorkflowIssueType[]
    - `workflowExecutionScope` 'LAST' | 'ANY' — Determines how workflow status and name filters are applied: - LAST: Applies filters only to the most recent workflow execution. - ANY: Searches across all workflow executions.

## Response `200`

OK

- object
  - `meta` ListOperationMeta — Meta information about the request and response returned during a list operation.
    - `page` integer — The current page number of the request.
    - `total` integer — The total number of items found for the search criteria.
    - `limit` integer — The limit applied to this response.
    - `count` integer — The number of items returned in this response.
    - `sort` 'asc' | 'desc' — The sort order applied to the items in the response.
    - `sortFields` string[]
  - `requestId` string — The unique request identifier for the API call made.
  - `matches` SearchMatches[]
    - SearchMatch[]
      - `serviceProfile` ServiceProfile
        - `serviceProfileId` string — The unique identifier for the service profile.
        - `latestRiskAssessmentId` string — Unique identifier of the risk assessment.
        - `latestWorkflowExecutionId` string — The ID of the most recent workflow execution. Omitted if no workflows exist.
        - `entityId` string
        - `entityName` string
        - `entityType` string
        - `organizationType` string
        - `country` string — The ISO 3166 alpha-3 code representing the individual's country of residence or the business's country of registration.
        - `schemaVersion` integer — The version number of the schema.
        - `createdAt` string, date-time — The UTC date and time when this service profile was created.
        - `createdRequestId` string — The unique ULID identifier of the request that created this service profile.
        - `createdBy` string — The user or client that created this profile.
        - `updatedAt` string, date-time — The UTC date and time when this service profile was last updated, if applicable.
        - `updatedBy` string — The user or client that last updated this profile.
        - `updatedRequestId` string — The unique ULID identifier of the request that last updated this service profile.
        - `assignee` string — The name of the officer assigned to approve this profile.
        - `reviewer` string — The name of the officer assigned to review this profile.
        - `currentWorkflowId` string
        - `currentWorkflowName` string — The name of the current workflow, if applicable.
        - `workflowSummaries` WorkflowExecutionSummary[]
          - `schemaVersion` integer — Version of the schema used for this workflow execution.
          - `workflowName` string — Name of the workflow.
          - `workflowExecutionId` string — Unique identifier for the workflow execution.
          - `workflowExecutionState` 'COMPLETED' | 'CANCELED' | 'TERMINATED' | 'ERROR' | 'TIMEOUT' | 'IN_PROGRESS' — Current state of the workflow execution. Possible values: - COMPLETED: The workflow execution has completed successfully. - CANCELED: The workflow execution was canceled. - TERMINATED: The workflow execution was terminated before completion. - ERROR: The workflow execution encountered an error. - TIMEOUT: The workflow execution timed out. - IN_PROGRESS: The workflow execution is currently in progress.
          - `status` 'UNCHECKED' | 'IN_PROGRESS' | 'REVIEW' | 'PASS' | 'FAIL' | 'COMPLETE' | 'INCOMPLETE' | 'NEEDS_APPROVAL' | 'APPROVED' | 'REJECTED' | 'BLOCKED' | 'CLEAR' | 'URGENT' | 'MONITOR' — Outcome of this workflow execution. Possible results: - UNCHECKED: The workflow has not yet been run and has no result. - IN_PROGRESS: The workflow is currently running and awaiting completion. - REVIEW: The workflow produced results that require review. Check the risks and step results for more details. - PASS: The workflow successfully completed with a PASS recommendation. - FAIL: The workflow finished with a FAIL recommendation. - COMPLETE: The workflow has finished and the results are considered complete. PASS/FAIL is not required. - INCOMPLETE: The workflow has finished and the results are considered incomplete. PASS/FAIL is not required. - NEEDS_APPROVAL: The workflow requires an approval process. Once approved, re-run the workflow. - APPROVED: The workflow was approved, typically by an external source such as a human. - REJECTED: The workflow was rejected, typically by an external source such as a human. - BLOCKED: The workflow was blocked from completing. Manual review is required. - CLEAR: The workflow completed with no issues raised. Often used for ongoing monitoring workflows. - URGENT: The workflow completed with matters requiring urgent review. Often used for ongoing monitoring workflows that return sanctions or similarly critical items. - MONITOR: The workflow completed and further monitoring is required. Should be manually reviewed.
          - `statusOverrideAt` string, date-time — Timestamp when the status override occurred.
          - `statusOverrideRequestId` string — Request ID associated with the status override.
          - `statusOverrideBy` string — Identifier of the user who performed the status override.
          - `riskAssessment` RiskAssessment
            - `serviceProfileId` string, required — Unique identifier of the Service Profile.
            - `riskAssessmentId` string — Unique identifier of the risk assessment.
            - `workflowId` string, required — Unique identifier of the workflow.
            - `workflowExecutionId` string, required — Unique identifier of the workflow execution.
            - `entityId` string, required — Unique identifier of the entity being assessed.
            - `schemaVersion` integer — Version of the risk assessment schema.
            - `createdAt` string, date-time — Timestamp when the risk assessment was created.
            - `updatedAt` string, date-time — Timestamp when the risk assessment was last updated.
            - `updatedBy` string — Identifier of the user or system that updated this assessment.
            - `updatedRequestId` string — Identifier of the request that updated this assessment.
            - `workflowRiskScore` number — Risk score calculated for the workflow.
            - `workflowRiskLevel` 'UNKNOWN' | 'LOW' | 'MEDIUM' | 'HIGH' | 'UNACCEPTABLE' — The risk level classification: - UNKNOWN: Risk level is not determined. - LOW: Low risk. - MEDIUM: Medium risk. - HIGH: High risk. - UNACCEPTABLE: Risk level is unacceptable.
            - `riskScore` number — Risk score calculated for the entity.
            - `riskLevel` 'UNKNOWN' | 'LOW' | 'MEDIUM' | 'HIGH' | 'UNACCEPTABLE' — The risk level classification: - UNKNOWN: Risk level is not determined. - LOW: Low risk. - MEDIUM: Medium risk. - HIGH: High risk. - UNACCEPTABLE: Risk level is unacceptable.
            - `isOutdated` boolean — Indicates whether the assessment is out of date, either due to manual updates or changes to risk factors that were assessed.
            - `riskFactors` RiskFactor[] — List of risk factors considered in this assessment.
              - …
          - `isManual` boolean — Indicates if the workflow was executed manually.
          - `steps` WorkflowExecutionSteps
            - `order` string[]
            - `passed` string[]
            - `failed` string[]
            - `incomplete` string[]
            - `notApplicable` string[]
          - `startedAt` string, date-time — The timestamp when the workflow execution started.
          - `endedAt` string, date-time — The timestamp when the workflow execution ended.
          - `issues` WorkflowIssue[] — List of issues encountered during the workflow execution.
            - `issueId` string — Unique identifier for the risk issue.
            - `category` 'AML' | 'BAD_DATA' | 'BIOMETRICS' | 'BLOCKLISTED' | 'DECEASED' | 'DEVICE' | 'DOCUMENT' | 'DUPLICATE' | 'EXPIRY' | 'FRAUD' | 'IDV' | 'INFORMATIONAL' | 'KYC' | 'SYSTEM' | 'VERIFY' | 'VISA' | 'WATCHLIST' | 'ACTIVITY', required — General category of issue found: - AML: Anti-Money Laundering issues. - BAD_DATA: Indicates that the data provided is invalid or incorrect. - BIOMETRICS: Issues found during a biometrics check. - BLOCKLISTED: The entity has a hit on a blocklist. - DECEASED: Indicates that the entity is deceased. - DEVICE: Issues found during device checks. - DOCUMENT: Issues found during a document check. - DUPLICATE: Indicates that the entity has duplicates. - EXPIRY: Indicates that a process or document for the entity has expired. - FRAUD: Possible fraud detected. - IDV: Issues found during an Identity Verification (IDV) process. - INFORMATIONAL: Informational messages that are not issues but are required to be returned. - KYC: Issues found during a Know Your Customer (KYC) process. - SYSTEM: System-level issues. - VERIFY: Issues found during a verification process. - VISA: Issues found during a visa check. - WATCHLIST: Issues found during a watchlist check. - ACTIVITY: Issues found during an activity process.
            - `issue` 'AML_ISSUE' | 'BAD_DATA_ADDRESS' | 'BAD_DATA_DOB' | 'BAD_DATA_EMAIL' | 'BAD_DATA_ID' | 'BAD_DATA_MOBILE' | 'BAD_DATA_NAME' | 'BLOCKED' | 'COMPROMISED_DOCUMENT' | 'CREDIT_HEADER' | 'DATA_COMPARISON' | 'DATA_CONSISTENCY' | 'DATA_VALIDATION' | 'DENY_LIST' | 'DECEASED' | 'DEVICE_FRAUD_MATCH' | 'DEVICE_INVALID' | 'DOCUMENT_COMPARISON' | 'DUPLICATE' | 'FRAUD_CHECK' | 'FRAUD_DEVICE' | 'FRAUD_IP_ADDRESS' | 'FRAUD_EMAIL_ADDRESS' | 'FRAUD_PHONE_NUMBER' | 'FRAUD_ISSUE' | 'FRAUD_LIST' | 'IMAGE_INTEGRITY' | 'INTERNAL_MATCH' | 'LIVENESS_DETECTION' | 'MATCHED_EXTERNAL' | 'MATCHED_INTERNAL' | 'MATCHED_SHARED' | 'MEDIA' | 'NOT_FOUND' | 'OCR' | 'PARTIAL' | 'PEP' | 'REQUIRES_AML' | 'REQUIRES_IDV' | 'REQUIRES_KYC' | 'REQUIRES_VISA' | 'SANCTION' | 'SERVICE_ERROR' | 'SERVICE_TIMEOUT' | 'VISA_FAILED' | 'VISUAL_AUTHENTICITY' | 'WATCHLIST' | 'ACTIVITY_AML' | 'ACTIVITY_FRAUD' | 'ACTIVITY_DEVICE', required — For each category, this provides the specific issue type. AML: - PEP: The entity has Politically Exposed Person (PEP) hits. - SANCTION: The entity has sanction hits. - MEDIA: The entity has adverse media hits. - WATCHLIST: The entity has watchlist hits. BAD_DATA: - BAD_DATA_NAME: Name is required for verification but is missing or unusable due to data quality issues. - BAD_DATA_DOB: Date of Birth is required for verification but is missing or unusable due to data quality issues. - BAD_DATA_ADDRESS: Address is required for verification but is missing or unusable due to data quality issues. - BAD_DATA_ID: ID is required for verification but is missing or unusable due to data quality issues. - BAD_DATA_EMAIL: Email is required for verification but is missing or unusable due to data quality issues. - BAD_DATA_MOBILE: Mobile is required for verification but is missing or unusable due to data quality issues. BLOCKLISTED: - MATCHED_INTERNAL: The entity matched an internal blocklist. - MATCHED_SHARED: The entity matched a shared blocklist. - MATCHED_EXTERNAL: The entity matched an external blocklist. DECEASED: - DECEASED: The person whose data is being verified is deceased. DEVICE: - DEVICE_FRAUD_MATCH: Fraud detected on the device. - DEVICE_INVALID: The device is invalid. DUPLICATE: - DUPLICATE: The entity is a duplicate of another entity. EXPIRY: - REQUIRES_KYC: KYC process needs to be re-initiated. - REQUIRES_IDV: IDV process needs to be re-initiated. - REQUIRES_AML: AML process needs to be re-initiated. - REQUIRES_VISA: Visa process needs to be re-initiated. FRAUD: - FRAUD_LIST: The entity is on a fraud list. - FRAUD_CHECK: Fraud detected during checks. - FRAUD_DEVICE: Device fraud detected. - FRAUD_IP_ADDRESS: IP address fraud detected. - FRAUD_EMAIL_ADDRESS: Email address fraud detected. - FRAUD_PHONE_NUMBER: Phone number fraud detected. IDV: - DATA_COMPARISON: Data comparison issue. - DATA_VALIDATION: Data validation issue. - DATA_CONSISTENCY: Data consistency issue. - VISUAL_AUTHENTICITY: Visual authenticity issue. - IMAGE_INTEGRITY: Image integrity issue. - COMPROMISED_DOCUMENT: Document is compromised. - LIVENESS_DETECTION: Liveness detection failed. - DOCUMENT_COMPARISON: Document comparison issue. INFORMATIONAL: - CREDIT_HEADER: Credit header information was returned as part of a credit agency check. KYC: - PARTIAL: The KYC check was only partially successful. - NOT_FOUND: No match was found for the given data. OCR: - OCR: The OCR data does not match what was entered by the user. SYSTEM: - SERVICE_TIMEOUT: All providers have timed out. - SERVICE_ERROR: All providers have returned an error or an internal error has occurred. VISA: - DENY_LIST: The entity matched a visa deny list. - VISA_FAILED: Visa check failed from the provider. WATCHLIST: - INTERNAL_MATCH: The entity matched an internal watchlist. ACTIVITY: - ACTIVITY_AML: AML-related activity issue. - ACTIVITY_FRAUD: Fraud-related activity issue. - ACTIVITY_DEVICE: Device-related activity issue.
            - `workflowExecutionId` string — Identifier of the workflow execution in which this issue was generated.
            - `stepResultId` string — Identifier of the step from which this issue originated, if applicable.
            - `isCleared` boolean — Indicates if this specific issue has been manually flagged as addressed.
            - `createdBy` string — User or system that created this issue.
            - `createdAt` string, date-time — The timestamp when the issue was created.
            - `updatedAt` string, date-time — The timestamp when the issue was last updated.
            - `updatedBy` string — User or system that last updated this issue (e.g., System:<service_name> or User:<user_name>).
            - `updatedRequestId` string — Identifier of the request that updated this issue.
            - `severity` 'INFO' | 'REVIEW' | 'BLOCK' | 'WARNING' | 'CRITICAL' | 'ERROR', required — The severity level of the issue. Possible values: - INFO: Informational only. - REVIEW: Requires review. - BLOCK: Blocks further processing. - WARNING: Warning, but not blocking. - CRITICAL: Critical issue. - ERROR: Error encountered.
          - `lifecyclePhase` 'ONBOARDING' | 'MONITORING' | 'OTHER' — Specifies the lifecycle phase of the customer in which this workflow is executed: - ONBOARDING: Workflow is in the onboarding stage. - MONITORING: Workflow is in the monitoring stage. - OTHER: Workflow is in another stage.
          - `monitoringTypes` MonitoringType[] — The types of monitoring that subscribe to the workflow.
        - `serviceName` string — The name of the service associated with this profile.
        - `customerReference` string — Customer-specific identifier(s).
        - `subscriptions` ServiceProfileSubscription[] — The list of subscriptions associated with the service profile. A subscription determines if the service profile is subscribed to a particular ongoing process.
          - `serviceProfileId` string — The unique identifier of the service profile.
          - `status` 'ENABLED' | 'DISABLED' — Indicates whether the subscription is currently active and operational.
          - `type` 'AML' | 'ACTIVITY' — Specifies the type of service profile subscription. This value determines the category of the service profile subscription.
          - `workflowName` string — The name of the monitoring workflow executed when a monitoring alert occurs.
          - `workflowId` string — The unique identifier of the monitoring workflow.
          - `enabledAt` string, date-time — The date and time when the subscription was most recently enabled.
          - `enabledRequestId` string — The request identifier for the most recent enable action.
          - `enabledBy` string — The user who most recently enabled the subscription.
          - `disabledAt` string, date-time — The date and time when the subscription was most recently disabled.
          - `disabledRequestId` string — The request identifier for the most recent disable action.
          - `disabledBy` string — The user who most recently disabled the subscription.
        - `state` 'INIT' | 'AUTO' | 'ACTIVE' | 'ARCHIVED' | 'BLOCKLISTED' | 'INACTIVE' | 'DELETED' | 'DUPLICATE' — Current state of the Service Profile - INIT: Initial state when the profile is created. - AUTO: Automatically assigned state, typically after initial processing. - ACTIVE: The profile is active and in use. - ARCHIVED: The profile has been archived and is no longer active. - BLOCKLISTED: The profile is blocked from further actions. - INACTIVE: The profile is inactive, not currently in use. - DELETED: The profile has been deleted. - DUPLICATE: The profile is a duplicate of another existing profile.
      - `confidence` number, float — Confidence level of the search result, represented as a number between 0 and 1. A higher value indicates greater confidence in the accuracy of the search result.
      - `fieldsMatched` SearchFieldMatch[]
        - `field` 'NAME' | 'GIVEN_NAME' | 'FAMILY_NAME' | 'MIDDLE_NAME' | 'DISPLAY_NAME' | 'OTHER_NAME' | 'ADDRESS' | 'EMAIL_ADDRESS' | 'PHONE_NUMBER' | 'DOCUMENT_IDENTIFIER' | 'EXTERNAL_REFERENCE' | 'REGISTERED_NAME' | 'ALTERNATE_NAME' | 'REGISTRATION_NUMBER' — List of fields that can be searched. - "NAME": Searches all name parts of the profile. - "GIVEN_NAME": Searches the given name of the individual linked to the profile. - "FAMILY_NAME": Searches the family name of the individual linked to the profile. - "MIDDLE_NAME": Searches the middle name of the individual linked to the profile. - "DISPLAY_NAME": Searches the preferred display name. By default, this is the combined given, middle, and family names. - "OTHER_NAME": Searches other names of the individual linked to the profile. - "EXTERNAL_REFERENCE": Searches the external reference of the entity linked to the profile. - "REGISTERED_NAME": Searches the registered names of the organization linked to the profile. - "ALTERNATE_NAME": Searches the alternate (other than registered) names of the organization linked to the profile. - "REGISTRATION_NUMBER": Searches the registration numbers of the organization linked to the profile. Planned for future implementation: - "ADDRESS": Searches the address of the entity linked to the profile. - "EMAIL_ADDRESS": Searches the email address of the entity linked to the profile. - "PHONE_NUMBER": Searches the phone number of the entity linked to the profile. - "DOCUMENT_IDENTIFIER": Searches primary and secondary identifiers in documents linked to the profile. If an individual field type is specified and the search is limited to organizations, or vice versa, then nothing will be found for those fields. The "NAME" and "EXTERNAL_REFERENCE" field types will search both individuals and organziations, if both are requested in the search, which is the default.
        - `confidence` number, float — Confidence level of the search result, represented as a number between 0 and 1. A higher value indicates greater confidence in the accuracy of the search result.

## Other responses

- `400` — Bad request
- `401` — Unauthorized
- `404` — Not Found
- `500` — Internal Server Error
- `502` — Bad Gateway
- `503` — Service Unavailable

---

[API](https://skmtc.net/frankieone/apis/kyc-v2-api.md) · [All operations](https://skmtc.net/frankieone/apis/kyc-v2-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/frankieone/kyc-v2-api/revisions/880b27506cbb/schema)
