API Keys
API keys offer an alternate method of authentication to the Meltano Cloud API using a client ID and secret.
Objects
API Key
| Path | JSON Type | Format | Description |
|---|---|---|---|
id | string | Version 4 UUID | The API key ID |
created | string | ISO 8601 timestamp | The instant when the API key was created |
lastModified | string | ISO 8601 timestamp | The instant when the API key was last modified |
name | string | The API key name | |
clientId | string | The API key client ID | |
profileId | string | The API key owner profile ID |
{
"id" : "c89ab778-0622-4da2-ae3f-26a4d348e6a0",
"created" : "2026-08-06T13:49:14.155739",
"lastModified" : "2026-08-06T13:49:14.155745",
"name" : "SIT-generated api key (2026-08-06T13:49:14.087867013)",
"clientId" : "RuusUhU1iXI3iCOac2ldLkj1MJozEf3h",
"profileId" : "auth0|6a205ea86a76a69d8a3babcb",
"_links" : {
"self" : {
"href" : "https://staging.meltano.com/api/apikeys/c89ab778-0622-4da2-ae3f-26a4d348e6a0"
},
"update apikey" : {
"href" : "https://staging.meltano.com/api/apikeys/c89ab778-0622-4da2-ae3f-26a4d348e6a0"
},
"delete apikey" : {
"href" : "https://staging.meltano.com/api/apikeys/c89ab778-0622-4da2-ae3f-26a4d348e6a0"
},
"profile" : {
"href" : "https://staging.meltano.com/api/profiles/auth0%7C6a205ea86a76a69d8a3babcb"
}
}
}
Requests
View all API keys
GET /api/apikeys
Returns all API keys owned by the authenticated user profile.
Prerequisites
- The authenticated user must own a Meltano Cloud account
- The API key
{apikey-id}must exist
Examples
- cURL
- Python (requests)
curl -H "Authorization: Bearer $ACCESS_TOKEN" 'https://staging.meltano.com:443/api/apikeys' -i -X GET
import requests
url = "https://staging.meltano.com:443/api/apikeys"
headers = {
'Authorization': ACCESS_TOKEN
}
response = requests.request("GET", url, headers=headers)
print(response.text.encode('utf8'))
Response
200 OK
API key collection with HAL links.
{
"_embedded" : {
"apikeys" : [ {
"id" : "22179950-80d2-4c08-ad7c-07e5a7e1eebc",
"created" : "2026-08-06T13:49:12.897029",
"lastModified" : "2026-08-06T13:49:12.897034",
"name" : "default",
"clientId" : "ctK80wk0hQxkDVEBntyS9gfr9brJoemh",
"profileId" : "auth0|6a205ea86a76a69d8a3babcb",
"accessToken" : "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6InMyR2RKS01LUXFwalhkNGFpTU5xVyJ9.eyJpc3MiOiJodHRwczovL2lkZW50aXR5LXN0YWdpbmcubWF0YXRpa2EuY29tLyIsInN1YiI6ImN0Szgwd2swaFF4a0RWRUJudHlTOWdmcjlickpvZW1oQGNsaWVudHMiLCJhdWQiOiJodHRwczovL3N0YWdpbmcubWVsdGFuby5jb20vYXBpIiwiaWF0IjoxNzg2MDI0MTUzLCJleHAiOjE3ODYxMTA1NTMsImd0eSI6ImNsaWVudC1jcmVkZW50aWFscyIsImF6cCI6ImN0Szgwd2swaFF4a0RWRUJudHlTOWdmcjlickpvZW1oIn0.V17aX_MD6cFAqdkOrv6hOJiGU64TrpZNr4arc1zG2lAC6OKphUG1DGjyujgRy4nw5CgJWJ3UDE2Kmy7x-bMM1o44O_QsP2_nzwtq9o_pb3VpQApjyHZQkq6vi-y_LXofOgqcXpyvZKINvh6aJeQrGPbx8kmnMC-RWXtTDOeFtTPE03cIhY3cHkR6tozRXaB71Em85eYR3dNBFeQX__y9OqIq4qLv3R394BL1g4vufVZkEzjYBXT_o70qjNsDR7gpUBaV88KLINHfBRdhoE5h1m5LT5ZRo_MIF6j_wvKzHFar0OVUpeYRdBlhnAWNqMy2PDV2wXE-jY4XWAtEiXibgw",
"_links" : {
"self" : {
"href" : "https://staging.meltano.com/api/apikeys/22179950-80d2-4c08-ad7c-07e5a7e1eebc"
},
"update apikey" : {
"href" : "https://staging.meltano.com/api/apikeys/22179950-80d2-4c08-ad7c-07e5a7e1eebc"
},
"delete apikey" : {
"href" : "https://staging.meltano.com/api/apikeys/22179950-80d2-4c08-ad7c-07e5a7e1eebc"
},
"profile" : {
"href" : "https://staging.meltano.com/api/profiles/auth0%7C6a205ea86a76a69d8a3babcb"
}
}
}, {
"id" : "c89ab778-0622-4da2-ae3f-26a4d348e6a0",
"created" : "2026-08-06T13:49:14.155739",
"lastModified" : "2026-08-06T13:49:14.155745",
"name" : "SIT-generated api key (2026-08-06T13:49:14.087867013)",
"clientId" : "RuusUhU1iXI3iCOac2ldLkj1MJozEf3h",
"profileId" : "auth0|6a205ea86a76a69d8a3babcb",
"_links" : {
"self" : {
"href" : "https://staging.meltano.com/api/apikeys/c89ab778-0622-4da2-ae3f-26a4d348e6a0"
},
"update apikey" : {
"href" : "https://staging.meltano.com/api/apikeys/c89ab778-0622-4da2-ae3f-26a4d348e6a0"
},
"delete apikey" : {
"href" : "https://staging.meltano.com/api/apikeys/c89ab778-0622-4da2-ae3f-26a4d348e6a0"
},
"profile" : {
"href" : "https://staging.meltano.com/api/profiles/auth0%7C6a205ea86a76a69d8a3babcb"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "https://staging.meltano.com/api/apikeys?page=0&size=20"
}
},
"page" : {
"size" : 20,
"totalElements" : 2,
"totalPages" : 1,
"number" : 0
}
}
View an API key
GET /api/apikeys/{apikey-id}
Returns the API key {apikey-id}.
Prerequisites
- The authenticated user must own a Meltano Cloud account
- The API key
{apikey-id}must exist
Examples
- cURL
- Python (requests)
curl -H "Authorization: Bearer $ACCESS_TOKEN" 'https://staging.meltano.com:443/api/apikeys/c89ab778-0622-4da2-ae3f-26a4d348e6a0' -i -X GET
import requests
url = "https://staging.meltano.com:443/api/apikeys/c89ab778-0622-4da2-ae3f-26a4d348e6a0"
headers = {
'Authorization': ACCESS_TOKEN
}
response = requests.request("GET", url, headers=headers)
print(response.text.encode('utf8'))
Response
200 OK
API key with HAL links.
{
"id" : "c89ab778-0622-4da2-ae3f-26a4d348e6a0",
"created" : "2026-08-06T13:49:14.155739",
"lastModified" : "2026-08-06T13:49:14.155745",
"name" : "SIT-generated api key (2026-08-06T13:49:14.087867013)",
"clientId" : "RuusUhU1iXI3iCOac2ldLkj1MJozEf3h",
"profileId" : "auth0|6a205ea86a76a69d8a3babcb",
"_links" : {
"self" : {
"href" : "https://staging.meltano.com/api/apikeys/c89ab778-0622-4da2-ae3f-26a4d348e6a0"
},
"update apikey" : {
"href" : "https://staging.meltano.com/api/apikeys/c89ab778-0622-4da2-ae3f-26a4d348e6a0"
},
"delete apikey" : {
"href" : "https://staging.meltano.com/api/apikeys/c89ab778-0622-4da2-ae3f-26a4d348e6a0"
},
"profile" : {
"href" : "https://staging.meltano.com/api/profiles/auth0%7C6a205ea86a76a69d8a3babcb"
}
}
}
Initialise an API key
POST /api/apikeys
Initialises a new API key.
Prerequisites
- The authenticated user must own a Meltano Cloud account
Examples
- cURL
- Python (requests)
curl -H "Authorization: Bearer $ACCESS_TOKEN" 'https://staging.meltano.com:443/api/apikeys' -i -X POST \
-H 'Content-Type: application/json'
import requests
url = "https://staging.meltano.com:443/api/apikeys"
headers = {
'Authorization': ACCESS_TOKEN
}
response = requests.request("POST", url, headers=headers)
print(response.text.encode('utf8'))
Response
200 OK
API key with HAL links.
{
"id" : "c89ab778-0622-4da2-ae3f-26a4d348e6a0",
"created" : "2026-08-06T13:49:14.052726436",
"lastModified" : "2026-08-06T13:49:14.052733415",
"profileId" : "auth0|6a205ea86a76a69d8a3babcb",
"_links" : {
"create apikey" : {
"href" : "https://staging.meltano.com/api/apikeys/c89ab778-0622-4da2-ae3f-26a4d348e6a0"
}
}
}
Create an API key
PUT /api/apikeys/{apikey-id}
Creates the API key {apikey-id}.
Prerequisites
- The authenticated user must own a Meltano Cloud account
Body
API key resource.
{
"name" : "SIT-generated api key (2026-08-06T13:49:14.087867013)"
}
Examples
- cURL
- Python (requests)
curl -H "Authorization: Bearer $ACCESS_TOKEN" 'https://staging.meltano.com:443/api/apikeys/c89ab778-0622-4da2-ae3f-26a4d348e6a0' -i -X PUT \
-H 'Content-Type: application/json' \
-d '{
"name" : "SIT-generated api key (2026-08-06T13:49:14.087867013)"
}'
import requests
url = "https://staging.meltano.com:443/api/apikeys/c89ab778-0622-4da2-ae3f-26a4d348e6a0"
data = {
"name" : "SIT-generated api key (2026-08-06T13:49:14.087867013)"
}
headers = {
'Authorization': ACCESS_TOKEN
}
response = requests.request("PUT", url, headers=headers, data=data)
print(response.text.encode('utf8'))
Response
201 Created
API key with HAL links.
{
"id" : "c89ab778-0622-4da2-ae3f-26a4d348e6a0",
"created" : "2026-08-06T13:49:14.155739047",
"lastModified" : "2026-08-06T13:49:14.155745092",
"name" : "SIT-generated api key (2026-08-06T13:49:14.087867013)",
"clientId" : "RuusUhU1iXI3iCOac2ldLkj1MJozEf3h",
"clientSecret" : "xETE6MVVK2t_994uS9jsuAF1MJHpUvL1IcchsrV3vW9UEcsKxIFuerV21vKVm79N",
"profileId" : "auth0|6a205ea86a76a69d8a3babcb",
"_links" : {
"self" : {
"href" : "https://staging.meltano.com/api/apikeys/c89ab778-0622-4da2-ae3f-26a4d348e6a0"
},
"update apikey" : {
"href" : "https://staging.meltano.com/api/apikeys/c89ab778-0622-4da2-ae3f-26a4d348e6a0"
},
"delete apikey" : {
"href" : "https://staging.meltano.com/api/apikeys/c89ab778-0622-4da2-ae3f-26a4d348e6a0"
},
"profile" : {
"href" : "https://staging.meltano.com/api/profiles/auth0%7C6a205ea86a76a69d8a3babcb"
}
}
}
Update an API key
PUT /api/apikeys/{apikey-id}
Updates the API key {apikey-id}.
Prerequisites
- The authenticated user must own a Meltano Cloud account
Body
API key resource.
{
"name" : "SIT-generated api key (2026-08-06T13:49:14.087867013) (updated)"
}
Examples
- cURL
- Python (requests)
curl -H "Authorization: Bearer $ACCESS_TOKEN" 'https://staging.meltano.com:443/api/apikeys/c89ab778-0622-4da2-ae3f-26a4d348e6a0' -i -X PUT \
-H 'Content-Type: application/json' \
-d '{
"name" : "SIT-generated api key (2026-08-06T13:49:14.087867013) (updated)"
}'
import requests
url = "https://staging.meltano.com:443/api/apikeys/c89ab778-0622-4da2-ae3f-26a4d348e6a0"
data = {
"name" : "SIT-generated api key (2026-08-06T13:49:14.087867013) (updated)"
}
headers = {
'Authorization': ACCESS_TOKEN
}
response = requests.request("PUT", url, headers=headers, data=data)
print(response.text.encode('utf8'))
Response
200 OK
API key with HAL links.
{
"id" : "c89ab778-0622-4da2-ae3f-26a4d348e6a0",
"created" : "2026-08-06T13:49:14.155739",
"lastModified" : "2026-08-06T13:49:15.552643404",
"name" : "SIT-generated api key (2026-08-06T13:49:14.087867013) (updated)",
"clientId" : "RuusUhU1iXI3iCOac2ldLkj1MJozEf3h",
"profileId" : "auth0|6a205ea86a76a69d8a3babcb",
"_links" : {
"self" : {
"href" : "https://staging.meltano.com/api/apikeys/c89ab778-0622-4da2-ae3f-26a4d348e6a0"
},
"update apikey" : {
"href" : "https://staging.meltano.com/api/apikeys/c89ab778-0622-4da2-ae3f-26a4d348e6a0"
},
"delete apikey" : {
"href" : "https://staging.meltano.com/api/apikeys/c89ab778-0622-4da2-ae3f-26a4d348e6a0"
},
"profile" : {
"href" : "https://staging.meltano.com/api/profiles/auth0%7C6a205ea86a76a69d8a3babcb"
}
}
}
Delete an API key
DELETE /api/apikeys/{apikey-id}
Deletes the API key {apikey-id}.
Prerequisites
- The authenticated user must own a Meltano Cloud account
- The API key
{apikey-id}must exist
Examples
- cURL
- Python (requests)
curl -H "Authorization: Bearer $ACCESS_TOKEN" 'https://staging.meltano.com:443/api/apikeys/c89ab778-0622-4da2-ae3f-26a4d348e6a0' -i -X DELETE
import requests
url = "https://staging.meltano.com:443/api/apikeys/c89ab778-0622-4da2-ae3f-26a4d348e6a0"
headers = {
'Authorization': ACCESS_TOKEN
}
response = requests.request("DELETE", url, headers=headers)
print(response.text.encode('utf8'))
Response
204 No Content
No response body provided.