Terraform website screenshot

Terraform

HashiCorp Terraform is an open-source infrastructure-as-code tool that enables teams to define, provision, and manage cloud infrastructure using a declarative configuration language (HCL). HCP Terraform and Terraform Enterprise expose a comprehensive REST API for automating workspace management, runs, state, policies, and access control.

Terraform publishes 9 APIs on the APIs.io network, including Modules API, Organizations API, Policies API, and 6 more. Tagged areas include Infrastructure As Code, Cloud Infrastructure, DevOps, Open Source, and HashiCorp.

The Terraform catalog on APIs.io includes 1 JSON-LD context and 2 Spectral governance rulesets.

Terraform’s developer surface includes authentication, changelog, CLI, developer portal, engineering blog, and 36 more developer resources.

56.9/100 strong ▬ flat Agent 49/100 agent ready Full breakdown ↓
scored 2026-07-28 · rubric v0.6
AccessFreemiumSelf serve⚡ Free to try
9 APIs 1 MCP Servers
Infrastructure As CodeCloud InfrastructureDevOpsOpen SourceHashiCorp

Kin Score

Kin Score Kin Score How this is scored →
scored 2026-07-28 · rubric v0.6
Composite quality — 56.9/100 · strong
Contract Quality 16.2 / 25
Developer Ergonomics 8.7 / 20
Commercial Clarity 9.5 / 20
Operational Transparency 6.2 / 13
Governance 7.1 / 12
Discoverability 9.3 / 10
Agent readiness — 49/100 · agent ready
Machine-Readable Contract 18 / 18
Agentic Access Contract 10 / 10
MCP Server 12 / 12
Machine-Readable Auth 10 / 10
Idempotency 0 / 9
Stable Error Semantics 8 / 8
Request/Response Examples 0 / 7
Rate-Limit Signaling 7 / 7
Typed Event Surface 0 / 6
Agent Skills 0 / 5
Well-Known Catalog 4 / 4
Consent & Bot Identity 0 / 3
A2A Agent Card 0 / 8
Dry-Run / Simulate Mode 0 / 4
Improve this rating by publishing the missing artifacts — every area above can be raised, and the full rubric is at apis.io/rating/. This rating is computed from github.com/api-evangelist/terraform: open an issue to ask a question, or submit a pull request to add artifacts. Want it done for you? Prioritized profiling — $2,500 →

APIs 9

Individual APIs this provider publishes, each with its own machine-readable definition.

Terraform Modules API

Browse and search Terraform modules in the public registry

Terraform Organizations API

Manage HCP Terraform organizations

Terraform Policies API

Manage Sentinel and OPA policies

Terraform Projects API

Manage projects within organizations

Terraform Runs API

Manage Terraform runs and plan/apply lifecycle

Terraform State Versions API

Manage workspace state versions

Terraform Teams API

Manage teams and memberships

Terraform Variables API

Manage workspace and variable sets

Terraform Workspaces API

Manage infrastructure workspaces

Scroll for all 9

Open Collections 2

Open, tool-agnostic API collections (OpenAPI-derived and Bruno).

HCP Terraform API

OPEN COLLECTION

Terraform Registry API

OPEN COLLECTION

Arazzo Workflows 13

Multi-step API workflows described with the Arazzo specification.

Terraform Audit a Namespace's Published Modules

List everything a namespace publishes, then read the flagship module's versions and download metrics.

ARAZZO

Terraform Audit an Organization's Full Inventory

Sweep an organization for its projects, workspaces, teams, and policies in one pass.

ARAZZO

Terraform Find and Cancel a Stuck Run

Locate an in-flight run on a workspace, cancel it, and unlock the workspace.

ARAZZO

Terraform Destroy Infrastructure and Delete the Workspace

Queue a destroy run, apply it, then delete the emptied workspace.

ARAZZO

Terraform Discover a Registry Module and Vet It

Search the public registry for a module, read its latest version, and check its versions and download counts.

ARAZZO

Terraform Push a New State Version Under Lock

Lock a workspace, read its current state serial, upload a new state version, and unlock.

ARAZZO

Terraform Onboard a Sentinel or OPA Policy

Check whether a policy already exists in an organization, create it if not, and read it back.

ARAZZO

Terraform Onboard a Project and Its First Workspace

Create a project in an organization, place a workspace in it, and list the project's workspaces.

ARAZZO

Terraform Onboard a Team into an Organization

Check an organization's teams for a name, create the team if missing, and read it back.

ARAZZO

Terraform Pin a Module to a Specific Version and Resolve Its Source

Compare a module's latest version against the version you intend to pin, then resolve that exact version's download source.

ARAZZO

Terraform Plan a Run and Apply or Discard It

Queue a run, poll the plan to completion, then confirm or throw it away.

ARAZZO

Terraform Provision a Workspace with Initial Variables

