REST API Reference > Data Ingestion and Replication REST API > Database Ingestion and Replication REST API
  

Database Ingestion and Replication REST API

The REST API resources in this section apply to the Database Ingestion and Replication service.
When you use Database Ingestion and Replication resources, note the following rules:
In the following example, the serverUrl is https://na4.dm-us.informaticacloud.com/saas and the URI is /dbmi/public/api/v2/task/create:
<METHOD> https://na4.dm-us.informaticacloud.com/saas/dbmi/public/api/v2/task/create HTTP/1.1
Content-Type: application/json
Accept: application/json
icSessionId: 123ABC456789defIJK

Create a database ingestion and replication task

Use the task resource to create a database ingestion and replication task within a specified project and folder.

POST request

Use the following URI to create a task:
/dbmi/public/api/v2/task/create
Include the following fields in the request:
Field
Type
Required/Optional
Description
projectId
string
no
The project ID where you want to create the task. If you do not provide a project ID, the task is created in the default project.
folderId
string
no
The folder ID in the project where you want to create the task. If you do not specify a folder ID, the task is created in the default folder, represented by an empty string "".
taskName
string
yes
Name of the task.
nativeData
JSON object
yes
The entire task definition including source and target connection and task properties, and run-time settings.

POST request example

Use the following sample as a reference to create a task:
POST /dbmi/public/api/v2/task/create
Content-Type: application/json
Accept: application/json
IDS-SESSION-ID:{{IDS_SESSION_ID}}
{
"projectID": "<projectId>",
"folderID":"<folderId",
"taskName": "<taskName>",
"nativeData": {
//Entire Task (JSON) Payload, having full task definition
}
}
}

Successful response

When the REST API successfully performs the action, it returns a 200 success code.

POST response example

A successful POST response returns a summary, similar to the following example:
{
"@odata.context": "$metadata#Documents",
"id": "49Ad323lvrNky7ZKPr6e6o",
"name": "sapodpTosnowflake57ccfd92-2985-47e3-89a0-c5612fcaa",
"description": "UNLOAD",
"owner": "29JnX3zg0EVild2QuRlUc2",
"createdBy": "29JnX3zg0EVild2QuRlUc2",
"lastUpdatedBy": "29JnX3zg0EVild2QuRlUc2",
"lastAccessedBy": "29JnX3zg0EVild2QuRlUc2",
"createdTime": "2023-03-15T15:00:00.719Z",
"lastUpdatedTime": "2023-03-15T15:00:00.719Z",
"lastAccessedTime": "2023-03-15T15:00:01.728Z",
"expiresBy": "2038-01-18T00:00:00Z",
"parentInfo": [
{
"parentId": "7cCn5thwWFLhiZoSosphKL",
"parentName": "REG",
"parentType": "Space"
},
{
"parentId": "6E442DkEnGbhO1L31w2UW3",
"parentName": "Ramya",
"parentType": "Project"
},
{
"parentId": "7oUOa49tVKzexgnzp3zyIc",
"parentName": "SAP_ABAP",
"parentType": "Folder"
}
],
"documentType": "APPMI_TASK",
"contentType": "JSON",
"documentState": "VALID",
"aclRule": "org",
"subcontainerCount": 0,
"customAttributes": null,
"repoInfo": {
"repoParams": [

],
"repoPath": null,
"repoHandle": "487797", //this is the dbmiTaskId used we would be using further
"frsPath": null
},
"isSourceControlled": false,
"checkedOutById": null
}
Use the value returned in the repoHandle as the task ID for further task operations.
Note: Timestamps are in UTC.

Failed responses

For a failed response, the REST API returns a standard HTTP error code.
The following table describes some of the HTTP error codes that might be returned:
Name
HTTPS status code
Error message
Unauthorized
401
Invalid or missing sessionId.
Forbidden
403
Logged-in user does not have permission to create a task or access the specified folder.
Not found
404
The specified projectId does not exist in the project.
Not found
404
The specified folderId does not exist within the given project.
Bad Request
400
The taskName is syntactically invalid. It is either empty or contains illegal characters.
Conflict
409
A task with the same name already exists in the folder or project.
Internal server error
500
Internal server error. The server experienced a critical error. Contact the server’s administratorto rectify this issue.
Unprocessable Enitity
422
The nativeData task payload is incomplete or invalid. It either contains missing mandatory properties or unsupported configurations.

