Skip to content

API Docs

ApiTerraformWellKnown

/.well-known/terraform.json

Terraform .well-known discovery

GET

Return well-known JSON

PrometheusMetrics

/metrics

Provide usage analytics for Prometheus scraper

GET

Return Prometheus metrics for global statistics and module provider statistics

ApiModuleList

/v1/modules

/v1/modules/

GET

Return list of modules.

ApiModuleSearch

/v1/modules/search

/v1/modules/search/

GET

Search for modules, given query string, namespace or provider.

ApiNamespaceModules

/v1/modules/<string:namespace>

/v1/modules/<string:namespace>/

Interface to obtain list of modules in namespace.

GET

Return list of modules in namespace

ApiModuleDetails

/v1/modules/<string:namespace>/<string:name>

/v1/modules/<string:namespace>/<string:name>/

GET

Return latest version for each module provider.

ApiModuleProviderDetails

/v1/modules/<string:namespace>/<string:name>/<string:provider>

/v1/modules/<string:namespace>/<string:name>/<string:provider>/

GET

Return list of version.

ApiModuleVersions

/v1/modules/<string:namespace>/<string:name>/<string:provider>/versions

/v1/modules/<string:namespace>/<string:name>/<string:provider>/versions/

GET

Return list of version.

ApiModuleVersionDetails

/v1/modules/<string:namespace>/<string:name>/<string:provider>/<string:version>

/v1/modules/<string:namespace>/<string:name>/<string:provider>/<string:version>/

GET

Return list of version.

ApiModuleVersionDownload

/v1/modules/<string:namespace>/<string:name>/<string:provider>/download

/v1/modules/<string:namespace>/<string:name>/<string:provider>/<string:version>/download

Provide download endpoint.

GET

Provide download header for location to download source.

ApiModuleProviderDownloadsSummary

/v1/modules/<string:namespace>/<string:name>/<string:provider>/downloads/summary

Provide download summary for module provider.

GET

Return list of download counts for module provider.

ApiProviderList

/v1/providers

/v1/providers/

Interface to list all providers

GET

Return list of modules.

ApiNamespaceProviders

/v1/providers/<string:namespace>

/v1/providers/<string:namespace>/

/v1/terrareg/providers/<string:namespace>

Interface to obtain list of providers in namespace.

GET

Return list of providers in namespace

ApiProvider

/v1/providers/<string:namespace>/<string:provider>

/v1/providers/<string:namespace>/<string:provider>/<string:version>

GET

Return provider details.

ApiTerraregProviderIntegrations

/v1/terrareg/providers/<string:namespace>/<string:provider>/integrations

Interface to provide list of integration URLs

GET

Return list of integration URLs

ApiProviderVersions

/v1/providers/<string:namespace>/<string:provider>/versions

GET

Return provider version details.

POST

Return provider version details.

Arguments
Argument Location (JSON POST body or query string argument) Type Required Default Help
version json str True None Version to be indexed
csrf_token json str False None CSRF Token

ApiProviderVersionDownload

/v1/providers/<string:namespace>/<string:provider>/<string:version>/download/<string:os>/<string:arch>

GET

Return provider details.

ApiProviderSearch

/v1/providers/search

GET

Search for modules, given query string, namespace or provider.

ApiV2Provider

/v2/providers/<string:namespace>/<string:provider>

Interface for providing provider details

GET

Return provider details.

Arguments
Argument Location (JSON POST body or query string argument) Type Required Default Help
include args str False `` List of linked resources to include in response. Currently supports: provider-versions, categories

ApiProviderProviderDownloadSummary

/v2/providers/<int:provider_id>/downloads/summary

Interface for providing download summary for providers

GET

Return download summary.

ApiV2ProviderDocs

/v2/provider-docs

Interface for querying provider docs

GET

Query provider version documentation.

This API is very static and requires all arguments to be passed. Page size, is effectively unused, as the query filters will result in 0 or 1 result.

Arguments
Argument Location (JSON POST body or query string argument) Type Required Default Help
filter[provider-version] args int True None Provider version ID to query documenation from
filter[category] args str True None Provider documentation category
filter[slug] args str True None Slug of documentation to query for
filter[language] args str True None Documentation language to filter results
page[size] args int True None Result page size

