# Upload an asset

`POST /api/v1/test-results/{testResultId}/assets`

Uploads a binary asset attached to a test result. Use multipart/form-data with the file and its name. In future, a presignedUrl parameter may be added to return an S3 pre-signed URL instead of accepting the upload directly.

**Path parameters**

| Name           | Type   | Required | Description      |
| -------------- | ------ | -------- | ---------------- |
| `testResultId` | string | yes      | Test result UUID |

**Header parameters**

| Name                | Type    | Required | Description                                                                                                               |
| ------------------- | ------- | -------- | ------------------------------------------------------------------------------------------------------------------------- |
| `X-Organization-Id` | integer | no       | Selects which of the caller's organizations the request acts on. When omitted, the caller's default organization is used. |

**Example request**

```
curl https://api.mobilenexthq.com/api/v1/test-results/{testResultId}/assets \

  -X POST \

  -H 'Authorization: Bearer mob_...'
```

**Responses**

**201** — Asset uploaded

```
{

  "id": "string",

  "name": "trace.zip",

  "contentType": "application/zip",

  "size": 0,

  "createdAt": "2026-01-01T00:00:00Z"

}
```

**401** — Missing or invalid Bearer token

```
{

  "error": {

    "code": "string",

    "message": "string"

  }

}
```

**404** — Resource not found

```
{

  "error": {

    "code": "string",

    "message": "string"

  }

}
```