Deploy a database ingestion and replication task

Use the deploy resource to deploy a database ingestion and replication task.
Perform the following tasks to deploy and manage a job:

Get the task ID

To deploy a task, you need to first get the task ID.
Use the following GET request to get the task ID:
GET /dbmi/public/api/v2/tasks/fetchId?taskName={taskName}&projectId={projectId}&folderId={folderId}
Include the following fields in the request:
Field
Type
Required/Optional
Description
projectId
string
no
The project ID where the task resides.
folderId
string
no
The folder ID where the task resides.
taskName
string
yes
Name of the task.

Sample request

Use the following sample as a reference to get the task ID:
GET https://pod-ing.ics.dev:11447/dbmi/public/api/v2/tasks/fetchId?projectId=1lHbX3urKB8dHJ071tXV8Fg&folderId=5GX14m3CuFAeVWqnsSX9mC&taskName=zendeskToSlfk

Sample response

A successful response returns a summary including the task name and task ID similar to the following example:

[
{
"name": "zendeskToSlfk",
"parentInfo": [
{
"parentId": "7cCn5thwWFLhiZoSosphKL",
"parentName": "REG",
"parentType": "Space"
},
{
"parentId": "1lHbX3urKB8dHJ071tXV8F",
"parentName": "priyanshi",
"parentType": "Project"
},
{
"parentId": "5GX14m3CuFAeVWqnsSX9mC",
"parentName": "test1",
"parentType": "Folder"
}
],
"taskId": 2
}
]

Deploy the task

After you get the taskId, deploy the database ingestion and replication task using the deploy API.
Use the following POST request to deploy the task:
POST /dbmi/public/api/v2/task/deploy/{taskId}
Include the following field in the request:
Field
Type
Required/Optional
Description
taskId
integer
yes
The ID associated with the task.

Sample response

A successful deployment request returns a 200 status code with a summary, including the job ID and deployment status, indicating that deployment has started:

{
"status": "success",
"code": 202,
"message": "Deployment started",
"data": {
"jobId": 4,
"deploymentStatus": "processing_deploy"
}
}
Note: Deployment runs asynchronously. For tasks involving many tables, deployment might take longer. The API responds immediately with a "Deployment started" message. To monitor the status, query the Get Job Status API with the job ID. For more information, see Get Job Status API.

Error responses

For a failed response, the API returns standard HTTP error codes. The following table describes common HTTP error codes that might be returned:
Name
HTTP Status Code
Error Message
Unauthorized
401
Invalid sessionId.
Bad Request
400
Invalid folderId, projectId, or taskName.
Forbidden
403
No permission to fetch the task.
Not found
404
The taskid is not found for the projectId/folderId or taskName
Internal server error
500
Failed due to server internal error.

Run a database ingestion and replication task

Use the job API to run a deployed database ingestion and replication job.
Before you can run the job, ensure that the job is deployed and is in a state other than Undeployed.
Perform the following tasks to run a task and then monitor its status:

Get the job ID

To start a job, you need the job ID.
Use the following GET request to fetch the job ID:
GET /dbmi/public/api/v2/task/fetch/{taskId}/job
Include the following field in the request:
Field
Type
Required/Optional
Description
taskId
string
yes
ID of the deployed task.

Sample request

Use the following sample as reference to get the job ID:
GET /dbmi/public/api/v2/task/fetch/2/job

Sample response

A successful response returns the job ID and related details for the specified task ID similar to the following example:

{
"jobId": 15,
"assetName": "sftosnw_15",
"location": "Default"
}

Run a task

After you get the jobId, start the database ingestion and replication task using the job start resource.
Use the following POST request to start the job:
POST /dbmi/public/api/v2/job/start
Include the following field in the request:
Field
Type
Required/Optional
Description
jobId
string
yes
The ID of the job that you want to start.

Request body

