List Terraform plans
GET
/api/v1/plans
const url = 'https://api.aletheia-ops.com/api/v1/plans';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://api.aletheia-ops.com/api/v1/plans \ --header 'Authorization: Bearer <token>'Authorizations
Section titled “Authorizations”Responses
Section titled “Responses”OK
Media typeapplication/json
A keyset-paginated plans list
object
items
Array<object>
One ingested plan (list view)
object
id
string
source
string
status
string
repository_id
string
repository_full_name
string
iac_project_id
string
pull_request_id
string
execution_id
string
project_path
string
workspace
string
commit_sha
string
branch
string
terraform_version
string
format_version
string
parse_error
string
counts
A plan’s action counts
object
add
integer
change
integer
replace
integer
destroy
integer
noop
integer
received_at
string format: date-time
parsed_at
string format: date-time
next_cursor
string
Examplegenerated
{ "items": [ { "id": "example", "source": "example", "status": "example", "repository_id": "example", "repository_full_name": "example", "iac_project_id": "example", "pull_request_id": "example", "execution_id": "example", "project_path": "example", "workspace": "example", "commit_sha": "example", "branch": "example", "terraform_version": "example", "format_version": "example", "parse_error": "example", "counts": { "add": 1, "change": 1, "replace": 1, "destroy": 1, "noop": 1 }, "received_at": "2026-04-15T12:00:00Z", "parsed_at": "2026-04-15T12:00:00Z" } ], "next_cursor": "example"}No valid credential was presented, or it has expired.
Media typeapplication/json
object
code
required
Stable, machine-readable identifier. Branch on this.
string
message
required
Human-readable explanation. Safe to display; do not parse.
string
Examples
{ "code": "unauthorized", "message": "authentication required"}{ "code": "invalid_credentials", "message": "invalid email or password"}{ "code": "invalid_token", "message": "invalid or expired token"}{ "code": "token_reuse", "message": "session revoked"}{ "code": "webhook_unauthorized", "message": "webhook verification failed"}Authenticated, but not permitted to perform this action.
Media typeapplication/json
object
code
required
Stable, machine-readable identifier. Branch on this.
string
message
required
Human-readable explanation. Safe to display; do not parse.
string
Examples
{ "code": "forbidden", "message": "you do not have permission to perform this action"}{ "code": "csrf_failed", "message": "missing or invalid CSRF token"}{ "code": "account_deactivated", "message": "your account is deactivated; contact your administrator"}{ "code": "ai_disabled", "message": "the AI assistant is disabled for this organization"}An unexpected failure. Diagnostic detail is logged server-side and
deliberately not returned. Quote the X-Request-Id response header when
reporting one.
Media typeapplication/json
object
code
required
Stable, machine-readable identifier. Branch on this.
string
message
required
Human-readable explanation. Safe to display; do not parse.
string
Examples
Exampleinternal_error
{ "code": "internal_error", "message": "internal server error"}