---
title: "Create artifact upload session"
---

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

Path: Sureshake API › entities

`POST /v2/entities/{entityId}/vault/fundraising/artifacts/upload-session`

## Path parameters

- `entityId` (`startup-create-artifact-upload-session.path.entityId`; string, required)
  - format `uuid`

## Request body

_Required._

- `artifactType` (`startup-create-artifact-upload-session.artifactType`; string, required)
  - one of `"pitch_deck"`, `"investment_memo"`, `"supporting_file"`
- `filename` (`startup-create-artifact-upload-session.filename`; string, required)
  - minLength 1
- `mimeType` (`startup-create-artifact-upload-session.mimeType`; string, required)
  - one of `"application/pdf"`, `"application/vnd.openxmlformats-officedocument.presentationml.presentation"`, `"application/vnd.openxmlformats-officedocument.wordprocessingml.document"`, `"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"`, `"text/csv"`, `"text/plain"`
- `byteSize` (`startup-create-artifact-upload-session.byteSize`; integer, optional)
  - min 0

## Example request

```json
{
  "artifactType": "pitch_deck",
  "filename": "string",
  "mimeType": "application/pdf",
  "byteSize": 0
}
```

## Code samples

### cURL

```bash
curl --request POST \
  --url 'https://api.sureshake.com/v2/entities/<entityId>/vault/fundraising/artifacts/upload-session' \
  --header 'Content-Type: application/json' \
  --data '
{
  "artifactType": "pitch_deck",
  "filename": "string",
  "mimeType": "application/pdf",
  "byteSize": 0
}
'
```

### TypeScript

```typescript
const url = 'https://api.sureshake.com/v2/entities/<entityId>/vault/fundraising/artifacts/upload-session';
const options = {
  method: 'POST',
  headers: {'Content-Type': 'application/json'},
  body: JSON.stringify({
    artifactType: 'pitch_deck',
    filename: 'string',
    mimeType: 'application/pdf',
    byteSize: 0
  })
};

fetch(url, options)
  .then(res => res.json())
  .then(json => console.log(json))
  .catch(err => console.error(err));
```

### Python

```python
import requests

url = "https://api.sureshake.com/v2/entities/<entityId>/vault/fundraising/artifacts/upload-session"

payload = {
    "artifactType": "pitch_deck",
    "filename": "string",
    "mimeType": "application/pdf",
    "byteSize": 0
}
headers = {"Content-Type": "application/json"}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
```

## Responses

### 201

Default Response

#### Example

```json
{
  "data": {
    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    "entityId": "156e622c-6cdf-4c27-9bc9-2f2db69919f5",
    "collectionId": "0ffe69e2-b7af-4b1e-835c-867376165f50",
    "artifactType": "pitch_deck",
    "filename": "string",
    "mimeType": "string",
    "byteSize": 0,
    "sha256": "string",
    "storageKey": "string",
    "uploadStatus": "upload_session_created",
    "malwareScanStatus": "pending",
    "malwareScanError": "string",
    "version": 0,
    "tokenRequired": true,
    "tokenNetwork": "base-mainnet",
    "tokenGrantStatus": "not_requested",
    "uploadUrl": "string",
    "uploadMethod": "PUT",
    "uploadHeaders": {
      "property1": "string",
      "property2": "string"
    },
    "uploadExpiresAt": "2019-08-24T14:15:22Z",
    "createdBy": "string",
    "createdAt": "2019-08-24T14:15:22Z",
    "updatedAt": "2019-08-24T14:15:22Z"
  },
  "meta": {
    "timestamp": "2019-08-24T14:15:22Z"
  }
}
```

