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

# Update an action

> Changes the title, owner, channels or description of an accepted or live action. Restore an archived action first. DevTune's suggestions, including dismissed and snoozed ones, keep their details and have no owner; accept one before changing it. assignedTo is the user id or sign-in email of a current member of the account that owns the project; null unassigns. channels is the full set of channels that own the work and replaces the current set; the same set in another order changes nothing. description changes only on an accepted action the team created: DevTune's actions keep the description their evidence wrote (409), and a live action's description is fixed until the action is reopened (409). A change queues an action.updated webhook whose changedFields name the columns that changed: title, assigned_to, description and/or channels. The owner is not notified and the brief is not marked out of date.



## OpenAPI

````yaml /openapi.json patch /projects/{projectId}/actions/{actionId}
openapi: 3.1.0
info:
  title: DevTune API
  version: 2.0.0
  description: >-
    API for programmatic access to your AI visibility data, webhook
    subscriptions, and automation workflows. Use this API to integrate DevTune
    data into CI/CD pipelines, BI tools, AI agents, and operational systems.
servers:
  - url: https://devtune.ai/api/v2
    description: Production
security:
  - bearerAuth: []
paths:
  /projects/{projectId}/actions/{actionId}:
    patch:
      summary: Update an action
      description: >-
        Changes the title, owner, channels or description of an accepted or live
        action. Restore an archived action first. DevTune's suggestions,
        including dismissed and snoozed ones, keep their details and have no
        owner; accept one before changing it. assignedTo is the user id or
        sign-in email of a current member of the account that owns the project;
        null unassigns. channels is the full set of channels that own the work
        and replaces the current set; the same set in another order changes
        nothing. description changes only on an accepted action the team
        created: DevTune's actions keep the description their evidence wrote
        (409), and a live action's description is fixed until the action is
        reopened (409). A change queues an action.updated webhook whose
        changedFields name the columns that changed: title, assigned_to,
        description and/or channels. The owner is not notified and the brief is
        not marked out of date.
      operationId: updateAction
      parameters:
        - name: projectId
          in: path
          required: true
          schema:
            type: string
            format: uuid
        - name: actionId
          in: path
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              minProperties: 1
              properties:
                title:
                  type: string
                  minLength: 1
                  maxLength: 500
                  description: >-
                    New title. Surrounding whitespace is trimmed; a blank title
                    is refused.
                assignedTo:
                  type:
                    - string
                    - 'null'
                  description: >-
                    The new owner as a user id or the email they sign in with,
                    or null to unassign. The owner must be a current member of
                    the account.
                description:
                  type: string
                  minLength: 1
                  maxLength: 10000
                  description: >-
                    New description. Only for an accepted action the team
                    created. Surrounding whitespace is trimmed; a blank
                    description is refused.
                channels:
                  type: array
                  minItems: 1
                  uniqueItems: true
                  items:
                    type: string
                    enum:
                      - docs
                      - content
                      - devrel
                      - pr
                      - engineering
                      - product
                      - other
                  description: >-
                    Every channel that owns the work. Replaces the action's
                    channels; order does not matter.
      responses:
        '200':
          description: The updated action
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                      title:
                        type: string
                      description:
                        type: string
                      channels:
                        type: array
                        items:
                          type: string
                      status:
                        $ref: '#/components/schemas/PublicActionStatus'
                      assignedTo:
                        type:
                          - string
                          - 'null'
                        format: uuid
                      ownerName:
                        type:
                          - string
                          - 'null'
                      updatedAt:
                        type: string
                        format: date-time
        '400':
          description: Invalid input, or assignedTo is not a member of the account
        '404':
          description: Action not found in this project
        '409':
          description: >-
            The action is suggested or archived; a description edit targets
            DevTune's action or a live action; or the action changed during the
            update
components:
  schemas:
    PublicActionStatus:
      type: string
      enum:
        - suggested
        - accepted
        - live
        - archived
      description: >-
        suggested: DevTune proposed it and nobody has decided. accepted: the
        team wants it done. live: the page is published and its measurement
        window is open. archived: taken off the queue by the team.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        API key with dtk_live_ prefix. Obtain it from API Keys in the account
        sidebar. New keys start with all supported scopes selected for the
        chosen project, and you can narrow them to specific read/write scopes as
        needed.

````

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