List workorders
/v1/workorders
A user (OAuth) without the right to view all workorders only sees the workorders he is responsible for or has hours on, like in the app. API keys see all workorders of the environment
Authorization: HTTP
Query
| Name | Type | Description |
|---|---|---|
page
|
integer | |
per_page
|
integer | |
id
|
string | |
client_id
|
string | |
number
|
string | |
date_from
|
string | |
date_to
|
string | |
due_date_from
|
string | |
due_date_to
|
string | |
created_from
|
string | |
created_to
|
string | |
search
|
string | |
payment_status
|
string | Payment status of a document, the same as Appficient shows it: `paid` when the invoice is marked paid, `partial` when payments cover part of it, otherwise the last status from your payment provider (`pending`, `failed`, `canceled`, `expired`, `authorized`, `created`, `chargeback`, `refunded`) or `open`. |
sort
|
string | Sort field. |
order
|
string | Sort direction. |
Request body
None
Response
Payment status of a document, the same as Appficient shows it: `paid` when the invoice is marked paid, `partial` when payments cover part of it, otherwise the last status from your payment provider (`pending`, `failed`, `canceled`, `expired`, `authorized`, `created`, `chargeback`, `refunded`) or `open`.
open
partial
paid
pending
failed
canceled
expired
authorized
created
chargeback
refunded
Your reference, if set.
{
"data": [
{
"client_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"created_at": "2026-02-01T11:00:00+01:00",
"due_date": "2026-03-01",
"id": "e5f6a7b8-c9d0-1234-ef01-345678901234",
"invoice_date": "2026-02-01",
"number": "W-2026-0015",
"title": "Installatie op locatie",
"total_excl_vat": 750,
"total_incl_vat": 907.5
}
],
"meta": {
"page": 1,
"pages": 1,
"per_page": 25,
"total": 1
}
}
Examples
curl -X GET "https://api.appficient.nl/v1/workorders" \
-H "Authorization: Bearer apf_xxxxxxxx" \
-H "Accept: application/json"
import requests
url = 'https://api.appficient.nl/v1/workorders'
headers = {
'Authorization': 'Bearer apf_xxxxxxxx',
'Accept': 'application/json',
}
response = requests.get(url, headers=headers)
data = response.json()
const url = 'https://api.appficient.nl/v1/workorders';
const options = {
method: 'GET',
headers: {
Authorization: 'Bearer apf_xxxxxxxx',
Accept: 'application/json',
},
};
const res = await fetch(url, options);
const json = await res.json();
<?php
$url = 'https://api.appficient.nl/v1/workorders';
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer apf_xxxxxxxx',
'Accept: application/json',
],
]);
$response = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
$json = json_decode($response, true);
postman request GET 'https://api.appficient.nl/v1/workorders' \
--header 'Authorization: Bearer apf_xxxxxxxx' \
--header 'Accept: application/json'
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using var client = new HttpClient();
client.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Bearer", "apf_xxxxxxxx");
client.DefaultRequestHeaders.Accept.Add(
new MediaTypeWithQualityHeaderValue("application/json"));
using var request = new HttpRequestMessage(
HttpMethod.Get,
"https://api.appficient.nl/v1/workorders");
var response = await client.SendAsync(request);
var json = await response.Content.ReadAsStringAsync();
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
HttpClient client = HttpClient.newHttpClient();
HttpRequest.Builder builder = HttpRequest.newBuilder()
.uri(URI.create("https://api.appficient.nl/v1/workorders"))
.header("Accept", "application/json")
.header("Authorization", "Bearer apf_xxxxxxxx");
HttpRequest request = builder.GET().build();
HttpResponse<String> response = client.send(
request, HttpResponse.BodyHandlers.ofString());
String json = response.body();
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
req, err := http.NewRequest("GET", "https://api.appficient.nl/v1/workorders", nil)
if err != nil {
panic(err)
}
req.Header.Set("Accept", "application/json")
req.Header.Set("Authorization", "Bearer apf_xxxxxxxx")
res, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer res.Body.Close()
data, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(data))
}
require 'net/http'
require 'json'
require 'uri'
uri = URI('https://api.appficient.nl/v1/workorders')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
req = Net::HTTP::Get.new(uri)
req['Accept'] = 'application/json'
req['Authorization'] = 'Bearer apf_xxxxxxxx'
res = http.request(req)
data = JSON.parse(res.body)
{
"data": [
{
"client_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"created_at": "2026-02-01T11:00:00+01:00",
"due_date": "2026-03-01",
"id": "e5f6a7b8-c9d0-1234-ef01-345678901234",
"invoice_date": "2026-02-01",
"number": "W-2026-0015",
"title": "Installatie op locatie",
"total_excl_vat": 750,
"total_incl_vat": 907.5
}
],
"meta": {
"page": 1,
"pages": 1,
"per_page": 25,
"total": 1
}
}
Curl, Node and response are shown to the right of this endpoint.