- `data` (`startup-create-artifact-upload-session.response.201.data`; object, required)
  - `id` (`startup-create-artifact-upload-session.response.201.data.id`; string, required)
    - format `uuid`
  - `entityId` (`startup-create-artifact-upload-session.response.201.data.entityId`; string, required)
    - format `uuid`
  - `collectionId` (`startup-create-artifact-upload-session.response.201.data.collectionId`; string, required, nullable)
    - format `uuid`
  - `artifactType` (`startup-create-artifact-upload-session.response.201.data.artifactType`; string, required)
    - one of `"pitch_deck"`, `"investment_memo"`, `"supporting_file"`
  - `filename` (`startup-create-artifact-upload-session.response.201.data.filename`; string, required)
  - `mimeType` (`startup-create-artifact-upload-session.response.201.data.mimeType`; string, required)
  - `byteSize` (`startup-create-artifact-upload-session.response.201.data.byteSize`; number, required, nullable)
  - `sha256` (`startup-create-artifact-upload-session.response.201.data.sha256`; string, required, nullable)
  - `storageKey` (`startup-create-artifact-upload-session.response.201.data.storageKey`; string, required, nullable)
  - `uploadStatus` (`startup-create-artifact-upload-session.response.201.data.uploadStatus`; string, required)
    - one of `"upload_session_created"`, `"uploaded"`, `"finalized"`, `"failed"`
  - `malwareScanStatus` (`startup-create-artifact-upload-session.response.201.data.malwareScanStatus`; string, required)
    - one of `"pending"`, `"passed"`, `"failed"`
  - `malwareScanError` (`startup-create-artifact-upload-session.response.201.data.malwareScanError`; string, required, nullable)
  - `version` (`startup-create-artifact-upload-session.response.201.data.version`; number, required)
  - `tokenRequired` (`startup-create-artifact-upload-session.response.201.data.tokenRequired`; boolean, required)
  - `tokenNetwork` (`startup-create-artifact-upload-session.response.201.data.tokenNetwork`; string, required)
    - one of `"base-mainnet"`
  - `tokenGrantStatus` (`startup-create-artifact-upload-session.response.201.data.tokenGrantStatus`; string, required)
    - one of `"not_requested"`, `"pending"`, `"granted"`, `"revoked"`, `"failed"`
  - `createdBy` (`startup-create-artifact-upload-session.response.201.data.createdBy`; string, required)
  - `createdAt` (`startup-create-artifact-upload-session.response.201.data.createdAt`; string, required)
    - format `date-time`
  - `updatedAt` (`startup-create-artifact-upload-session.response.201.data.updatedAt`; string, required)
    - format `date-time`
  - `uploadUrl` (`startup-create-artifact-upload-session.response.201.data.uploadUrl`; string, optional, nullable)
  - `uploadMethod` (`startup-create-artifact-upload-session.response.201.data.uploadMethod`; string, optional)
    - one of `"PUT"`
  - `uploadHeaders` (`startup-create-artifact-upload-session.response.201.data.uploadHeaders`; map<string>, optional)
  - `uploadExpiresAt` (`startup-create-artifact-upload-session.response.201.data.uploadExpiresAt`; string, optional)
    - format `date-time`
- `meta` (`startup-create-artifact-upload-session.response.201.meta`; object, optional)
  - `timestamp` (`startup-create-artifact-upload-session.response.201.meta.timestamp`; string, required)
    - format `date-time`

### 400

Default Response

#### Example

```json
{
  "error": {
    "code": "string",
    "message": "string",
    "details": null,
    "traceId": "string"
  }
}
```

- `error` (`startup-create-artifact-upload-session.response.400.error`; object, required)
  - `code` (`startup-create-artifact-upload-session.response.400.error.code`; string, required) — Machine-readable error code (e.g., NOT_FOUND)
  - `message` (`startup-create-artifact-upload-session.response.400.error.message`; string, required) — Human-readable error message
  - `details` (`startup-create-artifact-upload-session.response.400.error.details`; unknown, optional) — Optional structured error details
  - `traceId` (`startup-create-artifact-upload-session.response.400.error.traceId`; string, optional) — Unique ID for log correlation

### 401

Default Response

#### Example

```json
{
  "error": {
    "code": "string",
    "message": "string",
    "details": null,
    "traceId": "string"
  }
}
```

