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

# Create, update and delete records in bulk

> Apply a batch of create / update / delete operations in a single request. Returns the ids written and, for each entry that failed, its list, index and reason; the other entries still apply.



## OpenAPI

````yaml https://api.useinvent.com/openapi.json post /orgs/{org_id}/tables/{table_id}/records/bulk
openapi: 3.1.0
info:
  version: 1.0.0
  title: Invent API
servers:
  - url: https://api.useinvent.com
security:
  - bearerAuth: []
tags:
  - name: Inbox
  - name: Chats
  - name: Messages
  - name: Contacts
  - name: Custom channels
  - name: Segments
  - name: Suppressions
  - name: Assistants
  - name: Agents
  - name: Skills
  - name: Knowledge
  - name: AI
  - name: Broadcasts
  - name: Email sending
  - name: WhatsApp
  - name: WhatsApp Meta agent
  - name: Tables
  - name: Records
  - name: Views
  - name: Pages
  - name: Connections
  - name: Workspace
  - name: Sub-organizations
  - name: Analytics and logs
  - name: Workflows
paths:
  /orgs/{org_id}/tables/{table_id}/records/bulk:
    post:
      tags:
        - Tables
      summary: Create, update and delete records in bulk
      description: >-
        Apply a batch of create / update / delete operations in a single
        request. Returns the ids written and, for each entry that failed, its
        list, index and reason; the other entries still apply.
      parameters:
        - schema:
            type: string
          required: true
          description: Org ID
          name: org_id
          in: path
        - schema:
            type: string
          required: true
          description: Table ID
          name: table_id
          in: path
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkTableRecordsSchema'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/BulkTableRecordsSchema'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkTableRecordsResultSchema'
components:
  schemas:
    BulkTableRecordsSchema:
      type: object
      properties:
        create:
          type: array
          items:
            $ref: '#/components/schemas/CreateTableRecordSchema'
        update:
          type: array
          items:
            $ref: '#/components/schemas/BulkUpdateTableRecordSchema'
        delete:
          type: array
          items:
            type: string
            maxLength: 128
      additionalProperties: false
    BulkTableRecordsResultSchema:
      allOf:
        - $ref: '#/components/schemas/TableBulkResultSchema'
        - type: object
          properties:
            deleted:
              type: array
              items:
                type: string
          required:
            - deleted
      description: >-
        The ids a batch wrote, and the entries it could not, each with its
        reason
    CreateTableRecordSchema:
      type: object
      properties:
        id:
          type: string
          maxLength: 128
          description: >-
            Client-generated id for the new record (enables optimistic
            creation). Encoded (`rec_…`) or raw UUID — use UUID v7 to keep ids
            time-sortable. Rejected if already in use.
        values:
          $ref: '#/components/schemas/SetTableRecordValuesSchema'
        icon:
          anyOf:
            - $ref: '#/components/schemas/PickerIconEmojiSchema'
            - type: string
              maxLength: 64
              pattern: ^[a-zA-Z0-9_-]+$
              description: >-
                The name of a curated icon a user can pick for a table, view,
                field, or other entity
              oneOf:
                - $ref: '#/components/schemas/PickerIconNameSchema'
        view_id:
          type: string
          maxLength: 128
          description: The view to place the record in.
        after:
          type: string
          maxLength: 1024
          description: The neighbor to sort the record after.
        before:
          type: string
          maxLength: 1024
          description: The neighbor to sort the record before.
    BulkUpdateTableRecordSchema:
      allOf:
        - $ref: '#/components/schemas/UpdateTableRecordSchema'
        - type: object
          properties:
            id:
              type: string
              maxLength: 128
              title: Record
              description: 'The record to update: display id (e.g. PROD-12) or internal id.'
          required:
            - id
    TableBulkResultSchema:
      type: object
      properties:
        created:
          type: array
          items:
            type: string
        updated:
          type: array
          items:
            type: string
        failed:
          type: array
          items:
            $ref: '#/components/schemas/TableBulkFailureSchema'
      required:
        - created
        - updated
        - failed
      description: >-
        The ids a batch wrote, and the entries it could not, each with its
        reason
    SetTableRecordValuesSchema:
      type: object
      additionalProperties: {}
      description: >-
        Map of field key → value. Multi-value fields accept arrays; pass null or
        [] to clear.
    PickerIconEmojiSchema:
      type: string
      format: emoji
      description: >-
        The emoji of a curated icon a user can pick for a table, view, field, or
        other entity
    PickerIconNameSchema:
      type: string
      enum:
        - TableCellsIcon
        - DatabaseIcon
        - DocumentTextIcon
        - DocumentChartBarIcon
        - ClipboardDocumentListIcon
        - ClipboardDocumentCheckIcon
        - FolderIcon
        - ArchiveBoxIcon
        - InboxIcon
        - BookOpenIcon
        - BookmarkIcon
        - NewspaperIcon
        - RectangleStackIcon
        - PencilSquareIcon
        - UserIcon
        - UsersIcon
        - UserGroupIcon
        - UserPlusIcon
        - IdentificationIcon
        - FaceSmileIcon
        - HandThumbUpIcon
        - HeartIcon
        - StarIcon
        - CheckBadgeIcon
        - TrophyIcon
        - CrownIcon
        - ChatBubbleLeftIcon
        - ChatBubbleLeftRightIcon
        - EnvelopeIcon
        - EnvelopeOpenIcon
        - PhoneIcon
        - DevicePhoneMobileIcon
        - MegaphoneIcon
        - BellIcon
        - PaperAirplaneIcon
        - AtSymbolIcon
        - RssIcon
        - LifebuoyIcon
        - ShoppingCartIcon
        - ShoppingBagIcon
        - BuildingStorefrontIcon
        - CreditCardIcon
        - BanknotesIcon
        - CurrencyDollarIcon
        - CurrencyEuroIcon
        - ReceiptPercentIcon
        - WalletIcon
        - CoinsIcon
        - GiftIcon
        - TagIcon
        - TicketIcon
        - ScaleIcon
        - TruckIcon
        - CubeIcon
        - CalendarIcon
        - CalendarDaysIcon
        - CalendarDateRangeIcon
        - ClockIcon
        - FlagIcon
        - CheckCircleIcon
        - ListBulletIcon
        - QueueListIcon
        - FunnelIcon
        - ChartBarIcon
        - ChartPieIcon
        - PresentationChartLineIcon
        - ArrowTrendingUpIcon
        - BriefcaseIcon
        - WrenchScrewdriverIcon
        - Cog6ToothIcon
        - KeyIcon
        - LockClosedIcon
        - ShieldCheckIcon
        - BoltIcon
        - LightBulbIcon
        - BeakerIcon
        - BugAntIcon
        - CpuChipIcon
        - CodeBracketIcon
        - CommandLineIcon
        - ServerIcon
        - LinkIcon
        - HomeIcon
        - HomeModernIcon
        - BuildingOfficeIcon
        - BuildingOffice2Icon
        - BuildingLibraryIcon
        - MapPinIcon
        - MapIcon
        - GlobeAltIcon
        - GlobeAmericasIcon
        - RocketLaunchIcon
        - PlaneIcon
        - CarIcon
        - SunIcon
        - MoonIcon
        - FireIcon
        - SparklesIcon
        - CakeIcon
        - AcademicCapIcon
        - ScissorsIcon
        - SwatchIcon
        - PaintBrushIcon
        - CoffeeIcon
        - UtensilsIcon
        - LeafIcon
        - DumbbellIcon
        - HeartPulseIcon
        - PawPrintIcon
        - StethoscopeIcon
        - CameraIcon
        - PhotoIcon
        - FilmIcon
        - VideoCameraIcon
        - MicrophoneIcon
        - MusicalNoteIcon
        - SpeakerWaveIcon
        - PlayCircleIcon
        - TvIcon
        - RadioIcon
        - PuzzlePieceIcon
        - GamepadIcon
      description: >-
        The name of a curated icon a user can pick for a table, view, field, or
        other entity
    UpdateTableRecordSchema:
      type: object
      properties:
        values:
          $ref: '#/components/schemas/SetTableRecordValuesSchema'
        icon:
          anyOf:
            - $ref: '#/components/schemas/PickerIconEmojiSchema'
            - type: string
              maxLength: 64
              pattern: ^[a-zA-Z0-9_-]+$
              description: >-
                The name of a curated icon a user can pick for a table, view,
                field, or other entity
              oneOf:
                - $ref: '#/components/schemas/PickerIconNameSchema'
            - type: 'null'
        archived:
          type: boolean
          title: Archived
          description: >-
            Move the record to the trash (true) or restore it (false); trashed
            records are hidden from default searches.
    TableBulkFailureSchema:
      type: object
      properties:
        list:
          type: string
          description: The list the entry was in
        index:
          type: number
          description: Its position in that list
        error:
          type: string
      required:
        - list
        - index
        - error
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key
      description: Bearer token authentication using your API key

````