ApiV2ProviderDoc

/v2/provider-docs/<int:doc_id>

Interface for obtain provider doc details

GET

Obtain details about provider document

Arguments
Argument Location (JSON POST body or query string argument) Type Required Default Help
output args str False md Content output type, either "html" or "md"

ApiGpgKeys

/v2/gpg-keys

Provide interface to create GPG Keys.

GET

Lists GPG keys for given namespaces

Arguments
Argument Location (JSON POST body or query string argument) Type Required Default Help
filter[namespace] args str True None Comma-separated list of namespaces to obtain GPG keys for

POST

Handle creation of GPG key.

POST Body must be JSON, in the format:

{
    "data": {
        "type": "gpg-keys",
        "attributes": {
            "namespace": "my-namespace",
            "ascii-armor": "-----BEGIN PGP PUBLIC KEY BLOCK-----
...
-----END PGP PUBLIC KEY BLOCK-----
"
        },
        "csrf_token": "xxxaaabbccc"
    }
}

ApiGpgKey

/v2/gpg-keys/<string:namespace>/<string:key_id>

Provide interface to create GPG Keys.

GET

Get details for a given GPG key for a namespace

DELETE

Perform deletion of GPG key

Arguments
Argument Location (JSON POST body or query string argument) Type Required Default Help
csrf_token json str False None CSRF token

ApiProviderCategories

/v2/categories

Interface to obtain list of provider categories.

GET

Return list of all provider categories

ApiTerraregGraphData

/v1/terrareg/modules/<string:namespace>/<string:name>/<string:provider>/<string:version>/graph/data

/v1/terrareg/modules/<string:namespace>/<string:name>/<string:provider>/<string:version>/graph/data/submodule/<path:submodule_path>

/v1/terrareg/modules/<string:namespace>/<string:name>/<string:provider>/<string:version>/graph/data/example/<path:example_path>

Interface to obtain module version graph data.

GET

Return graph data for module version.

ApiOpenIdInitiate

/openid/login

Interface to initiate authentication via OpenID connect

GET

Generate session for storing OpenID state token and redirect to OpenID login provider.

ApiOpenIdCallback

/openid/callback

Interface to handle callback from authorization flow from OpenID connect

GET

Handle response from OpenID callback

ApiSamlInitiate

/saml/login

Interface to initiate authentication via OpenID connect

GET

Setup authentication request to redirect user to SAML provider.

POST

Handle POST request.

ApiSamlMetadata

/saml/metadata

Meta-data endpoint for SAML

GET

Return SAML SP metadata.

GithubLoginInitiate

/<string:provider_source>/login

Interface to initiate authentication via Github

GET

Redirect to github login.

GithubLoginCallback

/<string:provider_source>/callback

Interface to handle call-back from Github login

GET

Handle callback from Github auth.

GithubAuthStatus

/<string:provider_source>/auth/status

Interface to provide details about current authentication status with Github

GET

Provide authentication status.

GithubOrganisations

/<string:provider_source>/organizations

Interface to provide details about current Github organisations for the logged in user

GET

Provide organisation details.

GithubRepositories

/<string:provider_source>/repositories

Interface to provide details about current Github repositories for the logged in user

GET

Provide organisation details.

GithubRefreshNamespace

/<string:provider_source>/refresh-namespace

Interface to refresh repositories for a namespaces from a provider source

POST

Refresh repositories for given namespace.

Arguments
Argument Location (JSON POST body or query string argument) Type Required Default Help
namespace json str True None Namespace to refresh repositories for
csrf_token json str True None CSRF token

GithubRepositoryPublishProvider

/<string:provider_source>/repositories/<int:repository_id>/publish-provider

Interface publish a repository as a provider

POST

Publish repository provider.

Arguments
Argument Location (JSON POST body or query string argument) Type Required Default Help
category_id form int True None Provider category ID for provider
csrf_token form str False None CSRF Token

ApiTerraregConfig

/v1/terrareg/config

Endpoint to return config used by UI.

GET

Return config.

ApiTerraregGitProviders

/v1/terrareg/git_providers

Interface to obtain git provider configurations.

GET

Return list of git providers

ApiTerraregGlobalStatsSummary

