Terraform
- Terraform Enterprise
- 1.1.x
- 1.0.x
- v202507-1
- v202506-1
- v202505-1
- v202504-1
- v202503-1
- v202502-2
- v202502-1
- v202501-1
- v202411-2
- v202411-1
- v202410-1
- v202409-3
- v202409-2
- v202409-1
- v202408-1
- No versions of this document exist before v202408-1. Click below to redirect to the version homepage.
- v202407-1
- v202406-1
- v202405-1
- v202404-2
- v202404-1
- v202402-2
- v202402-1
- v202401-2
- v202401-1
- v202312-1
- v202311-1
- v202310-1
- v202309-1
- v202308-1
- v202307-1
- v202306-1
- v202305-2
- v202305-1
- v202304-1
- v202303-1
- v202302-1
- v202301-2
- v202301-1
- v202212-2
- v202212-1
- v202211-1
- v202210-1
- v202209-2
- v202209-1
- v202208-3
- v202208-2
- v202208-1
- v202207-2
- v202207-1
- v202206-1
Diagnostics API reference
The diagnostics endpoint performs comprehensive health diagnostics of all Terraform Enterprise subsystems. It returns detailed status information for each component, including warnings and errors. You can customize the timeout and filter specific checks.
Perform diagnostics
This endpoint runs diagnostic checks on Terraform Enterprise subsystems. Authentication is required to use this endpoint. To generate a token for the endpoint, refer to Generate a system API token in the CLI reference documentation.
GET /api/v1/diagnostics
Query parameters
| Parameter | Type | Description |
|---|---|---|
timeout | integer | Optional. Diagnostic check timeout in seconds. Valid range is 1-300. Default is 30. |
check | array of strings | Optional. Filter checks to run by group or specific checks. Format: {group_name} or {group_name.check_name}. Use commas to separate multiple values in the URL, for example: ?check=redis,database.valid_config. If omitted, all checks run. |
Sample request
curl \
--header "Authorization: Bearer $TOKEN" \
--request GET \
"https://tfe.example.com:8443/api/v1/diagnostics?timeout=60&check=redis,database"
Sample response
[
{
"node": "84ebea16aab1",
"status": "OK",
"created_at": "2026-02-03T21:26:27.985512712Z",
"duration": 0.071152,
"checks": [
{
"group": "redis",
"status": "OK",
"checks": [
{
"name": "connection",
"status": "OK"
},
{
"name": "config",
"status": "OK"
},
{
"name": "version",
"status": "OK"
},
{
"name": "permissions",
"status": "OK"
}
]
},
{
"group": "database",
"status": "OK",
"checks": [
{
"name": "connection",
"status": "OK"
},
{
"name": "version",
"status": "OK"
},
{
"name": "extensions",
"status": "OK"
},
{
"name": "user_permissions",
"status": "OK"
}
]
}
]
}
]
Response attributes
The endpoint returns an array of diagnostic results with the following attributes. The response includes one array of results per node.
| Attribute | Type | Description |
|---|---|---|
node | string | Name of the node that performed the diagnostics |
status | string | Overall status of the diagnostics for this node: OK, WARNING, or ERROR. If subchecks have different statuses, the status is set to the highest severity: ERROR takes precedence over WARNING, which takes precedence over OK. |
created_at | datetime | When the diagnostics were performed |
duration | float | Time taken to run diagnostics in seconds |
checks | array of objects | Detailed results for each check group |
checks[].group | string | Name of the check group |
checks[].status | string | Status of the group: OK, WARNING, or ERROR |
checks[].checks | array of objects | Individual checks within the group |
checks[].checks[].name | string | Name of the individual check |
checks[].checks[].status | string | Status of the check: OK, WARNING, or ERROR |
Response codes
| Status | Response | Reason |
|---|---|---|
| 200 | JSON API document | Diagnostics completed successfully |
| 400 | JSON API error object | Invalid request parameters, such as timeout out of range |
| 406 | JSON API error object | Only application/json is supported |
| 429 | JSON API error object | Another diagnostic check is already running |
| 503 | JSON API document | One or more checks failed |
System API Overview
Terraform Enterprise Only: The System API is exclusive to Terraform Enterprise. It enables access to deployment configuration and data.
This API is distinct from the regular Admin API and the Backup and Restore API, with its own authentication mechanism.
Authentication
Requests to the /api/v1/ping and /api/v1/usage/bundle endpoints must be authenticated with a bearer token generated specifically for them using the tfectl admin api-token generate command. For more information on the token creation, and management, refer to the tfectl documentation.
Use the HTTP Header Authorization with the value Bearer <token>.
Rate Limiting
All System API endpoints are rate limited to 1 request per second per authentication token.
Port Configuration
By default, the System API is accessible on HTTPS port 8443. This port can be configured through the TFE_ADMIN_HTTPS_PORT environment variable in your deployment configuration.
Refer to Network settings in the configuration reference for more information about network configuration.
Versioning
The System API is versioned under the /api/v1 prefix and is separate from the main Terraform Enterprise API.
For example, if the API endpoint documentation defines the path /ping then the full path is /api/v1/ping.