Verify an organization, create a workspace, seed its variables, and read it back.

ARAZZO

Terraform Upsert a Workspace Variable

Set a workspace variable to a value whether or not it already exists.

ARAZZO

Scroll for all 13

MCP Servers 1

Model Context Protocol servers that expose these APIs to AI agents.

terraform-mcp.yml

MCP SERVER

Pricing Plans 1

Published pricing tiers and plan structures.

Rate Limits 1

Documented rate limits and quota policies.

Terraform Rate Limits

5 limits

RATE LIMITS

FinOps 1

Cost, billing, and metering signals for API financial operations.

Semantic Vocabularies 1

JSON-LD contexts and semantic vocabularies used across these APIs.

Terraform Context

33 classes · 0 properties

JSON-LD

Spectral Rules 2

Spectral governance rulesets for linting and validating these APIs.

Terraform API Rules

10 rules · 1 errors 8 warnings 1 info

SPECTRAL

Terraform API Rules

5 rules · 3 warnings 2 info

SPECTRAL

JSON Schema 2

Standalone JSON Schema definitions for this provider's data models.

Terraform Run

4 properties

JSON SCHEMA

Terraform Workspace

4 properties

JSON SCHEMA

JSON Structure 1

JSON Structure definitions describing this provider's data shapes.

Terraform Workspace Structure

0 properties

JSON STRUCTURE

Examples 2

Example request and response payloads for these APIs.

Security Posture 4

Authentication, domain security, vulnerability disclosure, and trust-center signals.

Terraform Authentication

http · 1 scheme

SECURITY

Terraform Domain Security

TLSv1.3 · HSTS · DMARC

SECURITY

Terraform Vulnerability Disclosure

contact published

SECURITY

Terraform Trust Center

SOC 2 Type 2, ISO 27001, ISO 27017, ISO 27018

SECURITY

Agentic Access 1

Recommended x-agentic-access execution contracts for AI agents.

Terraform Agentic Access

48 operations · 23 acting

48 operations · 23 acting

AGENTIC

Resources

Get Started 3

Portal, sign-up, and the first successful call

Agent Surfaces 4

MCP servers, agent skills, and machine-readable catalogs

Design & Contract 18

Pagination, idempotency, versioning, errors, and events

Scroll for all 18

Build 4

SDKs, sample code, and the tooling you integrate with

Access & Security 4

Authentication, authorization, and security posture

Operate 3

Status, limits, changes, and where to get help

Company 1

The organization behind the API

Other 4

Properties that don't map to a standard resource type

Source (apis.yml)

apis.yml Raw ↑
aid: terraform
name: Terraform
description: HashiCorp Terraform is an open-source infrastructure-as-code tool that enables teams to define, provision, and
  manage cloud infrastructure using a declarative configuration language (HCL). HCP Terraform and Terraform Enterprise expose
  a comprehensive REST API for automating workspace management, runs, state, policies, and access control.
type: Index
accessModel:
  pricing: freemium
  onboarding: self-serve
  trial: false
  try_now: true
  public: false
  label: Freemium · Self-serve signup
  confidence: high
  source:
  - plans
  - authentication
  generated: '2026-07-22'
  method: derived
image: https://kinlane-images.s3.amazonaws.com/shared/apis-json/icons/terraform.png
tags:
- Infrastructure As Code
- Cloud Infrastructure
- DevOps
- Open Source
- HashiCorp
url: https://raw.githubusercontent.com/api-evangelist/terraform/refs/heads/main/apis.yml
created: '2026-03-16'
modified: '2026-06-20'
specificationVersion: '0.19'
apis:
- aid: terraform:terraform-modules-api
  name: Terraform Modules API
  description: Browse and search Terraform modules in the public registry
  humanURL: https://developer.hashicorp.com/terraform/cloud-docs/api-docs
  baseURL: https://app.terraform.io/api/v2
  tags:
  - Modules
  properties:
  - type: OpenAPI
    url: openapi/terraform-modules-api-openapi.yml
  - type: Documentation
    url: https://developer.hashicorp.com/terraform/cloud-docs/api-docs
  - type: Documentation
    url: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/workspaces
  - type: Documentation
    url: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/run
  - type: Documentation
    url: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/state-versions
  - type: Documentation
    url: https://developer.hashicorp.com/terraform/registry/api-docs
- aid: terraform:terraform-organizations-api
  name: Terraform Organizations API
  description: Manage HCP Terraform organizations
  humanURL: https://developer.hashicorp.com/terraform/cloud-docs/api-docs
  baseURL: https://app.terraform.io/api/v2
  tags:
  - Organizations
  properties:
  - type: OpenAPI
    url: openapi/terraform-organizations-api-openapi.yml
  - type: Documentation
    url: https://developer.hashicorp.com/terraform/cloud-docs/api-docs
  - type: Documentation
    url: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/workspaces
  - type: Documentation
    url: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/run
  - type: Documentation
    url: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/state-versions
  - type: Documentation
    url: https://developer.hashicorp.com/terraform/registry/api-docs
