> For the complete documentation index, see [llms.txt](https://docs.imerit.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.imerit.net/data/importing-assets.md).

# Importing Assets

Ways in which you can import assets in Ango Hub

<figure><picture><source srcset="https://angohub-docs-assets.s3.eu-central-1.amazonaws.com/cover/importing-assets-dark.png" media="(prefers-color-scheme: dark)"><img src="https://angohub-docs-assets.s3.eu-central-1.amazonaws.com/cover/importing-assets.png" alt=""></picture><figcaption></figcaption></figure>

Ango Hub provides several methods to import assets for labeling.

## Methods to Import Assets to Ango Hub

### Browser Upload <a href="#browser-import" id="browser-import"></a>

The Browser Upload method is a drag-and-drop interface, through which files can be imported directly from your system.

If Ango Hub was installed on-premises, assets imported this way will be copied to the `/uploaded-data/` folder within Ango Hub's root. If you are using Ango Hub on the cloud, assets imported this way will be uploaded to Ango's AWS encrypted cloud storage in Germany.

[Click for information on browser upload](/data/importing-assets/asset-browser-import.md).

### Cloud Import <a href="#cloud-import" id="cloud-import"></a>

You may alternatively upload a JSON containing the file paths and their [external IDs](/core-concepts/assets.md#External-ID). This is what we call Cloud Import. Assets imported this way are not copied over, and are simply fetched as necessary to display them. More details on this method can be found in the pages below:

* [Upload public cloud assets](/data/importing-assets/asset-cloud-import.md)
* Upload private cloud assets
  * [From AWS S3](/data/storages/importing-private-cloud-assets-aws.md)
  * [From GCP](/data/storages/importing-private-cloud-assets-gcp.md)

### File Explorer

You may import assets directly from a connected private cloud storage by navigating the storage from Ango Hub. See [File Explorer](/data/importing-assets/file-explorer.md) for more.

### SDK Import

By using our SDK, you can import assets, either from your local machine or from a cloud storage location such as an AWS S3 bucket or Azure storage, directly from your Python script. See our [SDK documentation](/sdk/sdk-documentation.md) for the functions [upload\_files](/sdk/sdk-documentation/project-level-sdk-functions/upload_files.md) and [upload\_files\_cloud](/sdk/sdk-documentation/project-level-sdk-functions/upload_files_cloud.md) for more.

### Asset Builder

Ango Hub provides an asset builder with which you may create custom assets using the information contained in a .csv you have imported. See the [Asset Builder](/data/importing-assets/asset-builder.md) page and [upload\_files\_with\_asset\_builder](/sdk/sdk-documentation/project-level-sdk-functions/upload_files_with_asset_builder.md) function for more.

### LLM Chat Assets

You may create empty LLM chat conversations or import existing conversations from JSON. See [Creating and Importing LLM Chat Assets](/data/importing-assets/creating-and-importing-llm-chat-assets.md) for more.

## Import Limits

Import limits depend on the import method. They may apply to the number of assets, the combined size of uploaded files, or the size of the import request:

| Import method                                                                                                                     | Maximum per import                                                                           |
| --------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- |
| [Browser Upload](/data/importing-assets/asset-browser-import.md)                                                                  | 60,000 files, up to 5 GB total                                                               |
| [Cloud Import JSON](/data/importing-assets/asset-cloud-import.md)                                                                 | 60,000 JSON rows                                                                             |
| [File Explorer](/data/importing-assets/file-explorer.md)                                                                          | 30,000 files                                                                                 |
| [Asset Builder](/data/importing-assets/asset-builder.md)                                                                          | 20,000 rows                                                                                  |
| [LLM Chat assets](/data/importing-assets/creating-and-importing-llm-chat-assets.md)                                               | 10,000 conversations                                                                         |
| [SDK: upload\_files](/sdk/sdk-documentation/project-level-sdk-functions/upload_files.md)                                          | No separate file-count limit per call; [JSON request-size limit](#sdk-request-size) applies  |
| [SDK: upload\_files\_cloud](/sdk/sdk-documentation/project-level-sdk-functions/upload_files_cloud.md)                             | No separate asset-count limit per call; [JSON request-size limit](#sdk-request-size) applies |
| [SDK: upload\_chat\_assets](/sdk/sdk-documentation/project-level-sdk-functions/upload_chat_assets.md)                             | 10,000 chat assets                                                                           |
| [SDK: upload\_files\_with\_asset\_builder](/sdk/sdk-documentation/project-level-sdk-functions/upload_files_with_asset_builder.md) | 100,000 assets                                                                               |

An import is one upload or SDK call. A [batch](/core-concepts/batches.md) is a way to group assets within a project; you can add assets to the same batch across multiple imports.

### Project and organization asset counts

All import methods are subject to the following asset-count limits:

* **Project limit:** 200,000 assets per project by default, including assets already in the project. Your deployment may use a different limit.
* **Organization quota:** the asset allowance configured for your organization's subscription, shared across its projects.

These limits count assets, rather than the bytes in their files or metadata. Contact Ango Hub support to confirm the project limit, organization quota, and remaining allowance that apply to your organization.

If you need to import more assets than a method allows at once, split the import into multiple smaller uploads. Splitting an import does not increase the project limit or organization quota.

### File size for cloud imports

Cloud Import and `upload_files_cloud` register URLs and associated asset data while the referenced files remain in your cloud storage. The cloud import step does not impose a separate per-file byte-size limit on referenced videos. The Browser Upload limit of 5 GB applies to the combined size of local files selected for upload; it does not limit the size of videos referenced in cloud storage or their combined size in an import.

Large videos can still take longer to process and load, and annotation performance depends on the video, annotation density, browser, and machine. Test representative videos before starting a project, and see [Performance & Compatibility Considerations](/labeling/performance-and-compatibility-considerations.md) for video performance guidance.

### SDK request size

The JSON request body sent by `upload_files_cloud` is limited to **50 MiB (52,428,800 bytes)** by the Ango Hub API. This includes URLs, external IDs, metadata, context data, and any inline annotations or other data in the request. Referenced video and image file contents are not part of that JSON body.

`upload_files` uploads local file contents separately, then registers the assets through `upload_files_cloud`, so its final JSON request is subject to the same limit.

The SDK sends the asset list in one request and does not split it automatically. Split large lists across smaller calls, especially when assets include substantial metadata or inline annotations. Infrastructure in your deployment may impose a lower request-size limit.

{% hint style="warning" %}
Audio files **must** have a constant bitrate.

Otherwise, the annotation timings will **not** be correct in the final export.
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.imerit.net/data/importing-assets.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
