---
title: "Upload Input Units"
method: POST
path: "/v2.0/public/projects/{projectId}/inputUnits"
tags: ["Input Units"]
---

# Upload Input Units

`POST /v2.0/public/projects/{projectId}/inputUnits`

You can upload input units to the project, which contributors will work on.
Maximum size allowed is 250 MB of data.
            
**How to upload**
            
To know which properties should be used to upload the input units properly, you should use the
[GET INPUT UNIT SCHEMA](#operation/UploadManagement_GetInputUnitSchema) endpoint.
Please note that, the endpoint will return an object with required
fields and their properties format for each input unit on the desired project. However, when uploading
you need to create an array with those required fields, respecting their properties.
            
**Configure your Amazon S3 bucket policy to grant cross-account access to Define.ai**
            
You can use AWS S3 to store and submit your input units with the file URLs in
S3:// protocol(for example, S3://bucket-name/key-name) rather than http:// or https:// protocol.
Configure your S3 bucket policy to give permission to the following IAM role for Define.ai
to access your files. 

To do this, you must be the S3 bucket owner.
Got to bucket >> permission >> bucket policy, and add the following policy 

(Note that the place holder ${BucketName} should be replaced by your S3 bucket name)


            
    {
        "Version": "2012-10-17",
         "Statement": [{
                "Effect": "Allow",
                "Principal": {
                    "AWS": "arn:aws:iam::463637393528:user/prod-devteam-user"
                },
                "Action": [
                    "s3:GetObject",
                    "s3:ListBucket"
                ],
                "Resource": [
                    "arn:aws:s3:::${BucketName}/*",
                    "arn:aws:s3:::${BucketName}"
                ]
        }]
    }
            


**How validation works**
            
Two validations phases follow the upload operation. First, a synchronous phase and, if completed
successfully, an asynchronous phase. Validation failure will return a list of up to 50 error codes and
messages to resolve. Review these errors and upload the unsuccessful input units again.
            
The project state will change to PROCESSING DATA UPLOAD once there are input units passing all syntax and
format evaluations.
            
**Example of how validation and upload of Input Units work**
            
You upload 1 000 input units. 100 validation errors are found. Remember the validation returns the
first 50 error messages. Review the errors and correct errors for all 100 input units and reload the
set of 100 (not all 1 000). Validation takes place (asynchronous phase), and successful input units are
uploaded to the system.
            
**Understand the project state based on asynchronous validation phase**
            
Errors found will change the project state to either UPLOAD ERRORS or INSUFFICIENT DATA, depending on
whether there is valid input unit(s). Retrieve the error list by using GET PROJECT ERRORS endpoint.
            
A single valid input unit will change the project state to PROCESSING DATA UPLOAD. Data can be added
until the project state changes to PREPARING PROJECT.
            
**Permission Required:** Upload Data

## Path parameters

- `projectId` string, uuid, required

## Request body

- object[]

## Response `202`

Accepted. Job is updated asynchronously.

- DefinedCrowdPublicApiApiResultsUploadUploadInputUnitsResult
  - `uploadId` string, uuid — ID for a set of uploaded input units.

## Other responses

- `400` — Invalid parameters.
- `401` — Invalid authentication (invalid/expired token).
- `404` — Project does not exist.

---

[API](https://skmtc.net/definedcrowd/apis/defined-ai-api.md) · [All operations](https://skmtc.net/definedcrowd/apis/defined-ai-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/definedcrowd/defined-ai-api/revisions/14cab8ac3bca/schema)