- aid: terraform:terraform-policies-api
  name: Terraform Policies API
  description: Manage Sentinel and OPA policies
  humanURL: https://developer.hashicorp.com/terraform/cloud-docs/api-docs
  baseURL: https://app.terraform.io/api/v2
  tags:
  - Policies
  properties:
  - type: OpenAPI
    url: openapi/terraform-policies-api-openapi.yml
  - type: Documentation
    url: https://developer.hashicorp.com/terraform/cloud-docs/api-docs
  - type: Documentation
    url: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/workspaces
  - type: Documentation
    url: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/run
  - type: Documentation
    url: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/state-versions
  - type: Documentation
    url: https://developer.hashicorp.com/terraform/registry/api-docs
- aid: terraform:terraform-projects-api
  name: Terraform Projects API
  description: Manage projects within organizations
  humanURL: https://developer.hashicorp.com/terraform/cloud-docs/api-docs
  baseURL: https://app.terraform.io/api/v2
  tags:
  - Projects
  properties:
  - type: OpenAPI
    url: openapi/terraform-projects-api-openapi.yml
  - type: Documentation
    url: https://developer.hashicorp.com/terraform/cloud-docs/api-docs
  - type: Documentation
    url: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/workspaces
  - type: Documentation
    url: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/run
  - type: Documentation
    url: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/state-versions
  - type: Documentation
    url: https://developer.hashicorp.com/terraform/registry/api-docs
- aid: terraform:terraform-runs-api
  name: Terraform Runs API
  description: Manage Terraform runs and plan/apply lifecycle
  humanURL: https://developer.hashicorp.com/terraform/cloud-docs/api-docs
  baseURL: https://app.terraform.io/api/v2
  tags:
  - Runs
  properties:
  - type: OpenAPI
    url: openapi/terraform-runs-api-openapi.yml
  - type: Documentation
    url: https://developer.hashicorp.com/terraform/cloud-docs/api-docs
  - type: Documentation
    url: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/workspaces
  - type: Documentation
    url: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/run
  - type: Documentation
    url: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/state-versions
  - type: Documentation
    url: https://developer.hashicorp.com/terraform/registry/api-docs
- aid: terraform:terraform-state-versions-api
  name: Terraform State Versions API
  description: Manage workspace state versions
  humanURL: https://developer.hashicorp.com/terraform/cloud-docs/api-docs
  baseURL: https://app.terraform.io/api/v2
  tags:
  - State Versions
  properties:
  - type: OpenAPI
    url: openapi/terraform-state-versions-api-openapi.yml
  - type: Documentation
    url: https://developer.hashicorp.com/terraform/cloud-docs/api-docs
  - type: Documentation
    url: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/workspaces
  - type: Documentation
    url: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/run
  - type: Documentation
    url: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/state-versions
  - type: Documentation
    url: https://developer.hashicorp.com/terraform/registry/api-docs
- aid: terraform:terraform-teams-api
  name: Terraform Teams API
  description: Manage teams and memberships
  humanURL: https://developer.hashicorp.com/terraform/cloud-docs/api-docs
  baseURL: https://app.terraform.io/api/v2
  tags:
  - Teams
  properties:
  - type: OpenAPI
    url: openapi/terraform-teams-api-openapi.yml
  - type: Documentation
    url: https://developer.hashicorp.com/terraform/cloud-docs/api-docs
  - type: Documentation
    url: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/workspaces
  - type: Documentation
    url: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/run
  - type: Documentation
    url: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/state-versions
  - type: Documentation
    url: https://developer.hashicorp.com/terraform/registry/api-docs
- aid: terraform:terraform-variables-api
  name: Terraform Variables API
  description: Manage workspace and variable sets
  humanURL: https://developer.hashicorp.com/terraform/cloud-docs/api-docs
  baseURL: https://app.terraform.io/api/v2
  tags:
  - Variables
  properties:
  - type: OpenAPI
    url: openapi/terraform-variables-api-openapi.yml
  - type: Documentation
    url: https://developer.hashicorp.com/terraform/cloud-docs/api-docs
  - type: Documentation
    url: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/workspaces
  - type: Documentation
    url: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/run
  - type: Documentation
    url: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/state-versions
  - type: Documentation
    url: https://developer.hashicorp.com/terraform/registry/api-docs