{"jobId":<jobId>}

Request body example

{
"jobId": "15"
}

Sample response

A successful response returns a 202 status code indicating the job is accepted to start:

{
"status": "Success",
"code": 202,
"message": "Job with org id 2HimcQ9cXW5kLUCOUkXGi8 and job name zendeskToSlfk-priyanshi-test_8 has been accepted to start successfully."
}
Note: The start job API initiates the job asynchronously. The response confirms that the job has been accepted to start. To monitor the job's progress and completion, query the Get Job Status API with the job ID. For more information, see Get Job Status API.

Error responses

A failed response might return the following HTTP error codes:
Name
HTTP Status Code
Error Message
Unauthorized
401
Invalid sessionId.
Forbidden
403
No permission to run/start.
Missing jobId
404
Mass Ingestion Databases could not find the job with ID '0' or specified jobId.
Job cannot start
409
Job is already running or not in DEPLOYED state.
Internal Server Error
500
Failed due to server internal error.

Stop a database ingestion and replication task

Use the stop job API to stop a database ingestion and replication task that is Up and Running, Running with Warning, or On Hold state.

POST request

Send a POST request to stop a job by providing the job ID.
POST /dbmi/public/api/v2/job/stop
Include the following field in the request:
Field
Type
Required/Optional
Description
jobId
string
yes
The ID of the job that you want to stop.

Request body

Use the following request body to pass attributes for the resource:
{
"jobId": "<jobId>"
}

Success response

A successful response returns a status indicating the job has been accepted to stop.
{
"status": "Success",
"code": 202,
"message": "Job with org id 2HimcQ9cXW5kLUCOUkXGi8 and job name zendeskToSlfk-priyanshi-test_8 has been accepted to stop successfully."
}
Note: The stop job API processes requests asynchronously. To verify whether the job stopped successfully, query the Get Job Status API with the job ID. For more information, see Get Job Status API.

Failed responses

For a failed response, the API returns a standard HTTP error code.
The following table describes some of the HTTP error codes that might be returned:
Name
HTTPS status code
Error message
Unauthorized
401
Invalid sessionId
Bad Request
400
Missing orgId
Forbidden
403
No permission to stop the job
Missing jobId
404
Mass Ingestion Databases could not find the job with ID '0' or specified jobId
Conflict
409
Job associated with JobID is not in "RUNNING" state
Internal Server Error
500
Failed due to server internal error

Resume a database ingestion and replication task

Use the job resource's resume action to resume a stopped, failed, or aborted database ingestion and replication job. You cannot resume a job that is in the Failed state.

POST request

Send a POST request to resume a job by providing the job ID and resume options.
POST /dbmi/public/api/v2/job/resume
Include the following fields in the request:
Field
Type
Required/Optional
Description
jobId
string
yes
The ID of the job that you want to resume.
parameters
Map<String, JSON>
no
Resume options and their values.

Request body example

Use the following request body to pass attributes for the resource:
{
"jobId": 15,
"parameters": {
"resumeOptions": {
"schemaChangeOptions": [
{
"pattern": "*.*",
"action": "REPLICATE"
}
]
}
}
}

Success response

A successful response returns a status indicating the job has been accepted to resume.
{
"status": "Success",
"code": 202,
"message": "Job with org id 2HimcQ9cXW5kLUCOUkXGi8 and job name zendeskToSlfk-priyanshi-test_8 has been accepted to resume successfully."
}
Note: The resume job API processes requests asynchronously. To verify whether the job resumed successfully, query the Get Job Status API with the job ID. For more information, see Get Job Status API.

Failed responses

For a failed response, the API returns a standard HTTP error code.
The following table describes some of the HTTP error codes that might be returned:
Name
HTTPS status code
Error message
Name
HTTP Status Code
Error Message
Unauthorized
401
Invalid sessionId
Bad Request
400
Missing orgId
Forbidden
403
No permission to resume the job
Missing jobId
404
Mass Ingestion Databases could not find the job with ID '0' or specified jobId
Conflict
409
Cannot resume as job is already running or not in "STOPPED", "FAILED", or "ABORTED" state
Internal Server Error
500
Failed due to server internal error

