List SSH Keys
curl --request GET \
--url https://api.latitude.sh/projects/{project_id}/ssh_keys \
--header 'Authorization: <api-key>'import requests
url = "https://api.latitude.sh/projects/{project_id}/ssh_keys"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api.latitude.sh/projects/{project_id}/ssh_keys', 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.latitude.sh/projects/{project_id}/ssh_keys",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <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.latitude.sh/projects/{project_id}/ssh_keys"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<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.latitude.sh/projects/{project_id}/ssh_keys")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.latitude.sh/projects/{project_id}/ssh_keys")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "ssh_mw49QDB5qagKb",
"type": "ssh_keys",
"attributes": {
"tags": [],
"name": "hirthe-ankunding.example",
"public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCmmIH/Esj4Cpz6utdAJN+syqnQ9xBHMGXKEKTecy2Qn2F7riuCDe7ICRDmpVnUhWJtvWGwrnGZgJkt3/q72lRGeMfBXF68cdvrzHMl+vDpQbmd6WAyCl4ufhGJyVrsw9N5eTMm9DOALWnd6SBldR6aubGUhhITI/ODh3N/l/0YPP2Nqif0lVrBCyxFBs894uNgbG2SR1hS6g7ZA8IfrUtQE3OPXMaVyIpfbdDVSVerOB9xZu2A8J+Dx/8hV7RPeed+R8D8wt9zLul03kaC/mrwXYrQDtEjqfgzLr/DtskKu02jyL3o2aXY0PmUtUX0QVDBOD9QImXOPLJGtagDfYER",
"fingerprint": "59:4a:b2:bf:13:8c:e4:18:dc:49:24:4b:37:f1:5d:2e",
"created_at": "2026-01-14T15:56:40+00:00",
"updated_at": "2026-01-14T15:56:40+00:00",
"project": {
"id": "proj_RMLydp7XOQKr1",
"name": "Lightweight Silk Wallet",
"slug": "lightweight-silk-wallet",
"description": "Synergistic Copper Coat",
"provisioning_type": "on_demand",
"billing_type": "Normal",
"billing_method": "Normal",
"bandwidth_alert": false,
"environment": null,
"billing": {},
"stats": {
"databases": 0,
"ip_addresses": 0,
"prefixes": 0,
"servers": 0,
"storages": 0,
"virtual_machines": 0,
"vlans": 0
}
},
"user": {
"id": "user_Gz4meW9wlVc2Q36vbgXgu05XYgo",
"first_name": "Tracy",
"last_name": "Corkery",
"email": "bennett@johnson-beatty.example",
"created_at": "2025-11-29T00:00:00.000Z",
"updated_at": "2025-12-07T00:00:00.000Z",
"role": {
"id": "role_Jp9VwYlWgbTMl0Po7RpYteZX4pj",
"name": "owner",
"created_at": "2025-10-11T00:00:00.000Z",
"updated_at": "2026-08-03T00:00:00.000Z"
}
}
}
}
],
"meta": {}
}SSH Keys
List SSH Keys
deprecated
List all SSH Keys in the project. These keys can be used to access servers after deploy and reinstall actions.
GET
/
projects
/
{project_id}
/
ssh_keys
List SSH Keys
curl --request GET \
--url https://api.latitude.sh/projects/{project_id}/ssh_keys \
--header 'Authorization: <api-key>'import requests
url = "https://api.latitude.sh/projects/{project_id}/ssh_keys"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api.latitude.sh/projects/{project_id}/ssh_keys', 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.latitude.sh/projects/{project_id}/ssh_keys",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <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.latitude.sh/projects/{project_id}/ssh_keys"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<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.latitude.sh/projects/{project_id}/ssh_keys")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.latitude.sh/projects/{project_id}/ssh_keys")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "ssh_mw49QDB5qagKb",
"type": "ssh_keys",
"attributes": {
"tags": [],
"name": "hirthe-ankunding.example",
"public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCmmIH/Esj4Cpz6utdAJN+syqnQ9xBHMGXKEKTecy2Qn2F7riuCDe7ICRDmpVnUhWJtvWGwrnGZgJkt3/q72lRGeMfBXF68cdvrzHMl+vDpQbmd6WAyCl4ufhGJyVrsw9N5eTMm9DOALWnd6SBldR6aubGUhhITI/ODh3N/l/0YPP2Nqif0lVrBCyxFBs894uNgbG2SR1hS6g7ZA8IfrUtQE3OPXMaVyIpfbdDVSVerOB9xZu2A8J+Dx/8hV7RPeed+R8D8wt9zLul03kaC/mrwXYrQDtEjqfgzLr/DtskKu02jyL3o2aXY0PmUtUX0QVDBOD9QImXOPLJGtagDfYER",
"fingerprint": "59:4a:b2:bf:13:8c:e4:18:dc:49:24:4b:37:f1:5d:2e",
"created_at": "2026-01-14T15:56:40+00:00",
"updated_at": "2026-01-14T15:56:40+00:00",
"project": {
"id": "proj_RMLydp7XOQKr1",
"name": "Lightweight Silk Wallet",
"slug": "lightweight-silk-wallet",
"description": "Synergistic Copper Coat",
"provisioning_type": "on_demand",
"billing_type": "Normal",
"billing_method": "Normal",
"bandwidth_alert": false,
"environment": null,
"billing": {},
"stats": {
"databases": 0,
"ip_addresses": 0,
"prefixes": 0,
"servers": 0,
"storages": 0,
"virtual_machines": 0,
"vlans": 0
}
},
"user": {
"id": "user_Gz4meW9wlVc2Q36vbgXgu05XYgo",
"first_name": "Tracy",
"last_name": "Corkery",
"email": "bennett@johnson-beatty.example",
"created_at": "2025-11-29T00:00:00.000Z",
"updated_at": "2025-12-07T00:00:00.000Z",
"role": {
"id": "role_Jp9VwYlWgbTMl0Po7RpYteZX4pj",
"name": "owner",
"created_at": "2025-10-11T00:00:00.000Z",
"updated_at": "2026-08-03T00:00:00.000Z"
}
}
}
}
],
"meta": {}
}Authorizations
Path Parameters
Project ID or Slug
Query Parameters
The tags ids to filter by, separated by comma, e.g. filter[tags]=tag_1,tag_2will return ssh keys with tag_1 AND tag_2
Request aggregate stats in the response meta. Use count to get the total number of records, returned as meta.stats.total.count.
Page number for pagination
Number of items per page
Was this page helpful?
⌘I