How AI is applied across API Evangelist and APIs.io. Read my AI disclosure →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

GitLab CI/CD terraform API

Operations about terraforms

GitLab CI/CD terraform API is one of 98 APIs that GitLab CI/CD publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

Tagged areas include Terraform. The published artifact set on APIs.io includes an OpenAPI specification, API documentation, an API reference, and authentication docs.

This API exposes 18 operations across 14 paths, and defines 5 schemas. It is described by OpenAPI 2.0, at version v4.

Requests are made against the base URL https://gitlab.com/api/v4.

18 operations 14 paths 5 schemas 3 DELETE10 GET3 POST2 PUT

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 2.0
API Version
v4
Base URL
https://gitlab.com/api/v4
Authentication
API Key, API Key
Resource Areas
1

Authentication & Security 2

GitLab CI/CD terraform API declares 2 security schemes for authenticating requests. An API key is passed in the header as PRIVATE-TOKEN (access_token_header). An API key is passed in the query as private_token (access_token_query).

Paths & Operations 18

Across 14 paths, the API surfaces 18 operations — 3 DELETE, 10 GET, 3 POST, 2 PUT. Each is listed below with its method, path, parameters, and response codes.

terraform 18

Operations about terraforms

GET
/api/v4/projects/{id}/packages/terraform/modules/{module_name}/{module_system}
Download the latest version of a module
getApiV4ProjectsIdPackagesTerraformModulesModuleNameModuleSystem 4 params → 204401403404
GET
/api/v4/projects/{id}/packages/terraform/modules/{module_name}/{module_system}/*module_version
Download a specific version of a module
getApiV4ProjectsIdPackagesTerraformModulesModuleNameModuleSystem*moduleVersion 5 params → 204401403404
PUT
/api/v4/projects/{id}/packages/terraform/modules/{module_name}/{module_system}/*module_version/file/authorize
Workhorse authorize Terraform Module package file
putApiV4ProjectsIdPackagesTerraformModulesModuleNameModuleSystem*moduleVersionFileAuthorize 4 params → 200403
PUT
/api/v4/projects/{id}/packages/terraform/modules/{module_name}/{module_system}/*module_version/file
Upload Terraform Module package file
putApiV4ProjectsIdPackagesTerraformModulesModuleNameModuleSystem*moduleVersionFile 5 params → 201400401403404
GET
/api/v4/projects/{id}/terraform/state/{name}
Get a Terraform state by its name
getApiV4ProjectsIdTerraformStateName 3 params → 200204403404422
POST
/api/v4/projects/{id}/terraform/state/{name}
Add a new Terraform state or update an existing one
postApiV4ProjectsIdTerraformStateName 3 params → 200204403422413
DELETE
/api/v4/projects/{id}/terraform/state/{name}
Delete a Terraform state of a certain name
deleteApiV4ProjectsIdTerraformStateName 2 params → 204403404422
POST
/api/v4/projects/{id}/terraform/state/{name}/authorize
Authorize Terraform state upload
postApiV4ProjectsIdTerraformStateNameAuthorize 2 params → 200400401403404
POST
/api/v4/projects/{id}/terraform/state/{name}/lock
Lock a Terraform state of a certain name
postApiV4ProjectsIdTerraformStateNameLock 3 params → 200403404409422
DELETE
/api/v4/projects/{id}/terraform/state/{name}/lock
Unlock a Terraform state of a certain name
deleteApiV4ProjectsIdTerraformStateNameLock 3 params → 204403404409422
GET
/api/v4/projects/{id}/terraform/state/{name}/versions/{serial}
Get a Terraform state version
getApiV4ProjectsIdTerraformStateNameVersionsSerial 3 params → 200403404
DELETE
/api/v4/projects/{id}/terraform/state/{name}/versions/{serial}
Delete a Terraform state version
deleteApiV4ProjectsIdTerraformStateNameVersionsSerial 3 params → 204403404
GET
/api/v4/packages/terraform/modules/v1/{module_namespace}/{module_name}/{module_system}/versions
List versions for a module
getApiV4PackagesTerraformModulesV1ModuleNamespaceModuleNameModuleSystemVersions 3 params → 200403
GET
/api/v4/packages/terraform/modules/v1/{module_namespace}/{module_name}/{module_system}/download
Get download location for the latest version of a module
getApiV4PackagesTerraformModulesV1ModuleNamespaceModuleNameModuleSystemDownload 3 params → 302403404
GET
/api/v4/packages/terraform/modules/v1/{module_namespace}/{module_name}/{module_system}
Get details about the latest version of a module
getApiV4PackagesTerraformModulesV1ModuleNamespaceModuleNameModuleSystem 3 params → 200403404
GET
/api/v4/packages/terraform/modules/v1/{module_namespace}/{module_name}/{module_system}/*module_version/download
Get download location for specific version of a module
getApiV4PackagesTerraformModulesV1ModuleNamespaceModuleNameModuleSystem*moduleVersionDownload 4 params → 204403404
GET
/api/v4/packages/terraform/modules/v1/{module_namespace}/{module_name}/{module_system}/*module_version/file
Download specific version of a module
getApiV4PackagesTerraformModulesV1ModuleNamespaceModuleNameModuleSystem*moduleVersionFile 4 params → 200403404
GET
/api/v4/packages/terraform/modules/v1/{module_namespace}/{module_name}/{module_system}/*module_version
Get details about specific version of a module
getApiV4PackagesTerraformModulesV1ModuleNamespaceModuleNameModuleSystem*moduleVersion 4 params → 200403404

Schemas 5

The contract defines 5 schemas that model the data the API accepts and returns. The most detailed are API_Entities_Terraform_ModuleVersion (8 properties), postApiV4ProjectsIdTerraformStateNameLock (7 properties), putApiV4ProjectsIdPackagesTerraformModulesModuleNameModuleSystem*moduleVersionFileAuthorize (1 property), postApiV4ProjectsIdTerraformStateName (1 property). Each schema is shown below with its type and property counts.

API_Entities_Terraform_ModuleVersions
object
APIEntitiesTerraformModuleVersions model
1 property 1 required
API_Entities_Terraform_ModuleVersion
object
APIEntitiesTerraformModuleVersion model
8 properties 8 required
postApiV4ProjectsIdTerraformStateName
object
Add a new Terraform state or update an existing one
1 property 1 required
postApiV4ProjectsIdTerraformStateNameLock
object
Lock a Terraform state of a certain name
7 properties 7 required
putApiV4ProjectsIdPackagesTerraformModulesModuleNameModuleSystem*moduleVersionFileAuthorize
object
Workhorse authorize Terraform Module package file
1 property 1 required

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

gitlab-ci-terraform-api-openapi.yml Raw ↑

Other APIs GitLab CI/CD publishes across the network.

GitLab GraphQL API
GitLab CI/CD access_requests API
GitLab CI/CD access_tokens API
GitLab CI/CD agents API
GitLab CI/CD alert_management API
GitLab CI/CD applications API
GitLab CI/CD attestations API
GitLab CI/CD audit_events API
GitLab CI/CD avatars API
GitLab CI/CD award_emoji API
GitLab CI/CD badges API
GitLab CI/CD batched_background_migrations API
Where this information came from

This is an independent, third-party profile of GitLab CI/CD terraform API, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.

The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.

Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.

info@apievangelist.com · Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.