openapi: 3.0.1
info:
title: Senzing REST API
version: "3.4.1"
description: >-
This is the Senzing REST API. It describes the REST interface
to Senzing API functions available via REST. It leverages the
Senzing native API which is documented at
[https://docs.senzing.com](https://docs.senzing.com).
SSE NOTE: Some end-points described here will indicate "(Supports SSE)" to
indicate that they support "Server-sent Events" via the `text/event-stream`
media type. This support is activated by adding the
`Accept: text/event-stream` header to a request to override the
default `application/json` media type. Further, the end-point will behave
similarly to its standard operation but will produce `progress` events
at regular intervals that are equivalent to its `200` response schema.
Upon success, the final event will be `completed` with the same response
schema as a `200` response. Upon failure, the final event will be
`failed` with same schema as the `4xx` or `5xx` response (typically the
`SzErrorResponse`)
WEB SOCKETS NOTE: Some end-points described here will indicate "(Supports
WebSockets)" to indicate that they can invoked via the Web Sockets protocol.
This support is activated by invoking the end-point using the `ws://`
protocol in the URL. Any request query parameters can still be sent on the
URL and the request body can be sent as one or more message from the client
(as documented). The end-point response will be sent as one or more
response messages as documented (sometimes describing progress as with SSE
end-points). Upon failure responses will follow the same schema as the
`4xx` or `5xx` response (typically the `SzErrorResponse`)
servers:
- url: http://localhost:8250
- url: '{protocol}://{host}:{port}{path}'
variables:
protocol:
enum:
- http
- https
default: http
host:
default: localhost
port:
default: '8250'
path:
default: '/'
paths:
/:
get:
tags:
- Admin
summary: >-
Gets a root-level response from the server. This returns the same
as the `GET /heartbeat` endpoint for now, but may change in the future
to provide additional information.
description: |
The root operation can be used to ensure that the HTTP server is
indeed running, but this operation does not call upon the underlying
native Senzing API and therefore does not ensure the Senzing
initialization or configuration is valid.
operationId: root
responses:
'200':
description: Successful response
content:
application/json; charset=UTF-8:
schema:
$ref: '#/components/schemas/SzBaseResponse'
application/json:
schema:
$ref: '#/components/schemas/SzBaseResponse'
default:
schema:
$ref: '#/components/schemas/SzBaseResponse'
/heartbeat:
get:
tags:
- Admin
summary: >-
Gets a heartbeat from the server to make sure it is up and
running. The response will include the current timestamp.
description: |
The heartbeat operation can be used to ensure that the HTTP server is
indeed running, but this operation does not call upon the underlying
native Senzing API and therefore does not ensure the Senzing
initialization or configuration is valid.
operationId: heartbeat
responses:
'200':
description: Successful response
content:
application/json; charset=UTF-8:
schema:
$ref: '#/components/schemas/SzBaseResponse'
application/json:
schema:
$ref: '#/components/schemas/SzBaseResponse'
default:
schema:
$ref: '#/components/schemas/SzBaseResponse'
/specifications/open-api:
get:
tags:
- Admin
summary: >-
Gets this Open API specification to describe the API.
description: |
This operation can be used to obtain the Open API specification in JSON
format. The specification can either be the `data` field of a standard
response (i.e.: a response with a `meta`, `links` and `data` field) or
as raw format where the root JSON document is the Open API specification
JSON.
operationId: openApiSpecification
responses:
'200':
description: Successful response
content:
application/json; charset=UTF-8:
schema:
$ref: '#/components/schemas/SzOpenApiSpecResponseOrRawJson'
application/json:
schema:
$ref: '#/components/schemas/SzOpenApiSpecResponseOrRawJson'
default:
schema:
$ref: '#/components/schemas/SzOpenApiSpecResponseOrRawJson'
/license:
get:
tags:
- Admin
summary: Get the license information.
description: |
This operation will obtain license information for the underlying
native Senzing API.
operationId: license
parameters:
- $ref: '#/components/parameters/withRawQueryParam'
responses:
'200':
description: Successful response
content:
application/json; charset=UTF-8:
schema:
$ref: '#/components/schemas/SzLicenseResponse'
application/json:
schema:
$ref: '#/components/schemas/SzLicenseResponse'
default:
schema:
$ref: '#/components/schemas/SzLicenseResponse'
/version:
get:
tags:
- Admin
summary: Get the full version information.
description: |
This operation will obtain the full version information for the server.
Much of the same information is available in the `meta` segment of
every JSON response.
operationId: version
parameters:
- $ref: '#/components/parameters/withRawQueryParam'
responses:
'200':
description: Successful response
content:
application/json; charset=UTF-8:
schema:
$ref: '#/components/schemas/SzVersionResponse'
application/json:
schema:
$ref: '#/components/schemas/SzVersionResponse'
default:
schema:
$ref: '#/components/schemas/SzVersionResponse'
/server-info:
get:
tags:
- Admin
summary: Get info regarding the server's state and supported features.
description: |
This operation will provides server information describing the options
with which the server was started. This can be used to determine if
the admin operations are enabled or if only read operations may be
invoked. This also allows the client to know the maximum message size
for Web Sockets communication.
operationId: getServerInfo
responses:
'200':
description: Successful response
content:
application/json; charset=UTF-8:
schema:
$ref: '#/components/schemas/SzServerInfoResponse'
application/json:
schema:
$ref: '#/components/schemas/SzServerInfoResponse'
default:
schema:
$ref: '#/components/schemas/SzServerInfoResponse'
/attribute-types:
get:
tags:
- Config
summary: Get a list of configured attribute types.
description: |
This operation will provide a list of attribute types that are
configured. The client can filter the returned list of attribute types
using various query parameters.
operationId: getAttributeTypes
parameters:
- name: withInternal
description: >-
Set to `true` to include internal attribute types that are generally
not mapped by users. This defaults to false.
in: query
required: false
schema:
type: boolean
default: false
- name: attributeClass
description: >-
If specified, this filters the list of returned attribute types
to those of a specific attribute class. If not specified then no
filtering on attribute class is performed and all are returned.
in: query
required: false
schema:
$ref: '#/components/schemas/SzAttributeClass'
- name: featureType
description: >-
If specified, this filters the list of returned attribute types
to those belonging to a specific feature type. If not specified
then no filtering on feature type is performed and all are returned.
in: query
required: false
schema:
type: string
default: null
examples:
NAME:
value: NAME
ADDRESS:
value: ADDRESS
PHONE:
value: PHONE
DOB:
value: DOB
EMAIL:
value: EMAIL
EMPLOYER:
value: EMPLOYER
DRLIC:
value: DRLIC
SSN:
value: SSN
NATIONAL_ID:
value: NATIONAL_ID
PASSPORT:
value: PASSPORT
CITIZENSHIP:
value: CITIZENSHIP
NATIONALITY:
value: NATIONALITY
- $ref: '#/components/parameters/withRawQueryParam'
responses:
'200':
description: Successful response
content:
application/json; charset=UTF-8:
schema:
$ref: '#/components/schemas/SzAttributeTypesResponse'
application/json:
schema:
$ref: '#/components/schemas/SzAttributeTypesResponse'
default:
schema:
$ref: '#/components/schemas/SzAttributeTypesResponse'
'500':
$ref: '#/components/responses/ServerError'
/attribute-types/{attributeCode}:
get:
tags:
- Config
summary: Get the attribute type identified by the attribute code.
description: |
This operation will provide a description of a single attribute type for
the specified attribute type code.
operationId: getAttributeType
parameters:
- name: attributeCode
description: >-
The attribute code that uniquely identifies the attribute type.
in: path
required: true
schema:
type: string
examples:
NAME_ORG:
value: NAME_ORG
NAME_FULL:
value: NAME_FULL
NAME_LAST:
value: NAME_LAST
NAME_FIRST:
value: NAME_FIRST
NAME_MIDDLE:
value: NAME_MIDDLE
NAME_SUFFIX:
value: NAME_SUFFIX
ADDR_FULL:
value: ADDR_FULL
ADDR_LINE1:
value: ADDR_LINE1
ADDR_CITY:
value: ADDR_CITY
ADDR_STATE:
value: ADDR_STATE
ADDR_POSTAL_CODE:
value: ADDR_POSTAL_CODE
ADDR_COUNTRY:
value: ADDR_COUNTRY
PHONE_NUMBER:
value: PHONE_NUMBER
EMAIL_ADDRESS:
value: EMAIL_ADDRESS
DATE_OF_BIRTH:
value: DATE_OF_BIRTH
DRIVERS_LICENSE_NUMBER:
value: DRIVERS_LICENSE_NUMBER
SSN_NUMBER:
value: SSN_NUMBER
NATIONAL_ID_NUMBER:
value: NATIONAL_ID_NUMBER
PASSPORT_NUMBER:
value: PASSPORT_NUMBER
PASSPORT_COUNTRY:
value: PASSPORT_COUNTRY
- $ref: '#/components/parameters/withRawQueryParam'
responses:
'200':
description: Successful response
content:
application/json; charset=UTF-8:
schema:
$ref: '#/components/schemas/SzAttributeTypeResponse'
application/json:
schema:
$ref: '#/components/schemas/SzAttributeTypeResponse'
default:
schema:
$ref: '#/components/schemas/SzAttributeTypeResponse'
'404':
description: >-
If the specified attribute code is not recognized.
content:
application/json; charset=UTF-8:
schema:
$ref: '#/components/schemas/SzErrorResponse'
application/json:
schema:
$ref: '#/components/schemas/SzErrorResponse'
default:
schema:
$ref: '#/components/schemas/SzErrorResponse'
'500':
$ref: '#/components/responses/ServerError'
/data-sources:
get:
tags:
- Config
summary: Get a list of configured data sources.
description: |
This operation will provide a list of data source codes as well as a
list of detailed descriptions of each data source.
operationId: getDataSources
parameters:
- $ref: '#/components/parameters/withRawQueryParam'
responses:
'200':
description: Successful response
content:
application/json; charset=UTF-8:
schema:
$ref: '#/components/schemas/SzDataSourcesResponse'
application/json:
schema:
$ref: '#/components/schemas/SzDataSourcesResponse'
default:
schema:
$ref: '#/components/schemas/SzDataSourcesResponse'
'500':
$ref: '#/components/responses/ServerError'
post:
tags:
- Config
summary: >-
Adds one or more new data sources to the current default configuration
and reinitializes with the newly modified configuration.
description: |
Obtains the current default configuration, adds the specified data
sources and sets the modified configuration as the new default
configuration -- returning the set of all configured data sources.
**NOTE:** This operation may not be allowed. Some conditions that
might cause this operation to be forbidden are:
1. The server does not have administrative functions enabled.
2. The server is running in "read-only" mode.
3. The server is started with a file-based configuration specified
by `G2CONFIGFILE` property in the initialziation parameters.
4. The server is started with a specific configuration ID and
therefore cannot modify the configuration and change to a new
configuration.
operationId: addDataSources
parameters:
- name: dataSource
description: |
The multi-valued query parameter where each value is a data source
code identifying data sources to be created. If a data source code
is specified only via this parameter then the data source ID is
generated by the API server -- which is usually fine. If you want
to specify the data source ID, then use the request body instead.
in: query
required: false
style: form
explode: true
schema:
type: array
items:
type: string
examples:
singleDataSourceExample:
summary: Specify a single data source
value: [ PARTNERS ]
multipleDataSourcesExample:
summary: Specify multiple data sources
value: [ PARTNERS, VIPS ]
- $ref: '#/components/parameters/withRawQueryParam'
requestBody:
description: |
The optional request body to describe the data sources to be created.
This can be specified as an alternative to the `dataSource` parameter
or in addition to it. The content can be an array of string data
source codes or `SzDataSource` objects. It may also be a plain-text
unquoted string that is simply a single data source code.
See the various request body examples.
required: false
content:
application/json; charset=UTF-8:
schema:
oneOf:
- type: array
items:
$ref: '#/components/schemas/SzDataSourceDescriptor'
- $ref: '#/components/schemas/SzDataSourceDescriptor'
examples:
chooseExample:
$ref: '#/components/examples/chooseExample'
noDataSources:
$ref: '#/components/examples/noDataSources'
singleSourceString:
$ref: '#/components/examples/singleDataSourceString'
singleSourceStringArray:
$ref: '#/components/examples/singleDataSourceStringArray'
multipleSourcesStringArray:
$ref: '#/components/examples/multipleDataSourcesStringArray'
singleSourceObjectNoId:
$ref: '#/components/examples/singleDataSourceObjectNoId'
singleSourceObjectArrayNoId:
$ref: '#/components/examples/singleDataSourceObjectArrayNoId'
singleSourceObjectWithId:
$ref: '#/components/examples/singleDataSourceObjectWithId'
singleSourceObjectArrayWithId:
$ref: '#/components/examples/singleDataSourceObjectArrayWithId'
multipleSourcesObjectArrayWithId:
$ref: '#/components/examples/multipleDataSourcesObjectArrayWithId'
multipleSourcesMixed:
$ref: '#/components/examples/multipleDataSourcesMixed'
application/json:
schema:
oneOf:
- type: array
items:
$ref: '#/components/schemas/SzDataSourceDescriptor'
- $ref: '#/components/schemas/SzDataSourceDescriptor'
examples:
chooseExample:
$ref: '#/components/examples/chooseExample'
noDataSources:
$ref: '#/components/examples/noDataSources'
singleSourceString:
$ref: '#/components/examples/singleDataSourceString'
singleSourceStringArray:
$ref: '#/components/examples/singleDataSourceStringArray'
multipleSourcesStringArray:
$ref: '#/components/examples/multipleDataSourcesStringArray'
singleSourceObjectNoId:
$ref: '#/components/examples/singleDataSourceObjectNoId'
singleSourceObjectArrayNoId:
$ref: '#/components/examples/singleDataSourceObjectArrayNoId'
singleSourceObjectWithId:
$ref: '#/components/examples/singleDataSourceObjectWithId'
singleSourceObjectArrayWithId:
$ref: '#/components/examples/singleDataSourceObjectArrayWithId'
multipleSourcesObjectArrayWithId:
$ref: '#/components/examples/multipleDataSourcesObjectArrayWithId'
multipleSourcesMixed:
$ref: '#/components/examples/multipleDataSourcesMixed'
text/plain; charset=UTF=8:
schema:
type: string
examples:
chooseExample:
$ref: '#/components/examples/chooseExample'
noDataSources:
$ref: '#/components/examples/noDataSources'
singleSourceUnquotedString:
$ref: '#/components/examples/singleDataSourceUnquotedString'
text/plain:
schema:
type: string
examples:
chooseExample:
$ref: '#/components/examples/chooseExample'
noDataSources:
$ref: '#/components/examples/noDataSources'
singleSourceUnquotedString:
$ref: '#/components/examples/singleDataSourceUnquotedString'
responses:
'200':
description: Successful response
content:
application/json; charset=UTF-8:
schema:
$ref: '#/components/schemas/SzDataSourcesResponse'
application/json:
schema:
$ref: '#/components/schemas/SzDataSourcesResponse'
default:
schema:
$ref: '#/components/schemas/SzDataSourcesResponse'
'403':
description: >-
If the server was started in read-only mode and so the operation
is not permitted. This is also returned if the server was started
with a file-based configuration rather than a configuration stored
in the database (i.e.: `G2CONFIGFILE` is specified in an INI file)
content:
application/json; charset=UTF-8:
schema:
$ref: '#/components/schemas/SzErrorResponse'
application/json:
schema:
$ref: '#/components/schemas/SzErrorResponse'
default:
schema:
$ref: '#/components/schemas/SzErrorResponse'
'500':
$ref: '#/components/responses/ServerError'
/data-sources/{dataSourceCode}:
get:
tags:
- Config
summary: Gets the details on the specified data source.
description: |
This operation provides details on a specific data source identified
by the data source code in the requested path.
operationId: getDataSource
parameters:
- $ref: '#/components/parameters/dataSourceCodePathParam'
- $ref: '#/components/parameters/withRawQueryParam'
responses:
'200':
description: Successful response
content:
application/json; charset=UTF-8:
schema:
$ref: '#/components/schemas/SzDataSourceResponse'
application/json:
schema:
$ref: '#/components/schemas/SzDataSourceResponse'
default:
schema:
$ref: '#/components/schemas/SzDataSourceResponse'
'500':
$ref: '#/components/responses/ServerError'
/configs/active:
get:
tags:
- Config
summary: >-
Gets the current active configuration as raw JSON, no interpretation.
description: |
This operation returns the JSON configuration that is currently being
used by the native Senzing API initialized by the running server. No
processing or interpretation is performed on the JSON. This may differ
from the registered "default configuration" which the server would
use if no other configuration were provided.
operationId: getActiveConfig
responses:
'200':
description: Successful response
content:
application/json; charset=UTF-8:
schema:
$ref: '#/components/schemas/SzConfigResponse'
application/json:
schema:
$ref: '#/components/schemas/SzConfigResponse'
default:
schema:
$ref: '#/components/schemas/SzConfigResponse'
'500':
$ref: '#/components/responses/ServerError'
/configs/template:
get:
tags:
- Config
summary: >-
Gets the base template configuration as raw JSON, no interpretation.
This is the initial configuration for a new repository.
description: |
This operation returns a template base JSON configuration that can be
modified or customized by the caller. The returned template is
according to the underlying native Senzing API and may change between
version upgrades to Senzing. No processing or interpretation is
performed on the JSON. This will likely differ from the registered
"default configuration" or currently "active configuration" being used
by the running API server.
operationId: getTemplateConfig
responses:
'200':
description: Successful response
content:
application/json; charset=UTF-8:
schema:
$ref: '#/components/schemas/SzConfigResponse'
application/json:
schema:
$ref: '#/components/schemas/SzConfigResponse'
default:
schema:
$ref: '#/components/schemas/SzConfigResponse'
'500':
$ref: '#/components/responses/ServerError'
/data-sources/{dataSourceCode}/records:
post:
tags:
- Entity Data
summary: >-
Load a new record specified in a data source with either an
auto-generated record ID or a `RECORD_ID` specified in the payload.
description: |
This operation loads a single record using the data source identified by
the data source code in the request path. The provided record in the
request body is described in JSON using the
[Senzing Generic Entity Specification](https://senzing.zendesk.com/hc/en-us/articles/231925448-Generic-Entity-Specification).
The provided record may contain a `RECORD_ID` to identify it uniquely
among other records in the same data source, but if it does not then a
record ID will be automatically generated. The record ID is returned
as part of the response.
**NOTE:** The `withInfo` parameter will return the entity resolution
info pertaining to the load. This can be used to update a search index
or external data mart. Additionally, Senzing API Server provides a
means to have the "raw" entity resolution info (from the underlying
native Senzing API) automatically sent to a messaging service such as
those provided by Amazon SQS, Rabbit MQ or Kafka regardless of the
`withInfo` query parameter value.
operationId: addRecordWithReturnedRecordId
parameters:
- $ref: '#/components/parameters/dataSourceCodePathParam'
- $ref: '#/components/parameters/loadIdQueryParam'
- $ref: '#/components/parameters/withInfoQueryParam'
- $ref: '#/components/parameters/withRawQueryParam'
requestBody:
description: >-
The record data as JSON. The format of the JSON is described
by the [Senzing Generic Entity Specification](https://senzing.zendesk.com/hc/en-us/articles/231925448-Generic-Entity-Specification).
The specified JSON may include or exclude the DATA_SOURCE field.
It will be added if excluded. If included, it must match the
data source code in the path parameters.
required: true
content:
application/json; charset=UTF-8:
schema:
type: object
additionalProperties: {}
examples:
simpleFlatRecordExample:
$ref: '#/components/examples/simpleFlatRecordExample'
complexFlatRecordExample:
$ref: '#/components/examples/complexFlatRecordExample'
simpleHierarchicalRecordExample:
$ref: '#/components/examples/simpleHierarchicalRecordExample'
complexHierarchicalRecordExample:
$ref: '#/components/examples/complexHierarchicalRecordExample'
application/json:
schema:
type: object
additionalProperties: {}
examples:
simpleFlatRecordExample:
$ref: '#/components/examples/simpleFlatRecordExample'
complexFlatRecordExample:
$ref: '#/components/examples/complexFlatRecordExample'
simpleHierarchicalRecordExample:
$ref: '#/components/examples/simpleHierarchicalRecordExample'
complexHierarchicalRecordExample:
$ref: '#/components/examples/complexHierarchicalRecordExample'
responses:
'200':
description: Successful response
content:
application/json; charset=UTF-8:
schema:
$ref: '#/components/schemas/SzLoadRecordResponse'
application/json:
schema:
$ref: '#/components/schemas/SzLoadRecordResponse'
default:
schema:
$ref: '#/components/schemas/SzLoadRecordResponse'
'400':
description: >-
If the specified data contains a DATA_SOURCE field that is not
consistent with the dataSourceCode in the path of the request
or if the specified content body is not formatted as JSON.
content:
application/json; charset=UTF-8:
schema:
$ref: '#/components/schemas/SzErrorResponse'
application/json:
schema:
$ref: '#/components/schemas/SzErrorResponse'
default:
schema:
$ref: '#/components/schemas/SzErrorResponse'
'403':
description: >-
If the server was started in read-only mode and so the operation
is not permitted.
content:
application/json; charset=UTF-8:
schema:
$ref: '#/components/schemas/SzErrorResponse'
application/json:
schema:
$ref: '#/components/schemas/SzErrorResponse'
default:
schema:
$ref: '#/components/schemas/SzErrorResponse'
'404':
description: >-
If the specified data source code in the path is not recognized.
content:
application/json; charset=UTF-8:
schema:
$ref: '#/components/schemas/SzErrorResponse'
application/json:
schema:
$ref: '#/components/schemas/SzErrorResponse'
default:
schema:
$ref: '#/components/schemas/SzErrorResponse'
'500':
$ref: '#/components/responses/ServerError'
/data-sources/{dataSourceCode}/records/{recordId}:
get:
tags:
- Entity Data
summary: Get an entity record by data source and record ID.
description: |
Gets details on a specific entity record identified by the data source
code and record ID specified in the request path.
operationId: getRecord
parameters:
- $ref: '#/components/parameters/dataSourceCodePathParam'
- $ref: '#/components/parameters/recordIdPathParam'
- $ref: '#/components/parameters/withRawQueryParam'
responses:
'200':
description: Successul response
content:
application/json; charset=UTF-8:
schema:
$ref: '#/components/schemas/SzRecordResponse'
application/json:
schema:
$ref: '#/components/schemas/SzRecordResponse'
default:
schema:
$ref: '#/components/schemas/SzRecordResponse'
'404':
description: If data source or record ID are not found.
content:
application/json; charset=UTF-8:
schema:
$ref: '#/components/schemas/SzErrorResponse'
application/json:
schema:
$ref: '#/components/schemas/SzErrorResponse'
default:
schema:
$ref: '#/components/schemas/SzErrorResponse'
'500':
$ref: '#/components/responses/ServerError'
put:
tags:
- Entity Data
summary: >-
Load a new record or replace a record in a data source with a
specific record ID.
description: |
This operation loads a single record using the data source identified by
the data source code in the request path. The record will be identified
uniquely within the data source by the record ID provided in the request
path. The provided record in the request body is described in JSON
using the [Senzing Generic Entity Specification](https://senzing.zendesk.com/hc/en-us/articles/231925448-Generic-Entity-Specification).
The provided JSON record may omit the `RECORD_ID`, but if it contains a
`RECORD_ID` then it **must** match the record ID provided on the request
path. The record ID is returned as part of the response.
**NOTE:** The `withInfo` parameter will return the entity resolution
info pertaining to the load. This can be used to update a search index
or external data mart. Additionally, Senzing API Server provides a
means to have the "raw" entity resolution info (from the underlying
native Senzing API) automatically sent to a messaging service such as
those provided by Amazon SQS, Rabbit MQ or Kafka regardless of the
`withInfo` query parameter value.
operationId: addRecord
parameters:
- $ref: '#/components/parameters/dataSourceCodePathParam'
- $ref: '#/components/parameters/recordIdPathParam'
- $ref: '#/components/parameters/loadIdQueryParam'
- $ref: '#/components/parameters/withInfoQueryParam'
- $ref: '#/components/parameters/withRawQueryParam'
requestBody:
description: >-
The record data as JSON. The format of the JSON is described
by the [Senzing Generic Entity Specification](https://senzing.zendesk.com/hc/en-us/articles/231925448-Generic-Entity-Specification).
The specified JSON may include or exclude the DATA_SOURCE and
RECORD_ID fields. Any excluded field will be added to the JSON
accordingly. Any included field in the JSON, must match the
respective path parameter for data source code or record ID.
required: true
content:
application/json; charset=UTF-8:
schema:
type: object
additionalProperties: {}
examples:
simpleFlatRecordExample:
$ref: '#/components/examples/simpleFlatRecordExample'
complexFlatRecordExample:
$ref: '#/components/examples/complexFlatRecordExample'
simpleHierarchicalRecordExample:
$ref: '#/components/examples/simpleHierarchicalRecordExample'
complexHierarchicalRecordExample:
$ref: '#/components/examples/complexHierarchicalRecordExample'
application/json:
schema:
type: object
additionalProperties: {}
examples:
simpleFlatRecordExample:
$ref: '#/components/examples/simpleFlatRecordExample'
complexFlatRecordExample:
$ref: '#/components/examples/complexFlatRecordExample'
simpleHierarchicalRecordExample:
$ref: '#/components/examples/simpleHierarchicalRecordExample'
complexHierarchicalRecordExample:
$ref: '#/components/examples/complexHierarchicalRecordExample'
responses:
'200':
description: Successful response
content:
application/json; charset=UTF-8:
schema:
$ref: '#/components/schemas/SzLoadRecordResponse'
application/json:
schema:
$ref: '#/components/schemas/SzLoadRecordResponse'
default:
schema:
$ref: '#/components/schemas/SzLoadRecordResponse'
'400':
description: >-
If the specified data contains a DATA_SOURCE field that is not
consistent with the dataSourceCode in the path of the request
or if the specified content body is not formatted as JSON.
content:
application/json; charset=UTF-8:
schema:
$ref: '#/components/schemas/SzErrorResponse'
application/json:
schema:
$ref: '#/components/schemas/SzErrorResponse'
default:
schema:
$ref: '#/components/schemas/SzErrorResponse'
'403':
description: >-
If the server was started in read-only mode and so the operation
is not permitted.
content:
application/json; charset=UTF-8:
schema:
$ref: '#/components/schemas/SzErrorResponse'
application/json:
schema:
$ref: '#/components/schemas/SzErrorResponse'
default:
schema:
$ref: '#/components/schemas/SzErrorResponse'
'404':
description: >-
If the specified data source code in the path is not recognized.
content:
application/json; charset=UTF-8:
schema:
$ref: '#/components/schemas/SzErrorResponse'
application/json:
schema:
$ref: '#/components/schemas/SzErrorResponse'
default:
schema:
$ref: '#/components/schemas/SzErrorResponse'
'500':
$ref: '#/components/responses/ServerError'
delete:
tags:
- Entity Data
summary: Delete a record given its data source and record ID.
description: |
This operation deletes a single record identified by the data source
code and record ID in the request path.
**NOTE:** The `withInfo` parameter will return the entity resolution
info pertaining to the delete. This can be used to update a search
index or external data mart. Additionally, Senzing API Server provides
a means to have the "raw" entity resolution info (from the underlying
native Senzing API) automatically sent to a messaging service such as
those provided by Amazon SQS, Rabbit MQ or Kafka regardless of the
`withInfo` query parameter value.
operationId: deleteRecord
parameters:
- $ref: '#/components/parameters/dataSourceCodePathParam'
- $ref: '#/components/parameters/recordIdPathParam'
- $ref: '#/components/parameters/loadIdQueryParam'
- $ref: '#/components/parameters/withInfoQueryParam'
- $ref: '#/components/parameters/withRawQueryParam'
responses:
'200':
description: default response
content:
application/json; charset=UTF-8:
schema:
$ref: '#/components/schemas/SzDeleteRecordResponse'
application/json:
schema:
$ref: '#/components/schemas/SzDeleteRecordResponse'
default:
schema:
$ref: '#/components/schemas/SzDeleteRecordResponse'
'404':
description: If data source is not found.
content:
application/json; charset=UTF-8:
schema:
$ref: '#/components/schemas/SzErrorResponse'
application/json:
schema:
$ref: '#/components/schemas/SzErrorResponse'
default:
schema:
$ref: '#/components/schemas/SzErrorResponse'
'500':
$ref: '#/components/responses/ServerError'
/data-sources/{dataSourceCode}/records/{recordId}/reevaluate:
post:
tags:
- Entity Data
summary: Reevaluate a record identified by a data source and record ID.
description: |
This operation reevaluates a single record identified by the data source
code and record ID in the request path.
**NOTE:** The `withInfo` parameter will return the entity resolution
info pertaining to the reevaluation. This can be used to update a
search index or external data mart. Additionally, Senzing API Server
provides a means to have the "raw" entity resolution info (from the
underlying native Senzing API) automatically sent to a messaging service
such as those provided by Amazon SQS, Rabbit MQ or Kafka regardless of
the `withInfo` query parameter value.
operationId: reevaluateRecord
parameters:
- $ref: '#/components/parameters/dataSourceCodePathParam'
- $ref: '#/components/parameters/recordIdPathParam'
- $ref: '#/components/parameters/withInfoQueryParam'
- $ref: '#/components/parameters/withRawQueryParam'
responses:
'200':
description: default response
content:
application/json; charset=UTF-8:
schema:
$ref: '#/components/schemas/SzReevaluateResponse'
application/json:
schema:
$ref: '#/components/schemas/SzReevaluateResponse'
default:
schema:
$ref: '#/components/schemas/SzReevaluateResponse'
'404':
description: If data source or record ID are not found.
content:
application/json; charset=UTF-8:
schema:
$ref: '#/components/schemas/SzErrorResponse'
application/json:
schema:
$ref: '#/components/schemas/SzErrorResponse'
default:
schema:
$ref: '#/components/schemas/SzErrorResponse'
'500':
$ref: '#/components/responses/ServerError'
/data-sources/{dataSourceCode}/records/{recordId}/entity:
get:
tags:
- Entity Data
summary: Get a resolved entity by data source and record ID.
description: |
Gets the details on a resolved entity that contains the record
identified by the data source code and record ID in the specified
request path.
operationId: getEntityByRecordId
parameters:
- $ref: '#/components/parameters/dataSourceCodePathParam'
- $ref: '#/components/parameters/recordIdPathParam'
- $ref: '#/components/parameters/detailLevelQueryParam'
- $ref: '#/components/parameters/featureModeQueryParam'
- $ref: '#/components/parameters/withFeatureStatsQueryParam'
- $ref: '#/components/parameters/withInternalFeaturesQueryParam'
- $ref: '#/components/parameters/forceMinimalQueryParam'
- $ref: '#/components/parameters/withRelatedQueryParam'
- $ref: '#/components/parameters/withRawQueryParam'
responses:
'200':
description: default response
content:
application/json; charset=UTF-8:
schema:
$ref: '#/components/schemas/SzEntityResponse'
application/json:
schema:
$ref: '#/components/schemas/SzEntityResponse'
default:
schema:
$ref: '#/components/schemas/SzEntityResponse'
'404':
description: If data source or record ID are not found.
content:
application/json; charset=UTF-8:
schema:
$ref: '#/components/schemas/SzErrorResponse'
application/json:
schema:
$ref: '#/components/schemas/SzErrorResponse'
default:
schema:
$ref: '#/components/schemas/SzErrorResponse'
'500':
$ref: '#/components/responses/ServerError'
/data-sources/{dataSourceCode}/records/{recordId}/entity/why:
get:
tags:
- Entity Data
summary: >-
Returns an analysis of why the entity for the record with the
respective data source code and record ID resolved.
description: |
This operation provides an anlysis of why the records in an entity
resolved. The subject entity is the one containing the record
identified by the data source code and record ID in the request path.
operationId: whyEntityByRecordID
parameters:
- $ref: '#/components/parameters/dataSourceCodePathParam'
- $ref: '#/components/parameters/recordIdPathParam'
- $ref: '#/components/parameters/withRelationshipsQueryParam'
- $ref: '#/components/parameters/whyWithFeatureStatsQueryParam'
- $ref: '#/components/parameters/whyWithInternalFeaturesQueryParam'
- $ref: '#/components/parameters/detailLevelQueryParam'
- $ref: '#/components/parameters/featureModeQueryParam'
- $ref: '#/components/parameters/forceMinimalQueryParam'
- $ref: '#/components/parameters/withRawQueryParam'
responses:
'200':
description: Successul response
content:
application/json; charset=UTF-8:
schema:
$ref: '#/components/schemas/SzWhyEntityResponse'
application/json:
schema:
$ref: '#/components/schemas/SzWhyEntityResponse'
default:
schema:
$ref: '#/components/schemas/SzWhyEntityResponse'
'404':
description: If data source or record ID are not found.
content:
application/json; charset=UTF-8:
schema:
$ref: '#/components/schemas/SzErrorResponse'
application/json:
schema:
$ref: '#/components/schemas/SzErrorResponse'
default:
schema:
$ref: '#/components/schemas/SzErrorResponse'
'500':
$ref: '#/components/responses/ServerError'
/data-sources/{dataSourceCode}/records/{recordId}/entity/how:
get:
tags:
- Entity Data
summary: >-
Returns an analysis of how the entity for the record with the
respective data source code and record ID resolved.
description: |
This operation provides an anlysis of how the records in an entity
resolved. The subject entity is the one containing the record
identified by the data source code and record ID in the request path.
operationId: howEntityByRecordID
parameters:
- $ref: '#/components/parameters/dataSourceCodePathParam'
- $ref: '#/components/parameters/recordIdPathParam'
- $ref: '#/components/parameters/withRawQueryParam'
responses:
'200':
description: Successul response
content:
application/json; charset=UTF-8:
schema:
$ref: '#/components/schemas/SzHowEntityResponse'
application/json:
schema:
$ref: '#/components/schemas/SzHowEntityResponse'
default:
schema:
$ref: '#/components/schemas/SzHowEntityResponse'
'404':
description: If data source or record ID are not found.
content:
application/json; charset=UTF-8:
schema:
$ref: '#/components/schemas/SzErrorResponse'
application/json:
schema:
$ref: '#/components/schemas/SzErrorResponse'
default:
schema:
$ref: '#/components/schemas/SzErrorResponse'
'500':
$ref: '#/components/responses/ServerError'
/entities:
get:
tags:
- Entity Data
summary: >-
Search for entities that would resolve to or relate to the provided
entity features.
description: |
This operation finds all entities that would resolve or relate to the
search candidate features specified by the `attr` and/or `attrs` query
parameters. The search candidate features are treated as if they
belonged to an inbound record being loaded, thus the attribute names are
given by the [Senzing Generic Entity Specification](https://senzing.zendesk.com/hc/en-us/articles/231925448-Generic-Entity-Specification).
If including the search candidate features as query parameters presents
privacy concerns due to sensitivity of the data, they can alternately
be sent in the request body using the `POST /search-entities` endpoint.
**NOTE:** This operation differs from a keyword search in that it uses
deterministic entity resolution rules to determine the result set. This
means that features that are considered "generic" (i.e.: overly common)
will be ignored just as they are during entity resolution and will not
yield search results. For example, searching on a gender by itself will
return no results rather than half of all entities. Similarly, a phone
number such as `555-1212` may yield no results.
operationId: searchEntitiesByGet
parameters:
- name: attrs
description: |
The JSON record describing the entity attributes in the same
format as how an entity record is loaded. The specified
attributes are treated as a hypothetical record being loaded,
and the result is anything that would have matched or related
to it. Here are some examples of encoding this parameter:
- **JavaScript Example**
```javascript
var searchCriteria = {
"NAME_FULL": "Joe Schmoe",
"DATE_OF_BIRTH": "03-SEP-1987"
};
var searchAttrs = JSON.stringify(searchCriteria);
var urlPath = "/entities?attrs=" + encodeURIComponent(searchAttrs);
```
- **Java Example**
```java
JsonObjectBuilder builder = Json.createObjectBuilder();
builder.add("NAME_FULL", "Joe Schmoe");
builder.add("DATE_OF_BIRTH", "03-SEP-1987");
JsonObject searchCriteria = builder.build();
String searchAttrs = searchCriteria.toString();
String encodedAttrs = URLEncoder.encode(searchAttrs, "UTF-8");
String urlPath = "/entities?attrs=" + encodedAttrs;
```
In both of the above examples the `urlPath` variable is set to:
```json
/entities?attrs=%7B%22NAME_FULL%22%3A%22Joe%20Schmoe%22%2C%22DATE_OF_BIRTH%22%3A%2203-SEP-1987%22%7D
```
in: query
required: false
schema:
type: string
examples:
notSpecifiedExample:
summary: Not specified
value:
ssnExample:
$ref: '#/components/examples/ssnSearchExample'
nameAndBirthDateExample:
$ref: '#/components/examples/nameAndBirthDateSearchExample'
nameAndAddressExample:
$ref: '#/components/examples/nameAndAddressSearchExample'
- name: attr
description: >-
Either the `attrs` or `attr` parameter is required, **however** if
the `attrs` parameter is provided it takes precedence and the `attr`
parameter will be ignored. If you are using this API programmatically
then you should typically use the `attrs` parameter. But when
manually constructing a URL in the browser address bar, in a
command-line tool like `curl` or in a REST client browser extension
for debugging or testing purposes, encoding that JSON value can be
unwieldy. This parameter (which is multi-valued) lets you specify
colon-delimited strings that are prefixed with the JSON property name
and suffixed with the value. For example, `NAME_FIRST:Joe` (url
encoded of course). This side-steps the need to URL-encode the
structural JSON characters and usually means you need only URL-encode
basic characters like colons (`%3A`) and spaces (`%20`). The JSON
constructed using this parameter is obviously flat. If you want to
group properties together by their "usage type" (e.g.: `NAME_TYPE`,
`PHONE_TYPE` or `ADDRESS_TYPE`) then you would **also** prefix with
the type (e.g.: `HOME_PHONE_NUMBER:702-555-1212`).
in: query
required: false
schema:
type: array
items:
type: string
examples:
notSpecifiedExample:
summary: Not specified
value:
basicExample:
summary: Basic name and date of birth example
value: [ "NAME_FULL:Joe Schmoe", "DATE_OF_BIRTH:03-SEP-1987"]
basicArrayExample:
summary: Multiple phone numbers without usage types
value: [ "PHONE_NUMBER:702-555-1212", "PHONE_NUMBER:702-555-1414" ]
basicUsageTypeExample:
summary: Multiple phone numbers with usage types
value: [ "HOME_PHONE_NUMBER:702-555-1212", "WORK_PHONE_NUMBER:702-555-1414" ]
complexUsageTypeExample:
summary: Multiple address search with usage types for grouping
value: [
"HOME_ADDR_LINE1:101 Main Street",
"HOME_ADDR_CITY:Los Angeles",
"HOME_ADDR_STATE:CA",
"WORK_ADDR_LINE1:105 Colorado Blvd",
"WORK_ADDR_CITY:Pasadena",
"WORK_ADDR_STATE:CA"
]
- $ref: '#/components/parameters/includeOnlyQueryParam'
- $ref: '#/components/parameters/detailLevelQueryParam'
- $ref: '#/components/parameters/featureModeQueryParam'
- $ref: '#/components/parameters/withFeatureStatsQueryParam'
- $ref: '#/components/parameters/withInternalFeaturesQueryParam'
- $ref: '#/components/parameters/forceMinimalQueryParam'
- $ref: '#/components/parameters/withRelationshipsQueryParam'
- $ref: '#/components/parameters/withRawQueryParam'
responses:
'200':
description: Successful response
content:
application/json; charset=UTF-8:
schema:
$ref: '#/components/schemas/SzAttributeSearchResponse'
application/json:
schema:
$ref: '#/components/schemas/SzAttributeSearchResponse'
default:
schema:
$ref: '#/components/schemas/SzAttributeSearchResponse'
'400':
description: >-
If the specified attrs parameter is missing or is not formatted
properly.
content:
application/json; charset=UTF-8:
schema:
$ref: '#/components/schemas/SzErrorResponse'
application/json:
schema:
$ref: '#/components/schemas/SzErrorResponse'
default:
schema:
$ref: '#/components/schemas/SzErrorResponse'
'500':
$ref: '#/components/responses/ServerError'
/search-entities:
post:
tags:
- Entity Data
summary: >-
Search for entities that would match or relate to the provided
entity features. This is similar to `GET /entities` except it requires
the caller to specify the search criteria as JSON in the request body.
description: |
This operation finds all entities that would resolve or relate to the
search candidate features specified in JSON request body. The search
candidate features are treated as if they belonged to an inbound record
being loaded. The JSON format of the request body is defined by the
[Senzing Generic Entity Specification](https://senzing.zendesk.com/hc/en-us/articles/231925448-Generic-Entity-Specification).
This operation is similar to the `GET /entities` endpoint in function
except that it provides a means to avoid specifying potentially
sensitive data in query parameters, but instead in the request body.
**NOTE:** This operation differs from a keyword search in that it uses
deterministic entity resolution rules to determine the result set. This
means that features that are considered "generic" (i.e.: overly common)
will be ignored just as they are during entity resolution and will not
yield search results. For example, searching on a gender by itself will
return no results rather than half of all entities. Similarly, a phone
number such as `555-1212` may yield no results.
operationId: searchEntitiesByPost
parameters:
- $ref: '#/components/parameters/includeOnlyQueryParam'
- $ref: '#/components/parameters/detailLevelQueryParam'
- $ref: '#/components/parameters/featureModeQueryParam'
- $ref: '#/components/parameters/withFeatureStatsQueryParam'
- $ref: '#/components/parameters/withInternalFeaturesQueryParam'
- $ref: '#/components/parameters/forceMinimalQueryParam'
- $ref: '#/components/parameters/withRelationshipsQueryParam'
- $ref: '#/components/parameters/withRawQueryParam'
requestBody:
description: >-
The JSON record describing the entity attributes in the same format as
how an entity record is loaded The format of the JSON is described by
the [Senzing Generic Entity Specification](https://senzing.zendesk.com/hc/en-us/articles/231925448-Generic-Entity-Specification).
The specified attributes are treated as a hypothetical record being
loaded, and the result is anything that would have matched or related
to it.
required: true
content:
application/json; charset=UTF-8:
schema:
type: object
additionalProperties: {}
examples:
ssnExample:
$ref: '#/components/examples/ssnSearchExample'
nameAndBirthDateExample:
$ref: '#/components/examples/nameAndBirthDateSearchExample'
nameAndAddressExample:
$ref: '#/components/examples/nameAndAddressSearchExample'
application/json:
schema:
type: object
additionalProperties: {}
examples:
ssnExample:
$ref: '#/components/examples/ssnSearchExample'
nameAndBirthDateExample:
$ref: '#/components/examples/nameAndBirthDateSearchExample'
nameAndAddressExample:
$ref: '#/components/examples/nameAndAddressSearchExample'
responses:
'200':
description: Successful response
content:
application/json; charset=UTF-8:
schema:
$ref: '#/components/schemas/SzAttributeSearchResponse'
application/json:
schema:
$ref: '#/components/schemas/SzAttributeSearchResponse'
default:
schema:
$ref: '#/components/schemas/SzAttributeSearchResponse'
'400':
description: >-
If the specified attrs parameter is missing or is not formatted
properly.
content:
application/json; charset=UTF-8:
schema:
$ref: '#/components/schemas/SzErrorResponse'
application/json:
schema:
$ref: '#/components/schemas/SzErrorResponse'
default:
schema:
$ref: '#/components/schemas/SzErrorResponse'
'500':
$ref: '#/components/responses/ServerError'
/entities/{entityId}:
get:
tags:
- Entity Data
summary: Get a resolved entity by entity ID.
description: |
Gets the details on a resolved entity that is identified by the entity
ID specified in the request path.
**NOTE:** Bear in mind that entity ID's are transient and may be
recycled or repurposed as new records are loaded and entities resolve,
unresolve and re-resolve. An alternative way to identify an entity is
by one of its constituent records using
`GET /data-sources/{dataSourceCode}/records/{recordId}/entity`.
operationId: getEntityByEntityId
parameters:
- name: entityId
description: >-
The unique numeric ID that identifies that entity being requested.
in: path
required: true
schema:
type: integer
format: int64
- $ref: '#/components/parameters/detailLevelQueryParam'
- $ref: '#/components/parameters/featureModeQueryParam'
- $ref: '#/components/parameters/withFeatureStatsQueryParam'
- $ref: '#/components/parameters/withInternalFeaturesQueryParam'
- $ref: '#/components/parameters/forceMinimalQueryParam'
- $ref: '#/components/parameters/withRelatedQueryParam'
- $ref: '#/components/parameters/withRawQueryParam'
responses:
'200':
description: Successful response
content:
application/json; charset=UTF-8:
schema:
$ref: '#/components/schemas/SzEntityResponse'
application/json:
schema:
$ref: '#/components/schemas/SzEntityResponse'
default:
schema:
$ref: '#/components/schemas/SzEntityResponse'
'404':
description: If the entity ID is not found.
content:
application/json; charset=UTF-8:
schema:
$ref: '#/components/schemas/SzErrorResponse'
application/json:
schema:
$ref: '#/components/schemas/SzErrorResponse'
default:
schema:
$ref: '#/components/schemas/SzErrorResponse'
'500':
$ref: '#/components/responses/ServerError'
/entities/{entityId}/why:
get:
tags:
- Entity Data
summary: >-
Returns an analysis of why the entity for the respective
entity ID resolved.
description: |
This operation provides an anlysis of why the records in an entity
resolved. The subject entity is identified by the entity ID in the
request path.
**NOTE:** Bear in mind that entity ID's are transient and may be
recycled or repurposed as new records are loaded and entities resolve,
unresolve and re-resolve. An alternative way to identify an entity is
by one of its constituent records using
`GET /data-sources/{dataSourceCode}/records/{recordId}/entity/why`.
operationId: whyEntityByEntityID
parameters:
- name: entityId
description: >-
The unique numeric ID that identifies that entity being requested.
in: path
required: true
schema:
type: integer
format: int64
- $ref: '#/components/parameters/withRelationshipsQueryParam'
- $ref: '#/components/parameters/whyWithFeatureStatsQueryParam'
- $ref: '#/components/parameters/whyWithInternalFeaturesQueryParam'
- $ref: '#/components/parameters/detailLevelQueryParam'
- $ref: '#/components/parameters/featureModeQueryParam'
- $ref: '#/components/parameters/forceMinimalQueryParam'
- $ref: '#/components/parameters/withRawQueryParam'
responses:
'200':
description: Successul response
content:
application/json; charset=UTF-8:
schema:
$ref: '#/components/schemas/SzWhyEntityResponse'
application/json:
schema:
$ref: '#/components/schemas/SzWhyEntityResponse'
default:
schema:
$ref: '#/components/schemas/SzWhyEntityResponse'
'404':
description: If entity ID is not found.
content:
application/json; charset=UTF-8:
schema:
$ref: '#/components/schemas/SzErrorResponse'
application/json:
schema:
$ref: '#/components/schemas/SzErrorResponse'
default:
schema:
$ref: '#/components/schemas/SzErrorResponse'
'500':
$ref: '#/components/responses/ServerError'
/entities/{entityId}/how:
get:
tags:
- Entity Data
summary: >-
Returns an analysis of how the entity for the respective
entity ID resolved.
description: |
This operation provides an anlysis of how the records in an entity
resolved. The subject entity is identified by the entity ID in the
request path.
**NOTE:** Bear in mind that entity ID's are transient and may be
recycled or repurposed as new records are loaded and entities resolve,
unresolve and re-resolve. An alternative way to identify an entity is
by one of its constituent records using
`GET /data-sources/{dataSourceCode}/records/{recordId}/entity/how`.
operationId: howEntityByEntityID
parameters:
- name: entityId
description: >-
The unique numeric ID that identifies the entity for which to
perform the analysis.
in: path
required: true
schema:
type: integer
format: int64
- $ref: '#/components/parameters/withRawQueryParam'
responses:
'200':
description: Successul response
content:
application/json; charset=UTF-8:
schema:
$ref: '#/components/schemas/SzHowEntityResponse'
application/json:
schema:
$ref: '#/components/schemas/SzHowEntityResponse'
default:
schema:
$ref: '#/components/schemas/SzHowEntityResponse'
'404':
description: If entity ID is not found.
content:
application/json; charset=UTF-8:
schema:
$ref: '#/components/schemas/SzErrorResponse'
application/json:
schema:
$ref: '#/components/schemas/SzErrorResponse'
default:
schema:
$ref: '#/components/schemas/SzErrorResponse'
'500':
$ref: '#/components/responses/ServerError'
/why/records:
get:
tags:
- Entity Data
summary: >-
Returns an analysis of why the records identified by the data source
and record ID's in the query parameters resolved or did not resolve.
description: |
This operation provides an anlysis of two records identified by data
source code and record ID in respective qeury parameters resolved or
did not resolve.
operationId: whyRecords
parameters:
- name: dataSource1
description: >-
The data source for the first record.
required: true
in: query
schema:
type: string
- name: recordId1
description: >-
The record ID for the first record.
required: true
in: query
schema:
type: string
- name: dataSource2
description: >-
The data source for the second record.
required: true
in: query
schema:
type: string
- name: recordId2
description: >-
The data source for the second record.
required: true
in: query
schema:
type: string
- $ref: '#/components/parameters/withRelationshipsQueryParam'
- $ref: '#/components/parameters/whyWithFeatureStatsQueryParam'
- $ref: '#/components/parameters/whyWithInternalFeaturesQueryParam'
- $ref: '#/components/parameters/detailLevelQueryParam'
- $ref: '#/components/parameters/featureModeQueryParam'
- $ref: '#/components/parameters/forceMinimalQueryParam'
- $ref: '#/components/parameters/withRawQueryParam'
responses:
'200':
description: Successul response
content:
application/json; charset=UTF-8:
schema:
$ref: '#/components/schemas/SzWhyRecordsResponse'
application/json:
schema:
$ref: '#/components/schemas/SzWhyRecordsResponse'
default:
schema:
$ref: '#/components/schemas/SzWhyRecordsResponse'
'404':
description: If data source or record ID are not found.
content:
application/json; charset=UTF-8:
schema:
$ref: '#/components/schemas/SzErrorResponse'
application/json:
schema:
$ref: '#/components/schemas/SzErrorResponse'
default:
schema:
$ref: '#/components/schemas/SzErrorResponse'
'500':
$ref: '#/components/responses/ServerError'
/why/entities:
get:
tags:
- Entity Data
summary: >-
Returns an analysis of why the two entities related, did not relate, or
did not resolve.
description: |
This operation provides an anlysis of why two entities related, did not
relate or did not resolve. The entities are identified either by
entity ID's or by data source code and record ID pairs for constituent
records of those entities.
**NOTE:** If the first entity is identified by entity ID then the second
must also be identified an entity ID. Similarly, if the first entity is
identified by data source code and record ID then the second must also
be identified by data source code and record ID.
**ALSO NOTE:** Bear in mind that entity ID's are transient and may be
recycled or repurposed as new records are loaded and entities resolve,
unresolve and re-resolve.
operationId: whyEntities
parameters:
- name: entity1
description: >-
The `SzEntityIdentifier` for the first entity as an entity ID or an
encoded `SzRecordId` for the constituent record. Whatever format is
used for the "entity1" parameter must match the format of the
"entity2" parameter. NOTE: An encoded `SzRecordId` can EITHER be
encoded as JSON or as a delimited string where the first character
is the delimiter and the remainder is parsed as a data source prefix
(up to the second occurrence of the delimiter) and a record ID
suffix (all characters after the second occurrence of the
delimiter). For example: `{"src":"PEOPLE","id":"12345ABC"}` or
`:PEOPLE:12345ABC`.
required: true
in: query
schema:
type: string
- name: entity2
description: >-
The `SzEntityIdentifier` for the second entity as an entity ID or an
encoded `SzRecordId` for the constituent record. Whatever format is
used for the "entity2" parameter must match the format of the
"entity1" parameter. NOTE: An encoded `SzRecordId` can EITHER be
encoded as JSON or as a delimited string where the first character
is the delimiter and the remainder is parsed as a data source prefix
(up to the second occurrence of the delimiter) and a record ID
suffix (all characters after the second occurrence of the
delimiter). For example: `{"src":"PEOPLE","id":"12345ABC"}` or
`:PEOPLE:12345ABC`.
required: true
in: query
schema:
type: string
- $ref: '#/components/parameters/withRelationshipsQueryParam'
- $ref: '#/components/parameters/whyWithFeatureStatsQueryParam'
- $ref: '#/components/parameters/whyWithInternalFeaturesQueryParam'
- $ref: '#/components/parameters/detailLevelQueryParam'
- $ref: '#/components/parameters/featureModeQueryParam'
- $ref: '#/components/parameters/forceMinimalQueryParam'
- $ref: '#/components/parameters/withRawQueryParam'
responses:
'200':
description: Successul response
content:
application/json; charset=UTF-8:
schema:
$ref: '#/components/schemas/SzWhyEntitiesResponse'
application/json:
schema:
$ref: '#/components/schemas/SzWhyEntitiesResponse'
default:
schema:
$ref: '#/components/schemas/SzWhyEntitiesResponse'
'404':
description: If data source or record ID are not found.
content:
application/json; charset=UTF-8:
schema:
$ref: '#/components/schemas/SzErrorResponse'
application/json:
schema:
$ref: '#/components/schemas/SzErrorResponse'
default:
schema:
$ref: '#/components/schemas/SzErrorResponse'
'500':
$ref: '#/components/responses/ServerError'
/reevaluate-entity:
post:
tags:
- Entity Data
summary: Reevaluate an entity identified by its entity ID.
description: |
Reevaluates an entity identified by the entity ID specified via the
`entityId` query parameter.
**NOTE:** The `withInfo` parameter will return the entity resolution
info pertaining to the reevaluation. This can be used to update a
search index or external data mart. Additionally, Senzing API Server
provides a means to have the "raw" entity resolution info (from the
underlying native Senzing API) automatically sent to a messaging service
such as those provided by Amazon SQS, Rabbit MQ or Kafka regardless of
the `withInfo` query parameter value.
**ALSO NOTE:** Bear in mind that entity ID's are transient and may be
recycled or repurposed as new records are loaded and entities resolve,
unresolve and re-resolve.
operationId: reevaluateEntity
parameters:
- name: entityId
in: query
required: true
description: >-
The entity ID of the entity to reevaluate.
schema:
type: integer
format: int64
- $ref: '#/components/parameters/withInfoQueryParam'
- $ref: '#/components/parameters/withRawQueryParam'
responses:
'200':
description: default response
content:
application/json; charset=UTF-8:
schema:
$ref: '#/components/schemas/SzReevaluateResponse'
application/json:
schema:
$ref: '#/components/schemas/SzReevaluateResponse'
default:
schema:
$ref: '#/components/schemas/SzReevaluateResponse'
'404':
description: If data source or record ID are not found.
content:
application/json; charset=UTF-8:
schema:
$ref: '#/components/schemas/SzErrorResponse'
application/json:
schema:
$ref: '#/components/schemas/SzErrorResponse'
default:
schema:
$ref: '#/components/schemas/SzErrorResponse'
'500':
$ref: '#/components/responses/ServerError'
/virtual-entities:
get:
tags:
- Entity Data
summary: >-
Builds a virtual entity by simulating the resolution of the records
identified by the specified record ID parameters.
description: |
This operation simulates the resolution of the one or more specified
records into a single entity and returns the simulated "virtual"
entity. The subject records are identified by data source code and
record ID pairs.
operationId: getVirtualEntityByRecordIds
parameters:
- name: r
description: >-
Repeating query parameter containing encoded `SzRecordId`
definitions that identify records to be inclued in the resultant
virtual entity. At least one record identifier is required. If
both this parameter and the `records` parameter are specified then
the values are merged.
**NOTE**: An encoded `SzRecordId` can EITHER be encoded as JSON or
as a delimited string where the first character is the delimiter and
the remainer is parsed as a data source prefix (up to the second
occurrence of the delimiter) and a record ID suffix (all characters
after the second occurrence of the delimiter). For example:
`{"src":"PEOPLE","id":"12345ABC"}` or `:PEOPLE:12345ABC`.
in: query
required: false
style: form
explode: true
schema:
type: array
items:
$ref: '#/components/schemas/SzRecordIdentifier'
examples:
noRecordsExample:
$ref: '#/components/examples/noRecordsExample'
singleByDelimitedRecordIdExample:
$ref: '#/components/examples/singleRecordByDelimitedRecordIdExample'
multipleByDelimitedRecordIdExample:
$ref: '#/components/examples/multipleRecordsByDelimitedRecordIdExample'
singleByJsonRecordIdExample:
$ref: '#/components/examples/singleRecordByJsonRecordIdExample'
multipleByJsonRecordIdExample:
$ref: '#/components/examples/multipleRecordsByJsonRecordIdExample'
multipleByMixedRecordIdExample:
$ref: '#/components/examples/multipleRecordsByMixedRecordIdExample'
- name: records
description: >-
Singular query parameter containing multiple encoded `SzRecordId`
definitions that identify records to be inclued in the resultant
virtual entity as a JSON array or a simple comma-separated array.
At least one record identifier is required. If both this parameter
and the `r` parameter are specified then the values are merged.
**NOTE**: An encoded `SzRecordId` can EITHER be encoded as JSON or
as a delimited string where the first character is the delimiter and
the remainer is parsed as a data source prefix (up to the second
occurrence of the delimiter) and a record ID suffix (all characters
after the second occurrence of the delimiter). For example:
`{"src":"PEOPLE","id":"12345ABC"}` or `:PEOPLE:12345ABC`.
in: query
required: false
schema:
$ref: '#/components/schemas/SzRecordIdentifiers'
examples:
noRecordsExample:
$ref: '#/components/examples/noRecordsArrayExample'
singleByDelimitedRecordIdExample:
$ref: '#/components/examples/singleRecordByDelimitedRecordIdArrayExample'
multipleByDelimitedRecordIdExample:
$ref: '#/components/examples/multipleRecordsByDelimitedRecordIdArrayExample'
singleByJsonRecordIdExample:
$ref: '#/components/examples/singleRecordByJsonRecordIdArrayExample'
multipleByJsonRecordIdExample:
$ref: '#/components/examples/multipleRecordsByJsonRecordIdArrayExample'
multipleByMixedRecordIdExample:
$ref: '#/components/examples/multipleRecordsByMixedRecordIdArrayExample'
- $ref: '#/components/parameters/detailLevelQueryParam'
- $ref: '#/components/parameters/featureModeQueryParam'
- $ref: '#/components/parameters/withFeatureStatsQueryParam'
- $ref: '#/components/parameters/withInternalFeaturesQueryParam'
- $ref: '#/components/parameters/forceMinimalQueryParam'
- $ref: '#/components/parameters/withRawQueryParam'
responses:
'200':
description: Successful response
content:
application/json; charset=UTF-8:
schema:
$ref: '#/components/schemas/SzVirtualEntityResponse'
application/json:
schema:
$ref: '#/components/schemas/SzVirtualEntityResponse'
default:
schema:
$ref: '#/components/schemas/SzVirtualEntityResponse'
'400':
description: >-
If no record identifies are specified via the query parameters.
Also, if any of the identified records cannot be found.
content:
application/json; charset=UTF-8:
schema:
$ref: '#/components/schemas/SzErrorResponse'
application/json:
schema:
$ref: '#/components/schemas/SzErrorResponse'
default:
schema:
$ref: '#/components/schemas/SzErrorResponse'
'500':
$ref: '#/components/responses/ServerError'
/entity-paths:
get:
tags:
- Entity Graph
summary: >-
Finds a path between two entities identified by entity ID or by
data sources and record IDs of constituent records.
description: |
This operation finds the path between two entities and returns a
description of that entity path (if any) or a response indicating that
there is no path between the entities. The subject entities are either
identfieid by entity ID or by data source code and record ID pairs for
constituent records of those entities.
**NOTE:** If the first entity is identified by entity ID then the second
must also be identified an entity ID. Similarly, if the first entity is
identified by data source code and record ID then the second must also
be identified by data source code and record ID.
**ALSO NOTE:** Bear in mind that entity ID's are transient and may be
recycled or repurposed as new records are loaded and entities resolve,
unresolve and re-resolve.
operationId: findEntityPath
parameters:
- name: from
description: >-
The `SzEntityIdentifier` for the first entity for the path either as
an entity ID or an encoded `SzRecordId` for the constituent record.
Whatever format is used for the "from" parameter must match the format
of the "to" parameter. NOTE: An encoded `SzRecordId` can EITHER
be encoded as JSON or as a delimited string where the first character
is the delimiter and the remainder is parsed as a data source prefix
(up to the second occurrence of the delimiter) and a record ID suffix
(all characters after the second occurrence of the delimiter). For
example: `{"src":"PEOPLE","id":"12345ABC"}` or `:PEOPLE:12345ABC`.
in: query
required: true
schema:
$ref: '#/components/schemas/SzEntityIdentifier'
examples:
entityIdExample:
summary: A numeric entity ID
value: 1234567
encodedRecordIdExample:
summary: A record ID encoded as a deliminted string.
value: ":CUSTOMERS:ABC123"
jsonRecordIdExample:
summary: A record ID encoded as JSON
value: {"src":"CUSTOMERS","id":"ABC123"}
- name: to
description: >-
The `SzEntityIdentifier` for the last entity for the path either as
an entity ID or a encoded `SzRecordId` for the constituent record.
Whatever format is used for the "to" parameter must match the
format of the "from" parameter. NOTE: An encoded `SzRecordId` can
EITHER be encoded as JSON or as a delimited string where the first
character is the delimiter and the remainder is parsed as a data
source prefix (up to the second occurrence of the delimiter) and a
record ID suffix (all characters after the second occurrence of the
delimiter). For example: `{"src":"PEOPLE","id":"12345ABC"}` or
`:PEOPLE:12345ABC`.
in: query
required: true
schema:
$ref: '#/components/schemas/SzEntityIdentifier'
examples:
entityIdExample:
summary: A numeric entity ID
value: 7654321
encodedRecordIdExample:
summary: A record ID encoded as a deliminted string.
value: ":EMPLOYEES:DEF456"
jsonRecordIdExample:
summary: A record ID encoded as JSON
value: {"src":"EMPLOYEES","id":"DEF456"}
- name: maxDegrees
description: >-
The maximum number of degrees to look for a path from the first
entity to the last entity. This defaults to `3` if not specified.
If specified, the value must be greater-than zero (0) since a path
cannot exist at zero degrees of separation.
in: query
required: false
schema:
type: integer
format: int8
minimum: 1
default: 3
- name: x
description: >-
Repeating query parameter containing `SzEntityIdentifier` definitions
that identify entities to be avoided or forbidden from the path
(depending on the forbidAvoided parameter). The entity identifiers
are either all 64-bit long integers representing entity IDs or they
are all encoded SzRecordId instances identifying records that are
part of the resolved entities to exclude. If this parameter is not
provided, then the default is to NOT exclude any entities. If both
this parameter and the `avoidEntities` parameter are specified then
the values are merged. NOTE: An encoded `SzRecordId` can EITHER be
encoded as JSON or as a delimited string where the first character is
the delimiter and the remainder is parsed as a data source prefix (up
to the second occurrence of the delimiter) and a record ID suffix (all
characters after the second occurrence of the delimiter). For
example: `{"src":"PEOPLE","id":"12345ABC"}` or `:PEOPLE:12345ABC`.
in: query
required: false
explode: true
style: form
schema:
type: array
items:
$ref: '#/components/schemas/SzEntityIdentifier'
examples:
avoidNoEntitiesExample:
$ref: '#/components/examples/noEntitiesExample'
avoidSingleByEntityIdExample:
$ref: '#/components/examples/singleEntityByEntityIdExample'
avoidMultipleByEntityIdExample:
$ref: '#/components/examples/multipleEntitiesByEntityIdExample'
avoidSingleByDelimitedRecordIdExample:
$ref: '#/components/examples/singleEntityByDelimitedRecordIdExample'
avoidMultipleByDelimitedRecordIdExample:
$ref: '#/components/examples/multipleEntitiesByDelimitedRecordIdExample'
avoidSingleByJsonRecordIdExample:
$ref: '#/components/examples/singleEntityByJsonRecordIdExample'
avoidMultipleByJsonRecordIdExample:
$ref: '#/components/examples/multipleEntitiesByJsonRecordIdExample'
avoidMultipleByMixedRecordIdExample:
$ref: '#/components/examples/multipleEntitiesByMixedRecordIdExample'
- name: avoidEntities
description: >-
Single query parameter containing multiple `SzEntityIdentifier`
definitions as a JSON array or a simple comma-separated array that
identify entities to be avoided or forbidden from the path
(depending on the forbidAvoided parameter). The entity identifiers
are either all 64-bit long integers representing entity IDs or they
are all encoded `SzRecordId` instances identifying records that are
part of the resolved entities to exclude. At least one entity
identifier is required. If both this parameter and one or more `x`
parameters are specified then the values are merged. NOTE: An
encoded `SzRecordId` can EITHER be encoded as JSON or as a delimited
string where the first character is the delimiter and the remainder
is parsed as a data source prefix (up to the second occurrence of the
delimiter) and a record ID suffix (all characters after the second
occurrence of the delimiter). For example:
`{"src":"PEOPLE","id":"12345ABC"}` or `:PEOPLE:12345ABC`.
in: query
required: false
schema:
$ref: '#/components/schemas/SzEntityIdentifiers'
examples:
avoidNoEntitiesArrayExample:
$ref: '#/components/examples/noEntitiesArrayExample'
avoidSingleByEntityIdArrayExample:
$ref: '#/components/examples/singleEntityByEntityIdArrayExample'
avoidMultipleByEntityIdArrayExample:
$ref: '#/components/examples/multipleEntitiesByEntityIdArrayExample'
avoidSingleByDelimitedRecordIdArrayExample:
$ref: '#/components/examples/singleEntityByDelimitedRecordIdArrayExample'
avoidMultipleByDelimitedRecordIdArrayExample:
$ref: '#/components/examples/multipleEntitiesByDelimitedRecordIdArrayExample'
avoidSingleByJsonRecordIdArrayExample:
$ref: '#/components/examples/singleEntityByJsonRecordIdArrayExample'
avoidMultipleByJsonRecordIdArrayExample:
$ref: '#/components/examples/multipleEntitiesByJsonRecordIdArrayExample'
avoidMultipleByMixedRecordIdArrayExample:
$ref: '#/components/examples/multipleEntitiesByMixedRecordIdArrayExample'
- name: forbidAvoided
description: >-
If the avoidEntities parameter is provided then this flag is used to
control whether or not to forbid the avoided entities rather than
include them in the path as a "last resort".
in: query
required: false
schema:
type: boolean
default: false
- name: s
description: >-
The multi-valued query parameter where each value is a data source
code identifying data sources for which one must be included in the
entities for the path. If not provided, then the default is to NOT
require any specific data sources.
in: query
required: false
style: form
explode: true
schema:
type: array
items:
type: string
examples:
requireNoDataSourcesExample:
summary: Require no data sources
value: []
requireSingleDataSourceExample:
summary: Require a single data source
value: [ VIPS ]
requireMultipleDataSourcesExample:
summary: Require multiple data sources
value: [ VIPS, PARTNERS ]
- $ref: '#/components/parameters/detailLevelQueryParam'
- $ref: '#/components/parameters/featureModeQueryParam'
- $ref: '#/components/parameters/withFeatureStatsQueryParam'
- $ref: '#/components/parameters/withInternalFeaturesQueryParam'
- $ref: '#/components/parameters/forceMinimalQueryParam'
- $ref: '#/components/parameters/withRawQueryParam'
responses:
'200':
description: Successful response
content:
application/json; charset=UTF-8:
schema:
$ref: '#/components/schemas/SzEntityPathResponse'
application/json:
schema:
$ref: '#/components/schemas/SzEntityPathResponse'
default:
schema:
$ref: '#/components/schemas/SzEntityPathResponse'
'400':
description: >-
If the 'from' or 'to' parameters are missing or if any of the
parameters are not formatted as expected. Also, if any of the
identified entities or records cannot be found.
content:
application/json; charset=UTF-8:
schema:
$ref: '#/components/schemas/SzErrorResponse'
application/json:
schema:
$ref: '#/components/schemas/SzErrorResponse'
default:
schema:
$ref: '#/components/schemas/SzErrorResponse'
'500':
$ref: '#/components/responses/ServerError'
/entity-networks:
get:
tags:
- Entity Graph
summary: >-
Finds the entity network around one or more entities.
description: |
This operation finds the entity network around one or more entities.
This attempts to find paths between the specified entities. If no
paths exist, then island networks are returned with each island network
containing up to a specified number of related entities. The entities
are identified by their entity IDs or by data source code and record ID
pairs for constituent records of those entities.
**NOTE:** If the first entity is identified by entity ID then the
subsequent entities must also be identified entity ID. Similarly, if
the first entity is identified by the data source code and record ID
of a consistuent record then the subsequent entities must also be
identified by the data source code and record ID of constituent records.
**ALSO NOTE:** Bear in mind that entity ID's are transient and may be
recycled or repurposed as new records are loaded and entities resolve,
unresolve and re-resolve.
operationId: findEntityNetwork
parameters:
- name: e
description: >-
Repeating query parameter containing `SzEntityIdentifier` definitions
that identify entities to be included in the entity network. The
entity identifiers are either all 64-bit long integers representing
entity IDs or they are all encoded `SzRecordId` instances identifying
records that are part of the resolved entities to avoid. At least
one entity identifier is required. If both this parameter and the
`entities` parameter are specified then the values are merged.
**NOTE**: An encoded `SzRecordId` can EITHER be encoded as JSON or as
a delimited string where the first character is the delimiter and the
remainder is parsed as a data source prefix (up to the second
occurrence of the delimiter) and a record ID suffix (all characters
after the second occurrence of the delimiter). For example:
`{"src":"PEOPLE","id":"12345ABC"}` or `:PEOPLE:12345ABC`.
in: query
required: false
style: form
explode: true
schema:
type: array
items:
$ref: '#/components/schemas/SzEntityIdentifier'
examples:
noEntitiesExample:
$ref: '#/components/examples/noEntitiesExample'
singleByEntityIdExample:
$ref: '#/components/examples/singleEntityByEntityIdExample'
multipleByEntityIdExample:
$ref: '#/components/examples/multipleEntitiesByEntityIdExample'
singleByDelimitedRecordIdExample:
$ref: '#/components/examples/singleEntityByDelimitedRecordIdExample'
multipleByDelimitedRecordIdExample:
$ref: '#/components/examples/multipleEntitiesByDelimitedRecordIdExample'
singleByJsonRecordIdExample:
$ref: '#/components/examples/singleEntityByJsonRecordIdExample'
multipleByJsonRecordIdExample:
$ref: '#/components/examples/multipleEntitiesByJsonRecordIdExample'
multipleByMixedRecordIdExample:
$ref: '#/components/examples/multipleEntitiesByMixedRecordIdExample'
- name: entities
description: >-
Single query parameter containing multiple SzEntityIdentifier
definitions that identify entities to be included in the entity
network as a JSON array or a simple comma-separated array. The
entity identifiers are either all 64-bit long integers representing
entity IDs or they are all encoded `SzRecordId` instances identifying
records that are part of the resolved entities to avoid. At least
one entity identifier is required. If both this parameter and one
or more `e` parameters are specified then the values are merged.
NOTE: An encoded `SzRecordId` can EITHER be encoded as JSON or as a
delimited string where the first character is the delimiter and the
remainder is parsed as a data source prefix (up to the second
occurrence of the delimiter) and a record ID suffix (all characters
after the second occurrence of the delimiter). For example:
`{"src":"PEOPLE","id":"12345ABC"}` or `:PEOPLE:12345ABC`.
in: query
required: false
schema:
$ref: '#/components/schemas/SzEntityIdentifiers'
examples:
noEntitiesArrayExample:
$ref: '#/components/examples/noEntitiesArrayExample'
singleByEntityIdArrayExample:
$ref: '#/components/examples/singleEntityByEntityIdArrayExample'
multipleByEntityIdArrayExample:
$ref: '#/components/examples/multipleEntitiesByEntityIdArrayExample'
singleByDelimitedRecordIdArrayExample:
$ref: '#/components/examples/singleEntityByDelimitedRecordIdArrayExample'
multipleByDelimitedRecordIdArrayExample:
$ref: '#/components/examples/multipleEntitiesByDelimitedRecordIdArrayExample'
singleByJsonRecordIdArrayExample:
$ref: '#/components/examples/singleEntityByJsonRecordIdArrayExample'
multipleByJsonRecordIdArrayExample:
$ref: '#/components/examples/multipleEntitiesByJsonRecordIdArrayExample'
multipleByMixedRecordIdArrayExample:
$ref: '#/components/examples/multipleEntitiesByMixedRecordIdArrayExample'
- name: maxDegrees
description: >-
The maximum number of degrees to look for a path between the
specified entities. If not specified, this defaults to `3`.
Unlike `GET /entity-paths/` the value here may be zero (0) which
allows the caller to specify a list of entities and simply
"build out" the network around each to a maximum number of degrees
and up to a maximum number of entities.
in: query
required: false
schema:
type: integer
format: int8
minimum: 0
default: 3
- name: buildOut
description: >-
The maximum number of degrees to build out around each of the
specified entities regardless of those entities being on the
path between entities. The number of entities built out is limited
by the `maxEntities` parameter. This defaults to `1` degree if not
specified.
in: query
required: false
schema:
type: integer
format: int8
minimum: 0
maximum: 100
default: 1
- name: maxEntities
description: >-
The maximum number of entities to build out when the `buildOut` is
greater than zero (0). This defaults to `1000` if not specified.
in: query
required: false
schema:
type: integer
format: int32
minimum: 0
default: 1000
- $ref: '#/components/parameters/detailLevelQueryParam'
- $ref: '#/components/parameters/featureModeQueryParam'
- $ref: '#/components/parameters/withFeatureStatsQueryParam'
- $ref: '#/components/parameters/withInternalFeaturesQueryParam'
- $ref: '#/components/parameters/forceMinimalQueryParam'
- $ref: '#/components/parameters/withRawQueryParam'
responses:
'200':
description: Successful response
content:
application/json; charset=UTF-8:
schema:
$ref: '#/components/schemas/SzEntityNetworkResponse'
application/json:
schema:
$ref: '#/components/schemas/SzEntityNetworkResponse'
default:
schema:
$ref: '#/components/schemas/SzEntityNetworkResponse'
'400':
description: >-
If no entity identifiers are specified or if any of the parameters
are not formatted as expected. Also, if any of the identified
entities or records cannot be found.
content:
application/json; charset=UTF-8:
schema:
$ref: '#/components/schemas/SzErrorResponse'
application/json:
schema:
$ref: '#/components/schemas/SzErrorResponse'
default:
schema:
$ref: '#/components/schemas/SzErrorResponse'
'500':
$ref: '#/components/responses/ServerError'
/bulk-data/analyze:
post:
tags:
- Bulk Data
summary: Analyze a bulk data set of records. (Supports SSE / Supports Web Sockets)
description: |
Provides a means to analyze a bulk data file of records prior to loading
it. The records are encoded as a JSON array of JSON objects, a single
JSON object per line in JSON-lines file format, or as a CSV with one
record per row. The data should be in pre-mapped format using JSON
property names or CSV column names as described by the
[Senzing Generic Entity Specification](https://senzing.zendesk.com/hc/en-us/articles/231925448-Generic-Entity-Specification).
**SCALABILITY NOTE:** This operation can be invoked in three ways. In
order of increasingly better scalability these are listed below:
1. Standard HTTP Request/Response
2. HTTP Request with SSE Response (see below)
3. HTTP Upgrade Request for Web Sockets (see below)
Standard HTTP Request/Response (method 1) has the worst scalability
because a long-running operation will tie up a Web Server thread **and**
continue until complete even if the client aborts the operation since
no data is written back to the client until complete and therefore the
terminated connection will not be detected. SSE (method 2) mitigates
the problem of detecting when a client has aborted the operation
because periodic progress responses are written to the client and
therefore a terminated connection will be detected. However, the best
way to invoke this operation is via Web Sockets (method 3) which not
only can detect disconnection of the client, but it also upgrades the
request to use its own thread outside the Web Server thread pool.
**SSE NOTE:** This end-point supports "Server-sent Events" (SSE) via the
`text/event-stream` media type. This support is activated by adding the
`Accept: text/event-stream` header to a request to override the
default `application/json` media type. Further, the end-point will behave
similarly to its standard operation but will produce `progress` events
at regular intervals that are equivalent to its `200` response schema.
Upon success, the final event will be `completed` with the same response
schema as a `200` response. Upon failure, the final event will be
`failed` with same `SzErrorResponse` schema as the `4xx` or `5xx`.
**WEB SOCKETS NOTE**: If invoking via Web Sockets then the client may
send text or binary chunks of the JSON, JSON-Lines or CSV bulk data file
as messages. In Web Sockets, text messages are *always* sent as UTF-8.
If the file's character encoding is unknown then the client should send
binary messages and the server will attempt to auto-detect the character
encoding. Each message should adhere to the maximum message size
specified by the `webSocketsMessageMaxSize` property returned by the
`GET /server-info` end-point. The end of file is detected when the
number of seconds specified by the `eofSendTimeout` query parameter have
elapsed without a new message being received.
operationId: analyzeBulkRecords
parameters:
- $ref: '#/components/parameters/progressPeriodParam'
- $ref: '#/components/parameters/eofSendTimeoutParam'
requestBody:
description: |
The bulk record data as a single JSON record per line, a JSON array,
or a CSV. Further, `multipart/form-data` can be provided with the
"data" property representing the record data as described above. Set
your content type accordingly. The data should be in pre-mapped
format using JSON property names or CSV column names as described by
the [Senzing Generic Entity Specification](https://senzing.zendesk.com/hc/en-us/articles/231925448-Generic-Entity-Specification).
required: true
content:
text/plain; charset=UTF-8:
schema:
type: string
examples:
chooseExample:
$ref: '#/components/examples/chooseExample'
bulkDataCSVExample:
$ref: '#/components/examples/bulkDataCSVExample'
bulkDataJsonLinesExample:
$ref: '#/components/examples/bulkDataJsonLinesExample'
bulkDataJsonExample:
$ref: '#/components/examples/bulkDataJsonExample'
text/plain:
schema:
type: string
examples:
chooseExample:
$ref: '#/components/examples/chooseExample'
bulkDataCSVExample:
$ref: '#/components/examples/bulkDataCSVExample'
bulkDataJsonLinesExample:
$ref: '#/components/examples/bulkDataJsonLinesExample'
bulkDataJsonExample:
$ref: '#/components/examples/bulkDataJsonExample'
application/x-jsonlines; charset=UTF-8:
schema:
type: string
examples:
seeTextPlainExamples:
$ref: '#/components/examples/seeTextPlainJsonLinesExamples'
application/x-jsonlines:
schema:
type: string
examples:
seeTextPlainExamples:
$ref: '#/components/examples/seeTextPlainJsonLinesExamples'
application/json; charset=UTF-8:
schema:
type: string
examples:
seeTextPlainExamples:
$ref: '#/components/examples/seeTextPlainJsonExamples'
application/json:
schema:
type: string
examples:
seeTextPlainExamples:
$ref: '#/components/examples/seeTextPlainJsonExamples'
text/csv; charset=UTF-8:
schema:
type: string
examples:
chooseExample:
$ref: '#/components/examples/chooseExample'
bulkDataCSVExample:
$ref: '#/components/examples/bulkDataCSVExample'
text/csv:
schema:
type: string
examples:
chooseExample:
$ref: '#/components/examples/chooseExample'
bulkDataCSVExample:
$ref: '#/components/examples/bulkDataCSVExample'
multipart/form-data:
schema:
type: object
properties:
body:
type: string
format: binary
responses:
'200':
description: Successful response.
content:
application/json; charset=UTF-8:
schema:
$ref: '#/components/schemas/SzBulkDataAnalysisResponse'
application/json:
schema:
$ref: '#/components/schemas/SzBulkDataAnalysisResponse'
default:
schema:
$ref: '#/components/schemas/SzBulkDataAnalysisResponse'
'500':
$ref: '#/components/responses/ServerError'
/bulk-data/load:
post:
tags:
- Bulk Data
summary: Load the records in the provided bulk data set. (Supports SSE / Supports Web Sockets)
description: |
Provides a means to load a bulk data file of records. The records are
encoded as a JSON array of JSON objects, a single JSON object per line
in JSON-lines file format, or as a CSV with one record per row. The
data should be in pre-mapped format using JSON property names or CSV
column names as described by the
[Senzing Generic Entity Specification](https://senzing.zendesk.com/hc/en-us/articles/231925448-Generic-Entity-Specification).
**SCALABILITY NOTE:** This operation can be invoked in three ways. In
order of increasingly better scalability these are listed below:
1. Standard HTTP Request/Response
2. HTTP Request with SSE Response (see below)
3. HTTP Upgrade Request for Web Sockets (see below)
Standard HTTP Request/Response (method 1) has the worst scalability
because a long-running operation will tie up a Web Server thread **and**
continue until complete even if the client aborts the operation since
no data is written back to the client until complete and therefore the
terminated connection will not be detected. SSE (method 2) mitigates
the problem of detecting when a client has aborted the operation
because periodic progress responses are written to the client and
therefore a terminated connection will be detected. However, the best
way to invoke this operation is via Web Sockets (method 3) which not
only can detect disconnection of the client, but it also upgrades the
request to use its own thread outside the Web Server thread pool.
**SSE NOTE:** This end-point supports "Server-sent Events" (SSE) via the
`text/event-stream` media type. This support is activated by adding the
`Accept: text/event-stream` header to a request to override the
default `application/json` media type. Further, the end-point will behave
similarly to its standard operation but will produce `progress` events
at regular intervals that are equivalent to its `200` response schema.
Upon success, the final event will be `completed` with the same response
schema as a `200` response. Upon failure, the final event will be
`failed` with same `SzErrorResponse` schema as the `4xx` or `5xx`.
**WEB SOCKETS NOTE**: If invoking via Web Sockets then the client may
send text or binary chunks of the JSON, JSON-Lines or CSV bulk data file
as messages. In Web Sockets, text messages are *always* sent as UTF-8.
If the file's character encoding is unknown then the client should send
binary messages and the server will attempt to auto-detect the character
encoding. Each message should adhere to the maximum message size
specified by the `webSocketsMessageMaxSize` property returned by the
`GET /server-info` end-point. The end of file is detected when the
number of seconds specified by the `eofSendTimeout` query parameter have
elapsed without a new message being received.
operationId: loadBulkRecords
parameters:
- name: dataSource
description: |
Used to set the overriding data source for the records. This data
source will be assigned to every record **unless** the record's
data source (including blank data source) has a specific mapping
specified by a `mapDataSources` or `mapDataSource` parameters. If
this parameter is **not** provided and no specific overrides are
provided for a record then the data source specified in the inbound
record is used directly. If the record has no data source and no
override is provided then it will fail to load.
in: query
required: false
schema:
type: string
examples:
CUSTOMERS:
value: CUSTOMERS
EMPLOYEES:
value: EMPLOYEES
- name: mapDataSources
description: |
A URL-encoded JSON object whose properties are interpreted as
data source codes to map from and whose corresponding values are
interpretted as data source codes to map to. For example,
`{"EMPL": "EMPLOYEES"}` (url-encoded of course) would map all
records with inbound data source `EMPL` to `EMPLOYEES`. To map
only inbound records with no data source to a specific data source
you would use an empty JSON property (e.g.: `{"": "CUSTOMERS"}`).
If the `dataSource` parameter is **not** provided and no specific
overrides are provided for a record with this parameter or via
`mapDataSource` then the data source specified in the inbound
record is used directly. If the record has no data source and no
overriding or mapped data source is provided for an empty data
source then the record will fail to load.
**NOTE**: If both this parameter and the `mapDataSource` parameter
is provided then the mappings are merged with the more ad-hoc
`mapDataSource` parameter taking precedence since it is likely being
used for debugging and diagnostic purposes to avoid the URL
encoding.
Here are some examples of encoding this parameter:
- **JavaScript Example**
```javascript
var dataSourceMap = {
"": "CUSTOMERS",
"EMPL": "EMPLOYEES",
"VEND": "VENDORS"
};
var mapDataSources = JSON.stringify(dataSourceMap);
var urlPath = "/bulk-data/load?mapDataSources="
+ encodeURIComponent(mapDataSources);
```
- **Java Example**
```java
JsonObjectBuilder builder = Json.createObjectBuilder();
builder.add("", "CUSTOMERS");
builder.add("EMPL", "EMPLOYEES");
builder.add("VEND", "VENDORS");
JsonObject dataSourceMap = builder.build();
String mapDataSources = dataSourceMap.toString();
String encodedMap = URLEncoder.encode(mapDataSources, "UTF-8");
String urlPath = "/bulk-data/load?mapDataSources=" + encodedMap;
```
In both of the above examples the `urlPath` variable is set to:
```json
/bulk-data/load?mapDataSources=%7B%22%22%3A%22CUSTOMERS%22%2C%22EMPL%22%3A%22EMPLOYEES%22%2C%22VEND%22%3A%22VENDORS%22%7D
```
in: query
required: false
schema:
type: string
examples:
notSpecifiedExample:
summary: Not specified
value:
mapEmptyExample:
summary: Single mapping for missing data source
value: >-
{
"": "CUSTOMERS"
}
mapMultipleExample:
summary: Multiple data source mappings
value: >-
{
"": "CUSTOMERS",
"EMPL": "EMPLOYEES",
"VEND": "VENDORS"
}
- name: mapDataSource
description: |
As an alternative to the `mapDataSources` parameter you may specify
the `mapDataSource` parameter zero or more times to add additional
data source mappings or **override** data source mappings from
`mapDataSources`. If you are using this API programmatically
then you should typically use the `mapDataSources` parameter
instead of this one. But when manually constructing a URL in the
browser address bar, in a command-line tool like `curl` or in a REST
client browser extension for debugging or testing purposes, encoding
the JSON value for `mapDataSources` can be unwieldy. This parameter
(which is multi-valued) lets you specify delimited strings that
begin with the delimiter character, followed by the original
data source name, then the delimiter character and the new data
source name. You should only have to URL-encode the delimiter you
choose and maybe spaces. For example, `:EMPL:EMPLOYEES` or
`|EMPL|EMPLOYEES` (url-encoded of course) would map all records with
inbound data source `EMPL` to `EMPLOYEES`. To map only inbound
records with no data source to a specific data source you would
begin the value with two repeated delimiter characters followed by
the new data source value (e.g.: `||CUSTOMERS` or `::CUSTOMERS`).
If the `dataSource` parameter is **not** provided and no specific
overrides are provided for a record with this parameter or the
`mapDataSources` parameter then the data source specified in the
inbound record is used directly. If the record has no data source
and no overriding or mapped data source is provided for an empty
data source then the record will fail to load.
in: query
required: false
schema:
type: array
items:
type: string
examples:
noMappingsSpecified:
summary: No data source mappings specified
value: [ ]
singleSpecificOverrideExample:
summary: Map a single specific data source
value: [ ":CUST:CUSTOMERS" ]
multipleSpecificOverridesExample:
summary: Map multiple specific data sources
value: [ ":CUST:CUSTOMERS", ":EMPL:EMPLOYEES" ]
multipleSpecificOverridesWithEmptyExample:
summary: Map multiple specific data sources with empty mapping
value: [ "::CUSTOMERS", ":EMPL:EMPLOYEES", ":VENDOR:VENDORS" ]
- name: maxFailures
description: |
The maximum number of failures that can occur before the bulk
load operation is aborted. If the value is less-than or equal-to
zero (0) then the operation will continue regardless of the number
of errors that occur.
in: query
required: false
schema:
type: integer
format: int32
default: 0
- $ref: '#/components/parameters/progressPeriodParam'
- $ref: '#/components/parameters/eofSendTimeoutParam'
requestBody:
description: |
The bulk record data as a single JSON record per line, a JSON array,
or a CSV. Further, `multipart/form-data` can be provided with the
"data" property representing the record data as described above. Set
your content type accordingly. The data should be in pre-mapped
format using JSON property names or CSV column names as described by
the [Senzing Generic Entity Specification](https://senzing.zendesk.com/hc/en-us/articles/231925448-Generic-Entity-Specification).
required: true
content:
text/plain; charset=UTF-8:
schema:
type: string
examples:
chooseExample:
$ref: '#/components/examples/chooseExample'
bulkDataCSVExample:
$ref: '#/components/examples/bulkDataCSVExample'
bulkDataJsonLinesExample:
$ref: '#/components/examples/bulkDataJsonLinesExample'
bulkDataJsonExample:
$ref: '#/components/examples/bulkDataJsonExample'
text/plain:
schema:
type: string
examples:
chooseExample:
$ref: '#/components/examples/chooseExample'
bulkDataCSVExample:
$ref: '#/components/examples/bulkDataCSVExample'
bulkDataJsonLinesExample:
$ref: '#/components/examples/bulkDataJsonLinesExample'
bulkDataJsonExample:
$ref: '#/components/examples/bulkDataJsonExample'
application/x-jsonlines; charset=UTF-8:
schema:
type: string
examples:
seeTextPlainExamples:
$ref: '#/components/examples/seeTextPlainJsonLinesExamples'
application/x-jsonlines:
schema:
type: string
examples:
seeTextPlainExamples:
$ref: '#/components/examples/seeTextPlainJsonLinesExamples'
application/json; charset=UTF-8:
schema:
type: string
examples:
seeTextPlainExamples:
$ref: '#/components/examples/seeTextPlainJsonExamples'
application/json:
schema:
type: string
examples:
seeTextPlainExamples:
$ref: '#/components/examples/seeTextPlainJsonExamples'
text/csv; charset=UTF-8:
schema:
type: string
examples:
chooseExample:
$ref: '#/components/examples/chooseExample'
bulkDataCSVExample:
$ref: '#/components/examples/bulkDataCSVExample'
text/csv:
schema:
type: string
examples:
chooseExample:
$ref: '#/components/examples/chooseExample'
bulkDataCSVExample:
$ref: '#/components/examples/bulkDataCSVExample'
multipart/form-data:
schema:
type: object
properties:
body:
type: string
format: binary
responses:
'200':
description: Successful response
content:
application/json; charset=UTF-8:
schema:
$ref: '#/components/schemas/SzBulkLoadResponse'
application/json:
schema:
$ref: '#/components/schemas/SzBulkLoadResponse'
default:
schema:
$ref: '#/components/schemas/SzBulkLoadResponse'
'403':
description: >-
If the server was started in read-only mode and so the operation
is not permitted.
content:
application/json; charset=UTF-8:
schema:
$ref: '#/components/schemas/SzErrorResponse'
application/json:
schema:
$ref: '#/components/schemas/SzErrorResponse'
default:
schema:
$ref: '#/components/schemas/SzErrorResponse'
'500':
$ref: '#/components/responses/ServerError'
components:
examples:
chooseExample:
summary: -- choose an example --
value: >-
seeTextPlainJsonLinesExamples:
summary: -- see text/plain examples for JSON-lines --
value: >-
JSON-lines examples with content type application/x-jsonlines do not
render properly in Swagger UI as they are escaped as JSON strings.
Choose the various text/plain content types to see them correctly.
seeTextPlainJsonExamples:
summary: -- see text/plain examples for JSON --
value: >-
JSON examples with content type application/json do not render
properly in Swagger UI as they are escaped as JSON strings. Choose
the various text/plain content types to see them correctly.
noDataSources:
summary: No data sources in content body
value: >-
singleDataSourceUnquotedString:
summary: Single data source as an unquoted string
value: >-
CUSTOMERS
singleDataSourceString:
summary: Single data source as a string
value: >-
"CUSTOMERS"
singleDataSourceStringArray:
summary: Single data source in a string array
value: >-
["CUSTOMERS"]
multipleDataSourcesStringArray:
summary: Multiple data sources in a string array
value: >-
["CUSTOMERS", "EMPLOYEES"]
singleDataSourceObjectNoId:
summary: Single data source as an SzDataSource object
value: >-
{"dataSourceCode": "CUSTOMERS"}
singleDataSourceObjectArrayNoId:
summary: Single data source as an SzDataSource array
value: >-
[ {"dataSourceCode": "CUSTOMERS"} ]
singleDataSourceObjectWithId:
summary: Single data source as an SzDataSource object with ID
value: >-
{
"dataSourceCode": "CUSTOMERS",
"dataSourceId": 1000
}
singleDataSourceObjectArrayWithId:
summary: Single data source as an SzDataSource array with ID
value: >-
[
{
"dataSourceCode": "CUSTOMERS",
"dataSourceId": 1000
}
]
multipleDataSourcesObjectArrayWithId:
summary: Multiple data sources as an SzDataSource array with IDs
value: >-
[
{
"dataSourceCode": "CUSTOMERS",
"dataSourceId": 1000
},
{
"dataSourceCode": "EMPLOYEES",
"dataSourceId": 1001
}
]
multipleDataSourcesMixed:
summary: Multiple data sources in a mixed array
value: >-
[
"CUSTOMERS",
{
"dataSourceCode": "EMPLOYEES"
},
{
"dataSourceCode": "VENDOR",
"dataSourceId": 1002
}
]
simpleFlatRecordExample:
summary: Simple flat JSON record
value: >-
{
"NAME_FIRST": "JANE",
"NAME_LAST": "SCHMOE",
"PHONE_NUMBER": "559-555-1212",
"ADDR_LINE1": "653 STATE ROUTE 7",
"ADDR_CITY": "FRESNO",
"ADDR_STATE": "CA",
"ADDR_POSTAL_CODE": "55073-1234"
}
complexFlatRecordExample:
summary: Complex flat JSON record
value: >-
{
"NAME_FIRST": "JANE",
"NAME_LAST": "SCHMOE",
"HOME_PHONE_NUMBER": "559-555-1212",
"WORK_PHONE_NUMBER": "559-555-1414",
"HOME_ADDR_LINE1": "653 STATE ROUTE 7",
"HOME_ADDR_CITY": "FRESNO",
"HOME_ADDR_STATE": "CA",
"HOME_ADDR_POSTAL_CODE": "55073-1234"
"WORK_ADDR_LINE1": "701 E MAIN STREET",
"WORK_ADDR_CITY": "FOWLER",
"WORK_ADDR_STATE": "CA",
"WORK_ADDR_POSTAL_CODE": "93625"
}
simpleHierarchicalRecordExample:
summary: Simple hierarchical JSON record
value: >-
{
"NAMES": [
{
"NAME_FIRST": "JANE",
"NAME_LAST": "SCHMOE"
}
],
"PHONE_NUMBERS": [
{
"PHONE_NUMBER": "559-555-1212"
}
],
"ADDRESSES": [
{
"ADDR_LINE1": "653 STATE ROUTE 7",
"ADDR_CITY": "FRESNO",
"ADDR_STATE": "CA",
"ADDR_POSTAL_CODE": "55073-1234"
}
]
}
complexHierarchicalRecordExample:
summary: Complex hierarchical JSON record
value: >-
{
"NAMES": [
{
"NAME_TYPE": "PRIMARY",
"NAME_FIRST": "JANE",
"NAME_LAST": "SCHMOE"
},
{
"NAME_TYPE": "MAIDEN",
"NAME_FIRST": "JANE",
"NAME_LAST": "SMITH"
}
],
"PHONE_NUMBERS": [
{
"PHONE_TYPE": "HOME",
"PHONE_NUMBER": "559-555-1212"
},
{
"PHONE_TYPE": "WORK",
"PHONE_NUMBER": "559-555-1414"
}
],
"ADDRESSES": [
{
"ADDR_TYPE": "HOME",
"ADDR_LINE1": "653 STATE ROUTE 7",
"ADDR_CITY": "FRESNO",
"ADDR_STATE": "CA",
"ADDR_POSTAL_CODE": "55073-1234"
},
{
"ADDR_TYPE": "WORK",
"ADDR_LINE1": "701 E MAIN STREET",
"ADDR_CITY": "FOWLER",
"ADDR_STATE": "CA",
"ADDR_POSTAL_CODE": "93625"
}
]
}
noEntitiesExample:
summary: No entities specified
value: [ ]
noRecordsExample:
summary: No records specified
value: [ ]
singleEntityByEntityIdExample:
summary: Single entity by entity ID
value: [ 987654 ]
multipleEntitiesByEntityIdExample:
summary: Multiple entities by entity ID
value: [ 987654, 765432 ]
singleEntityByDelimitedRecordIdExample:
summary: Single entity by delimiter-encoded record ID
value: [ ":CUSTOMERS:GHI789" ]
singleRecordByDelimitedRecordIdExample:
summary: Single record by delimiter-encoded record ID
value: [ ":CUSTOMERS:GHI789" ]
multipleEntitiesByDelimitedRecordIdExample:
summary: Multiple entities by delimiter-encoded record ID
value: [ ":CUSTOMERS:GHI789", ":EMPLOYEES:JKL321" ]
multipleRecordsByDelimitedRecordIdExample:
summary: Multiple records by delimiter-encoded record ID
value: [ ":CUSTOMERS:GHI789", ":EMPLOYEES:JKL321" ]
singleEntityByJsonRecordIdExample:
summary: Single entity by JSON-encoded record ID
value: [ '{"src":"CUSTOMERS","id":"GHI789"}' ]
singleRecordByJsonRecordIdExample:
summary: Single record by JSON-encoded record ID
value: [ '{"src":"CUSTOMERS","id":"GHI789"}' ]
multipleEntitiesByJsonRecordIdExample:
summary: Multiple entities by JSON-encoded record ID
value: [ '{"src":"CUSTOMERS","id":"GHI789"}', '{"src":"EMPLOYEES","id":"JKL321"}' ]
multipleRecordsByJsonRecordIdExample:
summary: Multiple records by JSON-encoded record ID
value: [ '{"src":"CUSTOMERS","id":"GHI789"}', '{"src":"EMPLOYEES","id":"JKL321"}' ]
multipleEntitiesByMixedRecordIdExample:
summary: Multiple entities by mixed-encoded record ID
value: [ ":CUSTOMERS:GHI789", '{"src":"EMPLOYEES","id":"JKL321"}' ]
multipleRecordsByMixedRecordIdExample:
summary: Multiple records by mixed-encoded record ID
value: [ ":CUSTOMERS:GHI789", '{"src":"EMPLOYEES","id":"JKL321"}' ]
noEntitiesArrayExample:
summary: No entities specified
value:
noRecordsArrayExample:
summary: No records specified
value:
singleEntityByEntityIdArrayExample:
summary: Single entity by entity ID
value: '[987654]'
multipleEntitiesByEntityIdArrayExample:
summary: Multiple entities by entity ID
value: '[987654,765432]'
singleEntityByDelimitedRecordIdArrayExample:
summary: Single entity by delimiter-encoded record ID
value: '[":CUSTOMERS:GHI789"]'
singleRecordByDelimitedRecordIdArrayExample:
summary: Single record by delimiter-encoded record ID
value: '[":CUSTOMERS:GHI789"]'
multipleEntitiesByDelimitedRecordIdArrayExample:
summary: Multiple entities by delimiter-encoded record ID
value: '[":CUSTOMERS:GHI789",":EMPLOYEES:JKL321"]'
multipleRecordsByDelimitedRecordIdArrayExample:
summary: Multiple records by delimiter-encoded record ID
value: '[":CUSTOMERS:GHI789",":EMPLOYEES:JKL321"]'
singleEntityByJsonRecordIdArrayExample:
summary: Single entity by JSON-encoded record ID
value: '[{"src":"CUSTOMERS","id":"GHI789"}]'
singleRecordByJsonRecordIdArrayExample:
summary: Single record by JSON-encoded record ID
value: '[{"src":"CUSTOMERS","id":"GHI789"}]'
multipleEntitiesByJsonRecordIdArrayExample:
summary: Multiple entities by JSON-encoded record ID
value: '[{"src":"CUSTOMERS","id":"GHI789"},{"src":"EMPLOYEES","id":"JKL321"}]'
multipleRecordsByJsonRecordIdArrayExample:
summary: Multiple records by JSON-encoded record ID
value: '[{"src":"CUSTOMERS","id":"GHI789"},{"src":"EMPLOYEES","id":"JKL321"}]'
multipleEntitiesByMixedRecordIdArrayExample:
summary: Multiple entities by mixed-encoded record ID
value: '[":CUSTOMERS:GHI789",{"src":"EMPLOYEES","id":"JKL321"}]'
multipleRecordsByMixedRecordIdArrayExample:
summary: Multiple records by mixed-encoded record ID
value: '[":CUSTOMERS:GHI789",{"src":"EMPLOYEES","id":"JKL321"}]'
ssnSearchExample:
summary: Social security number
value: >-
{
"SSN_NUMBER": "111-22-3333"
}
nameAndBirthDateSearchExample:
summary: Name and date of birth
value: >-
{
"NAME_FULL": "JANE SMITH",
"DATE_OF_BIRTH": "03-SEP-1987"
}
nameAndAddressSearchExample:
summary: Name and address
value: >-
{
"NAME_FULL": "JANE SMITH",
"ADDR_LINE1": "653 STATE ROUTE 7",
"ADDR_CITY": "FRESNO",
"ADDR_STATE": "CA",
"ADDR_POSTAL_CODE": "55073-1234"
}
bulkDataCSVExample:
summary: Bulk records in CSV format
value: >-
NAME_FIRST,NAME_LAST,HOME_PHONE_NUMBER,CELL_PHONE_NUMBER,HOME_ADDR_FULL
SALLY,SCHMOE,559-555-1212,559-555-1414,"653 STATE ROUTE 7; FRESNO, CA 55073-1234"
JOE,SCHMOE,559-555-1212,559-555-1616,"653 STATE ROUTE 7; FRESNO, CA 55073-1234"
JOHN,DOE,559-555-1717,559-555-1919,"501 E MAIN STREET; FOWLER, CA 93625"
JANE,DOE,559-555-1717,559-555-1313,"501 E MAIN STREET; FOWLER, CA 93625"
bulkDataJsonLinesExample:
summary: >-
Bulk records in "JSON Lines" format (i.e.: one record per line)
value: >-
{"NAME_FIRST": "SALLY", "NAME_LAST": "SCHMOE", "PHONE_NUMBERS": [ { "PHONE_TYPE": "HOME", "PHONE_NUMBER": "559-555-1212" }, { "PHONE_TYPE": "CELL", "PHONE_NUMBER": "559-555-1414" } ], "ADDRESSES": [ { "ADDR_TYPE": "HOME", "ADDR_FULL": "653 STATE ROUTE 7; FRESNO, CA 55073-1234" } ] }
{"NAME_FIRST": "JOE", "NAME_LAST": "SCHMOE", "PHONE_NUMBERS": [ { "PHONE_TYPE": "HOME", "PHONE_NUMBER": "559-555-1212" }, { "PHONE_TYPE": "CELL", "PHONE_NUMBER": "559-555-1616" } ], "ADDRESSES": [ { "ADDR_TYPE": "HOME", "ADDR_FULL": "653 STATE ROUTE 7; FRESNO, CA 55073-1234" } ] }
{"NAME_FIRST": "JOHN", "NAME_LAST": "DOE", "PHONE_NUMBERS": [ { "PHONE_TYPE": "HOME", "PHONE_NUMBER": "559-555-1717" }, { "PHONE_TYPE": "CELL", "PHONE_NUMBER": "559-555-1919" } ], "ADDRESSES": [ { "ADDR_TYPE": "HOME", "ADDR_FULL": "501 E MAIN STREET; FOWLER, CA 93625" } ] }
{"NAME_FIRST": "JANE", "NAME_LAST": "DOE", "PHONE_NUMBERS": [ { "PHONE_TYPE": "HOME", "PHONE_NUMBER": "559-555-1717" }, { "PHONE_TYPE": "CELL", "PHONE_NUMBER": "559-555-1313" } ], "ADDRESSES": [ { "ADDR_TYPE": "HOME", "ADDR_FULL": "501 E MAIN STREET; FOWLER, CA 93625" } ] }
bulkDataJsonExample:
summary: >-
Bulk records in JSON format (i.e.: JSON array)
value: >-
[
{
"NAMES": [
{
"NAME_FIRST": "SALLY",
"NAME_LAST": "SCHMOE"
}
],
"PHONE_NUMBERS": [
{
"PHONE_TYPE": "HOME",
"PHONE_NUMBER": "559-555-1212"
},
{
"PHONE_TYPE": "CELL",
"PHONE_NUMBER": "559-555-1414"
}
],
"ADDRESSES": [
{
"ADDR_TYPE": "HOME",
"ADDR_LINE1": "653 STATE ROUTE 7",
"ADDR_CITY": "FRESNO",
"ADDR_STATE": "CA",
"ADDR_POSTAL_CODE": "55073-1234"
}
]
},
{
"NAMES": [
{
"NAME_FIRST": "JOE",
"NAME_LAST": "SCHMOE"
}
],
"PHONE_NUMBERS": [
{
"PHONE_TYPE": "HOME",
"PHONE_NUMBER": "559-555-1212"
},
{
"PHONE_TYPE": "CELL",
"PHONE_NUMBER": "559-555-1616"
}
],
"ADDRESSES": [
{
"ADDR_TYPE": "HOME",
"ADDR_LINE1": "653 STATE ROUTE 7",
"ADDR_CITY": "FRESNO",
"ADDR_STATE": "CA",
"ADDR_POSTAL_CODE": "55073-1234"
}
]
},
{
"NAMES": [
{
"NAME_FIRST": "JOHN",
"NAME_LAST": "DOE"
}
],
"PHONE_NUMBERS": [
{
"PHONE_TYPE": "HOME",
"PHONE_NUMBER": "559-555-1717"
},
{
"PHONE_TYPE": "CELL",
"PHONE_NUMBER": "559-555-1919"
}
],
"ADDRESSES": [
{
"ADDR_TYPE": "HOME",
"ADDR_LINE1": "501 E MAIN STREET",
"ADDR_CITY": "FOWLER",
"ADDR_STATE": "CA",
"ADDR_POSTAL_CODE": "93625"
}
]
},
{
"NAMES": [
{
"NAME_FIRST": "JANE",
"NAME_LAST": "DOE"
}
],
"PHONE_NUMBERS": [
{
"PHONE_TYPE": "HOME",
"PHONE_NUMBER": "559-555-1717"
},
{
"PHONE_TYPE": "CELL",
"PHONE_NUMBER": "559-555-1313"
}
],
"ADDRESSES": [
{
"ADDR_TYPE": "HOME",
"ADDR_LINE1": "501 E MAIN STREET",
"ADDR_CITY": "FOWLER",
"ADDR_STATE": "CA",
"ADDR_POSTAL_CODE": "93625"
}
]
}
]
bulkDataMultipartCSVExample:
summary: Bulk records as multipart CSV
value: >-
------WebKitFormBoundarytZEPvKNPgkuBvg4F
Content-Disposition: form-data; name="data"; filename="Co-workers.csv"
Content-Type: text/csv
------WebKitFormBoundarytZEPvKNPgkuBvg4F
NAME_FIRST,NAME_LAST,HOME_PHONE_NUMBER,CELL_PHONE_NUMBER,HOME_ADDR_FULL
SALLY,SCHMOE,559-555-1212,559-555-1414,"653 STATE ROUTE 7; FRESNO, CA 55073-1234"
JOE,SCHMOE,559-555-1212,559-555-1616,"653 STATE ROUTE 7; FRESNO, CA 55073-1234"
JOHN,DOE,559-555-1717,559-555-1919,"501 E MAIN STREET; FOWLER, CA 93625"
JANE,DOE,559-555-1717,559-555-1313,"501 E MAIN STREET; FOWLER, CA 93625"
parameters:
withRawQueryParam:
in: query
name: withRaw
required: false
description: >-
Whether or not to include the raw JSON response from the underlying
native API. This raw response may include additional details but
lack some of the abstraction the standard response provides. If
true, then the 'rawData' field in the response will be a non-null
value and contain the additional details.
schema:
type: boolean
default: false
withRelatedQueryParam:
in: query
name: withRelated
required: false
description: >-
Controls how to handle the first-degree related entities. The possible
values are:
* `NONE` - Do not include any data on first-degree related entities --
this is the fastest option from a performance perspective because
related entities do not have to be retrieved.
* `PARTIAL` - **(default value)** Include only partial stub
information for related entities with the `partial` property of the
`SzRelatedEntity` instances set to `true`. Obtaining additional
information requires subsequent API calls.
* `FULL` - Include full data on the first-degree related entities
according to the `featureMode` and `detailLevel` **unless**
`forceMinimal` is `true`. This option obtains the entity network
at one degree for the requested entity and will populate up to 1000
related entities as much as possible with respect to the
`featureMode` and `detailLevel`. Related entities beyond the first
1000 will be left incomplete and have their `partial` property set
to `true` regardless of the `detailLevel` and `featureMode`. If
this value is specified along with `forceMinimal=true` then
`PARTIAL` is used instead.
schema:
default: PARTIAL
$ref: '#/components/schemas/SzRelationshipMode'
featureModeQueryParam:
in: query
name: featureMode
required: false
description: >-
The method by which feature values should be included for entities
returned in the response. The possible values are:
* `NONE` - Do not include any feature values -- this is the fastest
option from a performance perspective because feature
values do not have to be retrieved.
* `REPRESENTATIVE` - Include only a single representative value per
"unique" value of a feature. If there are
multiple values that are near duplicates then
only one value is included and the others are
suppressed.
* `WITH_DUPLICATES` - ** (default value) ** Group near-duplicate
feature values and return a representative value
along with its near duplicate values.
* `ATTRIBUTED` - Same as `WITH_DUPLICATES` but with record-level
references attributing each feature to the record(s)
that provided it for the entity along with any
usage type that might have been associated with the
feature at the record level.
schema:
default: WITH_DUPLICATES
$ref: '#/components/schemas/SzFeatureMode'
detailLevelQueryParam:
in: query
name: detailLevel
required: false
description: >-
Specifies the level of detail desired for the entity data. Details for
features of entities as well as the related entities of entities are
controlled by `featureMode`, `withInternalFeatures`, and
`withFeatureStats`. If not specified the value defaults to `VERBOSE`.
Possible values are:
* `BARE_MINIMAL` - The entities returned will include only their
entity ID's. No record information is returned
and if related entities are included, they too will
only be described by their entity ID's and will
**not** include any matching info.
* `NETWORK_MINIMAL` - Identical to `BARE_MINIMAL` except in the case
of related entities being included they will
also include related matching info.
* `MINIMAL` - The entities returned will include at most their
entity ID's as well as identifiers for their
constituent records (i.e.: data source code and record
ID for each record). This detail level is optimized for
the fastest possible processing time.
* `BRIEF` - Builds upon `MINIMAL` to add the entity name and related
entity match info when related entity match info when
related entities are included. This detail level aims to
maintain as much speed as possible while providing names
and relationship information for rendering a graph.
* `SUMMARY` - Identical to `BRIEF` except that individual record
identifier information is excluded, leaving only the
record summary (i.e.: a record count by data source
code). This reduces the size of the JSON document for
large entities with thousands of records. It may take
longer to process than `BRIEF` but less data is
returned as well, speeding up network transfer times.
* `VERBOSE` - Combines `BRIEF` and `SUMMARY` and then adds the
original JSON data for each record, the record-level
matching info, as well as formatted record data. NOTE:
the record-level matching info returned via "how" and
"why" is often more useful than that embedded in the
entity. Further, the formatted record data, while
readable, is not formatted according to locale (i.e.:
address, name and date formatting may not appear as
expected to a user).
schema:
default: VERBOSE
$ref: '#/components/schemas/SzDetailLevel'
withRelationshipsQueryParam:
in: query
name: withRelationships
description: >-
Set to `true` to include partial information of related entities for
the returned entities. This defaults to `false`.
required: false
schema:
type: boolean
default: false
whyWithFeatureStatsQueryParam:
in: query
name: withFeatureStats
description: >-
Set to `false` to suppress resolution statistics for features. This
defaults to `true` for why operations.
required: false
schema:
type: boolean
default: true
whyWithInternalFeaturesQueryParam:
in: query
name: withInternalFeatures
description: >-
Set to `false` to suppress "expressed" features that are derived
composite keys such as `FULL_NAME` + `DATE_OF_BIRTH`. This
defaults to `true` for why operations.
required: false
schema:
type: boolean
default: true
withFeatureStatsQueryParam:
in: query
name: withFeatureStats
description: >-
Set to `true` to include resolution statistics for features. This
defaults to `false`.
required: false
schema:
type: boolean
default: false
withInternalFeaturesQueryParam:
in: query
name: withInternalFeatures
description: >-
Set to `true` to include "expressed" features that are derived composite
keys such as name + date of birth keys. This defaults to `false`.
required: false
schema:
type: boolean
default: false
includeOnlyQueryParam:
in: query
name: includeOnly
description: >-
Optional parameter that can be specified zero or more times to
indicate which `SzAttributeSearchResultType`'s should be included
in the search results. If not specified then all match types are
included. *NOTE*: This parameter is ignored unless the underlying
native Senzing API is version 2.4.1 or later.
required: false
schema:
type: array
items:
$ref: '#/components/schemas/SzAttributeSearchResultType'
examples:
notSpecifiedExample:
summary: Not specified - include all search results
value:
includeOnlyMatches:
summary: Only include matches
value: [ "MATCH" ]
includeOnlyMatchesAndPossibleMatches:
summary: Only include matches and possible matches.
value: [ "MATCH", "POSSIBLE_MATCH" ]
includeAllButNameOnlyMatches:
summary: Include all but name-only matches.
value: [ "MATCH", "POSSIBLE_MATCH", "POSSIBLE_RELATION" ]
includeOnlyNameOnlyMatches:
summary: Only include name-only matches.
value: [ "NAME_ONLY_MATCH" ]
withInfoQueryParam:
in: query
name: withInfo
description: >-
Set to `true` to include resolution information related to loading, and
`false` to exclude it. This defaults to `false`.
required: false
schema:
type: boolean
default: false
loadIdQueryParam:
in: query
name: loadId
required: false
description: >-
The optional load ID to associate with the loaded record.
schema:
type: string
forceMinimalQueryParam:
in: query
name: forceMinimal
required: false
description: >-
Whether (or not) to force the minimum entity detail in the response
which will consist of nothing more than an entity ID and record
identifying information (i.e.: data source code and record ID) for each
constituent record of an entity. Unlike `detailLevel=MINIMAL` setting
this to `true` precludes the addition of feature information via other
parameters. Setting this to `true` provides the fastest response to an
entity query operation because no additional data needs to be retrieved
other than what is directly accessible. Setting this parameter to
`true` overrules other parameters governing the retrieval of features
or related entities.
schema:
type: boolean
default: false
dataSourceCodePathParam:
in: path
name: dataSourceCode
required: true
description: >-
The data source code identifying the data source.
schema:
type: string
examples:
TEST:
value: TEST
CUSTOMERS:
value: CUSTOMERS
EMPLOYEES:
value: EMPLOYEES
recordIdPathParam:
in: path
name: recordId
required: true
description: >-
The identifier that uniquely identifies the requested record
within a given data source. This may have been specified
when the record was loaded or generated automatically.
schema:
type: string
progressPeriodParam:
in: query
name: progressPeriod
required: false
description: >-
The suggested maximum time between SSE `progress` events specified in
milliseconds. If not specified then the default of `3000` milliseconds
(i.e.: 3 seconds) is used. This parameter is NOT used if the operation
is not producing an SSE response (i.e.: `text/event-stream` media type
was not requested via the `Accept` header).
schema:
type: integer
format: int64
default: 3000
eofSendTimeoutParam:
in: query
name: eofSendTimeout
required: false
description: >-
The number of seconds to wait for an additional Web Sockets message
before assuming end-of-file (EOF) when using this end-point via Web
Sockets protocol. If this number of seconds elapses with no additional
incoming data then the server assumes that there are no more file chunks
forthcoming. If not specified then the default of `3` seconds is used.
This parameter is NOT used if the operation is not invoked via the Web
Sockets (`ws://`) protocol. **NOTE**: This is specified in seconds,
**not** milliseconds.
schema:
type: integer
format: int32
default: 3
responses:
ServerError:
description: Unexpected server error occurred.
content:
application/json; charset=UTF-8:
schema:
$ref: '#/components/schemas/SzErrorResponse'
application/json:
schema:
$ref: '#/components/schemas/SzErrorResponse'
default:
schema:
$ref: '#/components/schemas/SzErrorResponse'
schemas:
SzMeta:
description: >-
Represents the meta data returned with each response.
type: object
properties:
server:
description: >-
The descriptive name of the server that produced the response.
type: string
httpMethod:
$ref: '#/components/schemas/SzHttpMethod'
httpStatusCode:
description: >-
The HTTP status response code.
type: integer
format: int16
timestamp:
description: >-
The timestamp of the operation's execution.
type: string
format: date-time
version:
description: >-
The version number of the server.
type: string
restApiVersion:
description: >-
The REST API specification version implemented by the server.
type: string
nativeApiVersion:
description: >-
The version of the underlying native Senzing API product.
type: string
nativeApiBuildVersion:
description: >-
The build version of the underlying native Senzing API product.
type: string
nativeApiBuildNumber:
description: >-
The build number of the underlying native Senzing API product.
type: string
nativeApiBuildDate:
description: >-
The build date of the underlying native Senzing API product.
type: string
format: date-time
configCompatibilityVersion:
description: >-
The config compatilibility version of the underlying native Senzing
API product.
type: string
timings:
description: >-
The timing measurements that were taken where the keys are
identifying what was timed and the values are the number of
milliseconds.
type: object
nullable: true
additionalProperties:
type: integer
format: int64
SzLinks:
description: >-
Represents the default links returned with each response.
type: object
properties:
self:
type: string
openApiSpecification:
type: string
SzBaseResponse:
description: >-
Represents the base information included in all responses sans the
actual data for the response.
type: object
properties:
meta:
$ref: '#/components/schemas/SzMeta'
links:
$ref: '#/components/schemas/SzLinks'
SzErrorResponse:
description: >-
The response describing an error that occurred.
allOf:
- $ref: '#/components/schemas/SzBaseResponse'
- type: object
properties:
errors:
type: array
items:
$ref: '#/components/schemas/SzError'
SzResponseWithRawData:
description: >-
Extends the BaseResponse to add the rawData field.
allOf:
- $ref: '#/components/schemas/SzBaseResponse'
- type: object
properties:
rawData:
description: >-
The RAW result from the underlying native API function.
type: object
nullable: true
additionalProperties: {}
SzOpenApiSpecResponse:
description: >-
Extends the BaseResponse to describe a response containing the
Open API specification in JSON format as the data.
allOf:
- $ref: '#/components/schemas/SzBaseResponse'
- type: object
properties:
data:
description: >-
This Open API specification in JSON format.
type: object
nullable: false
additionalProperties: {}
SzOpenApiSpecResponseOrRawJson:
description: >-
This represents the possible return type for an Open API specification
which can be an instance of `SzOpenApiSpecResponse` or raw JSON of the
Open API specification.
oneOf:
- $ref: '#/components/schemas/SzOpenApiSpecResponse'
- type: object
additionalProperties: {}
SzLicenseResponseData:
description: >-
Represents the data segment included with an `SzLicenseResponse`
type: object
properties:
license:
$ref: '#/components/schemas/SzLicenseInfo'
SzLicenseResponse:
description: >-
The response containing the license information.
allOf:
- $ref: '#/components/schemas/SzResponseWithRawData'
- type: object
properties:
data:
$ref: '#/components/schemas/SzLicenseResponseData'
SzVersionResponse:
description: >-
The response containing the version information.
allOf:
- $ref: '#/components/schemas/SzResponseWithRawData'
- type: object
properties:
data:
$ref: '#/components/schemas/SzVersionInfo'
SzServerInfoResponse:
description: >-
The response containing the server info.
allOf:
- $ref: '#/components/schemas/SzBaseResponse'
- type: object
properties:
data:
$ref: '#/components/schemas/SzServerInfo'
SzAttributeTypesResponseData:
description: >-
Describes the data associated with the `SzAttributeTypesResponse`.
type: object
properties:
attributeTypes:
description: >-
The list of attribute types.
type: array
items:
$ref: '#/components/schemas/SzAttributeType'
SzAttributeTypesResponse:
description: >-
The response containing attribute type information.
allOf:
- $ref: '#/components/schemas/SzResponseWithRawData'
- type: object
properties:
data:
$ref: '#/components/schemas/SzAttributeTypesResponseData'
SzAttributeTypeResponseData:
description: >-
Describes the data segment associated with `SzAttributeTypeResponse`
type: object
properties:
attributeType:
$ref: '#/components/schemas/SzAttributeType'
SzAttributeTypeResponse:
description: >-
The response containing information for a single attribute type.
allOf:
- $ref: '#/components/schemas/SzResponseWithRawData'
- type: object
properties:
data:
$ref: '#/components/schemas/SzAttributeTypeResponseData'
SzDataSourceResponseData:
description: >-
Describes the data associated with `SzDataSourceResponse`
type: object
properties:
dataSource:
description: >-
The requested data source as an `SzDataSource` object.
$ref: '#/components/schemas/SzDataSource'
SzDataSourceResponse:
description: >-
The response describing a data source.
allOf:
- $ref: '#/components/schemas/SzResponseWithRawData'
- type: object
properties:
data:
$ref: '#/components/schemas/SzDataSourceResponseData'
SzDataSourcesResponseData:
description: >-
Describes the data for `SzDataSourceResponse`.
type: object
properties:
dataSources:
description: >-
The list of data source codes for the configured data
sources.
type: array
items:
type: string
dataSourceDetails:
description: >-
The list of `SzDataSource` instances describing the data
sources that are configured.
type: object
additionalProperties:
$ref: '#/components/schemas/SzDataSource'
SzDataSourcesResponse:
description: >-
The response describing the configured data sources.
allOf:
- $ref: '#/components/schemas/SzResponseWithRawData'
- type: object
properties:
data:
$ref: '#/components/schemas/SzDataSourcesResponseData'
SzConfigResponse:
description: >-
The response containing raw configuration in the rawData field.
allOf:
- $ref: '#/components/schemas/SzResponseWithRawData'
SzLoadRecordResponseData:
description: >-
Describes the data segment of `SzLoadRecordResponse`.
type: object
properties:
recordId:
description: >-
The record ID of the record that was loaded.
type: string
info:
description: >-
The optionally requested info associated with the load.
$ref: '#/components/schemas/SzResolutionInfo'
SzLoadRecordResponse:
description: >-
Describes the response when a record is successfully loaded.
allOf:
- $ref: '#/components/schemas/SzResponseWithRawData'
- type: object
properties:
data:
$ref: '#/components/schemas/SzLoadRecordResponseData'
SzReevaluateResponseData:
description: >-
Describes the data segment of `SzReevaluateResponse`.
type: object
properties:
info:
description: >-
The optionally requested info associated with the load.
$ref: '#/components/schemas/SzResolutionInfo'
SzReevaluateResponse:
allOf:
- $ref: '#/components/schemas/SzResponseWithRawData'
- type: object
properties:
data:
$ref: '#/components/schemas/SzReevaluateResponseData'
SzDeleteRecordResponseData:
description: >-
Describes the data segment of `SzDeleteRecordResponse`.
type: object
properties:
info:
description: >-
The optionally requested info associated with the load.
$ref: '#/components/schemas/SzResolutionInfo'
SzDeleteRecordResponse:
allOf:
- $ref: '#/components/schemas/SzResponseWithRawData'
- type: object
properties:
data:
$ref: '#/components/schemas/SzDeleteRecordResponseData'
SzRecordResponse:
description: >-
The response describing an entity record.
allOf:
- $ref: '#/components/schemas/SzResponseWithRawData'
- type: object
properties:
data:
type: object
properties:
record:
description: >-
The `SzEntityRecord` describing the matching record.
$ref: '#/components/schemas/SzEntityRecord'
SzEntityResponse:
description: >-
The response describing a resolved entity and possibly its related
entities.
allOf:
- $ref: '#/components/schemas/SzResponseWithRawData'
- type: object
properties:
data:
$ref: '#/components/schemas/SzEntityData'
SzVirtualEntityResponse:
description: >-
The response describing a simulated virtual entity and possibly its
related entities.
allOf:
- $ref: '#/components/schemas/SzResponseWithRawData'
- type: object
properties:
data:
$ref: '#/components/schemas/SzVirtualEntityData'
SzAttributeSearchResponseData:
description: >-
Describes the data segment of the `SzAttributeSearchResponse`
type: object
properties:
searchResults:
description: >-
The array of `AttributeSearchResult` instances describing the
entities matching the specified entity search attributes
including the `AttributeSearchResultType` for each.
type: array
items:
$ref: '#/components/schemas/SzAttributeSearchResult'
SzAttributeSearchResponse:
description: >-
The response describing the resolved entities found from a search.
allOf:
- $ref: '#/components/schemas/SzResponseWithRawData'
- type: object
properties:
data:
$ref: '#/components/schemas/SzAttributeSearchResponseData'
SzEntityPathResponse:
description: >-
The response describing a path between two resolved entities.
allOf:
- $ref: '#/components/schemas/SzResponseWithRawData'
- type: object
properties:
data:
$ref: '#/components/schemas/SzEntityPathData'
SzEntityNetworkResponse:
description: >-
The response describing a network of resolved entities.
allOf:
- $ref: '#/components/schemas/SzResponseWithRawData'
- type: object
properties:
data:
$ref: '#/components/schemas/SzEntityNetworkData'
SzBulkDataAnalysisResponse:
description: >-
The response describing the analysis of bulk data records.
allOf:
- $ref: '#/components/schemas/SzBaseResponse'
- type: object
properties:
data:
description: >-
The `SzBulkDataAnalysis` describing the analysis of the bulk
records.
$ref: '#/components/schemas/SzBulkDataAnalysis'
SzBulkLoadResponse:
description: >-
The response describing the result of loading bulk data.
allOf:
- $ref: '#/components/schemas/SzBaseResponse'
- type: object
properties:
data:
description: >-
The `SzBulkLoadResult` describing the load statistics from
loading a bulk data set.
$ref: '#/components/schemas/SzBulkLoadResult'
SzWhyEntityResponse:
description: >-
The response describing the result of "why" operation.
allOf:
- $ref: '#/components/schemas/SzResponseWithRawData'
- type: object
properties:
data:
type: object
properties:
whyResults:
description: >-
The array of `SzWhyEntityResult` instances describing why
from each evaluated perspective within the entity.
type: array
items:
$ref: '#/components/schemas/SzWhyEntityResult'
entities:
description: >-
The array of `SzEntityData` objects describing the entities
involved in the response. This will include partial
information on the first-degree related entities to the
entity.
type: array
items:
$ref: '#/components/schemas/SzEntityData'
SzWhyRecordsResponse:
description: >-
The response describing the result of "why" operation.
allOf:
- $ref: '#/components/schemas/SzResponseWithRawData'
- type: object
properties:
data:
type: object
properties:
whyResult:
description: >-
The `SzWhyRecordsResult` describing why from for the
specified records.
$ref: '#/components/schemas/SzWhyRecordsResult'
entities:
description: >-
The array of `SzEntityData` objects describing the entities
involved in the response. This will include partial
information on the first-degree related entities to the
entity.
type: array
items:
$ref: '#/components/schemas/SzEntityData'
SzWhyEntitiesResponse:
description: >-
The response describing the result of "why entities" operation.
allOf:
- $ref: '#/components/schemas/SzResponseWithRawData'
- type: object
properties:
data:
type: object
properties:
whyResult:
description: >-
The `SzWhyEntitiesResult` describing why the two entities
did not resolve or why they related.
$ref: '#/components/schemas/SzWhyEntitiesResult'
entities:
description: >-
The array of `SzEntityData` objects describing the entities
involved in the response. This will include partial
information on the first-degree related entities to the
entity.
type: array
items:
$ref: '#/components/schemas/SzEntityData'
SzError:
description: >-
Describes an error.
type: object
properties:
code:
description: The internal error code.
type: string
nullable: true
message:
description: The message describing the error.
type: string
SzBulkLoadError:
description: >-
Describes an error and the number of times it occurred.
type: object
properties:
error:
description: >-
The error that occurred.
$ref: '#/components/schemas/SzError'
occurrenceCount:
description: >-
The number of times the error occurred while loading data
from the bulk data set.
type: integer
format: int32
SzHttpMethod:
description: >-
The HTTP method that was used for the operation. The possible values
are:
* `GET` - An HTTP GET operation.
* `POST` - An HTTP POST operation.
* `PUT` - An HTTP PUT operation.
* `PATCH` - An HTTP PATCH operation.
* `DELETE` - An HTTP DELETE operation.
type: string
enum:
- GET
- POST
- PUT
- PATCH
- DELETE
SzAttributeClass:
description: >-
Enumerates the various classes of attribute types (and features).
This is a generalization over attribute type that is more general
than feature type (NOTE: stand-alone attribute types such as
"DATA_SOURCE" or "RECORD_ID" do not have a feature type, but do have
an attribute class of "OBSERVATION"). Attribute class determines how
attributes / features are grouped together (e.g.: "nameData" contains
all name features and "identifierData" contains all identifier
features). The possible values are:
* `ADDRESS` - Attributes pertaining to an address such as "POSTAL_CODE"
* `CHARACTERISTIC` - Attributes pertaining to physical characteristics
of an entity. Such as "BIRTH_DATE"
* `IDENTIFIER` - Attributes pertaining to identifiers such as
drivers license number, passport number, or email
address.
* `NAME` - Attributes pertaing to names such as "NAME_FIRST" or
"NAME_LAST"
* `OBSERVATION` - Attributes pertaining to meta-data about the
observation (record) such as "RECORD_ID" or
"DATA_SOURCE"
* `PHONE` - Attributes pertaining to phone numbers such
"PHONE_NUMBER" or "PHONE_EXTENSION"
* `RELATIONSHIP` - Attributes pertaining to relationships such as
"RELATIONSHIP_TYPE".
* `OTHER` - An attribute class for custom features or for attributes
that are loaded but not mapped.
type: string
enum:
- ADDRESS
- CHARACTERISTIC
- IDENTIFIER
- NAME
- OBSERVATION
- PHONE
- RELATIONSHIP
- OTHER
SzFeatureMode:
description: >-
The method by which feature values should be included for entities
returned in the response. The possible values are:
* `NONE` - Do not include any feature values -- this is the fastest
option from a performance perspective because feature
values do not have to be retrieved.
* `ENTITY_NAME_ONLY` - Same as `NONE` in that no "features" are
returned, but the singular entity name value
is determined will be determined and returned.
* `REPRESENTATIVE` - Include only a single representative value per
"unique" value of a feature. If there are
multiple values that are near duplicates then
only one value is included and the others are
suppressed.
* `WITH_DUPLICATES` - ** (default value) ** Group near-duplicate
feature values and return a representative value
along with its near duplicate values.
* `ATTRIBUTED` - Same as `WITH_DUPLICATES` but with record-level
references attributing each feature to the record(s)
that provided it for the entity along with any
usage type that might have been associated with the
feature at the record level.
type: string
enum:
- NONE
- ENTITY_NAME_ONLY
- REPRESENTATIVE
- WITH_DUPLICATES
- ATTRIBUTED
default: WITH_DUPLICATES
SzRelationshipMode:
description: >-
Controls how to handle the first-degree related entities. The possible
values are:
* `NONE` - Do not include any data on first-degree related entities --
this is the fastest option from a performance perspective because
related entities do not have to be retrieved.
* `PARTIAL` - **(default value)** Include only partial stub
information for related entities with the `partial` property of the
`SzRelatedEntity` instances set to `true`. Obtaining additional
information requires subsequent API calls.
* `FULL` - Include full data on the first-degree related entities
according to the `featureMode` and `detailLevel` **unless**
`forceMinimal` is `true`. This option obtains the entity network
at one degree for the requested entity and will populate up to 1000
related entities as much as possible with respect to the
`featureMode` and `detailLevel`. Related entities beyond the first
1000 will be left incomplete and have their `partial` property set
to `true` regardless of the `detailLevel` and `featureMode`. If
this value is specified along with `forceMinimal=true` then
`PARTIAL` is used instead.
type: string
enum:
- NONE
- PARTIAL
- FULL
default: PARTIAL
SzAttributeNecessity:
description: >-
Describes the necessity for this attribute type within the
feature type. Possible values are:
* `REQUIRED` - The attribute for the attribute type must be
provided whenever the feature is provided (e.g.:
"PASSPORT_NUMBER" is required with the "PASSPORT"
feature).
* `SUFFICIENT` - If no attributes for `REQUIRED` attribute types
are provided for the feature, then at least one
marked `SUFFICIENT` must be provided (e.g.:
"NAME_FULL" or "NAME_ORG" for the "NAME" feature)
* `PREFERRED` - Attributes of `PREFERRED` attribute types are
optional, but providing them greatly enhances
accuracy for scoring and matching purposes (e.g.:
a "PASSPORT_COUNTRY" for "PASSPORT" feature)
* `OPTIONAL` - Attributes of `OPTIONAL` attribute types are
optional and do not significantly affect accuracy
for scoring and matching purposes, but do provide
additional information (e.g.: "PASSPORT_ISSUE_DT"
for the "PASSPORT" feature)
type: string
enum:
- REQUIRED
- SUFFICIENT
- PREFERRED
- OPTIONAL
SzDetailLevel:
description: >-
Describes the level of detail desired for entity data when obtained via
the various endpoints that return entity data. Details for features of
entities as well as the related entities of entities are controlled by
other flags. Possible values are:
* `BARE_MINIMAL` - The entities returned will include only their
entity ID's. No record information is returned
and if related entities are included, they too will
only be described by their entity ID's and will
**not** include any matching info.
* `NETWORK_MINIMAL` - Identical to `BARE_MINIMAL` except in the case
of related entities being included they will
also include related matching info.
* `MINIMAL` - The entities returned will include at most their
entity ID's as well as identifiers for their
constituent records (i.e.: data source code and record
ID for each record). This detail level is optimized for
the fastest possible processing time.
* `BRIEF` - Builds upon `MINIMAL` to add the entity name and related
entity match info when related entity match info when
related entities are included. This detail level aims to
maintain as much speed as possible while providing names
and relationship information for rendering a graph.
* `SUMMARY` - Identical to `BRIEF` except that individual record
identifier information is excluded, leaving only the
record summary (i.e.: a record count by data source
code). This reduces the size of the JSON document for
large entities with thousands of records. It may take
longer to process than `BRIEF` but less data is
returned as well, speeding up network transfer times.
* `VERBOSE` - Combines `BRIEF` and `SUMMARY` and then adds the
original JSON data for each record, the record-level
matching info, as well as formatted record data. NOTE:
the record-level matching info returned via "how" and
"why" is often more useful than that embedded in the
entity. Further, the formatted record data, while
readable, is not formatted according to locale (i.e.:
address, name and date formatting may not appear as
expected to a user).
type: string
enum:
- BARE_MINIMAL
- NETWORK_MINIMAL
- MINIMAL
- BRIEF
- SUMMARY
- VERBOSE
SzAttributeType:
description: >-
Describes an attribute type that partially (or fully) describes a
feature of an entity that may be loaded as part of a record or
used as criteria in a search.
type: object
properties:
attributeCode:
description: >-
The unique string that identifies the attribute type among all
other attribute types.
type: string
nullable: false
defaultValue:
description: >-
The default value assumed for the attribute when it is not
provided but is required as part of a feature.
type: string
nullable: true
necessity:
$ref: '#/components/schemas/SzAttributeNecessity'
attributeClass:
$ref: '#/components/schemas/SzAttributeClass'
featureType:
description: >-
Identifiers the feature type that this attribute type is an
attribute of (if any). For example, the "NAME_FIRST" attribute type
would be an attribute of the "NAME" feature type and
"PASSPORT_COUNTRY" would be an attribute of "PASSPORT" feature type.
Some (advanced) attribute types are stand-alone and do not belong
to a feature (e.g.: "RECORD_ID").
type: string
nullable: true
advanced:
description: >-
Indicates if the attribute type is considered to be "advanced".
Advanced attribute types usually require the user to have some
knowledge of how the data is mapped in the entity repository
(e.g.: "RECORD_ID" or "DATA_SOURCE"). An application may exclude
displaying these as options if these things are being auto-generated
or automatically selected for the user. You may want to contact
Senzing support before leveraging advanced attribute types in your
application.
type: boolean
nullable: false
internal:
description: >-
Whether or not an attribute type is typically generated internally
based on other attribute types. These are not commonly used by the
user except in some rare cases. Examples include pre-hashed
versions of attributes that are hashed.
type: boolean
nullable: false
SzEntityIdentifier:
description: >-
Identifies an entity by either its entity ID or by the data source
code and record ID of one of its constituent records. If a record ID
is specified then it is either as a JSON-encoded `SzRecordId` or a
delimited string where the first character is the delimiter, followed
by the data source code, then the delimiter and the record ID (e.g.:
`|CUSTOMERS|ABC123`).
oneOf:
- type: integer
format: int64
- $ref: '#/components/schemas/SzRecordId'
- type: string
SzRecordIdentifier:
description: >-
Identifies a record by its data source code and record ID. This is
either a JSON-encoded `SzRecordId` or a delimited string where the first
character is the delimiter, followed by the data source code, then the
delimiter and the record ID (e.g.: `|CUSTOMERS|ABC123`).
oneOf:
- $ref: '#/components/schemas/SzRecordId'
- type: string
SzEntityIdentifiers:
description: >-
Identifies zero or more entities by either its entity ID or by the
data source code and record ID of one of their constituent records.
Identifiers in the array are homogeneous, either all entity IDs or
all `SzRecordId` instances containing the data-source-code/record-id
pair. If specified as record IDs they are either JSON-encoded
`SzRecordId` instances or a delimited string where the first character
is the delimiter, followed by the data source code, then the delimiter
and the record ID (e.g.: `|CUSTOMERS|ABC123`).
oneOf:
- type: array
items:
type: integer
format: int64
- type: array
items:
$ref: '#/components/schemas/SzRecordId'
- type: array
items:
type: string
- type: array
items:
oneOf:
- $ref: '#/components/schemas/SzRecordId'
- type: string
SzRecordIdentifiers:
description: >-
Identifies zero or more records by their data source codes and record
ID's. Identifiers in the array are homogeneous, either all entity IDs or
all RecordId instances containing the data-source-code/record-id pair.
The record ID's are either JSON-encoded `SzRecordId` instances or a
delimited string where the first character is the delimiter, followed
by the data source code, then the delimiter and the record ID (e.g.:
`|CUSTOMERS|ABC123`).
oneOf:
- type: array
items:
$ref: '#/components/schemas/SzRecordId'
- type: array
items:
type: string
- type: array
items:
oneOf:
- $ref: '#/components/schemas/SzRecordId'
- type: string
SzRecordId:
description: >-
Identifies a record by its data source code and record identifier.
This abbreviated format is used in query parameters to identify
records via JSON strings.
type: object
properties:
src:
description: >-
The data source code that uniquely identifies the data source
associated with the record.
type: string
id:
description: >-
The record ID that uniquely identifies a record within the
respective data source.
type: string
SzLicenseInfo:
description: >-
Describes the Senzing product license.
type: object
properties:
customer:
type: string
description: >-
The customer information associated with the license.
contract:
type: string
description: >-
The contract information associated with the license.
licenseType:
type: string
description: >-
The description of the type of license.
licenseLevel:
type: string
description: >-
The description of the license level.
billing:
type: string
description: >-
The billing information associated with the license
issuanceDate:
type: string
format: date-time
description: >-
The issuance date for the license.
expirationDate:
type: string
format: date-time
description: >-
The expiration date for the license.
recordLimit:
type: integer
format: int64
description: >-
The record limit associated with the license.
SzVersionInfo:
description: >-
Describes the Senzing version information.
type: object
properties:
apiServerVersion:
type: string
description: >-
The version of the REST API Server implementation.
restApiVersion:
type: string
description: >-
The version of the REST API Specification that is implemented.
nativeApiVersion:
type: string
description: >-
The version for the underlying runtime native Senzing API.
nativeApiBuildVersion:
type: string
description: >-
The build version for the underlying runtime native Senzing API.
nativeApiBuildNumber:
type: string
description: >-
The build number for the underlying runtime native Senzing API.
nativeApiBuildDate:
type: string
format: date-time
description: >-
The build date for the underlying runtime native Senzing API.
configCompatibilityVersion:
type: string
description: >-
The configuration compatibility version for the underlying runtime
native Senzing API.
SzFlaggedRecord:
description: >-
Describes a sample record from an `SzFlaggedEntity` including the
triggered flags for that record.
type: object
properties:
dataSource:
description: >-
The data source code associated with the sample record.
type: string
type: string
recordId:
description: >-
The record ID identifying with the same record.
type: string
flags:
description: >-
The array of flags triggered by the sample record.
type: array
items:
type: string
SzFlaggedEntity:
description: >-
An entity that was flagged as relevant due to the resolution operation.
type: object
properties:
entityId:
description: >-
The entity ID of the relevant entity.
type: integer
format: int64
degrees:
description: >-
The number of degrees this entity is separated from the
entity that was affected.
type: integer
format: int8
flags:
description: >-
The array of flags that were triggered making this entity
relevant.
type: array
items:
type: string
sampleRecords:
description: >-
An array of objects describing sample records from the
relevant entity and the triggered flags for that record.
type: array
items:
$ref: '#/components/schemas/SzFlaggedRecord'
SzResolutionInfo:
description: >-
Provides information relevant to resolution of an entity either when
loading a record or reevaluating an entity.
type: object
properties:
dataSource:
description: >-
The data source for the record that was focus of the load or
reevaluate operation.
type: string
recordId:
description: >-
The record ID for the record that was focus of the load or
reevaluate operation.
type: string
affectedEntities:
description: >-
The array of entity ID's for the affected entities.
type: array
items:
type: integer
format: int64
flaggedEntities:
description: >-
The entities that were flagged as relevant due to the resolution
operation.
type: array
items:
$ref: '#/components/schemas/SzFlaggedEntity'
SzFeatureReference:
description: >-
Describes a record's reference to an entity feature along with the
optional usage type with which the record references the feature.
type: object
properties:
internalId:
description: >-
The internal feature ID identifying the feature so that it might
be identified and referenced.
type: integer
format: int64
usageType:
description: >-
The optional associated usage type (e.g.: "HOME or "WORK). This is
the usage type with which the record loaded the feature (if any).
Other records in the same entity may have the same feature with a
different usage type.
type: string
nullable: true
SzEntityRecord:
description: >-
Describes a record (aka: observed entity) that has been loaded for
a particular data source.
type: object
properties:
dataSource:
type: string
description: >-
The data source code identifying the source from which the record
was loaded.
recordId:
type: string
description: >-
The identifier that uniquely identifies this record from other
records from the same data source. This may have been loaded with
the record or automatically generated from the record's data.
featureReferences:
description: >-
The optional array of record feature references to the entity
features along with the record's usage type if any.
type: array
nullable: true
items:
$ref: '#/components/schemas/SzFeatureReference'
lastSeenTimestamp:
description: >-
The timestamp that the record was most recently loaded or updated.
type: string
format: date-time
addressData:
description: >-
An array of addresses associated with the record that are formatted
for readability. These may be prefixed by a "usage type" if one
was provided (e.g.: "HOME: 101 Main Street")
type: array
items:
type: string
characteristicData:
description: |
An array of characteristics associated with the record that are
formatted for readability. These will be prefixed by a
characteristic type and optionally by a "usage type" if one was
provided.
**NOTE:** The `characteristicData` field is derived from the
`ATTRIBUTE_DATA` field in the "raw data" JSON.
type: array
items:
type: string
identifierData:
description: >-
An array of entity data associated with the record where the items
are formatted for readability. These will be prefixed by an
identifier type and may be prefixed by a "usage type" if one was
provided (e.g.: "ID: 123456789" or "EMAIL: WORK: joe@nowhere.com")
type: array
items:
type: string
nameData:
description: >-
An array of names associated with the record that are formatted for
readability. These may be prefixed by a "usage type" if one was
provided (e.g.: "Joe Schmoe" or "AKA: Joseph P. Schmoe")
type: array
items:
type: string
phoneData:
description: >-
An array of phone numbers associated with the record that are
formatted for readability. These may be prefixed by a "usage type"
if one was provided (e.g.: "HOME: 702-555-1212")
type: array
items:
type: string
relationshipData:
description: >-
An array of relationship data items associated with the record that
describes disclosed relationships.
type: array
items:
type: string
otherData:
description: >-
An array of associated data items that were loaded with the record
but not normally recognized or used for entity resolution. This
array usually contains useful information from the source system.
type: array
items:
type: string
originalSourceData:
description: >-
The JSON representation of the original data record that was
loaded.
type: object
additionalProperties: {}
SzMatchedRecord:
description: >-
Provides the additional fields to an SzEntityRecord that describe
how it matched to the entity that it belongs to.
allOf:
- $ref: '#/components/schemas/SzEntityRecord'
- type: object
properties:
matchKey:
description: >-
The match key describing what features matched between
the first record in the resolved entity and this record.
This is blank for the first record.
type: string
resolutionRuleCode:
description: >-
The code identifying the resolution rule that matched this
record to the first record in the resolved entity. This is
blank for the first record.
type: string
matchLevel:
description: >-
The integer "match level" describing how the first record in
the resolved entity matched to this record. This is zero for
the first record and usually one (1) for other records.
type: integer
format: int32
SzDataSourceRecordSummary:
description: >-
Describes the number of records associated with a specific data source
for a given resolved entity. Optionally, if the complete set of records
has been retrieved for the associated entity, then this may also contain
the "top 10" record IDs for the associated data source.
type: object
properties:
dataSource:
description: >-
The data source code identifying the data source for which the
record breakdown is being described.
type: string
recordCount:
description: >-
The number of records from the respective data source that are
part of the associated resolved entity.
type: integer
format: int32
topRecordIds:
description: >-
The optional array of string record ID's identifying the top 10
records for the associated entity from the respective data source.
This may be null or an empty array if the data was not available.
type: array
nullable: true
items:
type: string
SzEntityFeatureStatistics:
description: >-
Describes the entity resolution statistics for the feature value.
type: object
properties:
usedForCandidates:
description: >-
Indicates if the feature is used for finding candidates during
entity resolution.
type: boolean
usedForScoring:
description: >-
Indicates if the feature is used for scoring during entity
resolution.
type: boolean
entityCount:
description: >-
The number of entities having this feature value.
type: integer
format: int64
candidateCapReached:
description: >-
Indicates if this feature value is no longer being used to find
candidates because too many entities share the same value.
type: boolean
scoringCapReached:
description: >-
Indicates if this feature value is no longer being used in entity
scoring because too many entities share the same value.
type: boolean
suppressed:
description: >-
Indicates if this value was suppressed in favor of a more complete
value.
type: boolean
SzEntityFeatureDetail:
description: >-
Describes the details of an entity feature value, optionally including
statistics if they have been requested.
type: object
properties:
internalId:
description: >-
The internal ID for the feature value.
type: integer
format: int64
featureValue:
description: >-
The feature value.
type: string
statistics:
description: >-
The `SzEntityFeatureStatistics` describing the statistics for the
feature value. This may be `null` if the statistics were not
requested.
nullable: true
$ref: '#/components/schemas/SzEntityFeatureStatistics'
SzEntityFeature:
description: >-
Describes a feature for an entity as well as including any close values
for the feature that were considered to be duplicate values for
entity resolution purposes.
type: object
properties:
primaryId:
description: >-
The internal ID for the primary feature value.
type: integer
format: int64
primaryValue:
description: >-
The primary value for the feature.
type: string
usageType:
description: >-
The optional associated usage type (e.g.: "HOME" or "WORK")
type: string
nullable: true
duplicateValues:
description: >-
The array of values that are close enough to the primary value
for the feature that they are considered to be duplicate values for
the purpose of entity resolution.
type: array
items:
type: string
featureDetails:
description: >-
The array of `SzEntityFeatureDetail` instances describing the each
of the clustered feature values in detail.
type: array
items:
$ref: '#/components/schemas/SzEntityFeatureDetail'
SzResolvedEntity:
description: >-
Describes a resolved entity that is made up of one or more
SzMatchedRecord instances.
type: object
properties:
entityId:
description: >-
The unique numeric ID identifying the entity.
type: integer
format: int64
entityName:
description: >-
The name associated with this entity that is considered the
best name among all the associated names.
type: string
bestName:
description: >-
Usually the same as the entityName property, but this may differ
if the entity was found based on a name search. In such a case,
this field represents the name that most closely matches the name
that was searched on.
type: string
recordSummaries:
description: >-
The array of DataSourceRecordSummary instances describing the
number of records associated with each data source that contributes
to this entity.
type: array
items:
$ref: '#/components/schemas/SzDataSourceRecordSummary'
nameData:
description: >-
An array of names associated with the entity that are formatted for
readability. These may be prefixed by a "usage type" if one was
provided (e.g.: "Joe Schmoe" or "AKA: Joseph P. Schmoe")
type: array
items:
type: string
characteristicData:
description: >-
An array of characteristics associated with the entity that are
formatted for readability. These will be prefixed by a
characteristic type and optionally by a "usage type" if one was
provided.
**NOTE:** The `characteristicData` field is derived from the
feature data values that contribute to the `ATTRIBUTE_DATA` field
at the record level in the "raw data" JSON.
type: array
items:
type: string
addressData:
description: >-
An array of addresses associated with the entity that are formatted
for readability. These may be prefixed by a "usage type" if one
was provided (e.g.: "HOME: 101 Main Street")
type: array
items:
type: string
phoneData:
description: >-
An array of phone numbers associated with the entity that are
formatted for readability. These may be prefixed by a "usage type"
if one was provided (e.g.: "HOME: 702-555-1212")
type: array
items:
type: string
identifierData:
description: >-
An array of entity data associated with the entity where the items
are formatted for readability. These will be prefixed by an
identifier type and may be prefixed by a "usage type" if one was
provided (e.g.: "ID: 123456789" or "EMAIL: WORK: joe@nowhere.com")
type: array
items:
type: string
relationshipData:
description: >-
An array of relationship data items associated with the entity that
describes disclosed relationships.
type: array
items:
type: string
otherData:
description: >-
An array of associated data items that were loaded with the entity's
records but not normally recognized or used for entity resolution.
This array usually contains useful information from the source
systems.
type: array
items:
type: string
records:
description: >-
The array of `SzMatchedRecord` instances describing the records
associated with this entity.
type: array
items:
$ref: '#/components/schemas/SzMatchedRecord'
features:
description: >-
The map of string feature names to arrays of SzEntityFeature instances
describing the values associated with each respective feature name.
type: object
additionalProperties:
type: array
items:
$ref: '#/components/schemas/SzEntityFeature'
partial:
description: >-
If true then this `SzResolvedEntity` has complete features and
records, otherwise they are not provided. Also, the
recordSummary items may be missing the topRecordIds if partial
is true. This can be true for partially retrieved related
entities or if features are suppressed, if the detail level has
suppressed records or related matching info (in the case of related
entities) or if the force-minimal response flag has been been
specified.
type: boolean
lastSeenTimestamp:
description: >-
The timestamp that the entity was last seen (i.e.: most recent
record was loaded).
type: string
format: date-time
SzBaseRelatedEntity:
description: >-
Provides the additional fields to an SzResolvedEntity that describe
an entity's relationship to another. This serves as a basis for
SzAttributeSearchResult and SzRelatedEntity.
allOf:
- $ref: '#/components/schemas/SzResolvedEntity'
- type: object
properties:
matchLevel:
description: >-
The integer "match level" describing how the related entity
matched to the primary resolved entity.
type: integer
format: int32
matchKey:
description: >-
The match key describing what features matched between
the primary resolved entity and the related entity.
type: string
resolutionRuleCode:
description: >-
The code identifying the resolution rule that related
this entity to the primary resolved entity.
type: string
SzRelationshipType:
description: >-
Describes how an entity is related to another (either a possible match,
a discovered possible relationship or a disclosed relationship)
type: string
enum:
- POSSIBLE_MATCH
- POSSIBLE_RELATION
- DISCLOSED_RELATION
SzMatchLevel:
description: >-
Describes the various match levels describing how two records resolve
against each other. The possible values are:
* `NO_MATCH` - No match was found between the records.
* `RESOLVED` - The records resolved to the same entity.
* `POSSIBLY_SAME` - The records were not close enough to resolve
but may represent the same entity if more data was provided.
* `POSSIBLY_RELATED` - The records share some attributes that
suggest a relationship.
* `NAME_ONLY` - The records match in name only.
* `DISCLOSED` - An explicit relationship has been disclosed between
the records.
type: string
enum:
- NO_MATCH
- RESOLVED
- POSSIBLY_SAME
- POSSIBLY_RELATED
- NAME_ONLY
- DISCLOSED
SzRelatedEntity:
description: >-
Provides a description of an entity that is related to a
ResolvedEntity. This describes how the entity is related and may
be missing the complete features and record list of a ResolvedEntity.
allOf:
- $ref: '#/components/schemas/SzBaseRelatedEntity'
- type: object
properties:
disclosed:
description: >-
A boolean flag indicating if this related entity
represents a disclosed relationship.
type: boolean
ambiguous:
description: >-
A boolean flag indicating if this related entity
represents an ambiguous relationship.
type: boolean
relationType:
$ref: '#/components/schemas/SzRelationshipType'
SzEntityData:
description: >-
Describes an entity and the entities related to that entity at
one degree of separation.
type: object
properties:
resolvedEntity:
description: The ResolvedEntity describing the primary entity.
$ref: '#/components/schemas/SzResolvedEntity'
relatedEntities:
description: >-
The array of RelatedEntity instances describing the possible
matches, discovered relationships, and disclosed relationships.
type: array
items:
$ref: '#/components/schemas/SzRelatedEntity'
SzVirtualEntityData:
description: >-
Describes the data associated with an `SzVirtualEntityResponse`
which currently includes only an `SzResolvedEntity`.
type: object
properties:
resolvedEntity:
description: The ResolvedEntity describing the primary entity.
$ref: '#/components/schemas/SzResolvedEntity'
SzAttributeSearchResultType:
description: >-
Describes how the entity matching the search attributes would have
entity resolved against those attributes (either a match, possible
match, discovered relationship or name only match). The possible values
are:
* `MATCH` - The search criteria matches the entity and would resolve
against it.
* `POSSIBLE_MATCH` - The search criteria comes close to matching the
entity but not close enough that it would resolve against it.
* `POSSIBLE_RELATION` - The search criteria would not match against
the entity but some features are the same and relate them.
* `NAME_ONLY_MATCH` - The search criteria matches the entity in name
only which is not strong enough for a relationship, but provides
for a weak search match.
type: string
enum:
- MATCH
- POSSIBLE_MATCH
- POSSIBLE_RELATION
- NAME_ONLY_MATCH
SzAttributeSearchResult:
description: >-
Describes an entity that matched attribute search criteria and how
it matched against that criteria.
allOf:
- $ref: '#/components/schemas/SzBaseRelatedEntity'
- type: object
properties:
resultType:
$ref: '#/components/schemas/SzAttributeSearchResultType'
bestNameScore:
description: >-
The best name score between the search criteria and this
matched search entity. The higher the score the closer the
name match. This uses either the full name score or
organization name score. If none exist then this filed is
omitted.
type: integer
format: int32
featureScores:
description: >-
The map of feature types to arrays of `SzSearchFeatureScore`
instances for that feature type.
nullable: true
type: object
additionalProperties:
type: array
items:
$ref: '#/components/schemas/SzSearchFeatureScore'
relatedEntities:
description: >-
The array of RelatedEntity instances describing the possible
matches, discovered relationships, and disclosed relationships.
type: array
items:
$ref: '#/components/schemas/SzRelatedEntity'
SzEntityPath:
description: >-
Describes a path between two entities using the entity IDs of the
entities in the path.
type: object
properties:
startEntityId:
description: The starting entity ID for the path.
nullable: false
type: integer
format: int64
endEntityId:
description: The ending entity ID for the path.
nullable: false
type: integer
format: int64
entityIds:
description: >-
The array of entity IDs identifying the entities on the path
in order of how are they are connected on the path. This is
null if there is no path between the entities.
nullable: true
type: array
items:
type: integer
format: int64
SzEntityPathData:
description: >-
Describes a path between two entities using the entity IDs of the
entities in the path and includes the data from the actual entities
on the path.
type: object
properties:
entityPath:
$ref: '#/components/schemas/SzEntityPath'
entities:
description: >-
The array of `SzEntityData` objects describing the entities on the
path. This will include partial information on the first-degree
related entities to the entity.
type: array
items:
$ref: '#/components/schemas/SzEntityData'
SzEntityNetworkData:
description: >-
Describes a network of paths between entities using the entity IDs of
the entities in the path and includes the data from the actual entities
in the network.
type: object
properties:
entityPaths:
description: >-
The array of `SzEntityPath` objects describing the paths that make
up the entity network (including island networks).
type: array
items:
$ref: '#/components/schemas/SzEntityPath'
entities:
description: >-
The array of `SzEntityData` objects describing the entities on the
path. This may only include partial information on the entities at
the edge of the network.
type: array
items:
$ref: '#/components/schemas/SzEntityData'
SzServerInfo:
description: >-
Provides information about which server features are enabled and which
are not enabled.
type: object
properties:
concurrency:
description: >-
The number of Senzing worker threads pooled for handling requests.
type: integer
format: int32
nullable: false
activeConfigId:
description: >-
The active configuration ID being used by the API server. This
is still available if the server was started with a static file
configuration via the `G2CONFIGFILE` initialization property.
type: integer
format: int32
nullable: false
dynamicConfig:
description: >-
Whether or not the server will automatically pickup the latest
default configuration if it changes.
type: boolean
nullable: false
readOnly:
description: >-
Whether or not the server was started in read-only mode. If in
read-only mode then operations that modify the repository (e.g.:
loading records or configuring new data sources) are not allowed.
type: boolean
nullable: false
adminEnabled:
description: >-
Whether or not admin features are enabled. If admin features are
not enabled then the configuration cannot be modified.
type: boolean
nullable: false
webSocketsMessageMaxSize:
description: >-
The maximum size for inbound text or binary messages when invoking
end-points via Web Sockets `ws://` protocol.
type: integer
format: int32
nullable: false
infoQueueConfigured:
description: >-
Whether or not an asynchronous INFO queue has been configured for
automatically sending "INFO" messages when records are loaded,
reevaluated or deleted.
type: boolean
nullable: false
SzDataSource:
description: Describes a data source.
type: object
properties:
dataSourceCode:
description: The data source code.
type: string
nullable: false
dataSourceId:
description: >-
The data source ID. The value can be null when used for input in
creating a data source to indicate that the data source ID should
be auto-generated.
type: integer
format: int32
nullable: true
SzDataSourceDescriptor:
description: >-
Describes a data source either as only its data source code or as an
`SzDataSource` object.
oneOf:
- type: string
- $ref: '#/components/schemas/SzDataSource'
SzDataSourceRecordAnalysis:
description: >-
Provides statistics specific to a given data source of the records
found in bulk data.
type: object
properties:
dataSource:
description: >-
The data source code identifying the data source for which the
statistics are being provided. This is `null` if the statistics
pertain to those records with no data source defined in the
source data.
type: string
nullable: true
recordCount:
description: >-
The number of records having the associated data source.
type: integer
format: int32
recordsWithRecordIdCount:
description: >-
The number of records having the associated data source that
include a `RECORD_ID` value.
nullable: false
type: integer
format: int32
SzBaseBulkLoadResult:
description: >-
Provides statistics specific common to all bulk load results regardless
of how they are aggregated.
type: object
properties:
recordCount:
description: >-
The number of records found in the bulk data set with the aggregate
group. This may not match the number of "observed entities" once
loaded since some records may be exact duplicates.
type: integer
format: int32
loadedRecordCount:
description: >-
The number of records successfully loaded from the bulk data set
within the aggregate group. This may not match the number
of "observed entities" loaded since some records may be exact
duplicates.
type: integer
format: int32
incompleteRecordCount:
description: >-
The number of records from the bulk data set within the aggregate
group that are missing a `DATA_SOURCE` value.
type: integer
format: int32
failedRecordCount:
description: >-
The number of records from the bulk data set within the aggregate
group that failed to load.
type: integer
format: int32
topErrors:
description: >-
The array of top error occurrences with the number of times they
occurred when loading records with the associated data source.
type: array
items:
$ref: '#/components/schemas/SzBulkLoadError'
SzDataSourceBulkLoadResult:
description: >-
Provides bulk data load statistics specific to a given data source.
allOf:
- $ref: '#/components/schemas/SzBaseBulkLoadResult'
- type: object
properties:
dataSource:
description: >-
The data source code identifying the data source for which the
load statistics are being provided.
type: string
nullable: false
SzBulkDataStatus:
description: >-
Describes the status of a bulk data operation:
* `NOT_STARTED` - The bulk data operation has not started.
* `IN_PROGRESS` - If bulk data operation is in progress.
* `ABORTED` - The bulk data operation was aborted.
* `COMPLETED` - The bulk data operation completed normally.
type: string
enum:
- NOT_STARTED
- IN_PROGRESS
- ABORTED
- COMPLETED
SzBulkDataAnalysis:
description: >-
Describes the analysis performed against a set of bulk data records
described as a JSON array, JSON Lines format or CSV format.
type: object
properties:
status:
description: >-
The state of the bulk load.
$ref: '#/components/schemas/SzBulkDataStatus'
characterEncoding:
description: >-
The character encoding used to process the bulk data.
nullable: false
type: string
mediaType:
description: >-
The media type of the bulk data.
nullable: false
type: string
recordCount:
description: >-
The number of records found in the bulk data. This may not match
the number of "observed entities" once loaded since some records
may be exact duplicates.
nullable: false
type: integer
format: int32
recordsWithRecordIdCount:
description: >-
The number of records provided that include a `RECORD_ID` value.
nullable: false
type: integer
format: int32
recordsWithDataSourceCount:
description: >-
The number of records provided that include a `DATA_SOURCE` value.
nullable: false
type: integer
format: int32
analysisByDataSource:
description: >-
The array of `SzDataSourceRecordAnalysis` elements providing statistics on the records by data source.
nullable: false
type: array
items:
$ref: '#/components/schemas/SzDataSourceRecordAnalysis'
SzBulkLoadResult:
description: >-
Describes the result from loading a set of bulk data records
described as a JSON array, JSON Lines format or CSV format.
allOf:
- $ref: '#/components/schemas/SzBaseBulkLoadResult'
- type: object
properties:
status:
description: >-
The state of the bulk load.
$ref: '#/components/schemas/SzBulkDataStatus'
characterEncoding:
description: >-
The character encoding used to process the bulk data.
nullable: false
type: string
mediaType:
description: >-
The media type of the bulk data.
nullable: false
type: string
missingDataSourceCount:
description: >-
The number of records that are incomplete because they are
missing the `DATA_SOURCE` field.
nullable: false
type: integer
format: int32
resultsByDataSource:
description: >-
The array of `SzDataSourceBulkDataResult` elements describing
the load statistics by data source.
nullable: false
type: array
items:
$ref: '#/components/schemas/SzDataSourceBulkLoadResult'
SzFocusRecordId:
description: >-
Identifies a focus record for an `SzWhyResult`.
type: object
properties:
dataSource:
description: >-
The data source code that uniquely identifies the data source
associated with the record.
type: string
recordId:
description: >-
The record ID that uniquely identifies a record within the
respective data source.
type: string
SzScoringFrequency:
description: >-
Enumerates the various scoring behavior frequencies for entity features.
This indicates the number of entities that would typically share the
same value for a feature of this type. The possible values are:
* `ALWAYS_ONE` - The feature value belongs to exactly one entity so
if two records share this value they will always
merge together.
* `ONE` - The feature value typically belongs to one entity (like a
Social Security Number, Tax ID or Drivers License Number)
* `FEW` - The feature value typically belongs to at most a few
entities (like an Address or Phone Number).
* `MANY` - The feature value can belong to many entities (like a
date of birth)
* `VERY_MANY` - The feature can belong to very many entities (like
a gender).
* `NAME` - A special frequency used for name features since they have
unique properties.
type: string
enum:
- ALWAYS_ONE
- ONE
- FEW
- MANY
- VERY_MANY
- NAME
SzScoringBehavior:
description: >-
Describes the scoring behavior for a feature / feature type.
type: object
properties:
code:
description: >-
The code identifying the behavior.
type: string
frequency:
description: >-
The number of entities that that would typically share the same
value for a feature of type. This value can only be `null` if the
frequency is unknown for the scoring behavior code that is returned.
nullable: true
$ref: '#/components/schemas/SzScoringFrequency'
exclusive:
description: >-
`true` if an entity should typically have only one value for
a feature of this type (like a Social Security Number, Date of
Birth) and `false` if the entity can typically have multiple values
for the feature type (like Address or Phone Number). This value is
`null` if exclusivity is not applicable to the scoring behavior such
as with special scoring behaviors like `NAME`.
type: boolean
nullable: true
stable:
description: >-
`true` if the feature value for the feature type remains constant
for an entity over time (like a Date of Birth), and `false` if it
can can change for the entity over time (like a Home Address). This
is `null` if the stability is not applicable to the scoring behavior
such as with special behaviors like `NAME`.
type: boolean
nullable: true
SzScoringBucket:
description: >-
Describes the scoring bucket that a feature score falls into. The
range of scores constitute different buckets depending on the feature
type.. The possible values are:
* `NOT_SCORED` - The respective features were not scored.
* `SAME` - The two feature values are considered to be the same.
* `CLOSE` - The two feature values are considered to be close.
* `LIKELY` - The two feature values are similar, but not enough to
be considered `CLOSE`.
* `PLAUSIBLE` - It's possible that the two feature values are the
same but almost just as likely that they are not.
* `UNLIKELY` - It's unlikely that the two feature values represent
the same value.
* `NO_CHANCE` - The two feature values obviously represent different
values.
type: string
enum:
- NOT_SCORED
- SAME
- CLOSE
- LIKELY
- PLAUSIBLE
- UNLIKELY
- NO_CHANCE
SzScoredFeature:
description: >-
A description of a feature that has been scored against another feature.
type: object
properties:
featureId:
description: >-
The identifier uniquely identifying the feature.
type: integer
format: int64
featureType:
description: >-
The feature type of the feature.
type: string
featureValue:
description: >-
The value of the feature that was scored.
type: string
usageType:
description: >-
The usage type assigned to the feature value. This field is
optional and may be excluded if the value is missing.
type: string
SzNameScoring:
description: >-
Describes the scoring details between two names.
type: object
properties:
fullNameScore:
description: >-
The full name score. This field is omitted if there is not a
full name score (e.g.: with an organization name)
type: integer
format: int32
surnameScore:
description: >-
The surname score. This field is omitted if there is not a
surname score (e.g.: with an organization name or if there were no
surnames to compare)
type: integer
format: int32
givenNameScore:
description: >-
The given name score. This field is omitted if there is not a
given name score (e.g.: with an organization name or if there were
no given names to compare)
type: integer
format: int32
generationScore:
description: >-
The generation match score. This field is omitted if there is not a
generation match score (e.g.: with an organization name or if there
were no generations to compare)
type: integer
format: int32
orgNameScore:
description: >-
The organization name score. This field is omitted if there is not
a organization name score (e.g.: with an personal name)
type: integer
format: int32
SzFeatureScore:
description: >-
Describes the scoring between two `SzScoredFeature` instances.
type: object
properties:
featureType:
description: >-
The feature type of the features being scored.
type: string
inboundFeature:
description: >-
The inbound feature described as an `SzScoredFeature`.
$ref: '#/components/schemas/SzScoredFeature'
candidateFeature:
description: >-
The feature that was a candidate match for the inbound feature (also
described as an `SzScoredFeature`).
$ref: '#/components/schemas/SzScoredFeature'
score:
description: >-
The integer score between the two feature values (typically from 0
to 100). If this is a name feature, then this value is the "best"
value from the `SzNameScoring` instance described by
`nameScoringDetails` (in order of precedence the first of these
values that exists: `orgNameScore`, `fullNameScore`,
`surnameScore` and then `givenNameScore`).
type: integer
format: int32
nameScoringDetails:
description: >-
The name scoring values if this score is for a name feature. This
property is omitted if not a name feature.
$ref: '#/components/schemas/SzNameScoring'
scoringBucket:
description: >-
The `SzScoringBucket` describing the meaning of the `score`.
$ref: '#/components/schemas/SzScoringBucket'
scoringBehavior:
description: >-
The `SzScoringBehavior` describing the scoring behavior for the
features.
$ref: '#/components/schemas/SzScoringBehavior'
SzSearchFeatureScore:
description: >-
Describes the scoring between two search features.
type: object
properties:
featureType:
description: >-
The feature type of the features being scored.
type: string
inboundFeature:
description: >-
The inbound feature value as a string.
type: string
candidateFeature:
description: >-
The feature value that was a candidate match for the inbound
feature as a string.
type: string
score:
description: >-
The integer score between the two feature values (typically from 0
to 100). If this is a name feature, then this value is the "best"
value from the `SzNameScoring` instance described by
`nameScoringDetails` (in order of precedence the first of these
values that exists: `orgNameScore`, `fullNameScore`,
`surnameScore` and then `givenNameScore`).
type: integer
format: int32
nameScoringDetails:
description: >-
The name scoring values if this score is for a name feature. This
property is omitted if not a name feature.
$ref: '#/components/schemas/SzNameScoring'
SzCandidateKey:
description: >-
Describes a candidate key that triggered the scoring of two entities.
type: object
properties:
featureId:
description: >-
The identifier for the candidate feature.
type: integer
format: int64
featureType:
description: >-
The feature type for the candidate feature.
type: string
featureValue:
description: >-
The feature value for the candidate feature.
type: string
SzRelationDirection:
description: >-
The HTTP method that was used for the operation. The possible values
are:
* `OUTBOUND` - The relationship goes in the direction from the first
entity to the second entity.
* `INBOUND` - The relationship goes in the direction from the second
entity to the first entity.
* `BIDIRECTIONAL` - The relationship goes in both directions between
the two entities.
type: string
enum:
- INBOUND
- OUTBOUND
- BIDIRECTIONAL
SzRelatedFeatures:
description: >
Describes a pair of features that triggered a relationship between the
respective records.
type: object
properties:
feature1:
description: >-
The first related feature.
$ref: '#/components/schemas/SzScoredFeature'
feature2:
description: >-
The second related feature.
$ref: '#/components/schemas/SzScoredFeature'
SzDisclosedRelation:
description: >-
Describes a relationship that is disclosed between two records so that
the respective entities are related.
type: object
properties:
domain:
description: >-
The domain of the relationship (e.g.: spouses, parent/child,
employer/employee, corporate hierarchy, etc...)
nullable: false
type: string
direction:
description: >-
The direction of the relationship.
$ref: '#/components/schemas/SzRelationDirection'
roles1:
description: >-
The relationship roles (aka: usage types) assigned to the first
entity in the relationship.
type: array
items:
type: string
uniqueItems: true
roles2:
description: >-
The relationship roles (aka: usage types) assigned to the second
entity in the relationship.
type: array
items:
type: string
uniqueItems: true
relatedFeatures:
description: >-
The array of `SzRelatedFeatures` instances that the disclosed
relationship is composed of.
type: array
items:
$ref: '#/components/schemas/SzRelatedFeatures'
SzWhyMatchInfo:
description: >-
The match info describing why two entities (or records) resolve or
relate to one another.
type: object
properties:
whyKey:
description: >-
The why key indicating the components of the match (similar to the
match key).
nullable: false
type: string
matchLevel:
description: >-
The match level describing how the records relate to each other.
nullable: false
$ref: '#/components/schemas/SzMatchLevel'
resolutionRule:
description: >-
The resolution rule that triggered the match.
nullable: true
type: string
candidateKeys:
description: >-
The map of feature types to arrays of `SzCandidateKey` instances
for that feature type.
nullable: true
type: object
additionalProperties:
type: array
items:
$ref: '#/components/schemas/SzCandidateKey'
featureScores:
description: >-
The map of feature types to arrays of `SzFeatureScore` instances
for that feature type.
nullable: true
type: object
additionalProperties:
type: array
items:
$ref: '#/components/schemas/SzFeatureScore'
disclosedRelations:
description: >-
The list of `SzDisclosedRelation` instances describing any
disclosed relationships between two entities. If the match info
pertains to a single entity or if there are no disclosed relations
between the two entities then this property is absent.
nullable: true
type: array
items:
$ref: '#/components/schemas/SzDisclosedRelation'
SzWhyPerspective:
description: >-
Describes the perspective used in evaluating why an entity resolved
or why two records may or may not resolve. The answer to "why" is
dependent on which "record" you are comparing against the other
"records". Internally, it is not always based on "record" because
multiple records that are effectively identical collapse into a single
perspective.
properties:
internalId:
description: >-
The internal ID uniquely identifying this perspective from others
in the complete "why" response.
nullable: false
type: integer
format: int64
entityId:
description: >-
The associated entity ID for the perspective.
nullable: false
type: integer
format: int64
focusRecords:
description: >-
The array of `SzFocusRecordId` instances identifying the effectively
identical records that are being compared against the other records.
nullable: false
type: array
items:
$ref: '#/components/schemas/SzFocusRecordId'
SzWhyEntityResult:
description: >-
Describes why an entity resolved.
type: object
properties:
perspective:
description: >-
The `SzWhyPerspective` identifying and describing the perspective
for this why result.
$ref: '#/components/schemas/SzWhyPerspective'
matchInfo:
description: >-
The `SzWhyMatchInfo` providing the details of the result.
nullable: false
$ref: '#/components/schemas/SzWhyMatchInfo'
SzWhyEntitiesResult:
description: >-
Describes why two entities did not resolve or why they related.
type: object
properties:
entityId1:
description: >-
The entity ID of the first entity.
nullable: false
type: integer
format: int64
entityId2:
description: >-
The entity ID of the second entity.
nullable: false
type: integer
format: int64
matchInfo:
description: >-
The `SzWhyMatchInfo` providing the details of the result.
nullable: false
$ref: '#/components/schemas/SzWhyMatchInfo'
SzWhyRecordsResult:
description: >-
Describes why two records might resolve.
type: object
properties:
perspective1:
description: >-
The `SzWhyPerspective` identifying and describing the perspective
from the first record.
$ref: '#/components/schemas/SzWhyPerspective'
perspective2:
description: >-
The `SzWhyPerspective` identifying and describing the perspective
from the second record.
$ref: '#/components/schemas/SzWhyPerspective'
matchInfo:
description: >-
The `SzWhyMatchInfo` providing the details of the result.
nullable: false
$ref: '#/components/schemas/SzWhyMatchInfo'
SzHowMatchInfo:
description: >-
The match info describing how a step in an entity's resolution completed
and why the two virtual entities were resolved.
type: object
properties:
matchKey:
description: >-
The match key indicating the components of the match.
nullable: false
type: string
resolutionRule:
description: >-
The resolution rule that triggered the match.
nullable: true
type: string
featureScores:
description: >-
The map of feature types to arrays of `SzFeatureScore` instances
for that feature type.
nullable: true
type: object
additionalProperties:
type: array
items:
$ref: '#/components/schemas/SzFeatureScore'
SzVirtualEntityRecord:
description: >-
Describes a record that belongs to a virtual entity. This identifies
the record as well as its internal ID to understand which records in
the virtual entity are considered to be duplicates of each other.
type: object
properties:
dataSource:
description: >-
The data source code that uniquely identifies the data source
associated with the record.
type: string
nullable: false
recordId:
description: >-
The record ID that uniquely identifies a record within the
respective data source.
type: string
nullable: false
internalId:
description: >-
The unique internal ID for the record. Those records having the
same value for this field are effectively identical for the purpose
of entity resolution and automatically bound together.
type: string
nullable: false
SzVirtualEntity:
description: >-
Describes a virtual entity that describes an interim resolution step
for an actual entity. Virtual entities that consist of a single record
(or multiple "identical" records) are considered singletons and are the
initial building blocks in how an entity is resolved. Those with
multiple distinct records are compound virtual entities formed from
resolving two virtual entities.
type: object
properties:
virtualEntityId:
description: >-
The unique identifier that distinguishes this virtual entity from
all other virtual entities among all steps in a "how" result.
type: string
nullable: false
singleton:
description: >-
Indicates if the virtual entity consists of a a single record or
one or more effectively identical records (i.e.: with the same
internal ID) with a value of `true`. If this virtual entity
comprises multiple distinct records then this is `false`.
type: boolean
nullable: false
records:
description: >-
The array of `SzVirtualEntityRecords` identifying the constituent
records of the virtual entity. Those records in the array with the
same `internalId` property are effectively identical for the
purposes of entity resolution.
type: array
items:
$ref: '#/components/schemas/SzVirtualEntityRecord'
SzResolutionStep:
description: >-
Describes a single step in describing how an entity was created. Each
step consists of either the formation of a new "virtual entity" from
two records, the adding of a record to an existing virtual entity to
create a new virtual entity, or the resolving of two virtual entities
into a new virtual entity consisting of all the records.
type: object
properties:
stepNumber:
description: >-
The step number indicating the order of this step relative to other
steps if the steps were flattened to be linear. However, the
non-linear nature of entity resolution means that the ordering of
the steps is only relevant within a single branch of the resolution
tree.
type: integer
format: int32
nullable: false
inboundVirtualEntity:
description: >-
The `SzVirtualEntity` describing the inbound virtual entity.
nullable: false
$ref: '#/components/schemas/SzVirtualEntity'
candidateVirtualEntity:
description: >-
The `SzVirtualEntity` describing the candidate virtual entity.
nullable: false
$ref: '#/components/schemas/SzVirtualEntity'
matchInfo:
description: >-
The `SzHowMatchInfo` describing how the two virtual entities
matched each other.
nullable: false
$ref: '#/components/schemas/SzHowMatchInfo'
resolvedVirtualEntityId:
description: >-
The virtual entity ID identifying the virtual entity that resulted
from resolving the inbound and candidate virtual entities.
nullable: false
type: string
SzHowEntityResult:
description: >-
Describes the result of the "how entity" operation as a mapping of
non-singleton virtual entity ID's to their corresponding
`SzResolutionStep` instances as well as an array of `SzVirtualEntity`
instances describing the possible final states for the entity.
**NOTE**: If there are more than one possible final states then the
entity requires reevaluation, while a result with a single final state
does not require reevaluation.
type: object
properties:
finalStates:
description: >-
The array of `SzVirtualEntity` instances describing the possible
final states for the entity. If there are more than one elements
in the array then the entity requires reevaluation. If there is
only a single element in the array, then reevaluation is not
required. This array will always have at least one element.
nullable: false
type: array
items:
$ref: '#/components/schemas/SzVirtualEntity'
resolutionSteps:
description: >-
The map of virtual entity ID's for non-singleton virtual entities
to `SzResolutionStep` instances describing how the virtual entity
for the respective virtual entity ID was formed. Since singleton
virtual entities are base building blocks, they do not have an
associated how step. They are simply formed by the loading of a
record to the repository.
nullable: false
type: object
additionalProperties:
$ref: '#/components/schemas/SzResolutionStep'
SzHowEntityResponse:
description: >-
The response describing the result of the "how entity" operation.
allOf:
- $ref: '#/components/schemas/SzResponseWithRawData'
- type: object
properties:
data:
description: >-
The data field is the `SzHowEntityResult` itself.
$ref: '#/components/schemas/SzHowEntityResult'
tags:
- name: Admin
description: Administrative operations.
- name: Config
description: Configuration operations.
- name: Entity Data
description: Entity and record data operations.
- name: Entity Graph
description: Entity relationship connections for graphing.
- name: Bulk Data
description: Preparation and loading of bulk data.