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

# Regenerate a Motion ICP cell

> Generate a new version of one Motion ICP cell from its current inputs and return the updated cell. The request completes when the new version is written, which can take a minute or more. Costs the same credits as updating the cell in the app. Returns 400 when the cell is disabled, its playbook is inactive, or a regeneration is already running for it. Use GET /api/v2/motion-icp/list with staleOnly=true to find the cells worth regenerating.



## OpenAPI

````yaml post /api/v2/motion-icp/regenerate
openapi: 3.0.0
info:
  version: 5.4.0
  title: Octave API
  description: API for Octave workspace management and AI-powered content generation
servers:
  - url: https://app.octavehq.com
security:
  - ApiKeyAuth: []
paths:
  /api/v2/motion-icp/regenerate:
    post:
      tags:
        - MotionICP
      summary: Regenerate a Motion ICP cell
      description: >-
        Generate a new version of one Motion ICP cell from its current inputs
        and return the updated cell. The request completes when the new version
        is written, which can take a minute or more. Costs the same credits as
        updating the cell in the app. Returns 400 when the cell is disabled, its
        playbook is inactive, or a regeneration is already running for it. Use
        GET /api/v2/motion-icp/list with staleOnly=true to find the cells worth
        regenerating.
      operationId: regenerateMotionIcp
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                oId:
                  type: string
                  minLength: 1
                  description: Motion ICP oId (micp_ prefix)
                depth:
                  type: string
                  enum:
                    - incremental
                    - rework
                    - rebuild
                  description: >-
                    How far the new version may move from the current one.
                    Applies to cells on the motion's default playbook; cells on
                    other playbooks are always written fresh from their default
                    cell and ignore it. incremental: keep existing messaging
                    unless a learning or a changed input invalidates it. rework:
                    rewrite every entry that rested on input text that has since
                    changed; keep the rest. rebuild: write the messaging again
                    from the motion, offering, persona, and segment, with the
                    current version as reference only — edits made by hand to
                    the cell are not kept. Omit to let the regeneration decide:
                    incremental, raised to rework when the cell's persona,
                    segment, offering, or referenced library entities changed
                    substantially.
              required:
                - oId
      responses:
        '200':
          description: The regenerated Motion ICP cell
          content:
            application/json:
              schema:
                type: object
                properties:
                  _metadata:
                    $ref: '#/components/schemas/Metadata'
                  data:
                    $ref: '#/components/schemas/MotionIcpDetail'
                required:
                  - _metadata
                  - data
      deprecated: false
