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

# Update a person data parameter

> Updates the value of the named data parameter for the specified person. Returns `400 data_not_found` if the parameter does not exist, or `400 read_only_name` if the parameter name is read-only. Returns `400 person_not_found` if the person is not accessible.

Fields omitted from the body are left unchanged — you do not need to send the whole resource.



## OpenAPI

````yaml /api-reference/integration-server-to-extole.json put /v5/persons/{person_id}/data/{name}
openapi: 3.0.1
info:
  description: >-
    Server-to-Extole integration endpoints: event submission, person lookup,
    zone rendering, token management, and reward retrieval for backend services
    authenticating with client credentials.


    ## Updating a resource


    `PUT` merges. A field you omit from the body is left at its stored value, so
    you do not need to read a resource and send it back whole in order to change
    one field. This is a deliberate departure from the HTTP convention that
    `PUT` replaces, and it holds across this API.


    Two qualifications, both visible on each operation's own request schema:


    - Some operations mark fields `required` in their request schema. Those must
    be sent on every request, whether or not you are changing them.

    - A field that holds a list or a map is replaced, not merged, when you
    supply it. Sending one entry of a collection stores that entry and drops the
    rest, so to change one member of a collection you must send the collection's
    other members alongside it.
  title: Integration API - Server to Extole
  version: '1.0'
servers:
  - description: Production
    url: https://api.extole.io
security:
  - HEADER: []
  - QUERY: []
  - COOKIE: []
tags:
  - name: Authentication
  - name: Content
  - name: Events
  - name: Files
  - name: Persons
  - name: Rewards
paths:
  /v5/persons/{person_id}/data/{name}:
    put:
      tags:
        - Persons
      summary: Update a person data parameter
      description: >-
        Updates the value of the named data parameter for the specified person.
        Returns `400 data_not_found` if the parameter does not exist, or `400
        read_only_name` if the parameter name is read-only. Returns `400
        person_not_found` if the person is not accessible.


        Fields omitted from the body are left unchanged — you do not need to
        send the whole resource.
      parameters:
        - description: Extole person id.
          in: path
          name: person_id
          required: true
          schema:
            type: string
        - description: Name of the data parameter.
          in: path
          name: name
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            example:
              scope: CLIENT
              value: {}
            schema:
              $ref: '#/components/schemas/PersonDataUpdateRequest'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PersonDataResponse'
          description: Updated person data parameter.
        '400':
          content:
            application/json:
              examples:
                data_not_found:
                  $ref: '#/components/examples/data_not_found'
                person_not_found:
                  $ref: '#/components/examples/person_not_found'
                read_only_name:
                  $ref: '#/components/examples/read_only_name'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: >-
            Person data entry was not found. The supplied name does not match
            any data parameter for the given person. Person was not found or is
            not accessible to the calling client.
        '401':
          content:
            application/json:
              examples:
                method_unauthorized:
                  $ref: '#/components/examples/method_unauthorized'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Unauthorized
        '402':
          content:
            application/json:
              examples:
                payment_required:
                  $ref: '#/components/examples/payment_required'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Payment Required
        '403':
          content:
            application/json:
              examples:
                access_denied:
                  $ref: '#/components/examples/access_denied'
                method_unauthorized:
                  $ref: '#/components/examples/method_unauthorized'
                missing_access_token:
                  $ref: '#/components/examples/missing_access_token'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Forbidden
        '415':
          content:
            application/json:
              examples:
                unsupported_media_type:
                  $ref: '#/components/examples/unsupported_media_type'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Unsupported Media Type
        '429':
          content:
            application/json:
              examples:
                too_many_requests:
                  $ref: '#/components/examples/too_many_requests'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Too Many Requests
