Harness Provider Registry API

The provider-registry service implements HashiCorp's Provider Registry Protocol for private Terraform providers

Operations 24

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

GET /iacm/api/providers List Terraform providers in the registry · List providers #
Ask an LLM
“Which Terraform providers have we published to the Harness IaCM provider registry?”
“Can I search the private provider registry by name and page through the results?”
Tell an agent
List all providers in our IaCM provider registry.
Search the provider registry for providers matching {term}.
DELETE /iacm/api/providers/{id} Delete a provider from the registry · Delete provider #
Ask an LLM
“How do I remove a whole Terraform provider from our private registry?”
“Is there a way to delete a provider we no longer maintain, not just one version?”
Tell an agent destructive · confirm first
Delete provider {id} from the provider registry entirely.
Remove the registry provider {id} and stop offering it.
GET /iacm/api/providers/{id} Get a registry provider by ID · Get provider #
Ask an LLM
“What details does the registry hold for a single Terraform provider I own?”
“Can I look up one private provider by its ID to see its type and description?”
Tell an agent
Show me the registry provider {id}.
Fetch the details of provider {id} from the IaCM registry.
DELETE /iacm/api/providers/{id}/lifecycle Remove a provider's lifecycle rule · Delete provider lifecycle rule #
Ask an LLM
“How do I clear the lifecycle rule on a provider so every version counts as supported again?”
“What happens to lifecycle overrides when I delete a provider's lifecycle rule?”
Tell an agent destructive · confirm first
Delete the lifecycle rule and all overrides for provider {id}.
Revert every version of provider {id} to supported by removing its lifecycle rule.
GET /iacm/api/providers/{id}/lifecycle Get a provider's lifecycle rule · Get provider lifecycle rule #
Ask an LLM
“What lifecycle rule is set on a provider — how many versions stay supported before warnings?”
“Can I see the deprecation and warning actions configured for a registry provider?”
Tell an agent
Show the lifecycle rule configured for provider {id}.
Get the supported, warning and deprecated settings for provider {id}.
PUT /iacm/api/providers/{id}/lifecycle Set a provider's version lifecycle rule · Upsert provider lifecycle rule #
Ask an LLM
“How do I define how many provider versions stay supported before they are flagged as warning?”
“Can I set what action happens when a team uses a deprecated provider version?”
Tell an agent
Set provider {id} to keep {supported} versions supported and {warning} in warning.
Make deprecated versions of provider {id} trigger the {action} action.
GET /iacm/api/providers/{id}/lifecycle/versions/{version} Check the lifecycle tier of a provider version · Get provider version lifecycle status #
Ask an LLM
“Is a specific provider version still supported, in warning, or deprecated?”
“What enforcement action would apply if a workspace pinned this exact provider version?”
Tell an agent
Check the lifecycle status of version {version} of provider {id}.
Tell me the enforcement action for provider {id} at version {version}.
POST /iacm/api/providers/{id}/version Create a new provider version · Create provider version #
Ask an LLM
“How do I register a new version of a Terraform provider in the Harness registry?”
“Which GPG key and protocol do I need when adding a provider version?”
Tell an agent
Create version {version} of provider {id} signed with GPG key {gpg_key}.
Add provider version {version} to {id} using protocol {protocol} and key {gpg_key}.
DELETE /iacm/api/providers/{id}/version/{version} Delete a provider version · Delete provider version #
Ask an LLM
“How do I remove one bad release of a provider without deleting the provider itself?”
“Can I delete a single version from the private provider registry?”
Tell an agent destructive · confirm first
Delete version {version} of provider {id}.
Remove the {version} release of registry provider {id}.
GET /iacm/api/providers/{id}/version/{version} Get one version of a provider · Get provider version #
Ask an LLM
“What signing key and protocol are recorded for one version of my provider?”
“Can I inspect a single provider version before publishing it?”
Tell an agent
Show version {version} of registry provider {id}.
Get the details recorded for provider {id} release {version}.
PUT /iacm/api/providers/{id}/version/{version} Update a provider version's key or protocol · Update provider version #
Ask an LLM
“Can I change the GPG key on a provider version that already exists?”
“How do I update the protocol listed for an existing provider version?”
Tell an agent
Switch provider {id} version {version} to GPG key {gpg_key}.
Update version {version} of provider {id} to protocol {protocol} with key {gpg_key}.
DELETE /iacm/api/providers/{id}/version/{version}/file/{filename} Delete a file from an unsynced provider version · Delete file from a non synced provider version #
Ask an LLM
“Can I remove one uploaded binary from a provider version that hasn't been synced yet?”
“How do I fix a wrong file I uploaded to a provider version?”
Tell an agent destructive · confirm first
Delete file {filename} from version {version} of provider {id}.
Remove the uploaded {filename} from provider {id} release {version}.
POST /iacm/api/providers/{id}/version/{version}/files Upload files to a provider version · Upload files #
Ask an LLM
“How do I upload provider binaries, checksums and signatures to a version in the registry?”
“What header do I need to set when uploading files to a provider version?”
Tell an agent
Upload the build files for provider {id} version {version}.
Upload {disposition} to provider {id} version {version}.
POST /iacm/api/providers/{id}/version/{version}/publish Publish a provider version · Publish a provider version #
Ask an LLM
“How do I make a provider version available to Terraform once its files are uploaded?”
“Can I publish a provider release so workspaces can start using it?”
Tell an agent
Publish version {version} of provider {id}.
Release provider {id} {version} to the registry now.
POST /iacm/api/providers/{type} Create a provider in the registry · Create provider #
Ask an LLM
“How do I add a new custom Terraform provider to the Harness IaCM registry?”
“Can I give a new registry provider a description when creating it?”
Tell an agent
Create a new registry provider of type {type}.
Register provider {type} with the description {description}.
GET /iacm/api/providers/get-provider-domain Get the provider registry domain · Get the provider domain #
Ask an LLM
“What hostname should Terraform use as the source domain for our private providers?”
“Where is our account's provider registry domain shown?”
Tell an agent
Get the provider registry domain for Harness account {account}.
Tell me which domain to reference in Terraform provider source addresses.
GET /iacm/api/providers/keys List GPG signing keys · List signing keys #
Ask an LLM
“Which GPG signing keys are uploaded for signing our providers?”
“Can I search our account's provider signing keys by name?”
Tell an agent
List every GPG signing key on the account.
Find provider signing keys matching {term}.
POST /iacm/api/providers/keys Upload a GPG signing key · Upload signing key #
Ask an LLM
“How do I add a GPG public key so provider versions can be signed?”
“What fields does the registry need to store a new signing key?”
Tell an agent
Upload signing key {key_name} with key ID {key_id} for {user}.
Add the ASCII-armored key {armor} as {key_name}, key ID {key_id}, owned by {user}.
DELETE /iacm/api/providers/keys/{id} Delete a GPG signing key · Delete a signing key for a provider #
Ask an LLM
“How do I remove a compromised GPG key from the provider registry?”
“Can I delete a signing key we no longer sign providers with?”
Tell an agent destructive · confirm first
Delete signing key {id} from the provider registry.
Remove the GPG key {id} so it can no longer sign providers.
PUT /iacm/api/providers/keys/{id} Update a stored GPG signing key · Update a signing key for a provider #
Ask an LLM
“Can I replace the armored public key on a signing key already in the registry?”
“How do I rename or reassign an existing provider signing key?”
Tell an agent
Update signing key {id} to name {key_name} and key ID {key_id} for {user}.
Replace the armored key on signing key {id} with {armor}, keeping name {key_name}, ID {key_id}, user {user}.
POST /iacm/api/providers/lifecycle/batch-check Batch-check providers for lifecycle violations · Batch check provider lifecycle status #
Ask an LLM
“Which providers resolved during terraform init are using deprecated or warning versions?”
“Can I check a whole list of providers at once and get only the lifecycle violations back?”
Tell an agent
Check these providers from terraform init for lifecycle violations: {items}.
Return only the lifecycle violations for the provider list {items}.
GET /iacm/provider/account/{account}/{type}/{version}/download/{os}/{arch} Get download info for a provider build · Get provider download information #
Ask an LLM
“Where does Terraform get the download URL for a provider build on my OS and CPU architecture?”
“What download information does the registry return for a provider version on linux amd64?”
Tell an agent
Get download info for provider {type} {version} on {os}/{arch} in account {account}.
Show where to download {type} version {version} for {os} {arch} from account {account}.
GET /iacm/provider/account/{account}/{type}/{version}/download/{os}/{arch}/{filetype} Download a provider binary, checksum or signature · Get provider file #
Ask an LLM
“How do I download the actual provider binary, SHA checksums or signature file?”
“Does downloading a provider file need a token?”
Tell an agent
Download the {filetype} file for {type} {version} on {os}/{arch} in account {account} with token {token}.
Fetch the checksums file for provider {type} {version} {os} {arch}, account {account}, token {token}.
GET /iacm/provider/account/{account}/{type}/versions List available versions of a provider · List provider versions #
Ask an LLM
“Which versions of a provider can Terraform install from our account's registry?”
“What releases of a given provider type are available to download?”
Tell an agent
List available versions of provider {type} in account {account}.
Show every downloadable release of {type} for account {account}.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/harness:harness-provider-registry-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

harness-provider-registry-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Harness Provider Registry API
  version: '1.0'
  description: The Harness Software Delivery Platform uses OpenAPI Specification v3.0.
  contact:
    name: API Support
    email: contact@harness.io
    url: https://harness.io/
  x-logo:
    url: https://mma.prnewswire.com/media/779232/Harnes_logo_horizontal.jpg?p=facebook
    altText: Harness
  termsOfService: https://harness.io/terms-of-use/
servers:
- url: https://app.harness.io
  description: Harness host URL
- url: https://{vanity}
  description: Vanity URL
  variables:
    vanity:
      default: app.harness.io
security:
- x-api-key: []
tags:


# --- truncated at 32 KB (141 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/harness/refs/heads/main/openapi/harness-provider-registry-api-openapi.yml