curl --request GET \
--url https://www.ruddr.io/api/workspace/project-billing-schedule-items/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://www.ruddr.io/api/workspace/project-billing-schedule-items/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://www.ruddr.io/api/workspace/project-billing-schedule-items/{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://www.ruddr.io/api/workspace/project-billing-schedule-items/{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://www.ruddr.io/api/workspace/project-billing-schedule-items/{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://www.ruddr.io/api/workspace/project-billing-schedule-items/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://www.ruddr.io/api/workspace/project-billing-schedule-items/{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": "a8b2c4d6-3e1f-4a9b-8c7d-f5e2a1b9c6d3",
"typeId": "recurring",
"date": "2026-06-30",
"quantity": 10,
"rate": 2650,
"fee": 26500,
"name": "Monthly Services - June 2026",
"createdAt": "2026-02-25T17:42:21.203Z",
"project": {
"id": "d077258e-2158-4f34-aabd-97e971d0c18d",
"name": "Cloud Infrastructure Services",
"client": {
"id": "aa39afdb-e168-4956-b061-41c7c62e8c2e",
"name": "Paul's Boutique"
}
},
"invoiceItem": {
"id": "aba04832-216c-463e-8998-c520948f707c",
"name": "Consulting Services"
},
"invoiced": false
}{
"status": 400,
"message": "Parameter 'id' is not a valid UUID."
}{
"status": 404,
"message": "Object with id 'b2c4e6a8-1d3f-5a7c-9e0b-d4f6a8c2e1b3' not found."
}Get a project billing schedule item
curl --request GET \
--url https://www.ruddr.io/api/workspace/project-billing-schedule-items/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://www.ruddr.io/api/workspace/project-billing-schedule-items/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://www.ruddr.io/api/workspace/project-billing-schedule-items/{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://www.ruddr.io/api/workspace/project-billing-schedule-items/{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://www.ruddr.io/api/workspace/project-billing-schedule-items/{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://www.ruddr.io/api/workspace/project-billing-schedule-items/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://www.ruddr.io/api/workspace/project-billing-schedule-items/{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": "a8b2c4d6-3e1f-4a9b-8c7d-f5e2a1b9c6d3",
"typeId": "recurring",
"date": "2026-06-30",
"quantity": 10,
"rate": 2650,
"fee": 26500,
"name": "Monthly Services - June 2026",
"createdAt": "2026-02-25T17:42:21.203Z",
"project": {
"id": "d077258e-2158-4f34-aabd-97e971d0c18d",
"name": "Cloud Infrastructure Services",
"client": {
"id": "aa39afdb-e168-4956-b061-41c7c62e8c2e",
"name": "Paul's Boutique"
}
},
"invoiceItem": {
"id": "aba04832-216c-463e-8998-c520948f707c",
"name": "Consulting Services"
},
"invoiced": false
}{
"status": 400,
"message": "Parameter 'id' is not a valid UUID."
}{
"status": 404,
"message": "Object with id 'b2c4e6a8-1d3f-5a7c-9e0b-d4f6a8c2e1b3' not found."
}/project-invoice-milestones/{id} path remains available as an alias for this endpoint.Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
The project billing schedule item uuid
Response
200
The unique identifier for the object.
The type of billing schedule item. Identifies whether the item is one-off ("custom", the default) or recurring ("recurring").
custom, recurring The date of the billing schedule item. Will be in the form YYYY-MM-DD.
The quantity used to calculate the fee.
The rate used to calculate the fee.
The total amount for the billing schedule item.
The name of the billing schedule item.
The timestamp when the object was created.
The project this billing schedule item belongs to.
Show child attributes
Show child attributes
The invoice item associated with this billing schedule item.
Show child attributes
Show child attributes
Whether the billing schedule item has been invoiced.