from latitudesh_python_sdk import Latitudesh
import os
with Latitudesh(
bearer=os.getenv("LATITUDESH_BEARER", ""),
) as latitudesh:
res = latitudesh.projects.list(filter_tags="tag_GXeww714mRF2gZ05lnKgU8emo5RE,tag_QQkaK9JnV6tWwPG3pmLviXveVK0Y", page_size=20, page_number=1)
while res is not None:
# Handle items
res = res.next()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.Projects.List(ctx, operations.GetProjectsRequest{
FilterTags: latitudeshgosdk.Pointer("tag_GXeww714mRF2gZ05lnKgU8emo5RE,tag_QQkaK9JnV6tWwPG3pmLviXveVK0Y"),
})
if err != nil {
log.Fatal(err)
}
if res.Projects != nil {
for {
// handle items
res, err = res.Next()
if err != nil {
// handle error
}
if res == nil {
break
}
}
}
}import { Latitudesh } from "latitudesh-typescript-sdk";
const latitudesh = new Latitudesh({
bearer: process.env["LATITUDESH_BEARER"] ?? "",
});
async function run() {
const result = await latitudesh.projects.list({
filterTags: "tag_GXeww714mRF2gZ05lnKgU8emo5RE,tag_QQkaK9JnV6tWwPG3pmLviXveVK0Y",
});
for await (const page of result) {
console.log(page);
}
}
run();curl --request GET \
--url https://api.latitude.sh/projects \
--header 'Authorization: <api-key>'const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api.latitude.sh/projects', 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",
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/projects")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.latitude.sh/projects")
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": "proj_WeGoqAanqP7nz",
"type": "projects",
"attributes": {
"tags": [
{
"id": "tag_GXeww714mRF2gZ05lnKgU8emo5RE",
"name": "tag1",
"description": "Sunt dolorem inventore maxime.",
"color": "#2d6767"
},
{
"id": "tag_QQkaK9JnV6tWwPG3pmLviXveVK0Y",
"name": "tag2",
"description": "Et occaecati quod ex.",
"color": "#182f18"
}
],
"name": "Durable Iron Gloves",
"slug": "durable-iron-gloves",
"description": "Heavy Duty Steel Computer",
"billing_type": "Hourly",
"cost": null,
"billing_method": "Normal",
"bandwidth_alert": false,
"environment": null,
"provisioning_type": "on_demand",
"billing": {},
"team": {
"id": "team_w03a5zVl9XsXVybw2gz7SNr1el2",
"name": "176 Team",
"slug": "176-team",
"description": "176 Team",
"address": "3253 VonRueden Creek, Jcbury, NV 21576",
"currency": {
"id": "cur_AW6Q2D9lqKLpr",
"code": "BRL",
"name": "Brazilian Real",
"currency_id": null
},
"status": "verified",
"feature_flags": [],
"limits": {
"bare_metal": null,
"bare_metal_gpu": 1,
"virtual_machine": 5,
"virtual_machine_gpu": 3,
"elastic_ip": 5,
"virtual_network": 5,
"database": null,
"filesystem": null,
"block_storage": null
}
},
"stats": {
"databases": 0,
"ip_addresses": 0,
"prefixes": 0,
"servers": 0,
"storages": 0,
"virtual_machines": 0,
"vlans": 0
},
"created_at": "2026-01-14T15:56:39+00:00",
"updated_at": "2026-01-14T15:56:39+00:00"
}
}
],
"meta": {}
}List projects
Returns a list of all projects for the current team
from latitudesh_python_sdk import Latitudesh
import os
with Latitudesh(
bearer=os.getenv("LATITUDESH_BEARER", ""),
) as latitudesh:
res = latitudesh.projects.list(filter_tags="tag_GXeww714mRF2gZ05lnKgU8emo5RE,tag_QQkaK9JnV6tWwPG3pmLviXveVK0Y", page_size=20, page_number=1)
while res is not None:
# Handle items
res = res.next()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.Projects.List(ctx, operations.GetProjectsRequest{
FilterTags: latitudeshgosdk.Pointer("tag_GXeww714mRF2gZ05lnKgU8emo5RE,tag_QQkaK9JnV6tWwPG3pmLviXveVK0Y"),
})
if err != nil {
log.Fatal(err)
}
if res.Projects != nil {
for {
// handle items
res, err = res.Next()
if err != nil {
// handle error
}
if res == nil {
break
}
}
}
}import { Latitudesh } from "latitudesh-typescript-sdk";
const latitudesh = new Latitudesh({
bearer: process.env["LATITUDESH_BEARER"] ?? "",
});
async function run() {
const result = await latitudesh.projects.list({
filterTags: "tag_GXeww714mRF2gZ05lnKgU8emo5RE,tag_QQkaK9JnV6tWwPG3pmLviXveVK0Y",
});
for await (const page of result) {
console.log(page);
}
}
run();curl --request GET \
--url https://api.latitude.sh/projects \
--header 'Authorization: <api-key>'const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api.latitude.sh/projects', 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",
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/projects")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.latitude.sh/projects")
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": "proj_WeGoqAanqP7nz",
"type": "projects",
"attributes": {
"tags": [
{
"id": "tag_GXeww714mRF2gZ05lnKgU8emo5RE",
"name": "tag1",
"description": "Sunt dolorem inventore maxime.",
"color": "#2d6767"
},
{
"id": "tag_QQkaK9JnV6tWwPG3pmLviXveVK0Y",
"name": "tag2",
"description": "Et occaecati quod ex.",
"color": "#182f18"
}
],
"name": "Durable Iron Gloves",
"slug": "durable-iron-gloves",
"description": "Heavy Duty Steel Computer",
"billing_type": "Hourly",
"cost": null,
"billing_method": "Normal",
"bandwidth_alert": false,
"environment": null,
"provisioning_type": "on_demand",
"billing": {},
"team": {
"id": "team_w03a5zVl9XsXVybw2gz7SNr1el2",
"name": "176 Team",
"slug": "176-team",
"description": "176 Team",
"address": "3253 VonRueden Creek, Jcbury, NV 21576",
"currency": {
"id": "cur_AW6Q2D9lqKLpr",
"code": "BRL",
"name": "Brazilian Real",
"currency_id": null
},
"status": "verified",
"feature_flags": [],
"limits": {
"bare_metal": null,
"bare_metal_gpu": 1,
"virtual_machine": 5,
"virtual_machine_gpu": 3,
"elastic_ip": 5,
"virtual_network": 5,
"database": null,
"filesystem": null,
"block_storage": null
}
},
"stats": {
"databases": 0,
"ip_addresses": 0,
"prefixes": 0,
"servers": 0,
"storages": 0,
"virtual_machines": 0,
"vlans": 0
},
"created_at": "2026-01-14T15:56:39+00:00",
"updated_at": "2026-01-14T15:56:39+00:00"
}
}
],
"meta": {}
}Authorizations
Query Parameters
The project name to filter by
The project slug to filter by
The project description to filter by
The billing type to filter by
The environment to filter by
The tags ids to filter by, separated by comma, e.g. filter[tags]=tag_1,tag_2will return projects with tag_1 AND tag_2
The last_renewal_date and next_renewal_date are provided as extra attributes that show previous and future billing cycle dates. To request it, just set extra_fields[projects]=last_renewal_date,next_renewal_date in the query string.
Number of items to return per page
x >= 1Page number to return (starts at 1)
x >= 1Request aggregate stats in the response meta. Use count to get the total number of records, returned as meta.stats.total.count.
Was this page helpful?