curl --request GET \
--url https://api.getdialed.ai/v1/credentials/{credential_id} \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.getdialed.ai/v1/credentials/{credential_id}"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.getdialed.ai/v1/credentials/{credential_id}', 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.getdialed.ai/v1/credentials/{credential_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.getdialed.ai/v1/credentials/{credential_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.getdialed.ai/v1/credentials/{credential_id}")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getdialed.ai/v1/credentials/{credential_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"auth_method": "basic_auth",
"created_at": "2026-08-01T12:00:00Z",
"created_by": "user_11223344",
"credentials_ref": "getdialed/acme/five9/cred_e5f6g7h8",
"id": "cred_e5f6g7h8",
"last_verified": "2026-08-22T09:00:00Z",
"name": "Five9 Production",
"org_id": "org_a1b2c3d4",
"platform_id": "five9",
"scopes": [],
"status": "active",
"telemetry": {
"five9__configuration_service": {
"last_stamped_at": "2026-08-22T09:00:00Z",
"last_succeeded_at": "2026-08-22T09:00:00Z",
"last_used_at": "2026-08-22T09:00:00Z"
}
},
"tenancy_id": "ten_1a2b3c4d5e6f7890",
"tenant": {
"id": "ten_1a2b3c4d5e6f7890",
"is_manual": false,
"label": "Acme VCC",
"platform_id": "five9"
}
}{
"detail": "Authentication required"
}{
"detail": "Credential not found"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}{
"detail": "Rate limit exceeded: 100 per 1 minute"
}Get a credential
Fetch a single credential by id, including its provider-account label and its observed-use record.
The observed-use record is the honest answer to “what can this credential do”. For every service the credential has been used with it reports when it was last used, when it last succeeded, when it last failed and what class of failure that was — recorded as the work actually happened. Read it here to see a credential’s real capabilities and health without running a flow to find out, and without a second request per row: the same record travels on every row of GET /credentials.
Cross-tenant access returns 404.
curl --request GET \
--url https://api.getdialed.ai/v1/credentials/{credential_id} \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.getdialed.ai/v1/credentials/{credential_id}"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.getdialed.ai/v1/credentials/{credential_id}', 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.getdialed.ai/v1/credentials/{credential_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.getdialed.ai/v1/credentials/{credential_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.getdialed.ai/v1/credentials/{credential_id}")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getdialed.ai/v1/credentials/{credential_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"auth_method": "basic_auth",
"created_at": "2026-08-01T12:00:00Z",
"created_by": "user_11223344",
"credentials_ref": "getdialed/acme/five9/cred_e5f6g7h8",
"id": "cred_e5f6g7h8",
"last_verified": "2026-08-22T09:00:00Z",
"name": "Five9 Production",
"org_id": "org_a1b2c3d4",
"platform_id": "five9",
"scopes": [],
"status": "active",
"telemetry": {
"five9__configuration_service": {
"last_stamped_at": "2026-08-22T09:00:00Z",
"last_succeeded_at": "2026-08-22T09:00:00Z",
"last_used_at": "2026-08-22T09:00:00Z"
}
},
"tenancy_id": "ten_1a2b3c4d5e6f7890",
"tenant": {
"id": "ten_1a2b3c4d5e6f7890",
"is_manual": false,
"label": "Acme VCC",
"platform_id": "five9"
}
}{
"detail": "Authentication required"
}{
"detail": "Credential not found"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}{
"detail": "Rate limit exceeded: 100 per 1 minute"
}Authorizations
Path Parameters
Response
Successful Response
The provider account or customer-named tenant this credential belongs to.
Show child attributes
Show child attributes
{
"id": "ten_1a2b3c4d5e6f7890",
"is_manual": false,
"label": "Acme VCC",
"platform_id": "five9"
}
Where an API-key credential puts its key.
This is presentation configuration, not secret material: it holds the header
NAME (and optionally a scheme such as Bearer prefixed to the value), or the
query-parameter NAME. A form renders straight from it.
It is declared ONCE, on the credential, so every task that selects this
credential injects the key identically and no task configuration ever
mentions authentication. Exactly one of header_name or query_param is
set; scheme is legal only alongside header_name.
Show child attributes
Show child attributes
Show child attributes
Show child attributes