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

# Enhance multiple columns for one row

> Enhances several columns for one row. Regular columns cost 0.5 credits each; a Gallery Max image column uses the Gallery Max rate.

## Usage notes

Use this operation when you want to enhance several columns of one row together. It returns `202`. Regular columns cost 0.5 credits each. A Gallery Max image column configured in the table snapshot currently costs 16 credits, although the handler's `estimated_credits` still calculates every requested column at 0.5.

Every column entry has its own `prompt` and may set `web_search` or `target_language`. The legacy per-column `model` field is accepted but ignored. The row and all target columns must belong to the completed, unlocked table. A bulk request can process at most one Gallery Max image column; additional Gallery Max columns fail asynchronously.


## OpenAPI

````yaml openapi.yaml POST /tables/{table_id}/enhance/bulk
openapi: 3.1.0
info:
  title: Lasso API
  description: AI-powered product data extraction and enhancement API
  version: 1.0.0
  contact:
    name: Lasso Support
    url: https://lasso.ai
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
servers:
  - url: https://app.productlasso.com/api/v1
    description: Production
security:
  - BearerAuth: []
paths:
  /tables/{table_id}/enhance/bulk:
    parameters:
      - name: table_id
        in: path
        required: true
        schema:
          type: string
    post:
      tags:
        - Enhancement
      summary: Enhance multiple columns for one row
      description: >-
        Enhances several columns for a single row in one AI call. Regular
        columns cost 0.5 credits each. A Gallery Max image column configured in
        the table snapshot is billed at the Gallery Max rate instead, currently
        16 credits.
      operationId: enhanceBulk
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EnhanceBulkRequest'
      responses:
        '202':
          description: Bulk enhancement queued
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnhanceResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '422':
          $ref: '#/components/responses/ValidationError'
      x-codeSamples:
        - lang: bash
          label: cURL
          source: |
            curl --request POST \
              --url https://app.productlasso.com/api/v1/tables/$TABLE_ID/enhance/bulk \
              --header "Authorization: Bearer $LASSO_API_KEY" \
              --header "Content-Type: application/json" \
              --data '{
                "row_id": "83ba2c61-8592-4614-ac46-10f43580dfb8",
                "columns": [
                  {"key": "short_description", "prompt": "Write a concise description from {{product_name}} and {{material}}."},
                  {"key": "product_name_cs", "prompt": "Translate {{product_name}} to Czech.", "target_language": "cs"}
                ]
              }'
        - lang: typescript
          label: TypeScript
          source: |
            const tableId = "YOUR_TABLE_ID";
            const response = await fetch(
              `https://app.productlasso.com/api/v1/tables/${tableId}/enhance/bulk`,
              {
                method: "POST",
                headers: {
                  Authorization: `Bearer ${process.env.LASSO_API_KEY}`,
                  "Content-Type": "application/json",
                },
                body: JSON.stringify({
                  row_id: "83ba2c61-8592-4614-ac46-10f43580dfb8",
                  columns: [
                    { key: "short_description", prompt: "Write a concise description from {{product_name}} and {{material}}." },
                    { key: "product_name_cs", prompt: "Translate {{product_name}} to Czech.", target_language: "cs" },
                  ],
                }),
              },
            );

            if (!response.ok) throw new Error(await response.text());
            const job = await response.json();
        - lang: python
          label: Python
          source: |
            import os
            import requests

            table_id = "YOUR_TABLE_ID"
            response = requests.post(
                f"https://app.productlasso.com/api/v1/tables/{table_id}/enhance/bulk",
                headers={"Authorization": f"Bearer {os.environ['LASSO_API_KEY']}"},
                json={
                    "row_id": "83ba2c61-8592-4614-ac46-10f43580dfb8",
                    "columns": [
                        {"key": "short_description", "prompt": "Write a concise description from {{product_name}} and {{material}}."},
                        {"key": "product_name_cs", "prompt": "Translate {{product_name}} to Czech.", "target_language": "cs"},
                    ],
                },
                timeout=30,
            )
            response.raise_for_status()
            job = response.json()
components:
  schemas:
    EnhanceBulkRequest:
      type: object
      required:
        - row_id
        - columns
      properties:
        row_id:
          type: string
          format: uuid
        columns:
          type: array
          minItems: 1
          items:
            type: object
            required:
              - key
              - prompt
            properties:
              key:
                type: string
              prompt:
                type: string
              model:
                type: string
                deprecated: true
                description: >-
                  Legacy compatibility field. The service ignores the requested
                  value and routes enhancement through its configured Gemini
                  provider.
              web_search:
                type: boolean
              target_language:
                type: string
      example:
        row_id: 83ba2c61-8592-4614-ac46-10f43580dfb8
        columns:
          - key: short_description
            prompt: >-
              Write a concise description from {{product_name}} and
              {{material}}.
          - key: product_name_cs
            prompt: Translate {{product_name}} to Czech.
            target_language: cs
    EnhanceResponse:
      type: object
      required:
        - id
        - status
        - estimated_credits
      properties:
        id:
          type: string
          description: Enhancement job ID
        status:
          type: string
          enum:
            - queued
            - processing
        estimated_credits:
          type: number
        rows_queued:
          type: integer
    Error:
      type: object
      required:
        - status_code
        - error_type
        - message
        - request_id
      properties:
        status_code:
          type: integer
        error_type:
          type: string
          enum:
            - invalid_request
            - unauthenticated
            - forbidden
            - not_found
            - conflict
            - validation_error
            - rate_limited
            - service_unavailable
            - internal_error
        message:
          type: string
        request_id:
          type: string
        code:
          type: string
          description: >-
            Stable machine-readable detail code for validation, conflict, and
            retryable availability errors.
        retryable:
          type: boolean
          description: Whether the request can be retried without changing its payload.
        attribute_id:
          type: string
          format: uuid
          description: Stable Attribute identity when the error is scoped to one Attribute.
        attribute_key:
          type: string
          description: Attribute key when the error is scoped to one Attribute.
        details:
          type: object
          additionalProperties: true
        current_updated_at:
          type: string
          format: date-time
          description: >-
            Current resource revision supplied for client-directed refetch after
            a stale write.
  responses:
    BadRequest:
      description: Invalid request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    ValidationError:
      description: Request validation error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.