Python (SDK)
from latitudesh_python_sdk import Latitudesh
import os
with Latitudesh(
bearer=os.getenv("LATITUDESH_BEARER", ""),
) as latitudesh:
res = latitudesh.ssh_keys.get_ssh_keys(filter_tags="tag_A06EMPEmKXhKBNKgWrv0CRZMN5a,tag_P7xlGZzYNZF4w3YXRrYMU7AjQEAX")
# Handle response
print(res)package main
import(
"context"
"os"
latitudeshgosdk "github.com/latitudesh/latitudesh-go-sdk"
"github.com/latitudesh/latitudesh-go-sdk/models/operations"
"log"
)
func main() {
ctx := context.Background()
s := latitudeshgosdk.New(
latitudeshgosdk.WithSecurity(os.Getenv("LATITUDESH_BEARER")),
)
res, err := s.SSHKeys.ListAll(ctx, operations.GetSSHKeysRequest{
FilterTags: latitudeshgosdk.Pointer("tag_A06EMPEmKXhKBNKgWrv0CRZMN5a,tag_P7xlGZzYNZF4w3YXRrYMU7AjQEAX"),
})
if err != nil {
log.Fatal(err)
}
if res.SSHKeys != nil {
// handle response
}
}import { Latitudesh } from "latitudesh-typescript-sdk";
const latitudesh = new Latitudesh({
bearer: process.env["LATITUDESH_BEARER"] ?? "",
});
async function run() {
const result = await latitudesh.sshKeys.listAll({
filterTags: "tag_A06EMPEmKXhKBNKgWrv0CRZMN5a,tag_P7xlGZzYNZF4w3YXRrYMU7AjQEAX",
});
console.log(result);
}
run();curl --request GET \
--url https://api.latitude.sh/ssh_keys \
--header 'Authorization: <api-key>'const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api.latitude.sh/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/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;
}HttpResponse<String> response = Unirest.get("https://api.latitude.sh/ssh_keys")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.latitude.sh/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_VE1Wd3L7qXnZJ",
"type": "ssh_keys",
"attributes": {
"tags": [],
"name": "quigley-hudson.example",
"public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCuDo1r0gQTdX/8l4Ko7ZAYJLimzA1+eom99SFnMKwZmGVubhsnvQ8sCJAqjn1gO66+RrDwrWb+iqM7vlQlodiMr9VTOCxDke9MhW5peRP94vKyptquzJW8J+Y3qNcM774bOrQXpQMo92i5d4ffPYmEoifxVYEhmZrM2Yxr3zqLW0cs446RvCDRLTyGAhte6F9i1Qz95U4WqVkJ9Y5A/cSwJ1W17lK+e8ZMpjkrZXUL0gYGylM7BJRf+R6XOnXAdBEW1Dr8QN+s8ai4m5Y0htwPqTfL5/rGiVrES+QnDUJDe5mtpa3v51geAzgXTFtw3JCGpGyUbv0kITvFJBwNMvUz",
"fingerprint": "a5:3b:97:0c:b5:2a:a1:6d:e4:93:2f:9d:5f:a6:0e:28",
"created_at": "2026-01-14T15:57:04+00:00",
"updated_at": "2026-01-14T15:57:04+00:00",
"project": {},
"user": {
"id": "user_Xjm6jLAYleIy8YRwoMyLCBbXypG",
"first_name": "Lashawna",
"last_name": "Wuckert",
"email": "shawnee_runolfsdottir@olson-gulgowski.test",
"created_at": "2025-10-16T00:00:00.000Z",
"updated_at": "2025-04-04T00:00:00.000Z",
"role": {
"id": "role_5QB3mJAbazs5MbgR5RkLFro6YVY",
"name": "owner",
"created_at": "2025-12-23T00:00:00.000Z",
"updated_at": "2026-11-24T00:00:00.000Z"
}
}
}
}
],
"meta": {}
}SSH Keys
List SSH Keys
List all SSH Keys in the project. These keys can be used to access servers after deploy and reinstall actions.
GET
/
ssh_keys
Python (SDK)
from latitudesh_python_sdk import Latitudesh
import os
with Latitudesh(
bearer=os.getenv("LATITUDESH_BEARER", ""),
) as latitudesh:
res = latitudesh.ssh_keys.get_ssh_keys(filter_tags="tag_A06EMPEmKXhKBNKgWrv0CRZMN5a,tag_P7xlGZzYNZF4w3YXRrYMU7AjQEAX")
# Handle response
print(res)package main
import(
"context"
"os"
latitudeshgosdk "github.com/latitudesh/latitudesh-go-sdk"
"github.com/latitudesh/latitudesh-go-sdk/models/operations"
"log"
)
func main() {
ctx := context.Background()
s := latitudeshgosdk.New(
latitudeshgosdk.WithSecurity(os.Getenv("LATITUDESH_BEARER")),
)
res, err := s.SSHKeys.ListAll(ctx, operations.GetSSHKeysRequest{
FilterTags: latitudeshgosdk.Pointer("tag_A06EMPEmKXhKBNKgWrv0CRZMN5a,tag_P7xlGZzYNZF4w3YXRrYMU7AjQEAX"),
})
if err != nil {
log.Fatal(err)
}
if res.SSHKeys != nil {
// handle response
}
}import { Latitudesh } from "latitudesh-typescript-sdk";
const latitudesh = new Latitudesh({
bearer: process.env["LATITUDESH_BEARER"] ?? "",
});
async function run() {
const result = await latitudesh.sshKeys.listAll({
filterTags: "tag_A06EMPEmKXhKBNKgWrv0CRZMN5a,tag_P7xlGZzYNZF4w3YXRrYMU7AjQEAX",
});
console.log(result);
}
run();curl --request GET \
--url https://api.latitude.sh/ssh_keys \
--header 'Authorization: <api-key>'const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api.latitude.sh/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/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;
}HttpResponse<String> response = Unirest.get("https://api.latitude.sh/ssh_keys")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.latitude.sh/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_VE1Wd3L7qXnZJ",
"type": "ssh_keys",
"attributes": {
"tags": [],
"name": "quigley-hudson.example",
"public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCuDo1r0gQTdX/8l4Ko7ZAYJLimzA1+eom99SFnMKwZmGVubhsnvQ8sCJAqjn1gO66+RrDwrWb+iqM7vlQlodiMr9VTOCxDke9MhW5peRP94vKyptquzJW8J+Y3qNcM774bOrQXpQMo92i5d4ffPYmEoifxVYEhmZrM2Yxr3zqLW0cs446RvCDRLTyGAhte6F9i1Qz95U4WqVkJ9Y5A/cSwJ1W17lK+e8ZMpjkrZXUL0gYGylM7BJRf+R6XOnXAdBEW1Dr8QN+s8ai4m5Y0htwPqTfL5/rGiVrES+QnDUJDe5mtpa3v51geAzgXTFtw3JCGpGyUbv0kITvFJBwNMvUz",
"fingerprint": "a5:3b:97:0c:b5:2a:a1:6d:e4:93:2f:9d:5f:a6:0e:28",
"created_at": "2026-01-14T15:57:04+00:00",
"updated_at": "2026-01-14T15:57:04+00:00",
"project": {},
"user": {
"id": "user_Xjm6jLAYleIy8YRwoMyLCBbXypG",
"first_name": "Lashawna",
"last_name": "Wuckert",
"email": "shawnee_runolfsdottir@olson-gulgowski.test",
"created_at": "2025-10-16T00:00:00.000Z",
"updated_at": "2025-04-04T00:00:00.000Z",
"role": {
"id": "role_5QB3mJAbazs5MbgR5RkLFro6YVY",
"name": "owner",
"created_at": "2025-12-23T00:00:00.000Z",
"updated_at": "2026-11-24T00:00:00.000Z"
}
}
}
}
],
"meta": {}
}Authorizations
Query Parameters
Project ID or slug
Filter by scope: project (has projects), team (no projects), or empty (all)
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