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

# Rename a smart column, change its prompt or providers

> Renames the column, changes its prompt, or changes a Deep Research column's provider restriction (`providerIds: null` clears it). A rename or a provider change is immediate and free, and new providers apply from the next run. A prompt change is not free — any run in progress is cancelled and every row the column has already computed (plus cells the cancelled run left pending or running) is immediately recomputed with the new prompt, each billed at the column's per-row rate; the new prompt is saved either way. The call answers 200 in every case: `jobId` carries the id of the re-run a prompt change started — poll it on `GET /business/lists/{listId}/smart-columns/{jobId}/status` — and is null when nothing was recomputed, which covers a rename, a provider change, and a prompt edit on a column with no computed row left to refresh. Check `refreshableRowCount × creditsPerRow` on `GET …/smart-columns/{columnId}` before a prompt edit, and expect 402 when your balance cannot cover the re-run. The response always carries the column's stored name, so a prompt-only edit still reports it.

Errors:
- `402` `INSUFFICIENT_CREDITS` — Your credit balance cannot cover the re-run a prompt edit starts (refreshableRowCount × creditsPerRow); nothing was started or charged.
- `404` `LIST_NOT_FOUND` — No list with that id belongs to you.
- `404` `COLUMN_NOT_FOUND` — No smart column with that id is on this list, or the column has never run (nothing to recompute from).
- `409` `COLUMN_NAME_TAKEN` — Another column on this list already has that name.
- `422` `COLUMN_NAME_RESERVED` — The new name is one of the reserved built-in column names.
- `422` `PROVIDERS_NOT_SUPPORTED` — providerIds was sent for a standard-engine column; only a deep_research column can be restricted to specific providers.
- `422` `INVALID_REQUEST` — CRM rejected the change for a reason with no more specific code.
- `422` `VALIDATION_FAILED` — The body failed validation, including a body with none of name, prompt or providerIds.
- `429` `RATE_LIMITED` — More than 120 requests per minute or 10,000 per day on the lists bucket, which every /business/lists endpoint shares; retry after Retry-After.
- `500` `UNEXPECTED_ERROR` — The request could not be completed; quote request_id to support.

Requires one of the following token scopes: lists.



## OpenAPI

````yaml /openapi.json patch /business/lists/{listId}/smart-columns/{columnId}
openapi: 3.1.0
info:
  title: Fuse Business API
  version: 1.0.0
  description: >-
    External API for lists, campaigns, prospect search and contacts.
    Authenticate with your API token as HTTP Basic. All paths are under /api/v1.
servers:
  - url: https://api.tryfuse.ai/api/v1
    description: Production
security:
  - basicAuth: []
tags:
  - name: Lists
  - name: Custom columns
  - name: Smart columns
  - name: Exports
  - name: Campaigns
  - name: Knowledge hubs
  - name: Analytics
  - name: Website intent
  - name: Account
  - name: Prospect search
  - name: Campaign steps
  - name: Scheduled sends
  - name: Campaign templates
  - name: Agents
  - name: Research
  - name: Company search
  - name: Saved searches
  - name: Folders
  - name: Contacts
