curl --request PUT \
--url https://api.env0.com/cloudquery-integrations \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"value": {
"apiKey": "<string>"
},
"tenantUrl": "<string>",
"organizationId": "<string>",
"createdByUser": {
"email": "<string>",
"user_id": "<string>",
"username": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"app_metadata": {
"organizations": [
{
"id": "<string>",
"role": "<string>",
"name": "<string>"
}
],
"isApiKey": true,
"isAutogeneratedTerraformDeployer": true,
"apiKeyType": "oidc",
"createdBy": "<string>",
"organizationId": "<string>",
"isSystemUser": true,
"readOnly": true,
"blockedByOrganizationLockout": true
},
"picture": "<string>",
"name": "<string>",
"last_login": "<string>",
"given_name": "<string>",
"family_name": "<string>",
"blocked": true,
"identities": [
{
"provider": "<string>",
"connection": "<string>",
"user_id": "<string>",
"isSocial": true,
"access_token": "<string>",
"refresh_token": "<string>"
}
]
},
"encryptionMethod": "kms",
"projectId": "<string>"
}
'import requests
url = "https://api.env0.com/cloudquery-integrations"
payload = {
"value": { "apiKey": "<string>" },
"tenantUrl": "<string>",
"organizationId": "<string>",
"createdByUser": {
"email": "<string>",
"user_id": "<string>",
"username": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"app_metadata": {
"organizations": [
{
"id": "<string>",
"role": "<string>",
"name": "<string>"
}
],
"isApiKey": True,
"isAutogeneratedTerraformDeployer": True,
"apiKeyType": "oidc",
"createdBy": "<string>",
"organizationId": "<string>",
"isSystemUser": True,
"readOnly": True,
"blockedByOrganizationLockout": True
},
"picture": "<string>",
"name": "<string>",
"last_login": "<string>",
"given_name": "<string>",
"family_name": "<string>",
"blocked": True,
"identities": [
{
"provider": "<string>",
"connection": "<string>",
"user_id": "<string>",
"isSocial": True,
"access_token": "<string>",
"refresh_token": "<string>"
}
]
},
"encryptionMethod": "kms",
"projectId": "<string>"
}
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({
value: {apiKey: '<string>'},
tenantUrl: '<string>',
organizationId: '<string>',
createdByUser: {
email: '<string>',
user_id: '<string>',
username: '<string>',
created_at: '<string>',
updated_at: '<string>',
app_metadata: {
organizations: [{id: '<string>', role: '<string>', name: '<string>'}],
isApiKey: true,
isAutogeneratedTerraformDeployer: true,
apiKeyType: 'oidc',
createdBy: '<string>',
organizationId: '<string>',
isSystemUser: true,
readOnly: true,
blockedByOrganizationLockout: true
},
picture: '<string>',
name: '<string>',
last_login: '<string>',
given_name: '<string>',
family_name: '<string>',
blocked: true,
identities: [
{
provider: '<string>',
connection: '<string>',
user_id: '<string>',
isSocial: true,
access_token: '<string>',
refresh_token: '<string>'
}
]
},
encryptionMethod: 'kms',
projectId: '<string>'
})
};
fetch('https://api.env0.com/cloudquery-integrations', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.env0.com/cloudquery-integrations",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'value' => [
'apiKey' => '<string>'
],
'tenantUrl' => '<string>',
'organizationId' => '<string>',
'createdByUser' => [
'email' => '<string>',
'user_id' => '<string>',
'username' => '<string>',
'created_at' => '<string>',
'updated_at' => '<string>',
'app_metadata' => [
'organizations' => [
[
'id' => '<string>',
'role' => '<string>',
'name' => '<string>'
]
],
'isApiKey' => true,
'isAutogeneratedTerraformDeployer' => true,
'apiKeyType' => 'oidc',
'createdBy' => '<string>',
'organizationId' => '<string>',
'isSystemUser' => true,
'readOnly' => true,
'blockedByOrganizationLockout' => true
],
'picture' => '<string>',
'name' => '<string>',
'last_login' => '<string>',
'given_name' => '<string>',
'family_name' => '<string>',
'blocked' => true,
'identities' => [
[
'provider' => '<string>',
'connection' => '<string>',
'user_id' => '<string>',
'isSocial' => true,
'access_token' => '<string>',
'refresh_token' => '<string>'
]
]
],
'encryptionMethod' => 'kms',
'projectId' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.env0.com/cloudquery-integrations"
payload := strings.NewReader("{\n \"value\": {\n \"apiKey\": \"<string>\"\n },\n \"tenantUrl\": \"<string>\",\n \"organizationId\": \"<string>\",\n \"createdByUser\": {\n \"email\": \"<string>\",\n \"user_id\": \"<string>\",\n \"username\": \"<string>\",\n \"created_at\": \"<string>\",\n \"updated_at\": \"<string>\",\n \"app_metadata\": {\n \"organizations\": [\n {\n \"id\": \"<string>\",\n \"role\": \"<string>\",\n \"name\": \"<string>\"\n }\n ],\n \"isApiKey\": true,\n \"isAutogeneratedTerraformDeployer\": true,\n \"apiKeyType\": \"oidc\",\n \"createdBy\": \"<string>\",\n \"organizationId\": \"<string>\",\n \"isSystemUser\": true,\n \"readOnly\": true,\n \"blockedByOrganizationLockout\": true\n },\n \"picture\": \"<string>\",\n \"name\": \"<string>\",\n \"last_login\": \"<string>\",\n \"given_name\": \"<string>\",\n \"family_name\": \"<string>\",\n \"blocked\": true,\n \"identities\": [\n {\n \"provider\": \"<string>\",\n \"connection\": \"<string>\",\n \"user_id\": \"<string>\",\n \"isSocial\": true,\n \"access_token\": \"<string>\",\n \"refresh_token\": \"<string>\"\n }\n ]\n },\n \"encryptionMethod\": \"kms\",\n \"projectId\": \"<string>\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Basic <encoded-value>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://api.env0.com/cloudquery-integrations")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{\n \"value\": {\n \"apiKey\": \"<string>\"\n },\n \"tenantUrl\": \"<string>\",\n \"organizationId\": \"<string>\",\n \"createdByUser\": {\n \"email\": \"<string>\",\n \"user_id\": \"<string>\",\n \"username\": \"<string>\",\n \"created_at\": \"<string>\",\n \"updated_at\": \"<string>\",\n \"app_metadata\": {\n \"organizations\": [\n {\n \"id\": \"<string>\",\n \"role\": \"<string>\",\n \"name\": \"<string>\"\n }\n ],\n \"isApiKey\": true,\n \"isAutogeneratedTerraformDeployer\": true,\n \"apiKeyType\": \"oidc\",\n \"createdBy\": \"<string>\",\n \"organizationId\": \"<string>\",\n \"isSystemUser\": true,\n \"readOnly\": true,\n \"blockedByOrganizationLockout\": true\n },\n \"picture\": \"<string>\",\n \"name\": \"<string>\",\n \"last_login\": \"<string>\",\n \"given_name\": \"<string>\",\n \"family_name\": \"<string>\",\n \"blocked\": true,\n \"identities\": [\n {\n \"provider\": \"<string>\",\n \"connection\": \"<string>\",\n \"user_id\": \"<string>\",\n \"isSocial\": true,\n \"access_token\": \"<string>\",\n \"refresh_token\": \"<string>\"\n }\n ]\n },\n \"encryptionMethod\": \"kms\",\n \"projectId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.env0.com/cloudquery-integrations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"value\": {\n \"apiKey\": \"<string>\"\n },\n \"tenantUrl\": \"<string>\",\n \"organizationId\": \"<string>\",\n \"createdByUser\": {\n \"email\": \"<string>\",\n \"user_id\": \"<string>\",\n \"username\": \"<string>\",\n \"created_at\": \"<string>\",\n \"updated_at\": \"<string>\",\n \"app_metadata\": {\n \"organizations\": [\n {\n \"id\": \"<string>\",\n \"role\": \"<string>\",\n \"name\": \"<string>\"\n }\n ],\n \"isApiKey\": true,\n \"isAutogeneratedTerraformDeployer\": true,\n \"apiKeyType\": \"oidc\",\n \"createdBy\": \"<string>\",\n \"organizationId\": \"<string>\",\n \"isSystemUser\": true,\n \"readOnly\": true,\n \"blockedByOrganizationLockout\": true\n },\n \"picture\": \"<string>\",\n \"name\": \"<string>\",\n \"last_login\": \"<string>\",\n \"given_name\": \"<string>\",\n \"family_name\": \"<string>\",\n \"blocked\": true,\n \"identities\": [\n {\n \"provider\": \"<string>\",\n \"connection\": \"<string>\",\n \"user_id\": \"<string>\",\n \"isSocial\": true,\n \"access_token\": \"<string>\",\n \"refresh_token\": \"<string>\"\n }\n ]\n },\n \"encryptionMethod\": \"kms\",\n \"projectId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"value": null,
"tenantUrl": "<string>",
"id": "<string>",
"name": "<string>",
"organizationId": "<string>",
"updatedAt": "2023-11-07T05:31:56Z",
"createdByUser": {
"email": "<string>",
"user_id": "<string>",
"username": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"app_metadata": {
"organizations": [
{
"id": "<string>",
"role": "<string>",
"name": "<string>"
}
],
"isApiKey": true,
"isAutogeneratedTerraformDeployer": true,
"apiKeyType": "oidc",
"createdBy": "<string>",
"organizationId": "<string>",
"isSystemUser": true,
"readOnly": true,
"blockedByOrganizationLockout": true
},
"picture": "<string>",
"name": "<string>",
"last_login": "<string>",
"given_name": "<string>",
"family_name": "<string>",
"blocked": true,
"identities": [
{
"provider": "<string>",
"connection": "<string>",
"user_id": "<string>",
"isSocial": true,
"access_token": "<string>",
"refresh_token": "<string>"
}
]
},
"projectId": "<string>"
}Create or update an organization CloudQuery integration
Stores the CloudQuery API key (encrypted) and tenant slug. A single integration is kept per organization.
curl --request PUT \
--url https://api.env0.com/cloudquery-integrations \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"value": {
"apiKey": "<string>"
},
"tenantUrl": "<string>",
"organizationId": "<string>",
"createdByUser": {
"email": "<string>",
"user_id": "<string>",
"username": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"app_metadata": {
"organizations": [
{
"id": "<string>",
"role": "<string>",
"name": "<string>"
}
],
"isApiKey": true,
"isAutogeneratedTerraformDeployer": true,
"apiKeyType": "oidc",
"createdBy": "<string>",
"organizationId": "<string>",
"isSystemUser": true,
"readOnly": true,
"blockedByOrganizationLockout": true
},
"picture": "<string>",
"name": "<string>",
"last_login": "<string>",
"given_name": "<string>",
"family_name": "<string>",
"blocked": true,
"identities": [
{
"provider": "<string>",
"connection": "<string>",
"user_id": "<string>",
"isSocial": true,
"access_token": "<string>",
"refresh_token": "<string>"
}
]
},
"encryptionMethod": "kms",
"projectId": "<string>"
}
'import requests
url = "https://api.env0.com/cloudquery-integrations"
payload = {
"value": { "apiKey": "<string>" },
"tenantUrl": "<string>",
"organizationId": "<string>",
"createdByUser": {
"email": "<string>",
"user_id": "<string>",
"username": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"app_metadata": {
"organizations": [
{
"id": "<string>",
"role": "<string>",
"name": "<string>"
}
],
"isApiKey": True,
"isAutogeneratedTerraformDeployer": True,
"apiKeyType": "oidc",
"createdBy": "<string>",
"organizationId": "<string>",
"isSystemUser": True,
"readOnly": True,
"blockedByOrganizationLockout": True
},
"picture": "<string>",
"name": "<string>",
"last_login": "<string>",
"given_name": "<string>",
"family_name": "<string>",
"blocked": True,
"identities": [
{
"provider": "<string>",
"connection": "<string>",
"user_id": "<string>",
"isSocial": True,
"access_token": "<string>",
"refresh_token": "<string>"
}
]
},
"encryptionMethod": "kms",
"projectId": "<string>"
}
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({
value: {apiKey: '<string>'},
tenantUrl: '<string>',
organizationId: '<string>',
createdByUser: {
email: '<string>',
user_id: '<string>',
username: '<string>',
created_at: '<string>',
updated_at: '<string>',
app_metadata: {
organizations: [{id: '<string>', role: '<string>', name: '<string>'}],
isApiKey: true,
isAutogeneratedTerraformDeployer: true,
apiKeyType: 'oidc',
createdBy: '<string>',
organizationId: '<string>',
isSystemUser: true,
readOnly: true,
blockedByOrganizationLockout: true
},
picture: '<string>',
name: '<string>',
last_login: '<string>',
given_name: '<string>',
family_name: '<string>',
blocked: true,
identities: [
{
provider: '<string>',
connection: '<string>',
user_id: '<string>',
isSocial: true,
access_token: '<string>',
refresh_token: '<string>'
}
]
},
encryptionMethod: 'kms',
projectId: '<string>'
})
};
fetch('https://api.env0.com/cloudquery-integrations', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.env0.com/cloudquery-integrations",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'value' => [
'apiKey' => '<string>'
],
'tenantUrl' => '<string>',
'organizationId' => '<string>',
'createdByUser' => [
'email' => '<string>',
'user_id' => '<string>',
'username' => '<string>',
'created_at' => '<string>',
'updated_at' => '<string>',
'app_metadata' => [
'organizations' => [
[
'id' => '<string>',
'role' => '<string>',
'name' => '<string>'
]
],
'isApiKey' => true,
'isAutogeneratedTerraformDeployer' => true,
'apiKeyType' => 'oidc',
'createdBy' => '<string>',
'organizationId' => '<string>',
'isSystemUser' => true,
'readOnly' => true,
'blockedByOrganizationLockout' => true
],
'picture' => '<string>',
'name' => '<string>',
'last_login' => '<string>',
'given_name' => '<string>',
'family_name' => '<string>',
'blocked' => true,
'identities' => [
[
'provider' => '<string>',
'connection' => '<string>',
'user_id' => '<string>',
'isSocial' => true,
'access_token' => '<string>',
'refresh_token' => '<string>'
]
]
],
'encryptionMethod' => 'kms',
'projectId' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.env0.com/cloudquery-integrations"
payload := strings.NewReader("{\n \"value\": {\n \"apiKey\": \"<string>\"\n },\n \"tenantUrl\": \"<string>\",\n \"organizationId\": \"<string>\",\n \"createdByUser\": {\n \"email\": \"<string>\",\n \"user_id\": \"<string>\",\n \"username\": \"<string>\",\n \"created_at\": \"<string>\",\n \"updated_at\": \"<string>\",\n \"app_metadata\": {\n \"organizations\": [\n {\n \"id\": \"<string>\",\n \"role\": \"<string>\",\n \"name\": \"<string>\"\n }\n ],\n \"isApiKey\": true,\n \"isAutogeneratedTerraformDeployer\": true,\n \"apiKeyType\": \"oidc\",\n \"createdBy\": \"<string>\",\n \"organizationId\": \"<string>\",\n \"isSystemUser\": true,\n \"readOnly\": true,\n \"blockedByOrganizationLockout\": true\n },\n \"picture\": \"<string>\",\n \"name\": \"<string>\",\n \"last_login\": \"<string>\",\n \"given_name\": \"<string>\",\n \"family_name\": \"<string>\",\n \"blocked\": true,\n \"identities\": [\n {\n \"provider\": \"<string>\",\n \"connection\": \"<string>\",\n \"user_id\": \"<string>\",\n \"isSocial\": true,\n \"access_token\": \"<string>\",\n \"refresh_token\": \"<string>\"\n }\n ]\n },\n \"encryptionMethod\": \"kms\",\n \"projectId\": \"<string>\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Basic <encoded-value>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://api.env0.com/cloudquery-integrations")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{\n \"value\": {\n \"apiKey\": \"<string>\"\n },\n \"tenantUrl\": \"<string>\",\n \"organizationId\": \"<string>\",\n \"createdByUser\": {\n \"email\": \"<string>\",\n \"user_id\": \"<string>\",\n \"username\": \"<string>\",\n \"created_at\": \"<string>\",\n \"updated_at\": \"<string>\",\n \"app_metadata\": {\n \"organizations\": [\n {\n \"id\": \"<string>\",\n \"role\": \"<string>\",\n \"name\": \"<string>\"\n }\n ],\n \"isApiKey\": true,\n \"isAutogeneratedTerraformDeployer\": true,\n \"apiKeyType\": \"oidc\",\n \"createdBy\": \"<string>\",\n \"organizationId\": \"<string>\",\n \"isSystemUser\": true,\n \"readOnly\": true,\n \"blockedByOrganizationLockout\": true\n },\n \"picture\": \"<string>\",\n \"name\": \"<string>\",\n \"last_login\": \"<string>\",\n \"given_name\": \"<string>\",\n \"family_name\": \"<string>\",\n \"blocked\": true,\n \"identities\": [\n {\n \"provider\": \"<string>\",\n \"connection\": \"<string>\",\n \"user_id\": \"<string>\",\n \"isSocial\": true,\n \"access_token\": \"<string>\",\n \"refresh_token\": \"<string>\"\n }\n ]\n },\n \"encryptionMethod\": \"kms\",\n \"projectId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.env0.com/cloudquery-integrations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"value\": {\n \"apiKey\": \"<string>\"\n },\n \"tenantUrl\": \"<string>\",\n \"organizationId\": \"<string>\",\n \"createdByUser\": {\n \"email\": \"<string>\",\n \"user_id\": \"<string>\",\n \"username\": \"<string>\",\n \"created_at\": \"<string>\",\n \"updated_at\": \"<string>\",\n \"app_metadata\": {\n \"organizations\": [\n {\n \"id\": \"<string>\",\n \"role\": \"<string>\",\n \"name\": \"<string>\"\n }\n ],\n \"isApiKey\": true,\n \"isAutogeneratedTerraformDeployer\": true,\n \"apiKeyType\": \"oidc\",\n \"createdBy\": \"<string>\",\n \"organizationId\": \"<string>\",\n \"isSystemUser\": true,\n \"readOnly\": true,\n \"blockedByOrganizationLockout\": true\n },\n \"picture\": \"<string>\",\n \"name\": \"<string>\",\n \"last_login\": \"<string>\",\n \"given_name\": \"<string>\",\n \"family_name\": \"<string>\",\n \"blocked\": true,\n \"identities\": [\n {\n \"provider\": \"<string>\",\n \"connection\": \"<string>\",\n \"user_id\": \"<string>\",\n \"isSocial\": true,\n \"access_token\": \"<string>\",\n \"refresh_token\": \"<string>\"\n }\n ]\n },\n \"encryptionMethod\": \"kms\",\n \"projectId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"value": null,
"tenantUrl": "<string>",
"id": "<string>",
"name": "<string>",
"organizationId": "<string>",
"updatedAt": "2023-11-07T05:31:56Z",
"createdByUser": {
"email": "<string>",
"user_id": "<string>",
"username": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"app_metadata": {
"organizations": [
{
"id": "<string>",
"role": "<string>",
"name": "<string>"
}
],
"isApiKey": true,
"isAutogeneratedTerraformDeployer": true,
"apiKeyType": "oidc",
"createdBy": "<string>",
"organizationId": "<string>",
"isSystemUser": true,
"readOnly": true,
"blockedByOrganizationLockout": true
},
"picture": "<string>",
"name": "<string>",
"last_login": "<string>",
"given_name": "<string>",
"family_name": "<string>",
"blocked": true,
"identities": [
{
"provider": "<string>",
"connection": "<string>",
"user_id": "<string>",
"isSocial": true,
"access_token": "<string>",
"refresh_token": "<string>"
}
]
},
"projectId": "<string>"
}Authorizations
env zero API authentication is done via API keys. An API Key can either be created by an organization administrator, in which case it will not be connected to any specific user, or via Personal API Keys to authenticate as a user.
Creating an API Key with a Specific Role
- Once you've created your organization, you can set up and manage API Keys.
- Navigate to the Organization Settings page and click the API Keys tab.
- Click Add API Key and enter a name for your key in the Name field. This name is for reference purposes only and isn't used directly in authentication.
❗️Save Your API Key ID and secret The secret will not be available after you close this window.
Creating a Personal API Key
- Click on your avatar (located on the top right of the screen)
- Click on Personal Settings
- Select the API Keys tab
- Click Add API Key, and enter a name for your key in the Name field. This name is for reference purposes and isn't used directly in authentication.
❗️Save your API Key ID & secret The secret will not be available after you close this window.
Using an API Key to Authenticate
Authentication of the env zero API is done using the Basic Authentication method. Each request made should include the API Key ID as the username, and the API Key secret as the password. For example, when using curl, we can include these parameters via flag --user {API Key ID}:{API Key Secret}.
API Key Permissions
When creating an API key through the organization settings, you will need to choose if you’d like to grant it Organization Admin or User permissions. In case of the latter, you can assign fine-grained permissions per project. Personal API Keys can be created through the user’s profile page and will have the same permissions as the user has.
Rate Limits
env zero API allows up to 1K requests per 60 seconds, requests are aggregated by IP, HTTP Method and URI. If you exceed this limit, you will receive a 429 status code.
Body
Was this page helpful?