Undeploy a database ingestion and replication job

Use the job resource's undeploy action to undeploy a database ingestion and replication job. Ensure that the job is not running and has a status of Aborted, Completed, Deployed, Failed, or Stopped.

POST request

Send a POST request to undeploy a job by providing the job ID.
POST /dbmi/public/api/v2/job/undeploy
Include the following field in the request:
Field
Type
Required/Optional
Description
jobId
string
yes
The ID of the job that you want to resume.

Request body example

Use the following request body to pass attributes for the resource:
{
"jobId": "<jobId>"
}

Success response

A successful response returns a status indicating the job is accepted to undeploy.
{
"status": "Success",
"code": 202,
"message": "Job with org id 2HimcQ9cXW5kLUCOUkXGi8 and job name zendeskToSlfk-priyanshi-test_8 has been accepted to undeploy successfully."
}
Note: The undeploy job API processes requests asynchronously. To verify whether the job undeployed successfully, query the Get Job Status API with the job ID. For more information, see Get Job Status API.

Failed responses

For a failed response, the API returns a standard HTTP error code.
The following table describes some of the HTTP error codes that might be returned:
Name
HTTPS status code
Error message
Unauthorized
401
Invalid sessionId
Bad Request
400
Missing orgId
Forbidden
403
No permission to undeploy
Missing jobId
404
Mass Ingestion Databases could not find the job with ID '0'
Not Found
404
Mass Ingestion Databases could not find the job with ID '<jobId>'
Conflict
409
Job associated with JobID is not in "STOPPED", "FAILED" or "ABORTED" state
Internal server error
500
Failed due to server internal error

Get job status for a database ingestion and replication job

Use the job resource to retrieve the status of a database ingestion and replication job.

GET request

Send a GET request to fetch the current status of a job by providing the job ID.
GET /dbmi/public/api/v2/job/status
Include the following field in the request:
Field
Type
Required/Optional
Description
jobId
string
yes
The ID of the job for which you want the status.

Request body example

Use the following request body to pass attributes for the resource:
{
"jobId": "<jobId>"
}

Success response example

A successful response returns details information about the job status, similar to the following example.
{
"jobId": 7,
"assetName": "Replication_Task_20251218120228_7",
"assetType": "APPMI_TASK",
"startedBy": "psongara@informatica.com",
"orgId": "2HimcQ9cXW5kLUCOUkXGi8",
"runtimeEnv": "01000125000000000002",
"status": "failed",
"durationInSeconds": 68,
"endTime": "2026-01-21T06:22:10.496Z",
"location": "Default",
"startTime": "2026-01-21T06:21:02.847Z",
"errorMessage": null,
"lastAction": "Job was started by a user.",
"jobConfig": {
"taskId": "dip5eZ0BfeNk9vYzEhQA6E",
"taskMode": "UNLOAD",
"srcConnId": "0100010B000000000002",
"tgtConnId": "0100010B000000000003",
"deployTime": "2025-12-18T06:37:54.337256427Z",
"schedulerJobName": null,
"schedulerId": "",
"agentId": "",
"isRunOnOtherAgentEnabled": false,
"isServerless": false,
"deployVersion": "58.0.0-SNAPSHOT",
"featureTags": null,
"srcVendor": "ZENDESK",
"tgtVendor": "SNOWFLAKE",
"cdcGroupJobId": null,
"cdcGroupInmdtStrgConId": null,
"mapOfApplyJobDetails": {}
}
}

Failed responses

For a failed response, the API returns a standard HTTP error code.
The following table describes some of the HTTP error codes that might be returned:
Name
HTTPS status code
Error message
Unauthorized
401
Invalid sessionId
Bad Request
400
Invalid username
Forbidden
403
No permission
Not Found
404
Mass Ingestion Databases could not find the job with ID '<jobId>'
Internal Server Error
500
Failed due to server internal error

Get statistics for a database ingestion and replication job

Use the job resource's metric action to retrieve detailed statistics for a database ingestion and replication job.

POST request