paths:
  /business/lists/{listId}/smart-columns/{columnId}:
    patch:
      tags:
        - Smart columns
      summary: Rename a smart column, change its prompt or providers
      description: >-
        Renames the column, changes its prompt, or changes a Deep Research
        column's provider restriction (`providerIds: null` clears it). A rename
        or a provider change is immediate and free, and new providers apply from
        the next run. A prompt change is not free — any run in progress is
        cancelled and every row the column has already computed (plus cells the
        cancelled run left pending or running) is immediately recomputed with
        the new prompt, each billed at the column's per-row rate; the new prompt
        is saved either way. The call answers 200 in every case: `jobId` carries
        the id of the re-run a prompt change started — poll it on `GET
        /business/lists/{listId}/smart-columns/{jobId}/status` — and is null
        when nothing was recomputed, which covers a rename, a provider change,
        and a prompt edit on a column with no computed row left to refresh.
        Check `refreshableRowCount × creditsPerRow` on `GET
        …/smart-columns/{columnId}` before a prompt edit, and expect 402 when
        your balance cannot cover the re-run. The response always carries the
        column's stored name, so a prompt-only edit still reports it.


        Errors:

        - `402` `INSUFFICIENT_CREDITS` — Your credit balance cannot cover the
        re-run a prompt edit starts (refreshableRowCount × creditsPerRow);
        nothing was started or charged.

        - `404` `LIST_NOT_FOUND` — No list with that id belongs to you.

        - `404` `COLUMN_NOT_FOUND` — No smart column with that id is on this
        list, or the column has never run (nothing to recompute from).

        - `409` `COLUMN_NAME_TAKEN` — Another column on this list already has
        that name.

        - `422` `COLUMN_NAME_RESERVED` — The new name is one of the reserved
        built-in column names.

        - `422` `PROVIDERS_NOT_SUPPORTED` — providerIds was sent for a
        standard-engine column; only a deep_research column can be restricted to
        specific providers.

        - `422` `INVALID_REQUEST` — CRM rejected the change for a reason with no
        more specific code.

        - `422` `VALIDATION_FAILED` — The body failed validation, including a
        body with none of name, prompt or providerIds.

        - `429` `RATE_LIMITED` — More than 120 requests per minute or 10,000 per
        day on the lists bucket, which every /business/lists endpoint shares;
        retry after Retry-After.

        - `500` `UNEXPECTED_ERROR` — The request could not be completed; quote
        request_id to support.


        Requires one of the following token scopes: lists.
      operationId: updateSmartColumn
      parameters:
        - name: listId
          in: path
          required: true
          description: Id of the list that owns the smart column.
          schema:
            type: string
            description: Id of the list that owns the smart column.
        - name: columnId
          in: path
          required: true
          description: >-
            Id of the smart column, as returned when it was created or listed by
            GET /business/lists/{listId}/columns.
          schema:
            type: string
            description: >-
              Id of the smart column, as returned when it was created or listed
              by GET /business/lists/{listId}/columns.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  minLength: 1
                  maxLength: 100
                  description: >-
                    New display name (1-100 characters, trimmed). Must stay
                    unique on the list and must not be a reserved built-in
                    column name.
                prompt:
                  type: string
                  minLength: 1
                  maxLength: 2000
                  description: >-
                    New research instruction (1-2000 characters, trimmed).
                    Changing the prompt immediately recomputes the rows the
                    column has already computed (plus cells a cancelled run left
                    pending or running), cancelling any run in progress and
                    billing each recomputed row at the column's per-row credit
                    rate.
                providerIds:
                  type:
                    - array
                    - 'null'
                  items:
                    type: string
                    minLength: 1
                    maxLength: 64
                    description: >-
                      A Deep Research provider id: the `id` (catalog slug, for
                      example `zerobounce`) of an entry returned by GET
                      /business/research/providers, not a Mongo id.
                  minItems: 1
                  maxItems: 50
                  description: >-
                    deep_research columns only: replace the provider restriction
                    with these provider ids — the `id` values returned by GET
                    /business/research/providers — or null to clear it and let
                    the column use every provider available to your workspace.
                    The ids are an allowlist, not an order: the run may call any
                    of them, chooses per row, and need not use them all; the
                    order you send them in is ignored. Send 1 to 50 distinct ids
                    — an empty array or a repeated id is rejected. Ids are never
                    checked against the catalog: a typo, a provider whose
                    `allowedInRuns` is false, or a `byok-required` provider you
                    have not saved a key for is accepted and then silently
                    dropped from the run, and if none of the ids survive that
                    check the rows are researched only by the providers Fuse
                    always includes, so the answers come back far thinner than
                    you asked for with no error anywhere. The new selection is
                    free, recomputes nothing on its own and applies from the
                    next run; sent for a standard-engine column it is rejected
                    with 422 PROVIDERS_NOT_SUPPORTED.
      responses:
        '200':
          description: Success
          headers:
            RateLimit-Limit:
              schema:
                type: integer
              description: Requests permitted in the current window.
            RateLimit-Remaining:
              schema:
                type: integer
              description: Requests remaining in the current window.
            RateLimit-Reset:
              schema:
                type: integer
              description: Seconds until the current window resets.
          content:
            application/json:
              schema:
                type: object
                required:
                  - column
                  - jobId
                properties:
                  column:
                    type: object
                    required:
                      - id
                      - name
                    properties:
                      id:
                        type: string
                        description: Id of the column.
                      name:
                        type: string
                        description: The column's stored name after the update.
                  jobId:
                    type:
                      - string
                      - 'null'
                    description: >-
                      Id of the billed re-run a prompt change started; null when
                      nothing was recomputed (a rename, a provider change, or a
                      prompt edit with no computed row left to refresh).
              example:
                column:
                  id: 68a1f3009c41d20014b3e9a1
                  name: Hiring signals v2
                jobId: null
        '400':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '402':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - basicAuth: []
components:
  schemas:
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
            message:
              type: string
            param:
              type:
                - string
                - 'null'
            doc_url:
              type:
                - string
                - 'null'
            request_id:
              type:
                - string
                - 'null'
          required:
            - code
            - message
      required:
        - error
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: >-
        Your API token (`af_…`) as the Basic-auth username, with an empty
        password.

````