Internet Explorer is no longer supported. Many things will still work, but your experience will be degraded and some things won't function. Please use a modern browser such as Edge, Chrome, or Firefox.

Asset Directories

view on GitHub

The Asset Directories API provides several pgutil commands (available as pgutil assets) and HTTP endpoints to query, download, publish, delete, and perform other operations on files and folders in an asset directory. All HTTP requests are made through the following base URL:

Asset Directories are represented internally in ProGet as Feeds, so Feed API keys can be used to authenticate to Asset Directories.

pgutil Commands

All HTTP endpoints of the Asset Directories API are available as pgutil commands.

To find the list of commands available in pgutil, simply run pgutil assets --help. See Getting started with pgutil to learn more.

Available HTTP Endpoints

The Asset Directories API is comprised of endpoints for both files and folders:

📄 File Management

For directly managing the files located in the asset directory. They are designed to function like a standard web server, so hosted files can be accessed by simple GET requests with support for browser caching.

📁 Folder Management

For managing the folders located in the asset directory.

🔖 Metadata Management

Allow for reading or updating metadata on a file or folder. Added in ProGet v6.0.0.

Authenticating to Asset Directory API

The following is a summary of access types and their corresponding requirements for various API keys types and endpoints within this API.

Access Type Requirements
System API Keys Use/Manage Feeds
Feed API Keys Add/Repackage is required for Upload Asset File and Import Archive
Overwrite/Delete is required for Delete Asset File and Delete Asset Folder
Personal API Key Feeds_DownloadPackage is required for Download Asset File
Feeds_AddPackage is required for Upload Asset File and Import Archive
Feeds_DeletePackage is required for Delete Asset File and Delete Asset Folder
No API Key anonymous or authenticated user must have at least Feeds_ViewFeed

* Personal API keys are scoped to users and inherit the Tasks and attributes assigned to those users.

To specify an API Key, use the request header (X-ApiKey), querystring (key), or api:«api-key» as the username. See API Key Usage to learn more.