Terraform
- Terraform Enterprise
- 1.0.x (latest)
- 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-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
OAuth Tokens
The oauth-token object represents a VCS configuration which includes the OAuth connection and the associated OAuth token. This object is used when creating a workspace to identify which VCS connection to use.
List OAuth Tokens
List all the OAuth Tokens for a given OAuth Client
GET /oauth-clients/:oauth_client_id/oauth-tokens
| Parameter | Description | 
|---|---|
| :oauth_client_id | The ID of the OAuth Client | 
| Status | Response | Reason | 
|---|---|---|
| 200 | JSON API document ( type: "oauth-tokens") | Success | 
| 404 | JSON API error object | OAuth Client not found, or user unauthorized to perform action | 
Query Parameters
This endpoint supports pagination with standard URL query parameters. Remember to percent-encode [ as %5B and ] as %5D if your tooling doesn't automatically encode URLs.  If neither pagination query parameters are provided, the endpoint will not be paginated and will return all results.
| Parameter | Description | 
|---|---|
| page[number] | Optional. If omitted, the endpoint will return the first page. | 
| page[size] | Optional. If omitted, the endpoint will return 20 oauth tokens per page. | 
Sample Request
curl \
  --header "Authorization: Bearer $TOKEN" \
  https://app.terraform.io/api/v2/oauth-clients/oc-GhHqb5rkeK19mLB8/oauth-tokens
Sample Response
{
  "data": [
    {
      "id": "ot-hmAyP66qk2AMVdbJ",
      "type": "oauth-tokens",
      "attributes": {
        "created-at":"2017-11-02T06:37:49.284Z",
        "service-provider-user":"skierkowski",
        "has-ssh-key": false
      },
      "relationships": {
        "oauth-client": {
          "data": {
            "id": "oc-GhHqb5rkeK19mLB8",
            "type": "oauth-clients"
          },
          "links": {
            "related": "/api/v2/oauth-clients/oc-GhHqb5rkeK19mLB8"
          }
        }
      },
      "links": {
        "self": "/api/v2/oauth-tokens/ot-hmAyP66qk2AMVdbJ"
      }
    }
  ]
}
Show an OAuth Token
GET /oauth-tokens/:id
| Parameter | Description | 
|---|---|
| :id | The ID of the OAuth token to show | 
| Status | Response | Reason | 
|---|---|---|
| 200 | JSON API document ( type: "oauth-tokens") | Success | 
| 404 | JSON API error object | OAuth Token not found, or user unauthorized to perform action | 
Sample Request
curl \
  --header "Authorization: Bearer $TOKEN" \
  --header "Content-Type: application/vnd.api+json" \
  --request GET \
  https://app.terraform.io/api/v2/oauth-tokens/ot-29t7xkUKiNC2XasL
Sample Response
{
  "data": {
    "id": "ot-29t7xkUKiNC2XasL",
    "type": "oauth-tokens",
    "attributes": {
      "created-at": "2018-08-29T14:07:22.144Z",
      "service-provider-user": "EM26Jj0ikRsIFFh3fE5C",
      "has-ssh-key": false
    },
    "relationships": {
      "oauth-client": {
        "data": {
          "id": "oc-WMipGbuW8q7xCRmJ",
          "type": "oauth-clients"
        },
        "links": {
          "related": "/api/v2/oauth-clients/oc-WMipGbuW8q7xCRmJ"
        }
      }
    },
    "links": {
      "self": "/api/v2/oauth-tokens/ot-29t7xkUKiNC2XasL"
    }
  }
}
Update an OAuth Token
PATCH /oauth-tokens/:id
| Parameter | Description | 
|---|---|
| :id | The ID of the OAuth token to update | 
| Status | Response | Reason | 
|---|---|---|
| 200 | JSON API document ( type: "oauth-tokens") | OAuth Token successfully updated | 
| 404 | JSON API error object | OAuth Token not found or user unauthorized to perform action | 
| 422 | JSON API error object | Malformed request body (missing attributes, wrong types, etc.) | 
Request Body
This PATCH endpoint requires a JSON object with the following properties as a request payload.
Properties without a default value are required.
| Key path | Type | Default | Description | 
|---|---|---|---|
| data.type | string | Must be "oauth-tokens". | |
| data.attributes.ssh-key | string | Optional. The SSH key | 
Sample Payload
{
  "data": {
    "id": "ot-29t7xkUKiNC2XasL",
    "type": "oauth-tokens",
    "attributes": {
      "ssh-key": "..."
    }
  }
}
Sample Request
curl \
  --header "Authorization: Bearer $TOKEN" \
  --header "Content-Type: application/vnd.api+json" \
  --request PATCH \
  --data @payload.json \
  https://app.terraform.io/api/v2/oauth-tokens/ot-29t7xkUKiNC2XasL
Sample Response
{
  "data": {
    "id": "ot-29t7xkUKiNC2XasL",
    "type": "oauth-tokens",
    "attributes": {
      "created-at": "2018-08-29T14:07:22.144Z",
      "service-provider-user": "EM26Jj0ikRsIFFh3fE5C",
      "has-ssh-key": false
    },
    "relationships": {
      "oauth-client": {
        "data": {
          "id": "oc-WMipGbuW8q7xCRmJ",
          "type": "oauth-clients"
        },
        "links": {
          "related": "/api/v2/oauth-clients/oc-WMipGbuW8q7xCRmJ"
        }
      }
    },
    "links": {
      "self": "/api/v2/oauth-tokens/ot-29t7xkUKiNC2XasL"
    }
  }
}
Destroy an OAuth Token
DELETE /oauth-tokens/:id
| Parameter | Description | 
|---|---|
| :id | The ID of the OAuth Token to destroy | 
| Status | Response | Reason | 
|---|---|---|
| 204 | Empty response | The OAuth Token was successfully destroyed | 
| 404 | JSON API error object | OAuth Token not found, or user unauthorized to perform action | 
Sample Request
curl \
  --header "Authorization: Bearer $TOKEN" \
  --header "Content-Type: application/vnd.api+json" \
  --request DELETE \
  https://app.terraform.io/api/v2/oauth-tokens/ot-29t7xkUKiNC2XasL