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

# Create a Generation

Before generating 3D models or staged images, you must first create a `Scene`
which contains your image along with relevant metadata.

### Request Body

<ParamField body="model" type="string" required initialValue="blend-1">
  Generation model. Must be `blend-1` or `stager-1-preview`.
</ParamField>

<ParamField body="messages" type="GenerationMessage[]" required>
  Generation messages.

  <Expandable title="properties">
    <ParamField body="role" type="string" required>
      Message role. Must be `user` or `assistant`.
    </ParamField>

    <ParamField body="content" type="GenerationMessageContent[]" required>
      Message content.

      <Expandable title="properties">
        <ParamField body="type" type="string" required>
          Content type. Must be `text` or `image`.
        </ParamField>

        <ParamField body="text" type="string">
          Text. Required when message `type` is `text`.
        </ParamField>

        <ParamField body="image_url" type="string">
          Image URL. Required when message `type` is `image`.
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="stream" type="bool" default={false} initialValue={false}>
  Whether to stream intermediate results while creating a generation.
</ParamField>

### Response Body

<ResponseField name="id" type="string" required>
  Generation identifier.
</ResponseField>

<ResponseField name="model" type="string" required>
  Generation model. Will be `blend-1` or `stager-1-preview`.
</ResponseField>

<ResponseField name="message" type="GenerationMessage" required>
  Generation message.

  <Expandable title="properties">
    <ParamField body="role" type="string" required>
      Message role. Will be `user` or `assistant`.
    </ParamField>

    <ParamField body="content" type="GenerationMessageContent[]" required>
      Message content.

      <Expandable title="properties">
        <ParamField body="type" type="string" required>
          Content type. Will be `text`, `image`, or `blend`.
        </ParamField>

        <ParamField body="text" type="string">
          Text. Populated when message type is `text`.
        </ParamField>

        <ParamField body="image_url" type="string">
          Image URL. Populated when message type is `image`.
        </ParamField>

        <ParamField body="blend_url" type="string">
          Blender scene URL. Populated when message type is `blend`.
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ResponseField>

<ResponseField name="created" type="Date" required>
  Generation creation date.
</ResponseField>
