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

# Set a user's action states



## OpenAPI

````yaml openapi.json PUT /v1/projects/{projectId}/users/{userId}/action-states
openapi: 3.0.0
info:
  title: Katilyst Public API
  description: >-
    <h4>API Key</h4><p>To use the Katilyst Public API, you need an API Key. API
    Keys are issued on a per-account basis and have access to all information
    and operations within an account that are available through the Katilyst
    Public API. <p>They should be handled with care and treated as you would a
    password to a powerful account.</p></p>

    <p>To use your API Key, simply include it in the Authorization header of all
    requests to the Katilyst Public API, prefixed with the string “API-Key” like
    so:</p><code>Authorization: API-Key katilsyt_oMeofDAJ_thisisanexamplekey
    </code><h4>Paging</h4><p>For GET endpoints that return arrays of objects,
    the API will automatically page results for you. If you wish to control the
    page size or number yourself, you can provide the query parameters
    <code>limit</code> and <code>start</code>. Limit will control the maximum
    number of results returned per page. Start will determine which page to
    return, with 0 being the first page.</p><h4>Timestamps</h4><p>For POST and
    PUT inputs that take timestamps, the timestamp must be provided as a string
    in ISO 8601 format and requires that include a “z” to designate UTC or a
    timezone offset.</p>
  version: V1.0
  contact: {}
servers:
  - url: https://api.katilyst.com
security: []
tags: []
paths:
  /v1/projects/{projectId}/users/{userId}/action-states:
    put:
      tags:
        - V1
      summary: Set a user's action states
      operationId: ProjectController_putUserActionStates
      parameters:
        - name: projectId
          required: true
          in: path
          schema:
            type: string
        - name: userId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PutUserActionStatesInput'
      responses:
        '200':
          description: ''
        '400':
          description: Bad request. Invalid request body.
        '401':
          description: Missing or invalid API Key.
        '409':
          description: Project user failed to meet conditions to log action.
      security:
        - API-Key: []
components:
  schemas:
    PutUserActionStatesInput:
      type: object
      properties:
        availableActionId:
          type: string
          description: Unique id of the stateful available action to log.
          example: 1111-111-11111-example
        state:
          $ref: '#/components/schemas/ActionStateEnum'
          example: ENABLED
        dateTime:
          type: string
          description: Optional Property - ISO Date String.
          example: '2025-03-17T17:45:10Z'
        creator:
          type: string
          description: >-
            Optional Property - String value identifying 'creator' of mutated
            action state.
          example: Account API
        details:
          type: string
          description: Optional Property - Additional details.
          example: Account API updated action state.
      required:
        - availableActionId
        - state
    ActionStateEnum:
      type: string
      description: State of the available action ('ENABLED' | 'DISABLED')
      enum:
        - ENABLED
        - DISABLED
  securitySchemes:
    API-Key:
      type: apiKey
      in: header
      name: Authorization
      description: >-
        Your full Authorization header value, including the prefix: `API-Key
        katilyst_xxxx_yourkey`

````

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