- `error` (`startup-create-artifact-upload-session.response.401.error`; object, required)
  - `code` (`startup-create-artifact-upload-session.response.401.error.code`; string, required) — Machine-readable error code (e.g., NOT_FOUND)
  - `message` (`startup-create-artifact-upload-session.response.401.error.message`; string, required) — Human-readable error message
  - `details` (`startup-create-artifact-upload-session.response.401.error.details`; unknown, optional) — Optional structured error details
  - `traceId` (`startup-create-artifact-upload-session.response.401.error.traceId`; string, optional) — Unique ID for log correlation

### 403

Default Response

#### Example

```json
{
  "error": {
    "code": "string",
    "message": "string",
    "details": null,
    "traceId": "string"
  }
}
```

- `error` (`startup-create-artifact-upload-session.response.403.error`; object, required)
  - `code` (`startup-create-artifact-upload-session.response.403.error.code`; string, required) — Machine-readable error code (e.g., NOT_FOUND)
  - `message` (`startup-create-artifact-upload-session.response.403.error.message`; string, required) — Human-readable error message
  - `details` (`startup-create-artifact-upload-session.response.403.error.details`; unknown, optional) — Optional structured error details
  - `traceId` (`startup-create-artifact-upload-session.response.403.error.traceId`; string, optional) — Unique ID for log correlation

### 404

Default Response

#### Example

```json
{
  "error": {
    "code": "string",
    "message": "string",
    "details": null,
    "traceId": "string"
  }
}
```

- `error` (`startup-create-artifact-upload-session.response.404.error`; object, required)
  - `code` (`startup-create-artifact-upload-session.response.404.error.code`; string, required) — Machine-readable error code (e.g., NOT_FOUND)
  - `message` (`startup-create-artifact-upload-session.response.404.error.message`; string, required) — Human-readable error message
  - `details` (`startup-create-artifact-upload-session.response.404.error.details`; unknown, optional) — Optional structured error details
  - `traceId` (`startup-create-artifact-upload-session.response.404.error.traceId`; string, optional) — Unique ID for log correlation

### 409

Default Response

#### Example

```json
{
  "error": {
    "code": "string",
    "message": "string",
    "details": null,
    "traceId": "string"
  }
}
```

- `error` (`startup-create-artifact-upload-session.response.409.error`; object, required)
  - `code` (`startup-create-artifact-upload-session.response.409.error.code`; string, required) — Machine-readable error code (e.g., NOT_FOUND)
  - `message` (`startup-create-artifact-upload-session.response.409.error.message`; string, required) — Human-readable error message
  - `details` (`startup-create-artifact-upload-session.response.409.error.details`; unknown, optional) — Optional structured error details
  - `traceId` (`startup-create-artifact-upload-session.response.409.error.traceId`; string, optional) — Unique ID for log correlation

### 500

Default Response

#### Example

```json
{
  "error": {
    "code": "string",
    "message": "string",
    "details": null,
    "traceId": "string"
  }
}
```

- `error` (`startup-create-artifact-upload-session.response.500.error`; object, required)
  - `code` (`startup-create-artifact-upload-session.response.500.error.code`; string, required) — Machine-readable error code (e.g., NOT_FOUND)
  - `message` (`startup-create-artifact-upload-session.response.500.error.message`; string, required) — Human-readable error message
  - `details` (`startup-create-artifact-upload-session.response.500.error.details`; unknown, optional) — Optional structured error details
  - `traceId` (`startup-create-artifact-upload-session.response.500.error.traceId`; string, optional) — Unique ID for log correlation

### 503

Default Response

#### Example

```json
{
  "error": {
    "code": "string",
    "message": "string",
    "details": null,
    "traceId": "string"
  }
}
```

- `error` (`startup-create-artifact-upload-session.response.503.error`; object, required)
  - `code` (`startup-create-artifact-upload-session.response.503.error.code`; string, required) — Machine-readable error code (e.g., NOT_FOUND)
  - `message` (`startup-create-artifact-upload-session.response.503.error.message`; string, required) — Human-readable error message
  - `details` (`startup-create-artifact-upload-session.response.503.error.details`; unknown, optional) — Optional structured error details
  - `traceId` (`startup-create-artifact-upload-session.response.503.error.traceId`; string, optional) — Unique ID for log correlation


Source: https://docs.sureshake.com/reference/startup-create-artifact-upload-session/index.md
