# Start Linkage Job

Initiate a new linkage job

Endpoint: POST /linkagejobs
Version: 2
Security: apiKey

## Security:

  - `apiKey` (unknown)
    apiKey in header X-API-KEY

## Request fields (application/json):

  - `patternSources` (array)
    The source, in form of a BusinessPartner storage (at least one but can be more), to get the pattern records for the matching.

  - `patternSources.storageId` (string, required)
    Unique identifier of the Storage.
    Example: 72d6900fce6b326088f5d9d91049e3e6

  - `patternSources.dataSourceIds` (array)
    Optional list of DataSource IDs of the storage (identified by the storageId) that should be used for matching.

  - `matchSources` (array)
    The source, in form of a BusinessPartner storage (at least one but can be more), to get the match records for the matching.

  - `countryShortNames` (array)
    If set, only the records that belong to the countries identified by these short names are processed. By default all records of the storage (means from all countries) are processed (considering other filters).

  - `dataMatchingDefinitionId` (string)
    ID of the DataMatchingDefinition that should be used to perform the link matching.
    Example: 6461e6113b1865304b3038b6

  - `decisionLogIds` (array)
    If set, feedback from listed Matching Decision Logs will be considered.

## Response 200:

  - `200` (unknown)
    OK

## Response 200 fields (application/json):

  - `id` (string)
    Unique identifier of a job.
    Example: 35f23c03-1c22-45fe-9484-3ffe769325de

  - `patternSources` (array)
    The source, in form of a BusinessPartner storage (at least one but can be more), to get the pattern records for the matching.

  - `patternSources.storageId` (string, required)
    Unique identifier of the Storage.
    Example: 72d6900fce6b326088f5d9d91049e3e6

  - `patternSources.dataSourceIds` (array)
    Optional list of DataSource IDs of the storage (identified by the storageId) that should be used for matching.

  - `matchSources` (array)
    The source, in form of a BusinessPartner storage (at least one but can be more), to get the match records for the matching.

  - `countryShortNames` (array)
    List of country short names.

  - `dataMatchingDefinitionId` (string)
    Id of the data matching definition.
    Example: 6461e6113b1865304b3038b6

  - `decisionLogIds` (array)
    If set, feedback from listed Matching Decision Logs will be considered.

  - `createdAt` (string)
    Date of creation (ISO 8601-compliant).
    Example: 2026-11-11T03:23:28Z

  - `createdBy` (string)
    Creator of a resource.
    Example: 76248934691294444

  - `status` (string)
    Curation Job execution status.
List of values:
* `ARCHIVED`: The job is archived.
* `UNKNOWN`: The job status is unknown.
* `CREATED`: The job has been created.
* `PERSISTED`: The job has been persisted.
* `SCHEDULED`: The job is scheduled.
* `WAITING`: The job is waiting.
* `COULDNT_START`: The job could not be started.
* `RUNNING`: The job is running.
* `FINISHED`: The job has finished.
* `DIED`: The job has died.
* `CANCELED`: The job has been canceled.
* `FAILED`: The job has failed.
    Example: RUNNING

  - `progress` (integer)
    Progress (%) of the job.
    Example: 77

## Response 400:

  - `400` (unknown)
    The sent request is malformed.

## Response 400 fields (application/json):

  - `status` (integer)
    RFC 7231 status code for this error.
    Example: 400

  - `path` (string)
    Requested path which caused this error.
    Example: /v2/businesspartners/lookup

  - `timestamp` (string)
    ISO 8601 representation of the timestamp.
    Example: 2026-11-11T03:23:28Z

  - `error` (string)
    RFC 7231 error which belongs to the status code.
    Example: BAD_REQUEST

  - `message` (string)
    Details about the error.
    Example: This user is not allowed to access this service.

## Response 401:

  - `401` (unknown)
    Unauthorized

## Response 403:

  - `403` (unknown)
    Forbidden

