curl --request GET \
--url https://api.zivio.net/api/v3/milestones \
--header 'X-API-Key: <api-key>' \
--header 'zivio-tenant-id: <api-key>'import requests
url = "https://api.zivio.net/api/v3/milestones"
headers = {
"X-API-Key": "<api-key>",
"zivio-tenant-id": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'X-API-Key': '<api-key>', 'zivio-tenant-id': '<api-key>'}
};
fetch('https://api.zivio.net/api/v3/milestones', 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/v3/milestones",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>",
"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/v3/milestones"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
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/v3/milestones")
.header("X-API-Key", "<api-key>")
.header("zivio-tenant-id", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.zivio.net/api/v3/milestones")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
request["zivio-tenant-id"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"milestones": [
{
"id": "66",
"client_suggested": "true",
"title": "Title of Milestone",
"details": "Details of Milestone",
"rate": "1500.00",
"ccy": "GBP",
"due_on": "2023-11-07T05:31:56Z",
"interim_valuation_date": "2023-11-07T05:31:56Z",
"notes": "some notes relating to the milestone",
"comments": "some comments relating to the milestone",
"job_id": "2669",
"job_summary": "summary of miestone",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"status": "open",
"approved_at": "2023-11-07T05:31:56Z",
"approved_by": {
"id": "7158",
"first_name": "Jack",
"last_name": "Jones",
"email": "jack_jones@example.com",
"org_name": "Organisation Ltd",
"org_id": "567",
"business_unit": "Public Private Partnerships",
"division": "Infastructure",
"department": "Bridges",
"vetting_status": "PASSED",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"custom_fields": {
"key": "value"
},
"has_oversight": "<string>"
},
"level_1_approved_at": "2023-11-07T05:31:56Z",
"level_1_approved_by": {
"id": "258",
"first_name": "John",
"last_name": "Smith",
"email": "john_smith@example.com",
"org_name": "Smith Co Ltd",
"org_id": "200",
"business_unit": "Public Private Partnerships",
"division": "Infastructure",
"department": "Bridges",
"vetting_status": "PASSED",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"custom_fields": {
"key": "value"
},
"has_oversight": "<string>"
},
"children": [
"124"
],
"parents": [
"14"
],
"custom_fields": {
"key": "value"
}
}
]
}Retrieve all milestones, filter by query
curl --request GET \
--url https://api.zivio.net/api/v3/milestones \
--header 'X-API-Key: <api-key>' \
--header 'zivio-tenant-id: <api-key>'import requests
url = "https://api.zivio.net/api/v3/milestones"
headers = {
"X-API-Key": "<api-key>",
"zivio-tenant-id": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'X-API-Key': '<api-key>', 'zivio-tenant-id': '<api-key>'}
};
fetch('https://api.zivio.net/api/v3/milestones', 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/v3/milestones",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>",
"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/v3/milestones"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
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/v3/milestones")
.header("X-API-Key", "<api-key>")
.header("zivio-tenant-id", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.zivio.net/api/v3/milestones")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
request["zivio-tenant-id"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"milestones": [
{
"id": "66",
"client_suggested": "true",
"title": "Title of Milestone",
"details": "Details of Milestone",
"rate": "1500.00",
"ccy": "GBP",
"due_on": "2023-11-07T05:31:56Z",
"interim_valuation_date": "2023-11-07T05:31:56Z",
"notes": "some notes relating to the milestone",
"comments": "some comments relating to the milestone",
"job_id": "2669",
"job_summary": "summary of miestone",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"status": "open",
"approved_at": "2023-11-07T05:31:56Z",
"approved_by": {
"id": "7158",
"first_name": "Jack",
"last_name": "Jones",
"email": "jack_jones@example.com",
"org_name": "Organisation Ltd",
"org_id": "567",
"business_unit": "Public Private Partnerships",
"division": "Infastructure",
"department": "Bridges",
"vetting_status": "PASSED",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"custom_fields": {
"key": "value"
},
"has_oversight": "<string>"
},
"level_1_approved_at": "2023-11-07T05:31:56Z",
"level_1_approved_by": {
"id": "258",
"first_name": "John",
"last_name": "Smith",
"email": "john_smith@example.com",
"org_name": "Smith Co Ltd",
"org_id": "200",
"business_unit": "Public Private Partnerships",
"division": "Infastructure",
"department": "Bridges",
"vetting_status": "PASSED",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"custom_fields": {
"key": "value"
},
"has_oversight": "<string>"
},
"children": [
"124"
],
"parents": [
"14"
],
"custom_fields": {
"key": "value"
}
}
]
}Query Parameters
Filter by a status, e.g. [open, submitted, approved, rejected, change_requested, on_hold, draft]
Date range [YYYY-MM-DD+TO+YYYY-MM-DD] to search based on created timestamp for object.
Date range [YYYY-MM-DD+TO+YYYY-MM-DD] to search based on updated timestamp for object.
Date range [YYYY-MM-DD+TO+YYYY-MM-DD] to search based on updated timestamp for object.
Date range [YYYY-MM-DD+TO+YYYY-MM-DD] to search based on updated timestamp for object.
Results are sorted by created desc as default. Ordering may be specified, available options are ['approved', created', 'updated'], which can be combined in a comma separated list, e.g. approved:desc,updated:desc,created:asc
Number of results returned per request
Paginate results when number of results exceeds limit
Filter milestones by job id
filter milestones by supplier id
Response
ok
Show child attributes
Show child attributes

