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

# Create a deal

> Creates the deal in the project of the API key and answers 201 with the created record.



## OpenAPI

````yaml /api-reference/openapi.json post /v1/deals
openapi: 3.0.3
info:
  title: Leadstaker API
  version: 1.0.0
  description: Public REST API for Leadstaker projects.
servers:
  - url: https://n-api.leadstaker.com
    description: Production
security: []
tags:
  - name: Fields
    description: >-
      Custom field definitions, both the built-in ones and the ones a project
      creates.
  - name: Field groups
    description: Sections that organize custom fields in the interface.
  - name: Deals
    description: Opportunities moving through a pipeline, each tied to a contact.
  - name: Contacts
    description: >-
      People inside a project, holding the custom field values collected about
      them.
  - name: Messages
    description: Individual messages inside a chat, inbound and outbound.
  - name: Chats
    description: Conversations with a contact over a connected channel.
  - name: Loss reasons
    description: The catalog of reasons a deal can be marked as lost.
  - name: Pipelines
    description: Ordered sets of stages a deal travels through.
  - name: Stages
    description: Steps inside a pipeline, including the built-in open and closed ones.
  - name: Tags
    description: Free-form labels attached to deals.
  - name: Notes
    description: >-
      Free text attached to a contact or a deal, written by a user, an agent, or
      the system.
paths:
  /v1/deals:
    post:
      tags:
        - Deals
      summary: Create a deal
      description: >-
        Creates the deal in the project of the API key and answers 201 with the
        created record.
      operationId: postDeals
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                contactId:
                  type: string
                  minLength: 1
                fields:
                  type: array
                  items:
                    type: object
                    properties:
                      fieldId:
                        type: string
                        minLength: 1
                      value: {}
                    required:
                      - fieldId
                    additionalProperties: false
                    description: Custom field value for this entity
                  description: Custom field values for the deal
                pipelineId:
                  type: string
                  minLength: 1
                stageId:
                  type: string
                  minLength: 1
                lossReasonId:
                  type: string
                  minLength: 1
                tagIds:
                  type: array
                  items:
                    type: string
              additionalProperties: false
      responses:
        '201':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  createdAt:
                    type: string
                    format: date-time
                  updatedAt:
                    type: string
                    format: date-time
                  projectId:
                    type: string
                    minLength: 1
                  contactId:
                    type: string
                    minLength: 1
                  fields:
                    type: array
                    items:
                      type: object
                      properties:
                        fieldId:
                          type: string
                          minLength: 1
                        value: {}
                      required:
                        - fieldId
                      additionalProperties: false
                      description: Custom field value for this entity
                  agentId:
                    type: string
                    minLength: 1
                  tagIds:
                    type: array
                    items:
                      type: string
                  isTest:
                    type: boolean
                  responsibleId:
                    type: string
                    minLength: 1
                  pipelineId:
                    type: string
                    minLength: 1
                  stageId:
                    type: string
                    minLength: 1
                  lossReasonId:
                    type: string
                    minLength: 1
                  stageEnteredAt:
                    type: string
                    format: date-time
                  closedAt:
                    type: string
                    format: date-time
                  lastLeadMessageAt:
                    type: string
                    format: date-time
                  contact:
                    type: object
                    properties:
                      id:
                        type: string
                      archivedAt:
                        type: string
                        format: date-time
                      createdAt:
                        type: string
                        format: date-time
                      updatedAt:
                        type: string
                        format: date-time
                      avatar:
                        type: string
                        minLength: 1
                      projectId:
                        type: string
                        minLength: 1
                      fields:
                        type: array
                        items:
                          type: object
                          properties:
                            fieldId:
                              type: string
                              minLength: 1
                            value: {}
                          required:
                            - fieldId
                          additionalProperties: false
                      isTest:
                        type: boolean
                    required:
                      - id
                      - createdAt
                      - updatedAt
                      - projectId
                    additionalProperties: false
                  chat:
                    type: object
                    properties:
                      unreadMessagesCount:
                        type: number
                      lastMessage:
                        type: object
                        additionalProperties: {}
                      lastLeadMessageTimestamp:
                        type: string
                        format: date-time
                      unreadByChatId:
                        type: object
                        additionalProperties:
                          type: number
                    required:
                      - unreadMessagesCount
                      - unreadByChatId
                    additionalProperties: false
                required:
                  - id
                  - createdAt
                  - updatedAt
                  - projectId
                  - responsibleId
                additionalProperties: false
              example:
                id: 6715be3a9c40aa0013d8e5c2
                projectId: 665f1c2e8a94b70012d4e9a1
                contactId: 6712a4d95b38ee0011c9f2b4
                fields:
                  - fieldId: 66eab3c47d21ff0011b2d6ea
                    value: 1200
                tagIds:
                  - 67102f6c3e85dd0012f5b8c3
                responsibleId: 664d9e0b7c83aa0010f1c2d3
                pipelineId: 670fa8b21d94cc0010e3c7a5
                stageId: 670fa8b21d94cc0010e3c7a8
                stageEnteredAt: '2026-01-14T11:20:00.000Z'
                createdAt: '2026-01-12T14:08:00.000Z'
                updatedAt: '2026-01-15T09:32:00.000Z'
        '401':
          description: Missing or invalid credentials
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: The payload failed validation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - apiKey: []
components:
  schemas:
    Error:
      type: object
      required:
        - errorCode
        - message
        - status
      properties:
        errorCode:
          type: string
        message:
          type: string
        status:
          type: integer
        errors:
          type: array
          items:
            type: object
            required:
              - field
              - code
              - message
            properties:
              field:
                type: string
              code:
                type: string
              message:
                type: string
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key

````