components:
  schemas:
    Metadata:
      type: object
      properties:
        usage:
          type: number
          default: 0
          example: 0
          description: API usage
        requestId:
          type: string
          example: requestId
          description: Request ID
        message:
          type: string
          example: message
          description: Message
        timestamp:
          type: string
          example: '2021-01-01T00:00:00.000Z'
          description: Timestamp
      required:
        - requestId
        - timestamp
    MotionIcpDetail:
      type: object
      properties:
        oId:
          type: string
          description: Motion ICP oId (micp_ prefix)
        motionPlaybookOId:
          type: string
          description: Parent motion playbook oId
        persona:
          $ref: '#/components/schemas/EntityRef'
        segment:
          allOf:
            - $ref: '#/components/schemas/EntityRef'
            - description: Target segment
        status:
          type: string
          enum:
            - PENDING_INITIAL_VERSION
            - HAS_VERSION
            - GENERATING_INITIAL_VERSION
            - RUNNING_REPORT
            - ANALYZING_LEARNINGS
            - ANALYZING_ICP_RECOMMENDATIONS
            - UPDATING_VERSION
          description: Current generation status
        disabled:
          type: boolean
          description: Whether this ICP cell is disabled
        narrative:
          type: object
          nullable: true
          properties:
            targetIcpOverview:
              type: string
            operatingLandscape:
              type: array
              items:
                type: string
            strategicNarrative:
              type: array
              items:
                type: string
            painsAndConsequences:
              type: array
              items:
                type: string
            benefitsAndImpacts:
              type: array
              items:
                type: string
            valueProps:
              type: array
              items:
                type: string
            approachAngle:
              type: array
              items:
                type: string
            businessImpact:
              type: array
              items:
                type: string
            uniqueInsight:
              type: array
              items:
                type: string
            salesMethodology:
              type: array
              items:
                type: object
                properties:
                  stageName:
                    type: string
                  stageObjective:
                    type: string
                  sections:
                    type: array
                    items:
                      type: object
                      properties:
                        sectionName:
                          type: string
                        content:
                          anyOf:
                            - type: string
                            - type: array
                              items:
                                type: string
                      required:
                        - sectionName
                        - content
                required:
                  - stageName
                  - sections
          required:
            - targetIcpOverview
            - operatingLandscape
            - strategicNarrative
            - painsAndConsequences
            - benefitsAndImpacts
            - salesMethodology
          description: >-
            AI-generated narrative fields from the active version
            (targetIcpOverview, strategicNarrative, painsAndConsequences,
            benefitsAndImpacts, salesMethodology). salesMethodology stageName
            values are Early Stage / Mid Stage / Late Stage for OCTAVE motions;
            each stage's sections are Buyer Mindset, Value Propositions, Talking
            Points, plus Methodology Focus (one entry per tenet of the
            workspace's active sales methodology) when the workspace has one.
            Null when no active version exists yet.
        learningsCount:
          type: integer
          description: Total number of current learnings for this ICP cell
        stale:
          type: boolean
          description: >-
            True when an input to this cell (persona, segment, offering, motion,
            playbook, intel, sales methodology, brand voice) changed after its
            active version was generated, or the cell has no version yet.
            Regenerate with POST /api/v2/motion-icp/regenerate.
        staleReasons:
          type: array
          items:
            type: string
          description: >-
            Why the cell is stale; empty when it is not. One or more of:
            no_version, parent_motion_updated, parent_offering_updated,
            parent_persona_updated, parent_segment_updated,
            segment_intel_updated, segment_containment_updated,
            playbook_updated, default_cell_updated, competitor_updated,
            buying_trigger_updated, new_learnings, motion_ref_updated,
            methodology_updated, brand_voice_updated.
        staleDetails:
          type: array
          items:
            $ref: '#/components/schemas/MotionIcpStaleDetail'
          description: >-
            The elements behind staleReasons — which one changed and when. A
            reason with no single element behind it (no_version) has no entry.
        latestReport:
          type: object
          nullable: true
          properties:
            oId:
              type: string
              description: Pass to GET /api/v2/report-run/get for full sections
            title:
              type: string
              nullable: true
            summary:
              type: string
              nullable: true
            windowStart:
              type: string
              nullable: true
              format: date-time
            windowEnd:
              type: string
              nullable: true
              format: date-time
            comparisonWithPrevious:
              type: object
              nullable: true
              properties:
                summaryOfChanges:
                  type: string
                emphasisShift:
                  type: string
                keyDelta:
                  type: string
                newThemes:
                  type: array
                  items:
                    type: string
                continuingThemes:
                  type: array
                  items:
                    type: string
              description: What changed vs the prior report period
          required:
            - oId
            - title
            - summary
            - windowStart
            - windowEnd
            - comparisonWithPrevious
          description: >-
            Latest completed report run summary. Only included when
            includeReport=true.
      required:
        - oId
        - motionPlaybookOId
        - persona
        - segment
        - status
        - disabled
        - narrative
        - learningsCount
        - stale
        - staleReasons
        - staleDetails
    EntityRef:
      type: object
      nullable: true
      properties:
        oId:
          type: string
        name:
          type: string
      required:
        - oId
        - name
      description: Target persona
    MotionIcpStaleDetail:
      type: object
      properties:
        reason:
          type: string
          description: The staleReasons value this element is behind
        entityType:
          type: string
          description: >-
            Kind of element that changed, e.g. Persona, Segment, Product,
            Competitor, CoreFeature, Intel, Motion, MotionPlaybook, Methodology,
            BrandVoice
        entityOId:
          type: string
          nullable: true
        entityName:
          type: string
          nullable: true
        updatedAt:
          type: string
          nullable: true
          description: When the element changed (ISO 8601). Null when unknown.
        referenceAt:
          type: string
          nullable: true
          description: >-
            The instant the change was compared against — when the cell's active
            version was generated (ISO 8601).
      required:
        - reason
        - entityType
        - entityOId
        - entityName
        - updatedAt
        - referenceAt
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: api_key

````