Heap account properties need app_id and an account id
app_id is the environment ID. Send account_id for one account, or accounts[] for a bulk update, with account_id on every row. Track stays vendor/heap-track. Add user properties stays vendor/heap-user-properties.
A bulk row still needs account_id
Heap documents account_id on a single update and accounts[].account_id on every bulk row.
Rule: vendor.heap-account-properties.body.accounts[].account_id.missing
What this pack matches
Rules
Codes are stable. A finding in CI, MCP, or the playground lands on the same id.
| Field | Required | What it checks | Rule ids | Source |
|---|---|---|---|---|
app_id |
required | It is the Heap environment ID. Heap documents it as required. Native JSON type: integer or string. Minimum numeric value: -2147483648. Maximum numeric value: 2147483647. Fix: Set `app_id` to the environment ID from Heap Projects. | vendor.heap-account-properties.body.app_id.missingvendor.heap-account-properties.body.app_id.emptyvendor.heap-account-properties.body.app_id.invalid |
docs |
account_id |
optional | It is the account identifier on a single-account update. Heap documents `account_id` for single updates, and `accounts[]` for bulk. Native JSON type: string. Fix: Send `account_id` for one account, or an `accounts` array for bulk updates. | vendor.heap-account-properties.body.account_id.emptyvendor.heap-account-properties.body.account_id.invalid |
docs |
accounts[].account_id |
required | It is the account identifier on a bulk row. Heap documents each `accounts[]` object as having `account_id`. Native JSON type: string. Fix: Set `accounts[].account_id` on every bulk row. | vendor.heap-account-properties.body.accounts[].account_id.missingvendor.heap-account-properties.body.accounts[].account_id.emptyvendor.heap-account-properties.body.accounts[].account_id.invalid |
docs |
properties |
optional | The vendor documents `properties` in the request contract. Native JSON type: object. | vendor.heap-account-properties.body.properties.invalid |
docs |
accounts |
optional | The vendor documents `accounts` in the request contract. Native JSON type: array. Maximum array items: 1000. | vendor.heap-account-properties.body.accounts.invalid |
docs |
accounts[] |
optional | The vendor documents `accounts[]` in the request contract. Native JSON type: object. | vendor.heap-account-properties.body.accounts[].invalid |
docs |
accounts[].properties |
required | The vendor documents `accounts[].properties` in the request contract. Native JSON type: object. | vendor.heap-account-properties.body.accounts[].properties.missingvendor.heap-account-properties.body.accounts[].properties.invalid |
docs |
property_value… |
optional | The vendor documents `property_value` in the request contract. Native JSON type: number or string. Maximum decoded characters: 1023. | vendor.heap-account-properties.body.property_value.invalid |
docs |
root |
optional | The vendor documents `` in the request contract. Native JSON type: object. | vendor.heap-account-properties.body.root.invalid |
docs |
overlong_property_names… |
forbidden | Property keys must have fewer than1024characters, counted afterJSONdecoding. Presence diagnostic severity: error. | vendor.heap-account-properties.body.overlong_property_names.forbidden |
docs |
body.single_account_properties |
required | The request does not satisfy the documented single account properties requirement. | vendor.heap-account-properties.body.single_account_properties |
docs |
property_value… |
optional | Body scope: accounts[]. Native JSON type: number or string. Maximum decoded characters: 1023. | vendor.heap-account-properties.body.property_value.invalid |
docs |
overlong_property_names… |
forbidden | Property keys must have fewer than1024characters, counted afterJSONdecoding. Body scope: accounts[]. Presence diagnostic severity: error. | vendor.heap-account-properties.body.overlong_property_names.forbidden |
docs |
method |
required | This published ingestion operation uses HTTP POST. Complete HTTP capture contract. Native JSON type: string. | vendor.heap-account-properties.http.method.missingvendor.heap-account-properties.http.method.emptyvendor.heap-account-properties.http.method.invalid |
docs |
content_type |
recommended | Use a published request media type. Complete HTTP capture contract. Presence diagnostic severity: warning. Value diagnostic severity: warning. Native JSON type: string. | vendor.heap-account-properties.http.content_type.missingvendor.heap-account-properties.http.content_type.emptyvendor.heap-account-properties.http.content_type.invalid |
docs |
body |
required | The request body is a JSON object. Complete HTTP capture contract. Native JSON type: object. | vendor.heap-account-properties.http.body.missingvendor.heap-account-properties.http.body.invalid |
docs |
Validate a payload
pixellint validate json @payload.json --rulepack vendor/heap-account-properties
Try this failing payload in the playground. Heap add account properties missing app_id.
{"account_id":"acct-10024"}
cargo install pixellint
·
npm install pixellint