---
title: "Start transformation job"
method: POST
path: "/api/organizations/{organizationId}/create-project"
tags: ["OrganizationCreateProject"]
---

# Start transformation job

`POST /api/organizations/{organizationId}/create-project`

## Request

- Base URL: `https://studio.edgeimpulse.com/v1`
- URL: `https://studio.edgeimpulse.com/v1/api/organizations/{organizationId}/create-project`
- Auth: one of:
  - API key in header `x-api-key`
  - API key in cookie `jwt`
  - API key in header `x-jwt-token`
  - OAuth 2
    - Authorization code: `/v1/oauth/authorize`
    - Client credentials
    - Implicit: `/v1/oauth/authorize`
    - Password
    - Token URL: `/v1/oauth/token`
- TypeScript: <https://skmtc.dev/edgeimpulse/apis/edge-impulse-api/docs/api/organizations/:organizationId/create-project/post.ts> (a function with typed inputs; its response is checked against the schema)

Start a transformation job to fetch data from the organization and put it in a project, or transform into new data.

## Path parameters

- `organizationId` integer, required

## Request body

- OrganizationCreateProjectRequest: If uploadType is set to 'project', either projectId, newProjectName or projectApiKey is required. projectId and newProjectName are only available through JWT tokens. If uploadType is set to 'dataset' then outputDatasetName can be set to '' to output in the same dataset, or set to a string to create (or append to) a new dataset.
  - `name` string, required
  - `filter` string: Filter in SQL format, used for creating transformation jobs on clinical datasets
  - `pathFilters` OrganizationCreateProjectPathFilter[]: Set of paths to apply the transformation to, used for creating transformation jobs on default datasets.
    - `dataset` string, required: Dataset name of files to transform
    - `filter` string, required: Path filter with wildcards, relative to the root of the dataset. For example, /folder/*.json will transform all JSON files in /folder (when operating on files)
  - `uploadType` 'project' | 'dataset'
  - `projectId` integer
  - `projectVisibility` 'public' | 'private': The visibility of the project, either public or private. Public projects can be viewed by anyone on the internet and edited by collaborators. Private projects can only be viewed and edited by collaborators.
  - `newProjectName` string
  - `projectApiKey` string
  - `projectHmacKey` string
  - `transformationBlockId` integer
  - `builtinTransformationBlock` object
  - `category` 'training' | 'validation' | 'testing' | 'split'
  - `outputDatasetName` string
  - `outputDatasetBucketId` integer
  - `outputDatasetBucketPath` string: Path of new dataset within the bucket; used only when creating a new dataset.
  - `outputPathInDataset` string: Path within the selected dataset to upload transformed files into. Used only when uploading into a default (non-clinical) dataset.
  - `outputDatasetPathRule` 'no-subfolders' | 'subfolder-per-item' | 'use-full-path': Defines the folder structure for writing to the output dataset. Used only when uploading into a default (non-clinical) dataset.
  - `label` string
  - `emailRecipientUids` integer[]
  - `transformationParallel` integer: Number of parallel jobs to start
  - `extraCliArguments` string: Optional extra arguments for this transformation block
  - `parameters` object: List of custom parameters for this transformation job (see the list of parameters that the block exposes).

## Response `200`

OK

- OrganizationCreateProjectResponse
  - `success` boolean, required: Whether the operation succeeded
  - `error` string: Optional error description (set if 'success' was false)
  - `createProjectId` integer, required: Project ID for the new project
  - `apiKey` string, required: DEPRECATED. API key for the new project. This field will always be empty.

---

[API](https://skmtc.dev/edgeimpulse/apis/edge-impulse-api.md) - [All operations](https://skmtc.dev/edgeimpulse/apis/edge-impulse-api/llms.txt) - [OpenAPI document](https://skmtc.dev/edgeimpulse/apis/edge-impulse-api/revisions/e2a976d38427?raw)
