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

# Start a product bulk action

> POST /bulk-actions. Required scopes: products:write, bulk-actions:execute.



## OpenAPI

````yaml openapi.json POST /api/public/v1/bulk-actions
openapi: 3.1.0
info:
  title: WISEPIM Public API
  version: 1.0.0
  description: >-
    Manage your WisePIM catalogue, prompts and knowledge, and launch enrichment,
    translation and bulk jobs. Authenticate with `Authorization: Bearer wpk_…`;
    create keys under Settings → API keys. Each key is bound to one project and
    to the scopes it was created with.
  summary: >-
    Manage catalog entities, prompts and knowledge; launch enrichment,
    translation and bulk actions and track jobs.
  termsOfService: https://wisepim.com/terms
  contact:
    name: WISEPIM support
    url: https://wisepim.com/contact
    email: info@wisepim.com
  x-logo:
    url: >-
      https://docs.wisepim.com/logo/wisepim-logo-horizontal-transparant-lightmode.png
    altText: WISEPIM
servers:
  - url: https://wisepim.com
    description: Production. Every path below already starts with /api/public/v1.
security:
  - ProjectApiKeyAuth: []
tags:
  - name: Key and project
    description: Key and project endpoints for the project bound to your API key.
  - name: Products
    description: Products endpoints for the project bound to your API key.
  - name: Categories
    description: Categories endpoints for the project bound to your API key.
  - name: Attributes
    description: Attributes endpoints for the project bound to your API key.
  - name: Dictionary Entries
    description: Dictionary Entries endpoints for the project bound to your API key.
  - name: Keywords
    description: Keywords endpoints for the project bound to your API key.
  - name: Import Templates
    description: Import Templates endpoints for the project bound to your API key.
  - name: Export Templates
    description: Export Templates endpoints for the project bound to your API key.
  - name: Attribute Groups
    description: Attribute Groups endpoints for the project bound to your API key.
  - name: Product Families
    description: Product Families endpoints for the project bound to your API key.
  - name: Value Code Sets
    description: Value Code Sets endpoints for the project bound to your API key.
  - name: Code Set Values
    description: Code Set Values endpoints for the project bound to your API key.
  - name: Uom Code Sets
    description: Uom Code Sets endpoints for the project bound to your API key.
  - name: Uom Values
    description: Uom Values endpoints for the project bound to your API key.
  - name: Prompts
    description: Prompts endpoints for the project bound to your API key.
  - name: Knowledge Libraries
    description: Knowledge Libraries endpoints for the project bound to your API key.
  - name: Enrichments
    description: Enrichments endpoints for the project bound to your API key.
  - name: Translations
    description: Translations endpoints for the project bound to your API key.
  - name: Bulk Actions
    description: Bulk Actions endpoints for the project bound to your API key.
  - name: Jobs
    description: Jobs endpoints for the project bound to your API key.
  - name: Family Attributes
    description: Family Attributes endpoints for the project bound to your API key.
  - name: Product Categories
    description: Product Categories endpoints for the project bound to your API key.
externalDocs:
  description: WISEPIM API reference and guides
  url: https://docs.wisepim.com/en/api-reference/introduction
paths:
  /api/public/v1/bulk-actions:
    post:
      tags:
        - Bulk Actions
      summary: Start a product bulk action
      description: >-
        Queue a native bulk transformation. action_config is validated by the

        same processor as the web app, including field and attribute
        permissions.
      operationId: public_v1_start_bulk_action
      parameters:
        - name: Idempotency-Key
          in: header
          required: false
          schema:
            type: string
            minLength: 1
            maxLength: 128
            pattern: ^[!-~]+$
          description: >-
            Reuse this key for retries of the same write. Scoped to this API
            key; retained until key deletion. Different requests with the same
            key return 409.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkActionIn'
        required: true
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LaunchOut'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOut'
        '402':
          description: Payment Required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOut'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOut'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOut'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOut'
        '413':
          description: Content Too Large
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOut'
        '422':
          description: Unprocessable Content
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationErrorOut'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOut'
        '503':
          description: Service Unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorOut'
      security:
        - ProjectApiKeyAuth: []
