1. Docs
  2. Pulumi Cloud
  3. Pulumi Cloud REST API
  4. Registry

Registry

    The Pulumi Registry hosts reusable packages and templates for infrastructure deployments. The Registry API allows you to list, retrieve, publish, and manage packages and templates in the Pulumi Registry.

    Registry Identifiers

    Resources in the Registry are identified by a three-part identifier: {source}/{publisher}/{name}.

    • Source: Indicates the package’s origin. For example:
      • pulumi: Packages published directly to the public Pulumi registry
      • opentofu: OpenTofu packages bridged to Pulumi
      • private: Organization-specific private registry packages
    • Publisher: The organization that owns the package
      • For private packages: Matches the organization’s canonical name
      • For public packages: Managed by Registry Administrators
    • Name: The unique identifier for the package within its source and publisher

    Registry Operations

    The API provides endpoints for the following operations:

    • Listing registry packages
    • Retrieving package version metadata
    • Publishing new package versions
    • Deleting package versions
    • Retrieving template information

    List Registry Packages

    List all registry packages visible to the user.

    GET /api/preview/registry/packages
    

    Parameters

    ParameterTypeInDescription
    namestringqueryOptional. Filter results to packages with this specific name
    orgLoginstringqueryOptional. Filter results to packages owned by this organization
    limitintegerqueryOptional. Number of results to retrieve per page. Default is 100
    continuationTokenstringqueryOptional. The continuation token to use for retrieving the next set of results if results were truncated

    Example

    curl \
      -H "Accept: application/vnd.pulumi+8" \
      -H "Authorization: token $PULUMI_ACCESS_TOKEN" \
      https://api.pulumi.com/api/preview/registry/packages
    

    Default response

    Status: 200 OK
    
    {
      "packages": [
        {
          "name": "aws",
          "publisher": "pulumi",
          "source": "pulumi",
          "version": "6.80.0",
          "title": "AWS",
          "description": "A Pulumi package for creating and managing Amazon Web Services (AWS) cloud resources.",
          "repoUrl": "https://github.com/pulumi/pulumi-aws",
          "category": "cloud",
          "isFeatured": false,
          "packageTypes": [
            "bridged"
          ],
          "packageStatus": "ga",
          "readmeURL": "https://artifacts.pulumi.com/providers/f5de3f9d-cde1-4be0-a6c4-12fb7aa20cb8/docs/index.md",
          "schemaURL": "https://artifacts.pulumi.com/providers/f5de3f9d-cde1-4be0-a6c4-12fb7aa20cb8/schema.json",
          "createdAt": "2025-05-07T04:25:34.582Z",
          "visibility": "public"
        }
      ]
    }
    

    Get Registry Package Version

    Retrieve metadata for a specific package version.

    GET /api/preview/registry/packages/{source}/{publisher}/{name}/versions/{version}
    

    Parameters

    ParameterTypeInDescription
    sourcestringpathRegistry source
    publisherstringpathPublisher name
    namestringpathPackage name
    versionstringpathPackage version number (SemVer) or ’latest'

    Example

    curl \
      -H "Accept: application/vnd.pulumi+8" \
      -H "Authorization: token $PULUMI_ACCESS_TOKEN" \
      https://api.pulumi.com/api/preview/registry/packages/{source}/{publisher}/{name}/versions/{version}
    

    Publish Registry Package Version

    Initiates the process of publishing a new version of a package to the registry.

    POST /api/preview/registry/packages/{source}/{publisher}/{name}/versions
    

    Parameters

    ParameterTypeInDescription
    sourcestringpathRegistry source
    publisherstringpathPublisher name
    namestringpathPackage name
    versionstringbodyVersion number (SemVer) of the package to publish

    Example

    curl \
      -H "Accept: application/vnd.pulumi+8" \
      -H "Authorization: token $PULUMI_ACCESS_TOKEN" \
      -H "Content-Type: application/json" \
      --request POST \
      --data '{"version":"6.0.0"}' \
      https://api.pulumi.com/api/preview/registry/packages/{source}/{publisher}/{name}/versions
    

    Default response

    Status: 202 Accepted
    
    {
      "operationID": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
      "uploadURLs": {
        "schema": "https://s3.aws.amazon.com/...",
        "index": "https://s3.aws.amazon.com/...",
        "installationConfiguration": "https://s3.aws.amazon.com/..."
      }
    }
    

    Complete Registry Package Publish

    Complete the package publishing process after uploading all required files.

    POST /api/preview/registry/packages/{source}/{publisher}/{name}/versions/{version}/complete
    

    Parameters

    ParameterTypeInDescription
    sourcestringpathRegistry source
    publisherstringpathPublisher name
    namestringpathPackage name
    versionstringpathPackage version identifier
    operationIDstringbodyThe operation ID received from the publish initiation

    Example

    curl \
      -H "Accept: application/vnd.pulumi+8" \
      -H "Authorization: token $PULUMI_ACCESS_TOKEN" \
      --request POST \
      --data '{"operationID":"f47ac10b-58cc-4372-a567-0e02b2c3d479"}' \
      https://api.pulumi.com/api/preview/registry/packages/{source}/{publisher}/{name}/versions/{version}/complete
    

    Delete Registry Package Version

    Delete a specific version of a package from the registry.

    DELETE /api/preview/registry/packages/{source}/{publisher}/{name}/versions/{version}
    

    Parameters

    ParameterTypeInDescription
    sourcestringpathRegistry source
    publisherstringpathPublisher name
    namestringpathPackage name
    versionstringpathPackage version identifier

    Example

    curl \
      -H "Accept: application/vnd.pulumi+8" \
      -H "Authorization: token $PULUMI_ACCESS_TOKEN" \
      --request DELETE \
      https://api.pulumi.com/preview/registry/packages/{source}/{publisher}/{name}/versions/{version}
    

    Get Registry Template

    Retrieve template information.

    GET /api/preview/registry/templates/{source}/{publisher}/{name}/versions/{version}
    

    Parameters

    ParameterTypeInDescription
    sourcestringpathRegistry source
    publisherstringpathPublisher name
    namestringpathTemplate name
    versionstringpathTemplate version (SemVer) or ’latest'

    Example

    curl \
      -H "Accept: application/vnd.pulumi+8" \
      -H "Authorization: token $PULUMI_ACCESS_TOKEN" \
      https://api.pulumi.com/api/preview/registry/templates/{source}/{publisher}/{name}/versions/{version}
    

    Default response

    Status: 200 OK
    
    {
        "name": "pulumi/templates/static-website-aws-yaml",
        "publisher": "pulumi",
        "source": "github",
        "displayName": "static-website-aws-yaml",
        "description": "A Pulumi YAML program to deploy a static website on AWS",
        "language": "yaml",
        "templateURL": "https://github.com/pulumi/templates/static-website-aws-yaml",
        "readmeURL": "https://api.pulumi.com/api/orgs/pulumi/template/readme?url=https%3A%2F%2Fgithub.com%2Fpulumi%2Ftemplates%2Fstatic-website-aws-yaml",
        "repoSlug": "pulumi/templates",
        "visibility": "public",
        "updatedAt": "2025-05-12T20:53:05.016991943Z"
    }