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

# Refine content strategy

> <Info>This API is in beta. Endpoints, fields, and behavior may still change, so avoid depending on it in production.</Info>

Rewrites the current content strategy according to your feedback and returns the new version. Call it as many times as you need before generating a content plan.

Submit answers first. This endpoint fails with a 409 unless the app already has a strategy, and while a content plan is generating.

<Warning>Refining the strategy discards the app's existing content plan, including every post and every generated image. Refine before you call [Generate content plan](/api-reference/generate-content-plan), not after.</Warning>

This endpoint calls a language model, so expect it to take a few seconds. It shares a limit of 15 requests per minute with the other social content endpoints.

<Note>This endpoint accepts a personal API key. Workspace API keys are not authorized for it and are rejected with a 403.</Note>

<Warning>The response includes fields beyond the ones documented here. Don't rely on undocumented response fields, as they can change at any time. Send only the fields documented here. Other request fields are not supported and their behavior can change.</Warning>



## OpenAPI

````yaml /developers/references/app-management/app-management-openapi.json post /api/apps/{app_id}/virality/refine-strategy
openapi: 3.1.0
info:
  title: Base44 App Management API
  version: 1.0.0
servers:
  - url: https://app.base44.com
security:
  - ApiKeyAuth: []
paths:
  /api/apps/{app_id}/virality/refine-strategy:
    post:
      summary: Refine content strategy
      description: >-
        <Info>This API is in beta. Endpoints, fields, and behavior may still
        change, so avoid depending on it in production.</Info>


        Rewrites the current content strategy according to your feedback and
        returns the new version. Call it as many times as you need before
        generating a content plan.


        Submit answers first. This endpoint fails with a 409 unless the app
        already has a strategy, and while a content plan is generating.


        <Warning>Refining the strategy discards the app's existing content plan,
        including every post and every generated image. Refine before you call
        [Generate content plan](/api-reference/generate-content-plan), not
        after.</Warning>


        This endpoint calls a language model, so expect it to take a few
        seconds. It shares a limit of 15 requests per minute with the other
        social content endpoints.


        <Note>This endpoint accepts a personal API key. Workspace API keys are
        not authorized for it and are rejected with a 403.</Note>


        <Warning>The response includes fields beyond the ones documented here.
        Don't rely on undocumented response fields, as they can change at any
        time. Send only the fields documented here. Other request fields are not
        supported and their behavior can change.</Warning>
      operationId: refine_strategy_api_api_apps__app_id__virality_refine_strategy_post
      parameters:
        - name: app_id
          in: path
          required: true
          schema:
            type: string
            description: ID of the app.
            title: App Id
          description: ID of the app.
          example: 6820f3a4e7b91d003c45a1f2
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RefineStrategyPayload'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StrategyResponse'
        '400':
          description: The `feedback` field is empty.
        '401':
          description: Missing or invalid credentials.
        '403':
          description: >-
            You don't have editor access to this app, or you used a workspace
            API key.
        '404':
          description: >-
            App not found, the app has no social content state yet, or the
            social content feature is not enabled for your account.
        '409':
          description: >-
            The app has no strategy to refine yet, or a content plan is
            currently generating.
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '429':
          description: Rate limit exceeded (15 requests per minute).
        '500':
          description: Refining the strategy failed. Retry the request.
components:
  schemas:
    RefineStrategyPayload:
      properties:
        feedback:
          type: string
          maxLength: 5000
          title: Feedback
          description: >-
            What to change about the current strategy, in your own words. Can't
            be empty.
          example: >-
            Focus on freelancers rather than agencies, and keep the tone less
            formal.
      type: object
      required:
        - feedback
      title: RefineStrategyPayload
    StrategyResponse:
      properties:
        strategy_text:
          type: string
          title: Strategy Text
          description: >-
            The content strategy, written as prose for you to review. Refine it
            with [Refine content
            strategy](/api-reference/refine-content-strategy), or accept it and
            call [Generate content plan](/api-reference/generate-content-plan).
          default: ''
          example: >-
            Lead with the spreadsheet pain your audience already feels, then
            show the app solving it in one screen.
      type: object
      title: StrategyResponse
      description: The app's social content strategy after the change.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: api_key
      description: Personal API key.

````