Create Attributes (Bulk) - Submit
    • Dark
      Light

    Create Attributes (Bulk) - Submit

    • Dark
      Light

    Article summary

    Overview

    This API enables the bulk creation, update, and deletion of attributes for profile and custom entities in Data Cloud. It supports:

    • Creating new attributes for profile and custom entities

    • Updating existing attributes, such as labels, visibility, masking, and linkage

    • Deleting attributes that are no longer required

    • Submitting multiple Attribute operations across entities in a single request

    This is an Asynchronous bulk API. On successful submission, the API returns a jobId, which can be used to track the processing status using the Job Status API.

    Endpoint URL

    The API endpoint used to submit bulk attribute operations is:

    /api/v1/dataobjects/attributes/bulk

    HTTP Method

    POST

    Request Body Structure

    Each entity includes an entityName and a list of attributes with the required fields. Structure your request body as follows:

    {
      "entities": [
        {
          "entityName": "Profile",
          "attributes": [
            {
              "action": "create",
              "name": "preferredLanguage",
              "label": "Preferred Language",
              "dataType": "string",
              "category": {
                "category": "business",
                "categoryID": "10"
              },
              "isMergeIdentifier": false,
              "isShowInProfile": false,
              "isMaskOnScreen": false,
              "isMaskInDataExport": false,
              "linkedToProfileDataObjectField": null
            },
            {
              "action": "update",
              "name": "email",
              "label": "Email Address (Primary)",
              "category": {
                "category": "business",
                "categoryID": "10"
              },
              "isShowInProfile": true,
              "isMaskOnScreen": true,
              "isMaskInDataExport": true,
              "linkedToProfileDataObjectField": "profile.email"
            },
            {
              "action": "delete",
              "name": "oldCustomerCode",
              "reason": "Deprecated field"
            }
          ]
        },
        {
          "entityName": "LoanApplications",
          "attributes": [
            {
              "action": "create",
              "name": "loanStartDate",
              "label": "Loan Start Date",
              "dataType": "date",
              "dateTimeFormat": {
                "dateTimeFormatID": 20,
                "format": "dd/MM/yyyy",
                "type": "date"
              },
              "category": {
                "category": "business",
                "categoryID": "10"
              },
              "isMergeIdentifier": false,
              "isShowInProfile": false,
              "isMaskOnScreen": false,
              "isMaskInDataExport": false,
              "linkedToProfileDataObjectField": "profile.mobile"
            },
            {
              "action": "create",
              "name": "loanAmount",
              "label": "Loan Amount",
              "dataType": "number",
              "category": {
                "category": "business",
                "categoryID": "10"
              },
              "isMergeIdentifier": false,
              "isShowInProfile": false,
              "isMaskOnScreen": false,
              "isMaskInDataExport": false,
              "linkedToProfileDataObjectField": null
            },
            {
              "action": "delete",
              "name": "obsoleteLoanFlag",
              "reason": "Field removed per new schema"
            }
          ]
        }
      ]
    } 

    Request Field Description

    This table outlines the required fields for the API request, including their types, whether they are mandatory, and their descriptions.

    Field Name

    Data Type

    Required

    Description

    entities

    Array

    Yes

    Contains the list of entities for which attribute operations are submitted.

    entityName

    String

    Yes

    Name of the entity (for example, Profile or a custom entity name).

    attributes

    Array

    Yes

    List of attributes to be created, updated, or deleted for the entity.

    action

    String

    Yes

    Operation to perform on the attribute. Allowed values: create, update, delete.

    name

    String

    Yes

    Internal name of the attribute.

    label

    String

    Required for create/update

    Display label for the attribute in the UI.

    dataType

    String

    Required for create/update

    Data type of the attribute. Allowed values: int, string, float, double, date, datetime.

    dateTimeFormat

    String

    Required only when dataType = date or datetime

    Format of the date/time field (e.g., "yyyy-MM-dd"). Not required for non-date fields. Allowed values are attached here at the bottom.

    category

    String

    Yes

    Category to which the attribute belongs. Supported values are listed at the end of this section.

    isMergeIdentifier

    Boolean

    No

    Indicates whether the attribute is used as a merge identifier.

    isShowInProfile

    Boolean

    No

    Determines whether the attribute should be visible in the profile view.

    isMaskOnScreen

    Boolean

    No

    Determines whether the attribute should be masked when displayed on screen.

    isMaskInDataExport

    Boolean

    No

    Determines whether the attribute should be masked when included in data exports.

    linkedToProfileDataObjectField

    String

    No

    Reference key pointing to a profile attribute (for example, profile.mobile).

    reason

    String

    Required only for delete

    Reason for deleting the attribute.

    Validation Rules

    The following validation rules apply to attribute operations in this API.

    Attribute-level rules

    • action is mandatory. Allowed values: create, update, delete

    • If action = create or update:

      • name, label, and dataType are required.

      • dateTimeFormat is required only when dataType = date.

    • If action = delete:

      • name is required.

      • reason is recommended.

    Linked profile reference rules

    • Allowed format: profile.<publicAttributeName>

    • Internal IDs or internal attribute names must not be used.

    Supported Date and DateTime Formats

    The following date and datetime formats are supported.

    Type

    Format

    Date

    dd/MM/yyyy

    Date

    dd-MM-yyyy

    Date

    MM/dd/yyyy

    Date

    MM-dd-yyyy

    Date

    yyyy/MM/dd

    Date

    yyyy-MM-dd

    Date

    dd/MMM/yyyy

    Date

    dd-MMM-yyyy

    DateTime

    dd/MM/yyyy HH:mm

    DateTime

    dd/MM/yyyy HH:mm:ss

    DateTime

    dd-MM-yyyy HH:mm

    DateTime

    dd-MM-yyyy HH:mm:ss

    DateTime

    MM/dd/yyyy HH:mm

    DateTime

    MM/dd/yyyy HH:mm:ss

    DateTime

    MM-dd-yyyy HH:mm

    DateTime

    MM-dd-yyyy HH:mm:ss

    DateTime

    yyyy/MM/dd HH:mm

    DateTime

    yyyy/MM/dd HH:mm:ss

    DateTime

    yyyy-MM-dd HH:mm

    DateTime

    yyyy-MM-dd HH:mm:ss

    DateTime

    yyyy-MM-ddTHH:mm:ss

    DateTime

    dd/MMM/yyyy HH:mm

    DateTime

    dd/MMM/yyyy HH:mm:ss

    DateTime

    dd-MMM-yyyy HH:mm

    DateTime

    dd-MMM-yyyy HH:mm:ss

    Supported Category Values

    The following category values are supported:

    • Business

    • Phone

    • Email

    • Personal Information

    • Contact Information

    • Address Information

    • Identification

    • Education and Employment

    • Business Information

    • Financial Information

    • Household Information

    • Demographic Information

    • Others

    • System

    Sample Response

    {
    
    "entities": [
    
    {
    
    "entityName": "Profile",
    
    "attributes": [
    
    {
    
    "action": "create",
    
    "name": "preferredLanguage",
    
    "label": "Preferred Language",
    
    "dataType": "string",
    
    "category": {
    
    "category": "business",
    
    "categoryID": 10
    
    },
    
    "isMergeIdentifier": false,
    
    "isShowInProfile": false,
    
    "isMaskOnScreen": false,
    
    "isMaskInDataExport": false,
    
    "linkedToProfileDataObjectField": null
    
    },
    
    {
    
    "action": "update",
    
    "name": "email",
    
    "label": "Email Address (Primary)",
    
    "category": {
    
    "category": "business",
    
    "categoryID": 10
    
    },
    
    "isShowInProfile": true,
    
    "isMaskOnScreen": true,
    
    "isMaskInDataExport": true,
    
    "linkedToProfileDataObjectField": "profile.email"
    
    },
    
    {
    
    "action": "delete",
    
    "name": "oldCustomerCode",
    
    "reason": "Deprecated field"
    
    }
    
    ]
    
    }
    
    {
    
    "entityName": "LoanApplications",
    
    "attributes": [
    
    {
    
    "action": "create",
    
    "name": "loanStartDate",
    
    "label": "Loan Start Date",
    
    "dataType": "date",
    
    "dateTimeFormat": {
    
    "dateTimeFormatID": 20,
    
    "format": "dd/MM/yyyy",
    
    "type": "date"
    
    },
    
    "category": {
    
    "category": "business",
    
    "categoryID": 10
    
    },
    
    "isMergeIdentifier": false,
    
    "isShowInProfile" : false,
    
    "isMaskOnScreen" : false,
    
    "isMaskInDataExport" : false,
    
    "linkedToProfileDataObjectField": "profile.mobile"
    
    },
    
    {
    
    "action": "create",
    
    "name": "loanAmount",
    
    "label": "Loan Amount",
    
    "dataType": "number",
    
    "category": {
    
    "category": "business",
    
    "categoryID": 10
    
    },
    
    "isMergeIdentifier": false,
    
    "isShowInProfile" : false,
    
    "isMaskOnScreen" : false,
    
    "isMaskInDataExport" : false,
    
    "linkedToProfileDataObjectField": null
    
    },
    
    {
    
    "action": "delete",
    
    "name": "obsoleteLoanFlag",
    
    "reason": "Field removed per new schema"
    
    }
    
    ]
    
    }
    
    ]
    
    }

    Sample Response

    {
      "entities": [
        {
          "entityName": "Profile",
          "attributes": [
            {
              "action": "create",
              "name": "preferredLanguage",
              "label": "Preferred Language",
              "dataType": "string",
              "category": {
                "category": "business",
                "categoryID": "10"
              },
              "isMergeIdentifier": false,
              "isShowInProfile": false,
              "isMaskOnScreen": false,
              "isMaskInDataExport": false,
              "linkedToProfileDataObjectField": null
            },
            {
              "action": "update",
              "name": "email",
              "label": "Email Address (Primary)",
              "category": {
                "category": "business",
                "categoryID": "10"
              },
              "isShowInProfile": true,
              "isMaskOnScreen": true,
              "isMaskInDataExport": true,
              "linkedToProfileDataObjectField": "profile.email"
            },
            {
              "action": "delete",
              "name": "oldCustomerCode",
              "reason": "Deprecated field"
            }
          ]
        },
        {
          "entityName": "LoanApplications",
          "attributes": [
            {
              "action": "create",
              "name": "loanStartDate",
              "label": "Loan Start Date",
              "dataType": "date",
              "dateTimeFormat": {
                "dateTimeFormatID": 20,
                "format": "dd/MM/yyyy",
                "type": "date"
              },
              "category": {
                "category": "business",
                "categoryID": "10"
              },
              "isMergeIdentifier": false,
              "isShowInProfile": false,
              "isMaskOnScreen": false,
              "isMaskInDataExport": false,
              "linkedToProfileDataObjectField": "profile.mobile"
            },
            {
              "action": "create",
              "name": "loanAmount",
              "label": "Loan Amount",
              "dataType": "number",
              "category": {
                "category": "business",
                "categoryID": "10"
              },
              "isMergeIdentifier": false,
              "isShowInProfile": false,
              "isMaskOnScreen": false,
              "isMaskInDataExport": false,
              "linkedToProfileDataObjectField": null
            },
            {
              "action": "delete",
              "name": "obsoleteLoanFlag",
              "reason": "Field removed per new schema"
            }
          ]
        }
      ]
    }
    
    

    Response Field Description

    This table outlines the response fields for the API request, including their types, whether they are, and their descriptions.

    Field Name

    Data Type

    Present In

    Description

    jobId

    String

    Success, Partial Success, Error

    A unique identifier assigned to the bulk attribute operation. Used for tracking and retrieving status.

    status

    String

    Success, Partial Success, Error

    Represents the final outcome of the request. Possible values: success, partial_success, error.

    summary

    Object

    Success, Partial Success

    Aggregated counts of processed attributes across all entities.

    summary.totalEntitiesProcessed

    Number

    Success, Partial Success

    Total number of entities processed in the request.

    summary.totalAttributesProcessed

    Number

    Success, Partial Success

    Total number of attributes processed across all entities.

    summary.created

    Number

    Success, Partial Success

    Number of attributes successfully created.

    summary.updated

    Number

    Success, Partial Success

    Number of attributes successfully updated.

    summary.deleted

    Number

    Success, Partial Success

    Number of attributes successfully deleted.

    summary.failed

    Number

    Partial Success

    Number of attributes that failed during processing.

    results

    Array

    Success, Partial Success

    Contains the per-entity operation status and attribute-level details.

    results[].entityName

    String

    Success, Partial Success

    Name of the entity (e.g., Profile, LoanApplications) to which the attributes belong.

    results[].attributes

    Array

    Success, Partial Success

    List of attributes processed for that specific entity.

    results[].attributes[].name

    String

    Success, Partial Success

    The attribute name that the operation was attempted on.

    results[].attributes[].action

    String

    Success, Partial Success

    Operation performed — create, update, or delete.

    results[].attributes[].status

    String

    Success, Partial Success

    Processing outcome for that attribute — success or failed.

    results[].attributes[].message

    String

    Partial Success

    Error message describing why the operation failed (present only when status = failed).

    Limit

    The following table outlines the limits for the Create Attributes (Bulk) API.

    Parameter

    Limit

    Notes

    Maximum attributes per request

    100 attributes

    Each request can include up to 100 attributes across all entities.

    Error Response

    The following table outlines the error responses for the API with descriptions.

    Error Response

    Description

    401 – Unauthorized

    Indicates that the API request is not authenticated.

    400 – Bad Request

    The input format is incorrect. Refer to the documentation for the correct format.

    405 – Method Not Allowed

    Indicates that the HTTP method used in the request is not allowed for the specified resource.

    429 – Too Many Requests

    Indicates that the client has exceeded the allowed number of requests within a given time frame.

    413 – Attributes are Too Large

    Indicates that the request exceeded the maximum limit of 100 attributes and was rejected.


    Was this article helpful?

    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.