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

# Import properties

> Synchronously creates up to 200 properties under the project, enforcing per-org plan limits (monthly units, max-online). Requires scope: property:import



## OpenAPI

````yaml api-reference/openapi.json POST /projects/{id}/imports
openapi: 3.1.0
info:
  title: DealPipe Public API
  version: 1.0.0
  description: >-
    Org-scoped REST API for external integrations. All endpoints require an
    `Authorization: Bearer dp_live_...` token issued in the dashboard under
    Settings → API tokens. Tokens carry a subset of RBAC permissions called
    *scopes*; the effective permission set is `scopes ∩
    creator-current-permissions` resolved at request time.
servers:
  - url: https://app.deal-pipe.de/api/v1
    description: Dealpipe
security:
  - bearerAuth: []
paths:
  /projects/{id}/imports:
    post:
      summary: Bulk-import properties
      description: >-
        Synchronously creates up to 200 properties under the project, enforcing
        per-org plan limits (monthly units, max-online). Requires scope:
        property:import
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - units
              properties:
                units:
                  type: array
                  minItems: 1
                  maxItems: 200
                  items:
                    $ref: '#/components/schemas/Unit'
      responses:
        '202':
          description: Accepted (synchronous in v1)
          content:
            application/json:
              schema:
                type: object
                properties:
                  importRunId:
                    type: string
                    format: uuid
                  status:
                    type: string
                    enum:
                      - completed
                  unitCount:
                    type: integer
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthenticated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '402':
          description: Quota exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Rate limited
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    Unit:
      type: object
      properties:
        unitIdentifier:
          type:
            - string
            - 'null'
        street:
          type:
            - string
            - 'null'
        houseNumber:
          type:
            - string
            - 'null'
        postalCode:
          type:
            - string
            - 'null'
        city:
          type:
            - string
            - 'null'
        unitNumber:
          type:
            - string
            - 'null'
          pattern: ^[0-9]*$
        zimmer:
          oneOf:
            - type: number
            - type: string
            - type: 'null'
        wohnflaecheQm:
          oneOf:
            - type: number
            - type: string
            - type: 'null'
        kaufpreis:
          oneOf:
            - type: number
            - type: string
            - type: 'null'
        kaltmieteWohnung:
          oneOf:
            - type: number
            - type: string
            - type: 'null'
        baujahr:
          type:
            - integer
            - 'null'
        unitLocation:
          type:
            - string
            - 'null'
        etageLabel:
          type:
            - string
            - 'null'
          description: Floor label, e.g. UG, EG, OG, DG or a numeric floor.
        etage:
          type:
            - integer
            - 'null'
        visibility:
          type: string
          enum:
            - online
            - offline
            - pending_review
        status:
          type: string
          enum:
            - frei
            - auf_anfrage
            - reserviert
            - notarvorbereitung
            - notartermin
            - verkauft
    Error:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - code
            - message
            - requestId
          properties:
            code:
              type: string
            message:
              type: string
            requestId:
              type: string
            details: {}
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: dp_live_*

````

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