POST
/
v3
/
generate
/
deck
/
task
curl --request POST \
  --url https://api.flashdocs.ai/v3/generate/deck/task \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "prompt": "In a few slides, describe the recent Innovations in Renewable Energy. Discuss the foundational problems and key papers. Include specific examples.",
  "source_document_id": "abc-def-ghi-jkl",
  "number_slides": 5,
  "outline": [
    {
      "content_instruction": "Introduce the topic of renewable energy and its importance.",
      "layout_instruction": "Title slide with a background image.",
      "slide_id": "slide_123"
    }
  ],
  "audience_domain": "slack.com",
  "presentation_name": "Renewable Energy Innovations 2025",
  "google_document_editors": [
    "bob@acme.com",
    "joe@acme.com"
  ],
  "text_placeholder_manual_insertions": [
    {
      "placeholder": "[title]",
      "slide_index": 0,
      "value": "Renewable Energy Innovations 2025"
    },
    {
      "placeholder": "[content]",
      "slide_index": 1,
      "value": "Introduce the topic of renewable energy and its importance."
    }
  ]
}'
{
  "task_id": "task_67890",
  "created_at": "<string>"
}

Authorizations

Authorization
string
header
required

The access token received from the authorization server in the OAuth 2.0 flow.

Body

application/json
prompt
string | null

The main (ideally information dense) instructions for how to create the slide(s). Can be ~400,000 characters.

Example:

"In a few slides, describe the recent Innovations in Renewable Energy. Discuss the foundational problems and key papers. Include specific examples."

source_document_id
string | null

Optional. The FlashDocs document ID of an existing source document to base the presentation content on. See the results from https://api.flashdocs.ai/v1/documents/base - the id key in the document object. If not provided, then any Library document in the organization is chosen.

Example:

"abc-def-ghi-jkl"

number_slides
integer | null

Optional. The desired number of slides in the generated presentation. If not provided, the system will automatically predict the number of slides from the prompt. Do not include if source_document_id is a template document.

Example:

5

outline
object[] | null

Optional. An array of outline instructions defining the content and layout for each slide. See the /v3/generate/outline endpoint for details. Only used for custom decks - ignored for template decks. Useful when you want specific content & layouts for each slide in a custom deck. If not provided, then the system will generate an outline using the prompt.

audience_domain
string | null

Optional. Used to populate image placeholders with the audience-company-logo category. I.e. if this is a slide deck for an external audience, the audience_domain is the website of the company that the audience belongs to. If not provided, the system will predict. Must be valid domain name (ex: if you are making a deck to sell your product to the finance team at Intel, set this parameter to intel.com or https://intel.com)

Example:

"slack.com"

presentation_name
string | null

Optional. The desired filename name for the generated presentation deck. If not provided, the system will generate one based on the prompt.

Example:

"Renewable Energy Innovations 2025"

google_document_editors
string[] | null

A list of email addresses that will have edit access to the generated Google Slides presentation. API user is included by default. Only applicable to Google Slides - ignored for PowerPoint.

Example:
["bob@acme.com", "joe@acme.com"]
text_placeholder_manual_insertions
object[] | null

Optional. A list of manual insertions of placeholder text into the generated deck. Useful for users who want to control the exact values of text placeholders in the slide. The placeholder must exist in the slides as Text Placeholder; therefore, we recommend using this text_placeholder_manual_insertions parameter when you know the placeholder values: template deck types and custom decks where the slide id is specified in the outline parameter. We support markdown content (lists, heading, bold, italics, underline, links, etc.)!

Example:
[
  {
    "placeholder": "[title]",
    "slide_index": 0,
    "value": "Renewable Energy Innovations 2025"
  },
  {
    "placeholder": "[content]",
    "slide_index": 1,
    "value": "Introduce the topic of renewable energy and its importance."
  }
]

Response

200
application/json
Successful Response
task_id
string
required

Unique identifier for the task instance of the deck generation.

Example:

"task_67890"

created_at
string

Creation timestamp