/v1/terrareg/analytics/global/stats_summary

Provide global download stats for homepage.

GET

Return number of namespaces, modules, module versions and downloads

ApiTerraregMostRecentlyPublishedModuleVersion

/v1/terrareg/analytics/global/most_recently_published_module_version

Return data for most recently published module version.

GET

Return number of namespaces, modules, module versions and downloads

ApiTerraregGlobalUsageStats

/v1/terrareg/analytics/global/usage_stats

Provide interface to obtain statistics about global module usage.

GET

Return stats on total module providers, total unique analytics tokens per module (with and without auth token).

ApiTerraregModuleProviderAnalyticsTokenVersions

/v1/terrareg/analytics/<string:namespace>/<string:name>/<string:provider>/token_versions

Provide download summary for module provider.

GET

Return list of download counts for module provider.

ApiTerraregMostDownloadedModuleProviderThisWeek

/v1/terrareg/analytics/global/most_downloaded_module_provider_this_week

Return data for most downloaded module provider this week.

GET

Return most downloaded module this week

ApiTerraregInitialSetupData

/v1/terrareg/initial_setup

Interface to provide data to the initial setup page.

GET

Return information for steps for setting up Terrareg.

ApiTerraregNamespaces

/v1/terrareg/namespaces

Provide interface to obtain namespaces.

GET

Return list of namespaces.

The offset/limit arguments are currently optional. Without them, all namespaces will be returned in a list (legacy response format). Providing these values will return an object with a meta object and a list of namespaces.

Arguments
Argument Location (JSON POST body or query string argument) Type Required Default Help
only_published args boolean False False Whether to only show namespaces with published modules or providers
type args str False module Type of namespace to show results for. Either "provider" or "module"
offset args int False 0 Pagination offset
limit args int False None Pagination limit

POST

Create namespace.

ApiTerraregNamespaceDetails

/v1/terrareg/namespaces/<string:namespace>

Interface to obtain custom terrareg namespace details.

GET

Return custom terrareg config for namespace.

POST

Edit name/display name of a namespace

DELETE

Delete namespace

JSON body: * csrf_token - CSRF token required for session-based authentication

ApiTerraregNamespaceModules

/v1/terrareg/modules/<string:namespace>

Interface to obtain list of modules in namespace.

GET

Return list of modules in namespace

ApiTerraregModuleProviders

/v1/terrareg/modules/<string:namespace>/<string:name>

Interface to obtain list of providers for module.

GET

Return list of modules in namespace

ApiTerraregModuleVersionDetails

/v1/terrareg/modules/<string:namespace>/<string:name>/<string:provider>

/v1/terrareg/modules/<string:namespace>/<string:name>/<string:provider>/<string:version>

Interface to obtain module provider/version details.

GET

Return details about module version.

Arguments
Argument Location (JSON POST body or query string argument) Type Required Default Help
target_terraform_version args str False None Provide terraform version to show compatibility with search results.
output args str False md Variable/Output description format, either "html" or "md"

ApiTerraregModuleProviderVersions

/v1/terrareg/modules/<string:namespace>/<string:name>/<string:provider>/versions

Interface to obtain module provider versions

GET

Return list of module versions for module provider

ApiTerraregModuleProviderCreate

/v1/terrareg/modules/<string:namespace>/<string:name>/<string:provider>/create

Provide interface to create module provider.

POST

Handle update to settings.

Arguments
Argument Location (JSON POST body or query string argument) Type Required Default Help
git_provider_id json str False None ID of the git provider to associate to module provider.
repo_base_url_template json str False None Templated base git URL.
repo_clone_url_template json str False None Templated git clone URL.
repo_browse_url_template json str False None Templated URL for browsing repository.
git_tag_format json str False None Module provider git tag format.
git_path json str False None Path within git repository that the module exists.
archive_git_path json boolean False False Whether to generate module archives from the git_path directory. Otherwise, archives are generated from the root
csrf_token json str False None CSRF token

ApiTerraregModuleProviderDelete

/v1/terrareg/modules/<string:namespace>/<string:name>/<string:provider>/delete

Provide interface to delete module provider.

DELETE

Delete module provider.

ApiTerraregModuleProviderSettings

