---
title: Create Line Attributes
slug: create-line-attributes
docTags: 
createdAt: 2026-09-12T00:59:20.521Z
---

Create a Line Attribute definition.

```javascript
POST /api/objects/LineAttribute
```

`name` and `scope` are required. See the [Line Attribute Data Reference](<Guides and Examples/Customer Lifecycle/CPQ Revenue Lifecycle/Line Attributes/Line Attribute Data Reference.mdx>) for every field, and [Draft vs. active](<Guides and Examples/Customer Lifecycle/CPQ Revenue Lifecycle/Line Attributes/Line Attributes Overview.mdx>) for what activation does.

## Create a draft (no provisioning)

Create the attribute inactive to register it without provisioning the mapped field. This is the only way to create a Line Attribute in a not-yet-active state.

```bash
curl -X POST '{baseUrl}/api/objects/LineAttribute' \
  -H 'nue-api-key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "Overage Rate",
    "scope": ["Line Editor"],
    "mappedFieldApiName": "Overage_Rate__c",
    "isActive": false
  }'
```

```json
{ "id": "a1Sa5000006aWvZEAU" }
```

## Create and activate

Send `"isActive": true` to create the attribute active. On activation Nue provisions `Overage_Rate__c` across the five line objects (Quote Line Item, Order Product, Subscription, Asset, Entitlement), adds it to the `Fields_Expose_to_Nue` field sets, and runs a Business Objects sync. If provisioning fails, the create fails and no record is persisted.

```bash
curl -X POST '{baseUrl}/api/objects/LineAttribute' \
  -H 'nue-api-key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "Overage Rate",
    "scope": ["Line Editor"],
    "mappedFieldApiName": "Overage_Rate__c",
    "isActive": true
  }'
```

:::hint{type="info"}
**Confirm field names first.** `LineAttribute` fields use Nue camelCase apiNames, and the mapped field is a namespaced Salesforce field. Describe the object before writing a payload: `GET {baseUrl}/api/metadata/objects/LineAttribute`.
:::
