---
title: "Create Virtual User with Scenario (optional) from JMeter JMX"
method: POST
path: "/imports/jmx/{projectId}"
tags: ["Design - Virtual Users - Imports"]
---

# Create Virtual User with Scenario (optional) from JMeter JMX

`POST /imports/jmx/{projectId}`

## Request

- Base URL: `https://api.octoperf.com`
- URL: `https://api.octoperf.com/imports/jmx/{projectId}`
- Auth: none declared

## Path parameters

- `projectId` string, required

## Request body `multipart/form-data`

- JmxImportMultipartRequest
  - `design` JmxDesignImportRequest
    - `resources` 'KEEP_ALL' | 'REMOVE'
    - `adBlocking` 'ENABLED' | 'DISABLED'
  - `runtime` JmxRuntimeImportRequest
    - `avgResponseTimeInMs` integer
    - `defaultProviderId` string
    - `defaultLocation` string
  - `file` string, binary: JMeter JMX file

## Response `200`

OK

- JmxImportResult
  - `virtualUsers` VirtualUser[]
    - `id` string
    - `userId` string
    - `projectId` string
    - `name` string
    - `description` string
    - `children` Action[], nullable
      - `enabled` boolean
      - `children` Action[]
      - `id` string
    - `created` string, date-time
    - `lastModified` string, date-time
    - `type` 'JMETER' | 'WEB_DRIVER' | 'FRAGMENTS' | 'PLAYWRIGHT' | 'K6'
    - `tags` string[], nullable
  - `scenario` Scenario
    - `id` string, nullable
    - `userId` string, nullable
    - `projectId` string, nullable
    - `name` string
    - `description` string, nullable
    - `userProfiles` UserProfile[], nullable
      - `id` string, nullable
      - `name` string, nullable
      - `virtualUserId` string
      - `providerId` string
      - `location` string
      - `load` unknown
      - `memory` MemorySettings
        - `vuMb` number, double
      - `iterations` integer
      - `engine` unknown
    - `mode` 'STANDARD' | 'FUNCTIONAL', nullable
    - `created` string, date-time, nullable
    - `lastModified` string, date-time, nullable
    - `tags` string[], nullable

## Other responses

- `400`: Bad Request
- `403`: Forbidden
- `404`: Not Found
- `409`: Conflict
- `429`: Too Many Requests

## Changes

- **2026-11-03** `637a8f8ce8cf`: 1 info
  - api operation id `y_1` removed and replaced with `p_1`
- **2026-10-30** `fc0ab021d8d3`: 1 info
  - api operation id `z_2` removed and replaced with `y_1`
- **2026-10-29** `6fb7a9d5eb1c`: 1 info
  - api operation id `e_3` removed and replaced with `z_2`
- **2026-10-28** `6fc0f4ece308`: 1 info
  - api operation id `Z_1` removed and replaced with `e_3`
- **2026-10-27** `d04c0ffc592f`: 1 info
  - api operation id `B_2` removed and replaced with `Z_1`

[Operation history](https://skmtc.dev/octoperf/apis/octoperf-api/changes/imports/jmx/:projectId/post.md)

---

[API](https://skmtc.dev/octoperf/apis/octoperf-api.md) - [All operations](https://skmtc.dev/octoperf/apis/octoperf-api/llms.txt) - [OpenAPI document](https://skmtc.dev/octoperf/apis/octoperf-api/revisions/637a8f8ce8cf?raw)
