> ## Documentation Index
> Fetch the complete documentation index at: https://developers.everflow.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Update Data Point

> Update a Customer Value data point. The data point is addressed by `network_usm_data_point_id` **in the request body** — there is no ID in the path.

This is a full replace, not a merge: send every field you want to keep. Any field you omit is reset to its empty value.


Updates a Customer Value data point.

Two things differ from most Everflow update endpoints:

* **The ID goes in the body, not the path.** Send `network_usm_data_point_id` inside the JSON object; the path is the same `/networks/usm/datapoints` you POST to.
* **It is a full replace, not a merge.** Any field you leave out is reset to its empty value — omit `description` and it becomes an empty string. Send the complete object every time.

Changing an `identifier` does not rewrite rule goals that reference the old value, so update those rules too.


## OpenAPI

````yaml openapi/customer-value.yaml put /networks/usm/datapoints
openapi: 3.0.3
info:
  title: Everflow Network API - Customer Value
  description: >
    Endpoints for managing Customer Value — data points and rules — in the
    Everflow network.


    Customer Value was previously called **User Management**, and the API paths
    keep the `usm` prefix from that name.


    A **data point** declares a named customer attribute (`ltv_90d`,
    `plan_tier`) that you send in with conversions. A **rule** watches those
    data points, plus standard conversion metrics, and adjusts payout or revenue
    when a customer's aggregated values meet its goals. For setup, see [Customer
    Value](https://helpdesk.everflow.io/customer/customer-value) in the Help
    Center.
  version: 1.0.0
servers:
  - description: Production Server
    url: https://api.eflow.team/v1
security: []
tags:
  - name: Customer Value
    description: >-
      Data points and rules that drive Customer Value payout and revenue
      adjustments.
  - name: Reporting
    description: Conversion reporting scoped to a single customer.
paths:
  /networks/usm/datapoints:
    put:
      tags:
        - Customer Value
      summary: Update Data Point
      description: >
        Update a Customer Value data point. The data point is addressed by
        `network_usm_data_point_id` **in the request body** — there is no ID in
        the path.


        This is a full replace, not a merge: send every field you want to keep.
        Any field you omit is reset to its empty value.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              allOf:
                - type: object
                  required:
                    - network_usm_data_point_id
                  properties:
                    network_usm_data_point_id:
                      type: integer
                      description: The data point to update.
                - $ref: '#/components/schemas/DataPointInput'
            example:
              network_usm_data_point_id: 1
              identifier: ltv_90d
              name: 90-Day LTV (USD)
              type: number
              status: active
              description: Modelled 90-day customer lifetime value, network currency
      responses:
        '200':
          description: The updated data point.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataPoint'
        '400':
          description: The identifier is missing or already used by another data point.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - API Key: []
components:
  schemas:
    DataPointInput:
      type: object
      required:
        - identifier
        - name
        - type
        - status
      properties:
        identifier:
          type: string
          maxLength: 255
          example: ltv_90d
          description: >
            The key you send with conversions and reference from rule goals.
            Required, and unique within the network.
        name:
          type: string
          maxLength: 255
          example: 90-Day LTV
          description: |
            The display name shown in the Everflow UI.
        type:
          type: string
          enum:
            - text
            - number
          description: >
            The value type. Use `number` for data points compared with
            `greater_than` or `less_than`, and `text` for those matched with
            `exact_match`, `contains`, `begins_with` or `ends_with`.
        status:
          type: string
          enum:
            - active
            - inactive
          description: |
            Whether the data point is collected and evaluated.
        description:
          type: string
          maxLength: 500
          description: Optional free-text note about what the data point holds.
    DataPoint:
      allOf:
        - type: object
          properties:
            network_usm_data_point_id:
              type: integer
              example: 1
              description: Unique data point ID.
            network_id:
              type: integer
              example: 1
              description: Network ID.
        - $ref: '#/components/schemas/DataPointInput'
        - type: object
          properties:
            time_created:
              type: integer
              example: 1788398582
              description: Unix timestamp of creation.
            time_saved:
              type: integer
              example: 1788398592
              description: Unix timestamp of last update.
    Error:
      type: object
      properties:
        error:
          type: string
          description: A human-readable description of what was rejected.
  securitySchemes:
    API Key:
      description: The Everflow API key generated from the Control Center > Security.
      in: header
      name: X-Eflow-Api-Key
      type: apiKey

````