POST/projects/api/v3/customitems/{customItemId}/records/bulk.json

Create multiple records.

Create multiple custom item records in a single call. Referenced section names are created-or-used and assignee emails are resolved to users server-side, so an importer working from a file need not resolve either per row. A caller that already holds section ids may send "sectionId" instead, which takes precedence over "sectionName".

By default the batch is transactional: the first bad row aborts the request with a 4xx identifying the row under "meta.index", and nothing is created. Set "options.partialSuccess" to true to create rows independently instead: valid rows are created and failures are reported per row under "failed" by request index. When nothing could be created the response is 403 (every row forbidden) or 400, each error carrying its row under "meta.index".

Path Params

  • Name
    customItemId
    Type
    integer
    required
    Description

Body Params

BulkRequest contains a batch of records to create in a single call.

    • Name
      options
      Type
      object
      Description
      BulkOptions are the batch-wide options of a bulk create.
    • Name
      records
      Type
      array
      Description
      BulkRecord is a single record within a BulkRequest. Sections may be referenced by name (created-or-used server-side) and person fields by email (resolved server-side), so an importer need not resolve them per row. A caller that already holds section ids may send SectionID instead, as the single-record endpoint takes: it wins over SectionName, and is validated against the custom item like any other, so a section belonging to another item is still refused. Accepting both spares a caller having to know which of the two spellings this endpoint wanted.

    Responses

    • Code
      201
      Type
      object
      Schema
      Description
      201 Created
      BulkResponse contains the records created by a bulk request along with the rows that could not be created (identified by their index in the request).
    • Code
      400
      Type
      object
      Schema
      Description
      400 Bad Request
      ErrorResponse defines how []Error should be marshaled to JSON.
    • Code
      403
      Type
      object
      Schema
      Description
      403 Forbidden
      ErrorResponse defines how []Error should be marshaled to JSON.

    Examples

    201 Created

    BulkResponse
    {
      "customItemRecords": [
        {
          "createdAt": "string",
          "createdBy": {
            "id": 0,
            "meta": {},
            "type": "string"
          },
          "customItem": {
            "id": 0,
            "meta": {},
            "type": "string"
          },
          "deletedAt": "string",
          "deletedBy": {
            "id": 0,
            "meta": {},
            "type": "string"
          },
          "displayOrder": 0,
          "fieldValues": {},
          "id": 0,
          "meta": {},
          "name": "string",
          "parentId": 0,
          "section": {
            "id": 0,
            "meta": {},
            "type": "string"
          },
          "state": "string",
          "updatedAt": "string",
          "updatedBy": {
            "id": 0,
            "meta": {},
            "type": "string"
          }
        }
      ],
      "failed": [
        {
          "errors": [
            {
              "code": "string",
              "detail": "string",
              "id": "string",
              "meta": {},
              "title": "string"
            }
          ],
          "index": 0
        }
      ],
      "included": {
        "customItemFields": {
          "additionalProp": {
            "createdAt": "string",
            "createdBy": {
              "id": 0,
              "meta": {},
              "type": "string"
            },
            "customItem": {
              "id": 0,
              "meta": {},
              "type": "string"
            },
            "definition": "string",
            "deletedAt": "string",
            "deletedBy": {
              "id": 0,
              "meta": {},
              "type": "string"
            },
            "displayName": "string",
            "displayOrder": 0,
            "formula": "string",
            "formulaUnit": "string",
            "formulaValid": true,
            "id": 0,
            "options": [
              {
                "color": "string",
                "displayOrder": 0,
                "id": 0,
                "isDefault": true,
                "label": "string",
                "twId": "string"
              }
            ],
            "state": "string",
            "twId": "string",
            "twType": "string",
            "type": "string",
            "updatedAt": "string",
            "updatedBy": {
              "id": 0,
              "meta": {},
              "type": "string"
            }
          }
        },
        "customItemSections": {
          "additionalProp": {
            "createdAt": "string",
            "createdBy": {
              "id": 0,
              "meta": {},
              "type": "string"
            },
            "customItem": {
              "id": 0,
              "meta": {},
              "type": "string"
            },
            "deletedAt": "string",
            "deletedBy": {
              "id": 0,
              "meta": {},
              "type": "string"
            },
            "displayName": "string",
            "displayOrder": 0,
            "id": 0,
            "state": "string",
            "updatedAt": "string",
            "updatedBy": {
              "id": 0,
              "meta": {},
              "type": "string"
            }
          }
        },
        "customItems": {
          "additionalProp": {
            "createdAt": "string",
            "createdBy": {
              "id": 0,
              "meta": {},
              "type": "string"
            },
            "deletedAt": "string",
            "deletedBy": {
              "id": 0,
              "meta": {},
              "type": "string"
            },
            "displayName": "string",
            "fields": [
              {
                "id": 0,
                "meta": {},
                "type": "string"
              }
            ],
            "id": 0,
            "labelPlural": "string",
            "labelSingular": "string",
            "relations": [
              {
                "id": 0,
                "meta": {},
                "type": "string"
              }
            ],
            "sections": [
              {
                "id": 0,
                "meta": {},
                "type": "string"
              }
            ],
            "state": "string",
            "updatedAt": "string",
            "updatedBy": {
              "id": 0,
              "meta": {},
              "type": "string"
            },
            "views": [
              {
                "id": 0,
                "meta": {},
                "type": "string"
              }
            ]
          }
        },
        "users": {
          "additionalProp": {
            "avatarUrl": "string",
            "canAccessPortfolio": true,
            "canAddProjects": true,
            "canManagePortfolio": true,
            "company": {
              "id": 0,
              "meta": {},
              "type": "string"
            },
            "companyId": 0,
            "companyRoleId": 0,
            "createdAt": "string",
            "createdBy": {
              "id": 0,
              "meta": {},
              "type": "string"
            },
            "deleted": true,
            "email": "string",
            "firstName": "string",
            "id": 0,
            "inOwnerCompany": true,
            "isAdmin": true,
            "isClientUser": true,
            "isPlaceholderResource": true,
            "isServiceAccount": true,
            "jobRoles": [
              {
                "id": 0,
                "meta": {},
                "type": "string"
              }
            ],
            "lastLogin": "string",
            "lastName": "string",
            "lengthOfDay": 0,
            "loginTarget": "string",
            "meta": {},
            "siteOwner": true,
            "skills": [
              {
                "id": 0,
                "meta": {},
                "type": "string"
              }
            ],
            "teams": [
              {
                "id": 0,
                "meta": {},
                "type": "string"
              }
            ],
            "timezone": "string",
            "title": "string",
            "type": "string",
            "updatedAt": "string",
            "updatedBy": {
              "id": 0,
              "meta": {},
              "type": "string"
            },
            "userCost": 0,
            "userRate": 0,
            "userRates": {
              "additionalProp": {
                "amount": 0,
                "currency": {
                  "id": 0,
                  "meta": {},
                  "type": "string"
                }
              }
            },
            "workingHour": {
              "id": 0,
              "meta": {},
              "type": "string"
            },
            "workingHoursId": 0
          }
        }
      },
      "meta": {
        "averageSpend": 0,
        "data": {},
        "limit": 0,
        "nextCursor": "string",
        "page": {
          "count": 0,
          "hasMore": true,
          "pageOffset": 0,
          "pageSize": 0
        },
        "prevCursor": "string",
        "totalCapacity": 0
      }
    }