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

---
id: 2b9f7c96-83b6-4df9-9314-a25eede7cdf0
---

# Create a new pipeline

> Create a new pipeline for the specified object type. Currently this supports deals and tickets. Each entry in the stages list must have the required fields: stageId, label, displayOrder, and metadata (for deals).



## OpenAPI

````yaml specs/legacy/v1/crm-pipelines-v1.json POST /crm-pipelines/v1/pipelines/{object_type}
openapi: 3.0.0
info:
  title: CRM Pipelines API v1
  version: 1.0.0
  description: Legacy CRM Pipelines API v1 - Auto-generated from MDX documentation
servers:
  - url: https://api.hubapi.com
    description: HubSpot API Server
security: []
paths:
  /crm-pipelines/v1/pipelines/{object_type}:
    post:
      summary: Create a new pipeline
      description: >-
        Create a new pipeline for the specified object type. Currently this
        supports deals and tickets. Each entry in the stages list must have the
        required fields: stageId, label, displayOrder, and metadata (for deals).
      operationId: postcrmpipelinesv1pipelinesobjecttype
      parameters:
        - name: object_type
          in: path
          required: true
          description: >-
            The object type that you are creating the pipeline for. Must be one
            of: deals, tickets
          schema:
            type: string
            enum:
              - deals
              - tickets
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - label
                - displayOrder
                - active
                - stages
              properties:
                pipelineId:
                  type: string
                  description: >-
                    The internal ID for the new pipeline. The ID must be unique
                    across pipelines for the specified object type. This ID will
                    be automatically generated if not included when creating the
                    pipeline. The ID is limited to 36 characters.
                  maxLength: 36
                label:
                  type: string
                  description: >-
                    The label for the pipeline. The label will be displayed when
                    viewing records in HubSpot. The label is limited to 36
                    characters.
                  maxLength: 36
                displayOrder:
                  type: integer
                  description: >-
                    When viewing records in HubSpot, pipelines are displayed
                    starting with the pipeline with the lowest displayOrder
                    value.
                active:
                  type: boolean
                  description: >-
                    Whether or not the pipeline is active. This should be true
                    for new pipelines, otherwise they will not be available to
                    use when updating or editing records.
                stages:
                  type: array
                  description: >-
                    A list of stages for this pipeline. Pipelines may have up to
                    100 stages.
                  maxItems: 100
                  items:
                    $ref: '#/components/schemas/PipelineStageInput'
      responses:
        '201':
          description: Successfully created pipeline
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Pipeline'
      security:
        - oauth2:
            - crm.objects.deals.write
        - oauth2_legacy: []
        - private_apps:
            - crm.objects.deals.write
        - private_apps_legacy: []
components:
  schemas:
    PipelineStageInput:
      type: object
      required:
        - stageId
        - label
        - displayOrder
      properties:
        stageId:
          type: string
          description: >-
            The internal ID of the stage. These IDs must be unique across all
            stages for all pipelines for the specified object type. Each ID is
            limited to 36 characters. IDs must only contain numbers, dashes and
            lowercase letters.
          maxLength: 36
          pattern: ^[a-z0-9\-]+$
        label:
          type: string
          description: >-
            The label for the stage. The label is what users will see when
            viewing records in HubSpot. Each label is limited to 36 characters.
          maxLength: 36
        displayOrder:
          type: integer
          description: >-
            When viewing records in HubSpot, stages are displayed starting with
            the stage with the lowest displayOrder value.
        metadata:
          oneOf:
            - $ref: '#/components/schemas/DealStageMetadata'
            - $ref: '#/components/schemas/TicketStageMetadata'
            - type: object
        active:
          type: boolean
          default: true
    Pipeline:
      type: object
      properties:
        pipelineId:
          type: string
        createdAt:
          type: integer
          format: int64
        updatedAt:
          type: integer
          format: int64
          nullable: true
        objectType:
          type: string
          enum:
            - DEAL
            - TICKET
        label:
          type: string
        displayOrder:
          type: integer
        active:
          type: boolean
        default:
          type: boolean
        stages:
          type: array
          items:
            $ref: '#/components/schemas/PipelineStage'
    DealStageMetadata:
      type: object
      required:
        - probability
      properties:
        probability:
          type: number
          minimum: 0
          maximum: 1
          multipleOf: 0.1
          description: >-
            The likelihood a deal will close. Possible values are between 0.0
            and 1.0 in increments of 0.1
    TicketStageMetadata:
      type: object
      properties:
        ticketState:
          type: string
          enum:
            - OPEN
            - CLOSED
          description: >-
            Indicates if the ticket remains open or has been closed by a member
            of your Support team.
    PipelineStage:
      type: object
      properties:
        stageId:
          type: string
        createdAt:
          type: integer
          format: int64
        updatedAt:
          type: integer
          format: int64
          nullable: true
        label:
          type: string
        displayOrder:
          type: integer
        active:
          type: boolean
        metadata:
          oneOf:
            - $ref: '#/components/schemas/DealStageMetadata'
            - $ref: '#/components/schemas/TicketStageMetadata'
            - type: object

````