- aid: terraform:terraform-workspaces-api
  name: Terraform Workspaces API
  description: Manage infrastructure workspaces
  humanURL: https://developer.hashicorp.com/terraform/cloud-docs/api-docs
  baseURL: https://app.terraform.io/api/v2
  tags:
  - Workspaces
  properties:
  - type: OpenAPI
    url: openapi/terraform-workspaces-api-openapi.yml
  - type: Documentation
    url: https://developer.hashicorp.com/terraform/cloud-docs/api-docs
  - type: Documentation
    url: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/workspaces
  - type: Documentation
    url: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/run
  - type: Documentation
    url: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/state-versions
  - type: Documentation
    url: https://developer.hashicorp.com/terraform/registry/api-docs
common:
- type: AgenticAccess
  url: agentic-access/terraform-agentic-access.yml
- type: DomainSecurity
  url: security/terraform-domain-security.yml
- type: Authentication
  url: authentication/terraform-authentication.yml
- type: Packages
  url: packages/terraform-packages.yml
- type: WellKnown
  url: well-known/terraform-well-known.yml
- type: MCPServer
  url: mcp/terraform-mcp.yml
- type: LLMsTxt
  url: llms/terraform-llms.txt
- type: Overlay
  name: HCP Terraform API Overlay
  url: overlays/terraform-hcp-terraform-overlay.yaml
- type: Overlay
  name: Terraform Registry API Overlay
  url: overlays/terraform-terraform-registry-overlay.yaml
- type: Conformance
  url: conformance/terraform-conformance.yml
- type: ErrorCatalog
  url: errors/terraform-problem-types.yml
- type: Lifecycle
  url: lifecycle/terraform-lifecycle.yml
- type: Conventions
  url: conventions/terraform-conventions.yml
- type: ChangeLog
  url: changelog/terraform-changelog.yml
- type: CLI
  url: cli/terraform-cli.yml
- type: DataModel
  url: data-model/terraform-data-model.yml
- type: VulnerabilityDisclosure
  url: security/terraform-vulnerability-disclosure.yml
- type: TrustCenter
  url: security/terraform-trust-center.yml
- name: HashiCorp Developer Portal
  url: https://developer.hashicorp.com/terraform
  type: Portal
- name: Terraform GitHub Organization
  url: https://github.com/hashicorp/terraform
  type: Repository
- name: Terraform Registry
  url: https://registry.terraform.io
  type: Portal
- name: HCP Terraform
  url: https://app.terraform.io
  type: Portal
- name: Terraform Changelog
  url: https://github.com/hashicorp/terraform/blob/main/CHANGELOG.md
  type: ChangeLog
- name: Terraform Community Forum
  url: https://discuss.hashicorp.com/c/terraform-core
  type: Forums
- name: Terraform GitHub CLI
  url: https://github.com/hashicorp/terraform
  type: Repository
- name: Terraform CDK
  url: https://github.com/hashicorp/terraform-cdk
  type: SDKs
- name: Terraform Go SDK
  url: https://github.com/hashicorp/go-tfe
  type: SDKs
- url: https://www.hashicorp.com/en/blog
  type: Blog
- type: Arazzo
  url: arazzo/terraform-provision-workspace-workflow.yml
  name: Terraform Provision a Workspace with Initial Variables
- type: Arazzo
  url: arazzo/terraform-plan-and-apply-run-workflow.yml
  name: Terraform Plan a Run and Apply or Discard It
- type: Arazzo
  url: arazzo/terraform-destroy-workspace-workflow.yml
  name: Terraform Destroy Infrastructure and Delete the Workspace
- type: Arazzo
  url: arazzo/terraform-upsert-workspace-variable-workflow.yml
  name: Terraform Upsert a Workspace Variable
- type: Arazzo
  url: arazzo/terraform-cancel-stuck-run-workflow.yml
  name: Terraform Find and Cancel a Stuck Run
- type: Arazzo
  url: arazzo/terraform-migrate-state-version-workflow.yml
  name: Terraform Push a New State Version Under Lock
- type: Arazzo
  url: arazzo/terraform-onboard-project-workflow.yml
  name: Terraform Onboard a Project and Its First Workspace
- type: Arazzo
  url: arazzo/terraform-onboard-policy-workflow.yml
  name: Terraform Onboard a Sentinel or OPA Policy
- type: Arazzo
  url: arazzo/terraform-onboard-team-workflow.yml
  name: Terraform Onboard a Team into an Organization
- type: Arazzo
  url: arazzo/terraform-audit-organization-inventory-workflow.yml
  name: Terraform Audit an Organization's Full Inventory
- type: Arazzo
  url: arazzo/terraform-discover-module-workflow.yml
  name: Terraform Discover a Registry Module and Vet It
- type: Arazzo
  url: arazzo/terraform-pin-module-version-workflow.yml
  name: Terraform Pin a Module to a Specific Version and Resolve Its Source
- type: Arazzo
  url: arazzo/terraform-audit-namespace-modules-workflow.yml
  name: Terraform Audit a Namespace's Published Modules
maintainers:
- FN: Kin Lane
  email: kin@apievangelist.com