/v1/terrareg/modules/<string:namespace>/<string:name>/<string:provider>/settings

Provide interface to update module provider settings.

POST

Handle update to settings.

Arguments
Argument Location (JSON POST body or query string argument) Type Required Default Help
git_provider_id json str False None ID of the git provider to associate to module provider.
repo_base_url_template json str False None Templated base git repository URL.
repo_clone_url_template json str False None Templated git clone URL.
repo_browse_url_template json str False None Templated URL for browsing repository.
git_tag_format json str False None Module provider git tag format.
git_path json str False None Path within git repository that the module exists.
archive_git_path json boolean False None Whether to generate module archives from the git_path directory. Otherwise, archives are generated from the root
verified json boolean False None Whether module provider is marked as verified.
namespace json str False None Name of new namespace to move module/module provider to a new namespace
module json str False None New name of module
provider json str False None New provider for module
csrf_token json str False None CSRF token

ApiTerraregModuleProviderIntegrations

/v1/terrareg/modules/<string:namespace>/<string:name>/<string:provider>/integrations

Interface to provide list of integration URLs

GET

Return list of integration URLs

ApiTerraregModuleProviderRedirects

/v1/terrareg/modules/<string:namespace>/<string:name>/<string:provider>/redirects

Provide interface to delete module provider redirect.

GET

Delete module provider.

ApiTerraregModuleProviderRedirectDelete

/v1/terrareg/modules/<string:namespace>/<string:name>/<string:provider>/redirects/<string:module_provider_redirect_id>

Provide interface to delete module provider redirect.

DELETE

Delete module provider.

ApiModuleVersionCreateBitBucketHook

/v1/terrareg/modules/<string:namespace>/<string:name>/<string:provider>/hooks/bitbucket

Provide interface for Bitbucket hook to detect pushes of new tags.

POST

Create new version based on Bitbucket hooks.

ApiModuleVersionCreateGitHubHook

/v1/terrareg/modules/<string:namespace>/<string:name>/<string:provider>/hooks/github

Provide interface for GitHub hook to detect new and changed releases.

POST

Create, update or delete new version based on GitHub release hooks.

ApiTerraregModuleVersionVariableTemplate

/v1/terrareg/modules/<string:namespace>/<string:name>/<string:provider>/<string:version>/variable_template

Provide variable template for module version.

GET

Return variable template.

Arguments
Argument Location (JSON POST body or query string argument) Type Required Default Help
output args str False md Variable/Output description format, either "html" or "md"

ApiTerraregModuleVersionFile

/v1/terrareg/modules/<string:namespace>/<string:name>/<string:provider>/<string:version>/files/<string:path>

Interface to obtain content of module version file.

GET

Return content of module version file.

ApiTerraregModuleVersionReadmeHtml

/v1/terrareg/modules/<string:namespace>/<string:name>/<string:provider>/<string:version>/readme_html

Provide variable template for module version.

GET

Return variable template.

ApiModuleVersionUpload

/v1/terrareg/modules/<string:namespace>/<string:name>/<string:provider>/<string:version>/upload

POST

Handle module version upload.

ApiModuleVersionCreate

/v1/terrareg/modules/<string:namespace>/<string:name>/<string:provider>/<string:version>/import

Provide interface to create release for git-backed modules.

DEPRECATION NOTICE

This API maybe removed in future. This deprecation is still in discussion.

Consider migrating to '/v1/terrareg/modules////import'

POST

Handle creation of module version.

ApiModuleVersionImport

/v1/terrareg/modules/<string:namespace>/<string:name>/<string:provider>/import

Provide interface to import/index version for git-backed modules.

POST

Handle creation of module version.

Arguments
Argument Location (JSON POST body or query string argument) Type Required Default Help
version json str False None The semantic version number of the module to be imported. This can only be used if the git tag format of the module provider contains a {version} placeholder. Conflicts with git_tag
git_tag json str False None The git tag of the module to be imported. Conflicts with version.

ApiModuleVersionSourceDownload

/v1/terrareg/modules/<string:namespace>/<string:name>/<string:provider>/<string:version>/source.zip

Return source package of module version

GET

Return static file.

ApiTerraregModuleVersionPublish

/v1/terrareg/modules/<string:namespace>/<string:name>/<string:provider>/<string:version>/publish

