List Projects
curl --request GET \
--url https://api.fifteenth.com/v1beta/accounts/{account_id}/projects \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.fifteenth.com/v1beta/accounts/{account_id}/projects"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.fifteenth.com/v1beta/accounts/{account_id}/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.fifteenth.com/v1beta/accounts/{account_id}/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: Bearer <token>"
],
]);
$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.fifteenth.com/v1beta/accounts/{account_id}/projects"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.fifteenth.com/v1beta/accounts/{account_id}/projects")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fifteenth.com/v1beta/accounts/{account_id}/projects")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"projects": [
{}
],
"total_count": 123
}Projects
List Projects
Retrieve all tax projects for a client account
GET
/
v1beta
/
accounts
/
{account_id}
/
projects
List Projects
curl --request GET \
--url https://api.fifteenth.com/v1beta/accounts/{account_id}/projects \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.fifteenth.com/v1beta/accounts/{account_id}/projects"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.fifteenth.com/v1beta/accounts/{account_id}/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.fifteenth.com/v1beta/accounts/{account_id}/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: Bearer <token>"
],
]);
$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.fifteenth.com/v1beta/accounts/{account_id}/projects"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.fifteenth.com/v1beta/accounts/{account_id}/projects")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fifteenth.com/v1beta/accounts/{account_id}/projects")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"projects": [
{}
],
"total_count": 123
}Overview
The List Projects endpoint returns all tax projects for a client account. Projects represent distinct workflows (tax returns, estimates, planning, equity planning) with their own requirements and deliverables.Request
Path Parameters
number
required
Account identifier to list projects for.
Query Parameters
integer
Filter projects by tax year.
string
Filter by type:
tax_return, quarterly_estimate, tax_planning, equity_planning.string
Filter by status:
waiting_on_client, in_progress, in_review, completed.Response
array
Array of project objects with status and progress information.
integer
Total number of projects.
Examples
import requests
account_id = 12345
url = f"https://api.fifteenth.com/v1beta/accounts/{account_id}/projects"
headers = {
"Authorization": "Bearer 15th_your_api_key_here"
}
params = {"tax_year": 2024}
response = requests.get(url, headers=headers, params=params)
data = response.json()
print(f"Found {data['total_count']} projects")
for project in data['projects']:
print(f"- {project['type']}: {project['status']}")
const accountId = 12345;
const url = `https://api.fifteenth.com/v1beta/accounts/${accountId}/projects?tax_year=2024`;
const response = await fetch(url, {
headers: {
'Authorization': 'Bearer 15th_your_api_key_here'
}
});
const data = await response.json();
console.log(`Found ${data.total_count} projects`);
data.projects.forEach(project => {
console.log(`- ${project.type}: ${project.status}`);
});
Sample Response
{
"projects": [
{
"id": 12345,
"type": "tax_return",
"tax_year": 2024,
"status": "in_progress",
"progress_percentage": 65,
"created_at": "2024-01-15T10:00:00Z",
"estimated_completion": "2024-02-15T00:00:00Z"
},
{
"id": 67890,
"type": "quarterly_estimate",
"tax_year": 2024,
"status": "waiting_on_client",
"progress_percentage": 20,
"created_at": "2024-01-10T14:30:00Z",
"estimated_completion": "2024-03-15T00:00:00Z"
}
],
"total_count": 2
}
⌘I