Get a single project's full detail
curl --request GET \
--url https://app.auditynow.com/api/projects/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.auditynow.com/api/projects/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.auditynow.com/api/projects/{id}', 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://app.auditynow.com/api/projects/{id}",
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://app.auditynow.com/api/projects/{id}"
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://app.auditynow.com/api/projects/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.auditynow.com/api/projects/{id}")
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{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"clientName": "<string>",
"industry": "<string>",
"companySize": "<string>",
"status": "setup",
"createdAt": "2023-11-07T05:31:56Z",
"description": "<string>",
"currency": "<string>",
"updatedAt": "2023-11-07T05:31:56Z",
"documentsCount": 123,
"analysisProgress": 50,
"stakeholdersCount": 123,
"hasAnalysis": true,
"hasInterviewAnalysis": true,
"hasAuditAnalysis": true,
"hasQuestionnaires": true,
"hasDeliverables": true,
"statusLabel": "<string>",
"statusDescription": "<string>",
"lastActivity": {
"type": "document_upload",
"date": "2023-11-07T05:31:56Z",
"description": "<string>"
},
"documents": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"fileName": "<string>",
"fileType": "<string>",
"fileSize": 123,
"storagePath": "<string>",
"uploadStatus": "<string>",
"createdAt": "2023-11-07T05:31:56Z"
}
],
"businessAnalysis": [
{}
]
}{
"error": "Unauthorized"
}{
"error": "<string>",
"details": "<string>"
}Projects
Get a single project's full detail
Returns the full project record, including documents array and analysis status flags. Returns 404 if the project doesn’t exist or doesn’t belong to the authenticated user (ownership is enforced by an explicit user_id filter in this route, not RLS, since the route uses the service-role client).
GET
/
api
/
projects
/
{id}
Get a single project's full detail
curl --request GET \
--url https://app.auditynow.com/api/projects/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.auditynow.com/api/projects/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.auditynow.com/api/projects/{id}', 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://app.auditynow.com/api/projects/{id}",
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://app.auditynow.com/api/projects/{id}"
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://app.auditynow.com/api/projects/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.auditynow.com/api/projects/{id}")
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{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"clientName": "<string>",
"industry": "<string>",
"companySize": "<string>",
"status": "setup",
"createdAt": "2023-11-07T05:31:56Z",
"description": "<string>",
"currency": "<string>",
"updatedAt": "2023-11-07T05:31:56Z",
"documentsCount": 123,
"analysisProgress": 50,
"stakeholdersCount": 123,
"hasAnalysis": true,
"hasInterviewAnalysis": true,
"hasAuditAnalysis": true,
"hasQuestionnaires": true,
"hasDeliverables": true,
"statusLabel": "<string>",
"statusDescription": "<string>",
"lastActivity": {
"type": "document_upload",
"date": "2023-11-07T05:31:56Z",
"description": "<string>"
},
"documents": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"fileName": "<string>",
"fileType": "<string>",
"fileSize": 123,
"storagePath": "<string>",
"uploadStatus": "<string>",
"createdAt": "2023-11-07T05:31:56Z"
}
],
"businessAnalysis": [
{}
]
}{
"error": "Unauthorized"
}{
"error": "<string>",
"details": "<string>"
}Authorizations
A Personal Access Token issued from https://app.auditynow.com/dashboard/settings/api-tokens. Format: aky_<32 random chars>.
Path Parameters
The project's UUID.
Response
Project detail
Lifecycle state of an audit project.
Available options:
setup, analysis, interviews, complete, archived Percentage 0-100 representing how far through the audit lifecycle this project is.
Required range:
0 <= x <= 100Show child attributes
Show child attributes
Show child attributes
Show child attributes
Inline business analysis records, if present. Empty array when none.