Provide interface to publish module version.

POST

Publish module.

ApiTerraregModuleVersionDelete

/v1/terrareg/modules/<string:namespace>/<string:name>/<string:provider>/<string:version>/delete

Provide interface to delete module version.

DELETE

Delete module version.

ApiTerraregModuleVerisonSubmodules

/v1/terrareg/modules/<string:namespace>/<string:name>/<string:provider>/<string:version>/submodules

Interface to obtain list of submodules in module version.

GET

Return list of submodules.

ApiTerraregSubmoduleDetails

/v1/terrareg/modules/<string:namespace>/<string:name>/<string:provider>/<string:version>/submodules/details/<path:submodule>

Interface to obtain submodule details.

GET

Return details of submodule.

ApiTerraregSubmoduleReadmeHtml

/v1/terrareg/modules/<string:namespace>/<string:name>/<string:provider>/<string:version>/submodules/readme_html/<path:submodule>

Interface to obtain submodule REAMDE in HTML format.

GET

Return HTML formatted README of submodule.

ApiTerraregModuleVersionExamples

/v1/terrareg/modules/<string:namespace>/<string:name>/<string:provider>/<string:version>/examples

Interface to obtain list of examples in module version.

GET

Return list of examples.

ApiTerraregExampleDetails

/v1/terrareg/modules/<string:namespace>/<string:name>/<string:provider>/<string:version>/examples/details/<path:example>

Interface to obtain example details.

GET

Return details of example.

ApiTerraregExampleReadmeHtml

/v1/terrareg/modules/<string:namespace>/<string:name>/<string:provider>/<string:version>/examples/readme_html/<path:example>

Interface to obtain example REAMDE in HTML format.

GET

Return HTML formatted README of example.

ApiTerraregExampleFileList

/v1/terrareg/modules/<string:namespace>/<string:name>/<string:provider>/<string:version>/examples/filelist/<path:example>

Interface to obtain list of example files.

GET

Return list of files available in example.

ApiTerraregExampleFile

/v1/terrareg/modules/<string:namespace>/<string:name>/<string:provider>/<string:version>/examples/file/<path:example_file>

Interface to obtain content of example file.

GET

Return content of example file in example module.

ApiTerraregProviderLogos

/v1/terrareg/provider_logos

Provide interface to obtain all provider logo details

GET

Return all details about provider logos.

ApiTerraregModuleSearchFilters

/v1/terrareg/search_filters

/v1/terrareg/modules/search/filters

Return list of filters available for search.

Deprecation: The /v1/terrareg/search_filters endpoint has been deprecated in favour of /v1/terrareg/modules/search/filters

The previous endpoint will be removed in a future major release.

GET

Return list of available filters and filter counts for search query.

ApiTerraregProviderSearchFilters

/v1/terrareg/providers/search/filters

Return list of filters available for provider search.

GET

Return list of available filters and filter counts for search query.

ApiTerraregAuditHistory

/v1/terrareg/audit-history

Interface to obtain audit history

GET

Obtain audit history events

ApiTerraregAuthUserGroups

/v1/terrareg/user-groups

Interface to list and create user groups.

GET

Obtain list of user groups.

POST

Create user group

ApiTerraregAuthUserGroup

/v1/terrareg/user-groups/<string:user_group>

Interface to interact with single user group.

DELETE

Delete user group.

ApiTerraregAuthUserGroupNamespacePermissions

/v1/terrareg/user-groups/<string:user_group>/permissions/<string:namespace>

Interface to create user groups namespace permissions.

POST

Create user group namespace permission

DELETE

Delete user group namespace permission

ApiTerraregAdminAuthenticate

/v1/terrareg/auth/admin/login

Interface to perform authentication as an admin and set appropriate cookie.

POST

Handle POST requests to the authentication endpoint.

ApiTerraregIsAuthenticated

/v1/terrareg/auth/admin/is_authenticated

Interface to return whether user is authenticated as an admin.

GET

Return information about current user.

ApiTerraregVersion

/v1/terrareg/version

Interface to obtain version of Terrareg.

GET

Return version

ApiTerraregHealth

/v1/terrareg/health

Endpoint to return 200 when healthy.

GET

Return static 200