Universal Feed
Universal Feeds can be queried using Inedo's pgutil command line tool and the Common Packages API. There is also a special Universal Feed API, which was developed before the Common Packages API. While the Universal Feed API is still functional, we recommend using the Common Packages API if a required endpoint is available.
pgutil Commands
In addition to the endpoints found in the Common Packages API, the pgutil CLI tool provides several commands to install and manage Universal packages.
upack create
: Creates a Universal Package at a specified locationupack install
: "Installs" (unpacks) a Universal Package to a specified locationupack list
: Lists all "installed" Universal Packagesupack update
: Updates a package installation with another version from a specified Universal Package feedupack remove
: "Uninstalls" the specified Universal Package
You can read more about using these commands on the Universal Feeds & Packages page.
Universal Feed Endpoints
These endpoints are part of the original Universal Feed API and offer additional functionality. The API consists of a few different URL endpoints, accessible over HTTP/S. All endpoints are prefixed with /upack/«feed-name»
:
- Import Universal Package - imports a package from specified source
- Create/Upload Universal Package - creates and/or uploads a specified package
- Download Virtual Package - downloads a specified virtual package
- Download Universal Package File - downloads a specified file within a package
Note that the endpoint prefix itself is not a valid API endpoint, and may return a 404
error, or simply redirect you to this page.
Currently, the API only returns results in JSON format with a standard, 200
(success) status code unless there's an error; future versions (if anyone requests it) may add additional formats, such as XML, which would be specified using a Content-Type
request headers and/or an alternate querystring parameter.
All searching and matching is case insensitive. This will most certainly never change, as it's either a mistake or a bad practice to have different packages named SomeThing
and someThing
.
Deprecated Universal Feed Endpoints:
These endpoints are deprecated, and we recommend using the appropriate endpoints in the Common Packages API instead.
- List Universal Packages - lists specified packages
- Delete Universal Package - deletes a specified package
- Download Universal Package - downloads a specified package
- List Universal Package Versions - describes versions of specified packages
The Data Objects for the List Universal Packages
and List Universal Package Versions
endpoints can also be found on the deprecated documentation
Authenticating to API Endpoints
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 | View/Download is required for all endpointsAdd/Repackage is required for uploading/importing endpointsOverwrite/Delete is required for deletion endpoints |
Personal API Key | Feeds_ViewFeed is required for all endpointsFeeds_AddPackage is required for uploading/importing endpointsFeeds_DeletePackage is required for deletion endpoints |
No API Key | anonymous or authenticated user must have at least Feeds_ViewFeed |
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.
For example, to authenticate with the API key abc12345
to the "Import Universal Package" endpoint, you could specify the API key as follows:
curl -X GET --header "X-ApiKey: abc12345" "https://proget.corp.local/upack/MyUniversalFeed/import"