Send a POST request to fetch detailed job statistics by providing the job ID and metrics options.
POST /dbmi/public/api/v2/job/metrics
Include the following URL parameters in the request:
Field
Type
Required/Optional
Description
jobId
string
yes
The ID of the job to fetch detailed statistics.
You can include the following optional query parameters:
Field
Type
Required/Optional
Description
stateFilter
string
no
Filter metrics by job state.
sort
array
no
Sorting options, for example, "srcTable", "asc"
search
string
no
Search string to filter metrics.
offset
number
no
Pagination offset.
Use the following request body parameters:
Field
Type
Required / Optional
Description
jobId
number
yes
The ID of the job.
parameters
object
yes
metricsOptions.
You can use the following optional parameters in the metricsOptions object:
Field
Type
Required/Optional
Description
stateFilter
string
no
Filter by job state (nullable).
sort
array
no
Sort field and order, for example, "srcTable", "asc"
search
string
no
Search string.
limit
number
no
Number of records to return.
offset
number
no
Offset for pagination.

Request body example

Use the following request body to pass attributes for the resource:
{
"jobId": 20,
"parameters": {
"metricsOptions": {
"stateFilter": null,
"sort": ["srcTable", "asc"],
"search": "",
"limit": 25,
"offset": 0
}
}
}

Success responses

The response includes detailed job information, metrics for tasks and subtasks, counts, and current throughput.

Sample response for unload metrics

{
"jobInfo": {
"jobId": 20,
"assetId": "7yQXJnK2uwUe50OwfaPzQU_20",
"jobName": "sftosnw_20",
"assetType": "APPMI_TASK",
"startedBy": "psongara@informatica.com",
"correlationId": "MGY1ZmVmN2MtMzNhZi00ZD_DBMI",
"orgId": "2HimcQ9cXW5kLUCOUkXGi8",
"runtimeEnv": "01000125000000000002",
"status": "completed",
"duration": 100,
"endTime": "2026-02-04T18:01:45.248Z",
"jobConfig": {
"taskId": "7yQXJnK2uwUe50OwfaPzQU",
"taskMode": "UNLOAD",
"srcConnId": "0100010B00000000000A",
"tgtConnId": "0100010B000000000003",
"deployTime": "2026-02-04T17:57:50.242566142Z",
"schedulerJobName": null,
"schedulerId": "",
"agentId": "",
"isRunOnOtherAgentEnabled": false,
"isServerless": false,
"deployVersion": "58.0.0-SNAPSHOT",
"featureTags": null,
"srcVendor": "SALESFORCE",
"tgtVendor": "SNOWFLAKE",
"cdcGroupJobId": null,
"cdcGroupInmdtStrgConId": null,
"mapOfApplyJobDetails": {}
},
"location": "Default",
"startTime": "2026-02-04T18:00:05.041Z"
},
"metricsInfo": [
{
"jobName": "sftosnw_20",
"taskName": "UNLOAD-SALESFORCE-Account",
"runId": "576",
"recordsRead": 161,
"recordsWritten": 161,
"captureProgress": null,
"duration": 80145,
"subTasks": [
{
"srcName": "SALESFORCE.Account",
"tgtName": "PPSONGARA.Account",
"state": "COMPLETED",
"inserts": 0,
"updates": 0,
"deletes": 0,
"unloadCount": 0,
"lobs": 0
}
]
},
{
"jobName": "sftosnw_20",
"taskName": "UNLOAD-SALESFORCE-AccountShare",
"runId": "577",
"recordsRead": 0,
"recordsWritten": 0,
"captureProgress": null,
"duration": 74085,
"subTasks": [
{
"srcName": "SALESFORCE.AccountShare",
"tgtName": "PPSONGARA.AccountShare",
"state": "COMPLETED",
"inserts": 0,
"updates": 0,
"deletes": 0,
"unloadCount": 0,
"lobs": 0
}
]
}
],
"counts": {
"total": 2,
"statusCounts": [
{
"status": "COMPLETED",
"counts": 2
}
],
"totalUnload": {
"totalRead": 161,
"totalWritten": 161
}
},
"currentThroughput": 1.6262626262626263
}

Sample response for CDC metrics

