Projects
List projects
List active projects. Pass include_inactive=true or a status filter to include completed or cancelled projects.
GET
/
v1
/
projects
List projects
curl --request GET \
--url https://api.slant.app/v1/projects \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.slant.app/v1/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.slant.app/v1/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.slant.app/v1/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.slant.app/v1/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.slant.app/v1/projects")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.slant.app/v1/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{
"data": [
{
"id": "project123xyz",
"name": "Smith Family Onboarding",
"status": "in_progress",
"book_id": "book123xyz",
"project_milestone": {
"id": "milestone123xyz",
"title": "Initial Setup",
"project_template_id": "template123xyz",
"guid": "milestone-guid",
"color": "<string>",
"sort_order": 123,
"auto_advance_trigger": "all_tasks_completed",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"project_milestone_outcomes": [
{
"id": "outcome123xyz",
"label": "Ready for accounts",
"destination": "next_milestone",
"default_comment": "<string>",
"sort_order": 123,
"target_project_milestone_id": "<string>"
}
],
"project_milestone_form_fields": [
{
"id": "field123xyz",
"label": "Custodian",
"field_type": "text",
"required": true,
"guid": "field-guid",
"placeholder": "<string>",
"sort_order": 123,
"household_record_source": "<string>",
"select_options": [
"<string>"
]
}
]
},
"project_template": {
"id": "template123xyz",
"title": "New Client Onboarding",
"project_milestones": [
{
"id": "milestone123xyz",
"title": "Initial Setup",
"project_template_id": "template123xyz",
"guid": "milestone-guid",
"color": "<string>",
"sort_order": 123,
"auto_advance_trigger": "all_tasks_completed",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"project_milestone_outcomes": [
{
"id": "outcome123xyz",
"label": "Ready for accounts",
"destination": "next_milestone",
"default_comment": "<string>",
"sort_order": 123,
"target_project_milestone_id": "<string>"
}
],
"project_milestone_form_fields": [
{
"id": "field123xyz",
"label": "Custodian",
"field_type": "text",
"required": true,
"guid": "field-guid",
"placeholder": "<string>",
"sort_order": 123,
"household_record_source": "<string>",
"select_options": [
"<string>"
]
}
]
}
],
"guid": "template-guid",
"description": "<string>",
"projectable_kind": "household",
"enable_kanban_view": true,
"book_id": "<string>",
"order_index": 123,
"book_name": "<string>",
"book_initials": "<string>",
"attachments": [
{
"file_name": "onboarding.pdf",
"file_type": "application/pdf",
"file_size": 123456,
"source": "uploaded",
"signed_id": "signed-blob-id",
"download_url": "<string>",
"view_url": "<string>"
}
],
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
},
"milestone_progress": 123,
"overall_progress": 123,
"milestone_updated_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z",
"project_template_id": "template123xyz",
"project_milestone_id": "milestone123xyz",
"assigned_to_id": "<string>",
"assigned_team_id": "<string>",
"created_by_id": "<string>",
"household_id": "<string>",
"projectable_type": "Household",
"projectable_id": "<string>",
"description": {
"html": "<string>",
"markdown": "<string>",
"nodes": null,
"preferred_format": "<string>"
},
"comments_count": 123,
"milestone_progresses": [
{}
],
"visited_project_milestone_ids": [
"<string>"
],
"attachments": [
{
"file_name": "onboarding.pdf",
"file_type": "application/pdf",
"file_size": 123456,
"source": "uploaded",
"signed_id": "signed-blob-id",
"download_url": "<string>",
"view_url": "<string>"
}
],
"household": {
"id": "<string>",
"name": "<string>",
"type": "Client"
},
"projectable": {
"id": "abc123xyz",
"type": "Client",
"name": "Smith Household",
"person": {
"id": "abc123xyz",
"book_id": "book123xyz",
"first_name": "John",
"last_name": "Doe",
"household_id": "xyz789abc",
"contact_id": "cnt456def",
"role_type": "client",
"middle_name": "Robert",
"salutation": "Mr.",
"suffix": "Jr.",
"maiden_name": "Smith",
"gender": "male",
"designations": "CPA, CFP",
"household_role": "head_of_household",
"preferred_name": "Johnny",
"date_of_birth": "1985-06-15",
"date_of_death": "2026-01-15",
"job_title": "Software Engineer",
"ssn": "***-**-6789",
"drivers_license_number": "******7890",
"email_addresses": [
{
"email": "john.doe@example.com",
"email_type": "personal",
"is_primary": true
}
],
"phone_numbers": [
{
"phone_number": "+15555551234",
"phone_type": "mobile",
"is_primary": true,
"extension": "1234"
}
],
"addresses": [
{
"address_type": "home",
"is_primary": true,
"line1": "123 Main St",
"line2": "Apt 4B",
"city": "New York",
"state": "NY",
"zip": "10001",
"country_code": "US"
}
],
"employments": [
{
"business_name": "Acme Corp",
"id": "emp123xyz",
"person_id": "abc123xyz",
"role": "Software Engineer",
"start_date": "2023-01-15",
"end_date": "2024-12-31",
"actively_employed": true
}
],
"custom_fields": {
"preferred_contact_method": "Email",
"risk_tolerance": "Moderate"
}
}
},
"assigned_to": {
"id": "abc123xyz",
"email": "user@example.com",
"first_name": "John",
"last_name": "Doe",
"api_access": {
"auth_type": "personal_access_token",
"scope": "read_write"
}
},
"assigned_team": {
"id": "<string>",
"name": "<string>"
},
"created_by": {
"id": "abc123xyz",
"email": "user@example.com",
"first_name": "John",
"last_name": "Doe",
"api_access": {
"auth_type": "personal_access_token",
"scope": "read_write"
}
},
"project_form_field_responses": [
{
"id": "response123xyz",
"project_milestone_form_field_id": "field123xyz",
"value": "<unknown>",
"display_value": "<string>"
}
],
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}
],
"pagination": {
"current_page": 1,
"total_pages": 10,
"total_count": 100,
"per_page": 25
}
}Authorizations
OAuth 2.0 Bearer Token from Clerk authentication
Query Parameters
Filter by book ID
Filter by status
Available options:
in_progress, overdue, completed, cancelled Filter by household ID
Filter by related record type
Available options:
Household, Contact, Business Filter by related record ID. Must be used with projectable_type.
Filter by project template ID
Filter by current project milestone ID
Filter by assigned user ID
Filter by assigned team ID
Filter by updated timestamp
When true, return only ownerless projects
Available options:
true, false When true, include completed and cancelled projects unless a status filter is provided
Available options:
true, false Page number
Items per page (1-100, default: 25). Values over 100 will be clamped to 100.
Required range:
1 <= x <= 100⌘I
List projects
curl --request GET \
--url https://api.slant.app/v1/projects \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.slant.app/v1/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.slant.app/v1/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.slant.app/v1/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.slant.app/v1/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.slant.app/v1/projects")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.slant.app/v1/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{
"data": [
{
"id": "project123xyz",
"name": "Smith Family Onboarding",
"status": "in_progress",
"book_id": "book123xyz",
"project_milestone": {
"id": "milestone123xyz",
"title": "Initial Setup",
"project_template_id": "template123xyz",
"guid": "milestone-guid",
"color": "<string>",
"sort_order": 123,
"auto_advance_trigger": "all_tasks_completed",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"project_milestone_outcomes": [
{
"id": "outcome123xyz",
"label": "Ready for accounts",
"destination": "next_milestone",
"default_comment": "<string>",
"sort_order": 123,
"target_project_milestone_id": "<string>"
}
],
"project_milestone_form_fields": [
{
"id": "field123xyz",
"label": "Custodian",
"field_type": "text",
"required": true,
"guid": "field-guid",
"placeholder": "<string>",
"sort_order": 123,
"household_record_source": "<string>",
"select_options": [
"<string>"
]
}
]
},
"project_template": {
"id": "template123xyz",
"title": "New Client Onboarding",
"project_milestones": [
{
"id": "milestone123xyz",
"title": "Initial Setup",
"project_template_id": "template123xyz",
"guid": "milestone-guid",
"color": "<string>",
"sort_order": 123,
"auto_advance_trigger": "all_tasks_completed",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"project_milestone_outcomes": [
{
"id": "outcome123xyz",
"label": "Ready for accounts",
"destination": "next_milestone",
"default_comment": "<string>",
"sort_order": 123,
"target_project_milestone_id": "<string>"
}
],
"project_milestone_form_fields": [
{
"id": "field123xyz",
"label": "Custodian",
"field_type": "text",
"required": true,
"guid": "field-guid",
"placeholder": "<string>",
"sort_order": 123,
"household_record_source": "<string>",
"select_options": [
"<string>"
]
}
]
}
],
"guid": "template-guid",
"description": "<string>",
"projectable_kind": "household",
"enable_kanban_view": true,
"book_id": "<string>",
"order_index": 123,
"book_name": "<string>",
"book_initials": "<string>",
"attachments": [
{
"file_name": "onboarding.pdf",
"file_type": "application/pdf",
"file_size": 123456,
"source": "uploaded",
"signed_id": "signed-blob-id",
"download_url": "<string>",
"view_url": "<string>"
}
],
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
},
"milestone_progress": 123,
"overall_progress": 123,
"milestone_updated_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z",
"project_template_id": "template123xyz",
"project_milestone_id": "milestone123xyz",
"assigned_to_id": "<string>",
"assigned_team_id": "<string>",
"created_by_id": "<string>",
"household_id": "<string>",
"projectable_type": "Household",
"projectable_id": "<string>",
"description": {
"html": "<string>",
"markdown": "<string>",
"nodes": null,
"preferred_format": "<string>"
},
"comments_count": 123,
"milestone_progresses": [
{}
],
"visited_project_milestone_ids": [
"<string>"
],
"attachments": [
{
"file_name": "onboarding.pdf",
"file_type": "application/pdf",
"file_size": 123456,
"source": "uploaded",
"signed_id": "signed-blob-id",
"download_url": "<string>",
"view_url": "<string>"
}
],
"household": {
"id": "<string>",
"name": "<string>",
"type": "Client"
},
"projectable": {
"id": "abc123xyz",
"type": "Client",
"name": "Smith Household",
"person": {
"id": "abc123xyz",
"book_id": "book123xyz",
"first_name": "John",
"last_name": "Doe",
"household_id": "xyz789abc",
"contact_id": "cnt456def",
"role_type": "client",
"middle_name": "Robert",
"salutation": "Mr.",
"suffix": "Jr.",
"maiden_name": "Smith",
"gender": "male",
"designations": "CPA, CFP",
"household_role": "head_of_household",
"preferred_name": "Johnny",
"date_of_birth": "1985-06-15",
"date_of_death": "2026-01-15",
"job_title": "Software Engineer",
"ssn": "***-**-6789",
"drivers_license_number": "******7890",
"email_addresses": [
{
"email": "john.doe@example.com",
"email_type": "personal",
"is_primary": true
}
],
"phone_numbers": [
{
"phone_number": "+15555551234",
"phone_type": "mobile",
"is_primary": true,
"extension": "1234"
}
],
"addresses": [
{
"address_type": "home",
"is_primary": true,
"line1": "123 Main St",
"line2": "Apt 4B",
"city": "New York",
"state": "NY",
"zip": "10001",
"country_code": "US"
}
],
"employments": [
{
"business_name": "Acme Corp",
"id": "emp123xyz",
"person_id": "abc123xyz",
"role": "Software Engineer",
"start_date": "2023-01-15",
"end_date": "2024-12-31",
"actively_employed": true
}
],
"custom_fields": {
"preferred_contact_method": "Email",
"risk_tolerance": "Moderate"
}
}
},
"assigned_to": {
"id": "abc123xyz",
"email": "user@example.com",
"first_name": "John",
"last_name": "Doe",
"api_access": {
"auth_type": "personal_access_token",
"scope": "read_write"
}
},
"assigned_team": {
"id": "<string>",
"name": "<string>"
},
"created_by": {
"id": "abc123xyz",
"email": "user@example.com",
"first_name": "John",
"last_name": "Doe",
"api_access": {
"auth_type": "personal_access_token",
"scope": "read_write"
}
},
"project_form_field_responses": [
{
"id": "response123xyz",
"project_milestone_form_field_id": "field123xyz",
"value": "<unknown>",
"display_value": "<string>"
}
],
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}
],
"pagination": {
"current_page": 1,
"total_pages": 10,
"total_count": 100,
"per_page": 25
}
}