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

# Bulk update pipeline fields

> Updates opportunity field definitions for a pipeline in bulk. Identify each field by `id`/`attribute_id` or `property_name`. Opportunity fields are pipeline-scoped, so use this pipeline endpoint. `property_name` is a stable identifier and cannot be renamed; if you include it with `id`/`attribute_id`, it must match the stored field `property_name` exactly.



## OpenAPI

````yaml post /v1/pipelines/{pipeline_id}/fields/bulk/update
openapi: 3.1.0
info:
  title: Octolane Public API
  version: 1.0.0
  description: >-
    OpenAPI specification for Octolane public APIs. These endpoints let external
    systems read CRM data and create or update accounts, contacts,
    opportunities, notes, and activities through the public API gateway.
  contact:
    name: Octolane
    url: https://octolane.com
servers:
  - url: https://api.octolane.com
    description: Public API gateway
security:
  - ApiKeyAuth: []
tags:
  - name: CRM
    description: >-
      Public endpoints for creating, bulk creating, listing, searching, and
      updating CRM data.
paths:
  /v1/pipelines/{pipeline_id}/fields/bulk/update:
    post:
      tags:
        - CRM
      summary: Bulk update pipeline fields
      description: >-
        Updates opportunity field definitions for a pipeline in bulk. Identify
        each field by `id`/`attribute_id` or `property_name`. Opportunity fields
        are pipeline-scoped, so use this pipeline endpoint. `property_name` is a
        stable identifier and cannot be renamed; if you include it with
        `id`/`attribute_id`, it must match the stored field `property_name`
        exactly.
      operationId: bulkUpdatePipelineFieldsV1
      parameters:
        - name: pipeline_id
          in: path
          required: true
          description: Pipeline ID.
          schema:
            type: string
            format: uuid
      requestBody:
        required: true
        description: Array of field definition patches. Maximum 100 items.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FieldBulkUpdateInput'
      responses:
        '200':
          description: Pipeline fields were updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResponse'
        '400':
          description: The request failed validation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: >-
            The API key is missing, invalid, or not allowed to access this
            route.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: The route rate limit was exceeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    FieldBulkUpdateInput:
      type: array
      minItems: 1
      maxItems: 100
      items:
        $ref: '#/components/schemas/FieldUpdateInput'
    ApiResponse:
      type: object
      properties:
        success:
          type: boolean
          example: true
        message:
          type: string
        data:
          description: Endpoint-specific response payload.
      additionalProperties: true
    ErrorResponse:
      type: object
      properties:
        success:
          type: boolean
          example: false
        message:
          type: string
          example: Validation failed
        statusCode:
          type: integer
          example: 400
      additionalProperties: true
    FieldUpdateInput:
      type: object
      description: >-
        Field patch. Identify account/contact fields with `id` or
        `property_name`; identify pipeline fields with `attribute_id`/`id` or
        `property_name`. `property_name` is immutable: use the same value
        returned by the field list/create APIs. When sent together with `id` or
        `attribute_id`, it must match the stored field `property_name`.
      properties:
        id:
          type: string
          format: uuid
        attribute_id:
          type: string
          format: uuid
          description: Alias for `id` when updating pipeline fields.
        property_name:
          type: string
          pattern: ^[a-z][a-z0-9_]*$
          description: >-
            Stable field identifier. This value cannot be changed by update
            APIs. If supplied with `id` or `attribute_id`, it must match the
            stored field `property_name` exactly.
        name:
          type: string
          description: New display name.
        current_name:
          type: string
          description: New display name.
        attribute_type:
          allOf:
            - $ref: '#/components/schemas/AttributeType'
          description: Can be changed only for custom fields, not system fields.
        metadata:
          oneOf:
            - type: object
              additionalProperties: true
            - type: 'null'
        order:
          type:
            - integer
            - 'null'
          minimum: 1
        is_hidden:
          type: boolean
      additionalProperties: false
    AttributeType:
      type: string
      enum:
        - string
        - number
        - checkbox
        - date
        - date_range
        - rating
        - timestamp
        - select
        - multi_select
        - currency
        - percentage
        - location
        - time
        - datetime
        - email
        - phone
        - website
        - url
        - radio
        - team_members
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: Public API key for the Octolane organization.

````