Get a Milestone
curl --request GET \
--url https://api.zivio.net/api/v4/milestones/{id} \
--header 'Authorization: Bearer <token>' \
--header 'zivio-tenant-id: <api-key>'import requests
url = "https://api.zivio.net/api/v4/milestones/{id}"
headers = {
"Authorization": "Bearer <token>",
"zivio-tenant-id": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {Authorization: 'Bearer <token>', 'zivio-tenant-id': '<api-key>'}
};
fetch('https://api.zivio.net/api/v4/milestones/{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://api.zivio.net/api/v4/milestones/{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>",
"zivio-tenant-id: <api-key>"
],
]);
$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.zivio.net/api/v4/milestones/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("zivio-tenant-id", "<api-key>")
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.zivio.net/api/v4/milestones/{id}")
.header("Authorization", "Bearer <token>")
.header("zivio-tenant-id", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.zivio.net/api/v4/milestones/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
request["zivio-tenant-id"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"id": 101,
"title": "Website Redesign Project",
"status": "submitted",
"client_suggested": false,
"close_project": false,
"comments": "Additional information and context for this record.",
"details": "Additional information and context for this record.",
"due_on": "2024-01-16",
"project_summary": "Website Redesign Project - Complete redesign of corporate website with modern UX",
"mandatory": false,
"notes": "Additional information and context for this record.",
"original_id": 501,
"original_rate": {
"cents": 150000,
"currency": "GBP"
},
"purchase_order_line_id": 501,
"rate": {
"cents": 150000,
"currency": "GBP"
},
"submitted_at": "2024-01-16T10:30:00+00:00",
"interim_valuation_date": "2024-01-16T10:30:00+00:00",
"tiered_markup_fee": {
"cents": 150000,
"currency": "GBP"
},
"children": [
201,
202
],
"parents": [
201,
202
],
"custom_fields": {
"department": "Engineering",
"priority": "high",
"cost_code": "CC-001"
},
"created_at": "2024-01-16T10:30:00+00:00",
"updated_at": "2024-01-16T10:30:00+00:00",
"project_id": 501,
"final_claim": "false",
"delivered_on": "2024-01-16",
"approved_by": {
"id": 101,
"first_name": "Demo",
"last_name": "User",
"email": "user1@example.com",
"org_id": 501,
"org_name": "Acme Corporation"
},
"rejected_by": {
"id": 101,
"first_name": "Demo",
"last_name": "User",
"email": "user1@example.com",
"org_id": 501,
"org_name": "Acme Corporation"
},
"level_1_approved_by": {
"id": 101,
"first_name": "Demo",
"last_name": "User",
"email": "user1@example.com",
"org_id": 501,
"org_name": "Acme Corporation"
}
}Milestones
Get a Milestone
GET
/
milestones
/
{id}
Get a Milestone
curl --request GET \
--url https://api.zivio.net/api/v4/milestones/{id} \
--header 'Authorization: Bearer <token>' \
--header 'zivio-tenant-id: <api-key>'import requests
url = "https://api.zivio.net/api/v4/milestones/{id}"
headers = {
"Authorization": "Bearer <token>",
"zivio-tenant-id": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {Authorization: 'Bearer <token>', 'zivio-tenant-id': '<api-key>'}
};
fetch('https://api.zivio.net/api/v4/milestones/{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://api.zivio.net/api/v4/milestones/{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>",
"zivio-tenant-id: <api-key>"
],
]);
$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.zivio.net/api/v4/milestones/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("zivio-tenant-id", "<api-key>")
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.zivio.net/api/v4/milestones/{id}")
.header("Authorization", "Bearer <token>")
.header("zivio-tenant-id", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.zivio.net/api/v4/milestones/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
request["zivio-tenant-id"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"id": 101,
"title": "Website Redesign Project",
"status": "submitted",
"client_suggested": false,
"close_project": false,
"comments": "Additional information and context for this record.",
"details": "Additional information and context for this record.",
"due_on": "2024-01-16",
"project_summary": "Website Redesign Project - Complete redesign of corporate website with modern UX",
"mandatory": false,
"notes": "Additional information and context for this record.",
"original_id": 501,
"original_rate": {
"cents": 150000,
"currency": "GBP"
},
"purchase_order_line_id": 501,
"rate": {
"cents": 150000,
"currency": "GBP"
},
"submitted_at": "2024-01-16T10:30:00+00:00",
"interim_valuation_date": "2024-01-16T10:30:00+00:00",
"tiered_markup_fee": {
"cents": 150000,
"currency": "GBP"
},
"children": [
201,
202
],
"parents": [
201,
202
],
"custom_fields": {
"department": "Engineering",
"priority": "high",
"cost_code": "CC-001"
},
"created_at": "2024-01-16T10:30:00+00:00",
"updated_at": "2024-01-16T10:30:00+00:00",
"project_id": 501,
"final_claim": "false",
"delivered_on": "2024-01-16",
"approved_by": {
"id": 101,
"first_name": "Demo",
"last_name": "User",
"email": "user1@example.com",
"org_id": 501,
"org_name": "Acme Corporation"
},
"rejected_by": {
"id": 101,
"first_name": "Demo",
"last_name": "User",
"email": "user1@example.com",
"org_id": 501,
"org_name": "Acme Corporation"
},
"level_1_approved_by": {
"id": 101,
"first_name": "Demo",
"last_name": "User",
"email": "user1@example.com",
"org_id": 501,
"org_name": "Acme Corporation"
}
}Authorizations
OAuth 2.0 client credentials. The access token from POST /oauth/token is sent as a bearer token. Request only the scopes you need.
Your Zivio organisation identifier. The regional API endpoints serve every Zivio organisation, so each request must identify yours.
Path Parameters
Milestone ID
Response
Milestone details
Available options:
open, submitted, approved, rejected, change_requested, on_hold, draft, cancelled, level_1_approved, closed Example:
"open"
Example:
true
Example:
true
Example:
true
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Array of IDs
Array of IDs
Key-value pairs of custom field data
Show child attributes
Show child attributes
Example:
true
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes

