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

# Patch Me

> Edit the signed-in contact's fields that this portal exposes as editable. The email and account associations are never editable here.



## OpenAPI

````yaml /api/portal-sdk.openapi.json patch /sdk/v1/me
openapi: 3.1.0
info:
  title: Statisfy Portal SDK API
  description: >-
    Customer-facing portal APIs under `/sdk/v1`, scoped to the customer in the
    token — see the Portal SDK guide. Every call is authenticated with a minted
    **portal-session token** (bearer) and nothing else: no publishable key,
    because the tenant is read from the token's own claim.
  version: v1
servers:
  - url: https://api.statisfy.com
    description: Production gateway
security:
  - portalSession: []
paths:
  /sdk/v1/me:
    patch:
      tags:
        - sdk
      summary: Patch Me
      description: >-
        Edit the signed-in contact's fields that this portal exposes as
        editable. The email and account associations are never editable here.
      operationId: patch_me_sdk_v1_me_patch
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SdkPatchRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SdkEntityResponse'
        '400':
          description: A supplied field is not editable or has an invalid value
        '401':
          description: Token is missing or not scoped to a portal customer
        '404':
          description: No contact for the session email
        '409':
          description: A concurrent edit won; retry
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    SdkPatchRequest:
      properties:
        properties:
          additionalProperties: true
          type: object
          maxProperties: 32
          title: Properties
      type: object
      title: SdkPatchRequest
      description: >-
        Diff body for ``PATCH`` — only the changed canonical values.


        ``display`` is read-only and ignored if sent; the server writes
        ``properties`` only.
    SdkEntityResponse:
      properties:
        data:
          $ref: '#/components/schemas/SdkEntityData'
        meta:
          additionalProperties: true
          type: object
          title: Meta
      type: object
      required:
        - data
      title: SdkEntityResponse
      description: >-
        Envelope for `/sdk/v1/account` and `/sdk/v1/me`. `meta` carries `entity`
        (`account` or `person`), `view` (`live` or `draft`), and `simulated:
        true` for an edit made from a preview session.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    SdkEntityData:
      properties:
        id:
          type: string
          title: Id
        properties:
          additionalProperties: true
          type: object
          title: Properties
        display:
          additionalProperties:
            type: string
          type: object
          title: Display
        schema:
          items:
            $ref: '#/components/schemas/SdkFieldSchema'
          type: array
          title: Schema
      type: object
      required:
        - id
      title: SdkEntityData
      description: >-
        An account or contact: the requested fields the portal may read, with
        their schema.
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
    SdkFieldSchema:
      properties:
        key:
          type: string
          title: Key
        label:
          type: string
          title: Label
        type:
          type: string
          title: Type
        field_type:
          anyOf:
            - type: string
            - type: 'null'
          title: Field Type
        editable:
          type: boolean
          title: Editable
          default: false
        options:
          anyOf:
            - items:
                $ref: '#/components/schemas/SdkSelectOption'
              type: array
            - type: 'null'
          title: Options
      type: object
      required:
        - key
        - label
        - type
      title: SdkFieldSchema
      description: >-
        A field definition the portal uses to render + (optionally) edit a
        value.


        ``type`` is the simplified render type
        (``text|date|number|boolean|select|list``) that

        drives the input widget. ``field_type`` is the *granular* source type

        (``text|textarea|url|number|currency|float|percent|percent_ratio|date|datetime|

        boolean|pill|lifecycle_stage``) — several of these collapse onto one
        render

        ``type`` (e.g. currency/float/percent all render as ``number``), so
        consumers that

        need the exact underlying type (a currency symbol, a URL link, an
        end-to-end test

        asserting per-type coverage) read ``field_type`` while the widget reads
        ``type``.

        ``options`` is present only for ``select`` fields (the full option set).
    SdkSelectOption:
      properties:
        value:
          type: string
          title: Value
        label:
          type: string
          title: Label
        color:
          anyOf:
            - type: string
            - type: 'null'
          title: Color
      type: object
      required:
        - value
        - label
      title: SdkSelectOption
      description: >-
        One option of a picklist/select field: canonical ``value`` + human
        ``label`` (+ optional ``color``).


        ``color`` is the status's own ``TaskStatus.color_hex`` (a ``#RRGGBB``
        string), mirroring the

        web app's status pill. ``None`` for select fields that carry no
        per-option color.
  securitySchemes:
    portalSession:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        Minted portal-session JWT (see the Portal SDK guide for the token
        exchange).

````

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