{
"jobInfo": {
"runId": 47167,
"assetId": "2bFlacacNGvkR3NOe1Ckwk_47167",
"assetName": "date_check_DBMI_13785_c3_47167",
"assetType": "DBMI_TASK",
"startedBy": "spoorthi1",
"correlationId": "N2I4YWViMGUtNDFiYS00Nj",
"orgId": "6sx0UHhl0fNbZqvIX5VDeJ",
"runtimeEnv": "013QNH250000000007VF",
"status": "running",
"duration": 48566,
"endTime": null,
"extraData": {
"taskId": "2bFlacacNGvkR3NOe1Ckwk",
"taskMode": "CDC_COMBINED",
"srcConnId": "013QNH0B0000000000L8",
"tgtConnId": "013QNH0B0000000000L8",
"deployTime": "2023-09-12T09:25:40.856Z",
"schedulerJobName": null,
"schedulerId": "",
"agentId": "",
"isRunOnOtherAgentEnabled": true,
"deployVersion": "44.0.0-SNAPSHOT"
},
"location": "spoorthi",
"startTime": "2023-09-12T09:26:22.220Z"
},
"metricsInfo": [
{
"jobName": "date_check_DBMI_13785_c3_47167",
"taskName": "CDC_COMBINED",
"runId": "377843",
"recordsRead": 15,
"recordsWritten": 15,
"duration": 48463776,
"captureProgress": {
"sourceTime": "20230912225112"
},
"subTasks": [
{
"srcName": "AUTO_CDC.DBMI_13279",
"tgtName": "SP1.DBMI_13279_2_WP",
"state": "RUNNING",
"Inserts": 1,
"Updates": 0,
"Deletes": 0,
"LOBs": 0,
"Unload Count": 14,
"Transition State": "Normal",
"Transition State Error Detail": "",
"Transition State Count": "",
"Unload Identifier": "40570cd952234bb98c4941d37611457b"
}
]
}
],
"counts": {
"total": 1,
"statusCounts": [
{
"status": "RUNNING",
"counts": 1
}
],
"totalUnload": {
"totalRead": 0,
"totalWritten": 0
}
},
"currentThroughput": 0.000309514474960279
}

Failed responses

For a failed response, the API returns a standard HTTP error code.
The following table describes some of the HTTP error codes that might be returned:
Name
HTTPS status code
Error message
Unauthorized
401
Invalid sessionId.
Bad Request
400
Missing jobId or invalid request body.
Forbidden
403
No permission.
Not Found
404
Mass Ingestion Databases could not find the job with ID '<jobId>.'
Conflict
409
Mass ingestion job not in valid state for stats collection.
Internal Server Error
500
Failed due to server internal error.

Get job logs for a database ingestion and replication job

Retrieve the log information for a database ingestion and replication job.

GET request

Send a GET request to retrieve the log information by the job ID.
GET /dbmi/public/api/v2/job/{jobId}/log
Include the following field in the request:
Field
Type
Required/Optional
Description
jobId
string
yes
The ID of the job for which you want to get the status.

Success response

Returns log details if the job is running or if the task log was generated when the job was running.
{
"agentId": "01000308000000000002",
"logPath": "C:\\DBMI_Agents\\Dev\\apps\\Database_Ingestion\\logs\\tasks\\sqlserver_snoflake_combined_5-CDC_COMBINED-17.log",
"errorMessage": null
}
Returns the following response if the job is not running or task is not generated:
{
"agentId": null,
"logPath": null,
"errorMessage": "Unable to obtain log path for ingestion job 'sanjay_sqlserver_snoflake_unload_6' with run ID 19"
}

Failed responses

For a failed response, the API returns a standard HTTP error code.
The following table describes some of the HTTP error codes that might be returned:
Name
HTTPS status code
Error message
Unauthorized
401
Invalid sessionId.
Bad Request
400
Missing jobId.
Forbidden
403
No permission.
Not Found
404
Mass Ingestion Databases could not find the job with ID '{jobId}'.
Conflict
409
Mass Ingestion job not in valid state for logs retrieval.
Internal Server Error
500
Failed due to server internal error.