---
title: "POST /v1/url-asset-uploads"
method: POST
path: "/v1/url-asset-uploads"
tags: ["asset"]
---

# POST /v1/url-asset-uploads

`POST /v1/url-asset-uploads`

<Warning>

This API is currently provided as a preview. Be aware of the following:

- There might be unannounced breaking changes.
- Any breaking changes to preview APIs won't produce a new [API version](https://www.canva.dev/docs/connect/versions/).
- Public integrations that use preview APIs will not pass the review process, and can't be made available to all Canva users.

</Warning>

Starts a new [asynchronous job](https://www.canva.dev/docs/connect/api-requests-responses/#asynchronous-job-endpoints) to upload an asset from a URL to the user's content library. Supported file types for assets are listed in the [Assets API overview](https://www.canva.dev/docs/connect/api-reference/assets/).

<Note>
 Uploading a video asset from a URL is limited to a maximum 100MB file size. For importing larger video files, use the [Create asset upload job API](https://www.canva.dev/docs/connect/api-reference/assets/create-asset-upload-job/).
</Note>

<Note>
For more information on the workflow for using asynchronous jobs, see [API requests and responses](https://www.canva.dev/docs/connect/api-requests-responses/#asynchronous-job-endpoints). You can check the status and get the results of asset upload jobs created with this API using the [Get asset upload job via URL API](https://www.canva.dev/docs/connect/api-reference/assets/get-url-asset-upload-job/).
</Note>

## Request body

- CreateUrlAssetUploadJobRequest
  - `name` string, required — A name for the asset.
  - `url` string, required — The URL of the file to import. This URL must be accessible from the internet and be publicly available.

## Response `200`

OK

- CreateUrlAssetUploadJobResponse
  - `job` AssetUploadJob, required — The status of the asset upload job.
    - `id` string, required — The ID of the asset upload job.
    - `status` 'failed' | 'in_progress' | 'success', required — Status of the asset upload job.
    - `error` AssetUploadError — If the upload fails, this object provides details about the error.
      - `code` 'file_too_big' | 'import_failed' | 'fetch_failed', required — A short string indicating why the upload failed. This field can be used to handle errors programmatically.
      - `message` string, required — A human-readable description of what went wrong.
    - `asset` Asset — The asset object, which contains metadata about the asset.
      - `type` 'image' | 'video', required — Type of an asset.
      - `id` string, required — The ID of the asset.
      - `name` string, required — The name of the asset.
      - `tags` string[], required — The user-facing tags attached to the asset. Users can add these tags to their uploaded assets, and they can search their uploaded assets in the Canva UI by searching for these tags. For information on how users use tags, see the [Canva Help Center page on asset tags](https://www.canva.com/help/add-edit-tags/).
      - `import_status` ImportStatus — The import status of the asset.
        - `state` 'failed' | 'in_progress' | 'success', required — State of the import job for an uploaded asset.
        - `error` ImportError — If the import fails, this object provides details about the error.
          - `code` 'file_too_big' | 'import_failed', required — A short string indicating why the upload failed. This field can be used to handle errors programmatically.
          - `message` string, required — A human-readable description of what went wrong.
      - `created_at` integer, required — When the asset was added to Canva, as a Unix timestamp (in seconds since the Unix Epoch).
      - `updated_at` integer, required — When the asset was last updated in Canva, as a Unix timestamp (in seconds since the Unix Epoch).
      - `owner` TeamUserSummary, required — Metadata for the user, consisting of the User ID and Team ID.
        - `user_id` string, required — The ID of the user.
        - `team_id` string, required — The ID of the user's Canva Team.
      - `thumbnail` Thumbnail — A thumbnail image representing the object.
        - `width` integer, required — The width of the thumbnail image in pixels.
        - `height` integer, required — The height of the thumbnail image in pixels.
        - `url` string, required — A URL for retrieving the thumbnail image. This URL expires after 15 minutes. This URL includes a query string that's required for retrieving the thumbnail.
      - `metadata` union — Type-specific metadata for the asset.
        - object
          - `type` 'image', required
          - `width` integer — The width of the image in pixels.
          - `height` integer — The height of the image in pixels.
          - `smart_tags` string[] — AI-generated tags for the image.
        - object
          - `type` 'video', required
          - `width` integer, required — The width of the video in pixels.
          - `height` integer, required — The height of the video in pixels.
          - `duration` integer — The duration of the video in seconds.

## Other responses

- `400` — Bad Request
- `404` — Not Found
- `default` — Error Response

---

[API](https://skmtc.net/canva/apis/canva-connect-api.md) · [All operations](https://skmtc.net/canva/apis/canva-connect-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/canva/canva-connect-api/revisions/499c392c7720/schema)
