---
title: "Query-Package"
---
Tests whether a universal package exists and optionally extracts its metadata.
UPack::Query-Package(
	[From: <text>],
	Name: <text>,
	Version: <text>,
	NewVersion: <text>,
	[Reason: <text>],
	[PackageFile: <text>],
	[Feed: <text>],
	[EndpointUrl: <text>],
	[UserName: <text>],
	[Password: <text>],
	[ApiKey: <text>],
	[Exists: <true/false>],
	[Metadata: <%(key1: value1, ...)>]
);
| Name | Format | Script Usage | Usage Notes | 
|---|---|---|---|
| Package source | text | From | |
| ☆ Package name | text | Name | This argument is required. | 
| ☆ Package version | text | Version | Default value is "latest". This argument is required. | 
| ☆ New version | text | NewVersion | This argument is required. | 
| Reason | text | Reason | Value note: "Unspecified". | 
| Package file | text | PackageFile | When specified, FeedUrl, UserName, Password, PackageName, and PackageVersion are ignored. | 
| Feed name | text | Feed | Not specifying will "Use Feed from package source". | 
| API endpoint URL | text | EndpointUrl | Not specifying will "Use URL from package source". | 
| ProGet user name | text | UserName | The name of a user in ProGet that can access this feed. Not specifying will "Use user name from package source". | 
| ProGet password | text | Password | The password of a user in ProGet that can access this feed. Not specifying will "Use password from package source". | 
| ProGet API Key | text | ApiKey | An API Key that can access this feed. Not specifying will "Use API Key from package source". | 
| ⇒ Package exists | true/false | Exists | When specified, this string variable will be set to "true" if the package exists or "false" if it does not. e.g. $PackageExists". | 
| ⇒ Package metadata | %(key1: value1, ...) | Metadata | When specified, this map variable will be assigned containing all of the package's metadata. If the package does not exist this value is not defined. | 
# test whether a package exists in a feed and capture its metadata
Query-Package
(
    Credentials: MyExternalFeed,
    PackageName: Group/Package,
    Exists => $exists,
    Metadata => %packageData
);
if $exists
{
    Log-Debug 'Package $(%packageData.name) exists. Latest version is $(%packageData.version).';
}