components:
  schemas:
    PersonDataUpdateRequest:
      description: Body of a `PUT /v5/persons/{person_id}/data/{name}` request.
      properties:
        scope:
          description: Visibility scope of the data parameter. Omit to leave unchanged.
          enum:
            - CLIENT
            - PRIVATE
            - PUBLIC
          type: string
        value:
          description: Value stored for the data parameter. Omit to leave unchanged.
          type: object
      type: object
    PersonDataResponse:
      properties:
        created_date:
          $ref: '#/components/schemas/ZonedDateTime'
        id:
          description: Extole-assigned unique identifier for this data parameter entry.
          readOnly: true
          type: string
        name:
          description: Name of the data parameter.
          type: string
        scope:
          description: Visibility scope of the data parameter.
          enum:
            - CLIENT
            - PRIVATE
            - PUBLIC
          type: string
        updated_date:
          $ref: '#/components/schemas/ZonedDateTime'
        value:
          description: Value stored for the data parameter.
          type: object
      required:
        - created_date
        - id
        - name
        - scope
        - updated_date
        - value
      type: object
    RestExceptionResponse:
      description: Represents the API error response
      properties:
        code:
          description: Specific error code for this error type, documented per endpoint
          type: string
        http_status_code:
          description: >-
            HTTP status code that was returned with this error, useful if client
            get response code
          format: int32
          type: integer
        message:
          description: User readable English description of the error
          type: string
        parameters:
          additionalProperties:
            description: >-
              Attributes related to the error, varies be error code, documented
              per endpoint
            type: object
          description: >-
            Attributes related to the error, varies be error code, documented
            per endpoint
          type: object
        unique_id:
          description: >-
            Unique id associated with this error, useful for discussions with
            Extole
          type: string
      required:
        - code
        - http_status_code
        - message
        - parameters
        - unique_id
      type: object
    ZonedDateTime:
      description: >-
        [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) or
        [RFC 9557](https://datatracker.ietf.org/doc/html/rfc9557#section-4)
        date-time with a numeric [UTC
        offset](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) and
        an optional [IANA
        time-zone](https://datatracker.ietf.org/doc/html/rfc9557#section-4)
        suffix in square brackets. Precision up to milliseconds.
      example: '2025-10-24T02:00:00-07:00'
      pattern: >-
        ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{1,3})?(Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])(\[[^\]]+\])?$
      type: string
  examples:
    data_not_found:
      summary: data_not_found
      value:
        code: data_not_found
        http_status_code: 400
        message: Data not found
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
    person_not_found:
      summary: person_not_found
      value:
        code: person_not_found
        http_status_code: 400
        message: Person not found
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
    read_only_name:
      summary: read_only_name
      value:
        code: read_only_name
        http_status_code: 400
        message: One or more names supplied are read only
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
    method_unauthorized:
      summary: method_unauthorized
      value:
        code: method_unauthorized
        http_status_code: 401
        message: Unauthorized access to this endpoint
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
    payment_required:
      summary: payment_required
      value:
        code: payment_required
        http_status_code: 402
        message: The access_token provided is associated with an unpaid account.
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
    access_denied:
      summary: access_denied
      value:
        code: access_denied
        http_status_code: 403
        message: >-
          The access_token provided is not permitted to access the specified
          resource.
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
    missing_access_token:
      summary: missing_access_token
      value:
        code: missing_access_token
        http_status_code: 403
        message: No access_token was provided with this request.
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
    unsupported_media_type:
      summary: unsupported_media_type
      value:
        code: unsupported_media_type
        http_status_code: 415
        message: Request had an unsupported or no media type
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
    too_many_requests:
      summary: too_many_requests
      value:
        code: too_many_requests
        http_status_code: 429
        message: >-
          The server is unable to process your request at the moment, please
          retry later.
        parameters: {}
        unique_id: 00000000-0000-0000-0000-000000000000
  securitySchemes:
    HEADER:
      in: header
      name: Authorization
      type: apiKey
      x-bearer-format: bearer
    QUERY:
      in: query
      name: access_token
      type: apiKey
    COOKIE:
      in: cookie
      name: extole_token
      type: apiKey

````

## Related topics

- [Create a person data parameter](/api-reference/persons/create-a-person-data-parameter.md)
- [Get a person data parameter](/api-reference/persons/get-a-person-data-parameter.md)
- [Delete a person data parameter](/api-reference/persons/delete-a-person-data-parameter.md)
- [List person data parameters](/api-reference/persons/list-person-data-parameters.md)
- [Update a person shareable](/api-reference/persons/update-a-person-shareable.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.