---
title: "Start social content flow"
method: POST
path: "/api/apps/{app_id}/virality/start"
---

# Start social content flow

`POST /api/apps/{app_id}/virality/start`

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

## Path parameters

- `app_id` string, required — ID of the app.

## Response `200`

The app analysis and the questions to answer next.

- StartFlowResponse
  - `questions` ViralityQuestion[] — Questions to answer before a strategy is generated. Usually 2 or 3, with a social profile question last.
    - `id` string, nullable — ID of the question. Use it as the key in the `answers` object you pass to [Submit answers](/api-reference/submit-answers).
    - `question` string, nullable — Question text to show the user.
    - `type` string, nullable — How to collect the answer. `select` offers the listed `options`, `text_input` takes free text.
    - `options` ViralityQuestionOption[], nullable — Options to choose from on a `select` question, or `null` on a `text_input` question.
      - `label` string, nullable — Answer option to show the user. Send this value back as the answer for a `select` question.
      - `description` string, nullable — Short clarification of what this option means, or `null` if none was generated.
    - `placeholder` string, nullable — Hint text for a `text_input` question, or `null` when there is none.
  - `analysis_text` string, nullable — One-sentence analysis of the app, to show above the questions.

## Other responses

- `401` — Missing or invalid credentials.
- `403` — You don't have editor access to this app, or you used a workspace API key.
- `404` — App not found, or the social content feature is not enabled for your account.
- `409` — A content plan is currently generating for this app.
- `422` — Validation Error
- `429` — Rate limit exceeded (15 requests per minute).
- `500` — The app analysis failed. Retry the request.

---

[API](https://skmtc.dev/idealspot/apis/base44-app-management-api.md) · [All operations](https://skmtc.dev/idealspot/apis/base44-app-management-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/idealspot/base44-app-management-api/revisions/31ef75eb64ab/schema)