components:
  schemas:
    BulkActionIn:
      additionalProperties: false
      properties:
        product_ids:
          items:
            exclusiveMinimum: 0
            maximum: 9223372036854776000
            type: integer
          maxItems: 1000
          minItems: 1
          title: Product Ids
          type: array
        action:
          enum:
            - standardize-case
            - trim-whitespace
            - append-prepend
            - find-replace
            - find-and-replace
            - enforce-dictionary
            - remove-links
            - assign-categories
            - remove-categories
            - replace-categories
            - set-primary-category
            - change-price
            - special-price
            - volume-discounts
            - cost-margins
            - update-stock
            - stock-status
            - update-weight
            - set-dimensions
            - shipping-settings
            - set-attribute
            - numeric-operations
            - convert-numbers
            - clear-attribute
            - set-field
            - convert-units
            - change-uom
            - recalculate-quality
            - copy-field-values
            - move-field-values
            - change-visibility
            - set-shop-sync
            - change-status
          title: Action
          type: string
        action_config:
          additionalProperties: true
          title: Action Config
          type: object
      required:
        - product_ids
        - action
      title: BulkActionIn
      type: object
    LaunchOut:
      properties:
        task_id:
          title: Task Id
          type: string
        status:
          title: Status
          type: string
        total_items:
          title: Total Items
          type: integer
        estimated_credits:
          title: Estimated Credits
          type: integer
        deduplicated:
          default: false
          title: Deduplicated
          type: boolean
      required:
        - task_id
        - status
        - total_items
        - estimated_credits
      title: LaunchOut
      type: object
    ErrorOut:
      description: |-
        The shared error envelope every NinjaAPI instance renders.

        `code` is present for :class:`user_app.ninja_api.errors.ApiError`
        (`insufficient_scope`, `rate_limited`, `invalid_cursor`, …) so machine
        clients can branch without parsing `error`.
      properties:
        error:
          title: Error
          type: string
        code:
          anyOf:
            - type: string
            - type: 'null'
          title: Code
        request_id:
          title: Request Id
          type: string
      required:
        - error
        - request_id
      title: ErrorOut
      type: object
    ValidationErrorOut:
      description: 'HTTP 422: `detail` carries Ninja''s per-field validation errors.'
      properties:
        error:
          title: Error
          type: string
        code:
          anyOf:
            - type: string
            - type: 'null'
          title: Code
        request_id:
          title: Request Id
          type: string
        detail:
          anyOf:
            - items:
                additionalProperties: true
                type: object
              type: array
            - type: 'null'
          title: Detail
      required:
        - error
        - request_id
      title: ValidationErrorOut
      type: object
  securitySchemes:
    ProjectApiKeyAuth:
      type: http
      scheme: bearer
      x-scopes:
        project:read: Read the project's identity, locales and limits.
        products:read: >-
          List and read products, including attribute values and category
          membership.
        products:write: Create and update products and their catalogue content.
        products:delete: Delete products from this project.
        categories:read: List the project's category tree.
        categories:write: Create and update the project's categories.
        categories:delete: Delete the project's categories.
        attributes:read: List the project's attribute definitions.
        attributes:write: Create and update the project's attribute definitions.
        attributes:delete: Delete the project's attribute definitions.
        attribute-groups:read: Read the project's attribute groups.
        attribute-groups:write: Create and update the project's attribute groups.
        attribute-groups:delete: Delete the project's attribute groups.
        product-families:read: Read the project's product families.
        product-families:write: Create and update the project's product families.
        product-families:delete: Delete the project's product families.
        family-attributes:read: Read the project's family attribute bindings.
        family-attributes:write: Create and update the project's family attribute bindings.
        family-attributes:delete: Delete the project's family attribute bindings.
        product-categories:read: Read the project's product category memberships.
        product-categories:write: Create and update the project's product category memberships.
        product-categories:delete: Delete the project's product category memberships.
        value-code-sets:read: Read the project's controlled vocabularies.
        value-code-sets:write: Create and update the project's controlled vocabularies.
        value-code-sets:delete: Delete the project's controlled vocabularies.
        code-set-values:read: Read values in the project's controlled vocabularies.
        code-set-values:write: Create and update values in the project's controlled vocabularies.
        code-set-values:delete: Delete values in the project's controlled vocabularies.
        uom-code-sets:read: Read the project's unit-of-measure sets.
        uom-code-sets:write: Create and update the project's unit-of-measure sets.
        uom-code-sets:delete: Delete the project's unit-of-measure sets.
        uom-values:read: Read units in the project's unit-of-measure sets.
        uom-values:write: Create and update units in the project's unit-of-measure sets.
        uom-values:delete: Delete units in the project's unit-of-measure sets.
        prompts:read: Read prompts visible to the key issuer in this project.
        prompts:write: >-
          Create prompts and update the key issuer's own prompts in this
          project.
        prompts:delete: Delete the key issuer's own prompts in this project.
        knowledge-libraries:read: Read this project's knowledge library.
        knowledge-libraries:write: Create and update this project's knowledge library.
        knowledge-libraries:delete: Delete this project's knowledge library.
        keywords:read: Read the project's keywords.
        keywords:write: Create and update the project's keywords.
        keywords:delete: Delete the project's keywords.
        dictionary-entries:read: Read the project's translation dictionary entries.
        dictionary-entries:write: Create and update the project's translation dictionary entries.
        dictionary-entries:delete: Delete the project's translation dictionary entries.
        import-templates:read: Read the project's reusable import templates.
        import-templates:write: Create and update the project's reusable import templates.
        import-templates:delete: Delete the project's reusable import templates.
        export-templates:read: Read the project's reusable export templates.
        export-templates:write: Create and update the project's reusable export templates.
        export-templates:delete: Delete the project's reusable export templates.
        enrichment:execute: >-
          Start product enrichment using this project's native pipelines and
          credit limits.
        translations:execute: >-
          Start product translation using this project's native pipelines and
          credit limits.
        bulk-actions:execute: Start bulk actions against this project's products.
        jobs:read: Read this project's background job status and progress.
        jobs:cancel: Request cooperative cancellation of this project's background jobs.
      bearerFormat: Project API key (wpk_...)
      description: >-
        Use a project API key from **Settings > API Access**. Send it as
        `Authorization: Bearer wpk_...`. See [authentication and
        scopes](/en/api-reference/authentication) for setup and permissions.

````

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