> ## 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.

# Start social content flow

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

Starts the social content flow for an app. Base44 reads the app, returns a one-sentence analysis of it, and asks 2 or 3 questions whose answers shape the content strategy.

Answer them with [Submit answers](/api-reference/submit-answers). Calling this endpoint again restarts the flow: it discards any answers, strategy, and content plan already stored for the app. It fails with a 409 while a content plan is generating, so reset or finish that first.

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, except [Get social content state](/api-reference/get-social-content-state) and [Generate a post image](/api-reference/generate-a-post-image), which have their own.

<Note>The questions are generated per app, so both their number and their wording vary between calls. Read `id` and `type` off each question rather than assuming a fixed set.</Note>

<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 may include fields beyond the ones documented here. Don't use any undocumented fields, as they can change at any time.</Warning>



## OpenAPI

````yaml /developers/references/app-management/app-management-openapi.json post /api/apps/{app_id}/virality/start
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/start:
    post:
      summary: Start social content flow
      description: >-
        <Info>This API is in beta. Endpoints, fields, and behavior may still
        change, so avoid depending on it in production.</Info>


        Starts the social content flow for an app. Base44 reads the app, returns
        a one-sentence analysis of it, and asks 2 or 3 questions whose answers
        shape the content strategy.


        Answer them with [Submit answers](/api-reference/submit-answers).
        Calling this endpoint again restarts the flow: it discards any answers,
        strategy, and content plan already stored for the app. It fails with a
        409 while a content plan is generating, so reset or finish that first.


        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, except [Get social content
        state](/api-reference/get-social-content-state) and [Generate a post
        image](/api-reference/generate-a-post-image), which have their own.


        <Note>The questions are generated per app, so both their number and
        their wording vary between calls. Read `id` and `type` off each question
        rather than assuming a fixed set.</Note>


        <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 may include fields beyond the ones documented
        here. Don't use any undocumented fields, as they can change at any
        time.</Warning>
      operationId: start_api_api_apps__app_id__virality_start_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
      responses:
        '200':
          description: The app analysis and the questions to answer next.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StartFlowResponse'
        '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, or the social content feature is not enabled for your
            account.
        '409':
          description: A content plan is currently generating for this app.
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '429':
          description: Rate limit exceeded (15 requests per minute).
        '500':
          description: The app analysis failed. Retry the request.
components:
  schemas:
    StartFlowResponse:
      properties:
        questions:
          items:
            $ref: '#/components/schemas/ViralityQuestion'
          type: array
          title: Questions
          description: >-
            Questions to answer before a strategy is generated. Usually 2 or 3,
            with a social profile question last.
        analysis_text:
          anyOf:
            - type: string
            - type: 'null'
          title: Analysis Text
          description: One-sentence analysis of the app, to show above the questions.
          example: A CRM for freelancers who want to track leads without a spreadsheet.
      type: object
      title: StartFlowResponse
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ViralityQuestion:
      properties:
        id:
          anyOf:
            - type: string
            - type: 'null'
          title: Id
          description: >-
            ID of the question. Use it as the key in the `answers` object you
            pass to [Submit answers](/api-reference/submit-answers).
          example: goal
        question:
          anyOf:
            - type: string
            - type: 'null'
          title: Question
          description: Question text to show the user.
          example: What does success look like for this app?
        type:
          anyOf:
            - type: string
            - type: 'null'
          title: Type
          description: >-
            How to collect the answer. `select` offers the listed `options`,
            `text_input` takes free text.
          example: select
        options:
          anyOf:
            - items:
                $ref: '#/components/schemas/ViralityQuestionOption'
              type: array
            - type: 'null'
          title: Options
          description: >-
            Options to choose from on a `select` question, or `null` on a
            `text_input` question.
        placeholder:
          anyOf:
            - type: string
            - type: 'null'
          title: Placeholder
          description: Hint text for a `text_input` question, or `null` when there is none.
          example: https://x.com/yourhandle
      type: object
      title: ViralityQuestion
    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
    ViralityQuestionOption:
      properties:
        label:
          anyOf:
            - type: string
            - type: 'null'
          title: Label
          description: >-
            Answer option to show the user. Send this value back as the answer
            for a `select` question.
          example: Get the first 100 users
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Description
          description: >-
            Short clarification of what this option means, or `null` if none was
            generated.
          example: Focus on early adopters who give feedback
      type: object
      title: ViralityQuestionOption
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: api_key
      description: Personal API key.

````