Batch Operations (v4 API)

You can specify multiple operations to apply to various objects of various types.

Relative URLHTTP Request Method

/api/v4/backend-deployment-id/batch.json

POST

Batch Operation Limit

Up to 1000 operations are supported per payload. If more than 1000 operations are included in a payload the request will be considered invalid and result in an error.

Parameters

An array of operations is supplied in a hash under the key operations. These operations are applied in the order they appear in the array. Each operation consists of a hash with required fields: method, containing an appropriate keyword, and object containing a hash with, at least, the two required fields - type and id. If the optional key stop_on_error: true is supplied alongside operations, any operations following an error will not be applied.

OperationParameters

Create an object

"method": "post" "object" : Hash with fields:

  • "type" : (required) The name of the model.

  • "id" : (optional) The object ID. If omitted, one will be generated. If provided and the ID already exists, the operation will fail.

  • All the fields that represent the entire object

Replace an object

"method": "put" "object" : Hash with fields:

  • "type" : (required) The name of the model.

  • "id": (required) The object ID

  • All the fields that represent the entire object

Partial update on an object

"method": "patch" "object" : Hash with fields:

  • "type" : (required) The name of the model.

  • "id" : (required) The object ID

  • Only the fields to be updated on the object

Delete an object

"method": "delete" "object" : Hash with fields:

  • "type" : (required) The name of the model.

  • "id" : (required) The object ID

Response

An ill-formed or illegal request will fail without performing any of the operations. A well-formed request should execute each operation in order, and return a success response. The body of the response should contain the requested method, object model and object id, as well as a "success" flag and any relevant "error" details for each operation. See Error Responses for a description of each error.

{
  "stop_on_error": false,
  "operations": [
      {
        "method": "put",
        "object": {
          "type": "asset",
          "id": "eacb4836-f1b9-11e1-9750-001cc01904e3"
        },
        "success": true
      },
      {
        "method": "patch",
        "object": {
          "type": "asset",
          "id": "44218dfe-7c3f-11e2-95e1-0026189d9dc0"
        },
        "success": false,
        "error": {
          "type": "INVALID_VALUE",
          "title": "Invalid value specified.",
          "detail": "Invalid option \"adsghjsd\" for field 'make'.",
          "see": "https://docs.journeyapps.com/reference/backend-api/api-reference/error-responses#INVALID_VALUE"
        }
      },
      {
        "method": "delete",
        "object": {
          "type": "asset",
          "id": "efa3886d-d9a6-4383-a2c0-c7e28a6c21d0"
        },
        "success": false,
        "error": {
          "type": "OBJECT_NOT_FOUND",
          "title": "Object not found.",
          "detail": "No aseset found with ID: 'efa3886d-d9a6-4383-a2c0-c7e28a6c21d0'",
          "see": "https://docs.journeyapps.com/reference/backend-api/api-reference/error-responses#OBJECT_NOT_FOUND"
        }
      }
    ]
}

Example

{
  "operations": [
      {
        "method": "put",
        "object": {
          "type": "asset",
          "id": "eacb4836-f1b9-11e1-9750-001cc01904e3",
          "make": "Samsung"
        }
      },
      {
        "method": "patch",
        "object": {
          "type": "asset",
          "id": "44218dfe-7c3f-11e2-95e1-0026189d9dc0",
          "make": "Nokia"
        }
      },
      {
        "method": "delete",
        "object": {
          "type": "asset",
          "id": "efa3886d-d9a6-4383-a2c0-c7e28a6c21d0"
        }
      }
  ]
}

Stop on error

{
  "stop_on_error": true,
  "operations": [
      {
        "method": "put",
        "object": {
          "type": "asset",
          "id": "eacb4836-f1b9-11e1-9750-001cc01904e3"
        },
        "success": true
      },
      {
        "method": "patch",
        "object": {
          "type": "asset",
          "id": "44218dfe-7c3f-11e2-95e1-0026189d9dc0",
          "make": "adsghjsd"
        },
        "success": false,
        "error": {
          "type": "INVALID_VALUE",
          "title": "Invalid value specified.",
          "detail": "Invalid option \"adsghjsd\" for field 'make'.",
          "see": "https://docs.journeyapps.com/reference/backend-api/api-reference/error-responses#INVALID_VALUE"
        }
      },
      {
        "method": "delete",
        "object": {
          "type": "asset",
          "id": "efa3886d-d9a6-4383-a2c0-c7e28a6c21d0"
        },
        "success": false,
        "error": {
          "type": "BATCH_ABORTED",
          "title": "Batch processing aborted due to error.",
          "detail": "Skipping this operation because a previous operation in this batch failed.",
          "see": "https://docs.journeyapps.com/reference/backend-api/api-reference/error-responses#BATCH_ABORTED"
        }
      }
    ]
}

Last updated