List clients
curl --request GET \
--url https://api.envoi.no/v1/clients \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.envoi.no/v1/clients"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.envoi.no/v1/clients', 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.envoi.no/v1/clients",
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://api.envoi.no/v1/clients"
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://api.envoi.no/v1/clients")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.envoi.no/v1/clients")
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{
"items": [
{
"id": "c2a9d4e1-5b7f-4c3a-8e6d-1f2a3b4c5d6e",
"name": "Fjordkaffe AS",
"type": "business",
"orgNumber": "912345688",
"vatNumber": null,
"country": "NO",
"email": "post@fjordkaffe.no",
"phone": "+47 55 12 34 56",
"address": "Kaigata 1",
"postalCode": "5003",
"city": "Bergen",
"contactPerson": "Ingrid Fjeld",
"createdAt": "2026-09-01T08:30:00Z",
"updatedAt": "2026-09-01T08:30:00Z"
}
],
"page": 1,
"pageSize": 20,
"totalCount": 1,
"hasMore": false
}{
"code": "<string>",
"message": "<string>",
"details": {},
"errors": [
{
"field": "<string>",
"code": "<string>"
}
]
}{
"code": "unauthorized",
"message": "A valid API client access token is required."
}{
"code": "insufficient_scope",
"message": "This API client needs clients:read."
}{
"code": "rate_limited",
"message": "Too many requests; try again later."
}{
"code": "server-error",
"message": "The request could not be completed. It is safe to retry with the same Idempotency-Key."
}Customers
List clients
The account’s whole customer register, ordered by name, a page at a time.
GET
https://api.envoi.no
/
v1
/
clients
List clients
curl --request GET \
--url https://api.envoi.no/v1/clients \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.envoi.no/v1/clients"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.envoi.no/v1/clients', 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.envoi.no/v1/clients",
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://api.envoi.no/v1/clients"
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://api.envoi.no/v1/clients")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.envoi.no/v1/clients")
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{
"items": [
{
"id": "c2a9d4e1-5b7f-4c3a-8e6d-1f2a3b4c5d6e",
"name": "Fjordkaffe AS",
"type": "business",
"orgNumber": "912345688",
"vatNumber": null,
"country": "NO",
"email": "post@fjordkaffe.no",
"phone": "+47 55 12 34 56",
"address": "Kaigata 1",
"postalCode": "5003",
"city": "Bergen",
"contactPerson": "Ingrid Fjeld",
"createdAt": "2026-09-01T08:30:00Z",
"updatedAt": "2026-09-01T08:30:00Z"
}
],
"page": 1,
"pageSize": 20,
"totalCount": 1,
"hasMore": false
}{
"code": "<string>",
"message": "<string>",
"details": {},
"errors": [
{
"field": "<string>",
"code": "<string>"
}
]
}{
"code": "unauthorized",
"message": "A valid API client access token is required."
}{
"code": "insufficient_scope",
"message": "This API client needs clients:read."
}{
"code": "rate_limited",
"message": "Too many requests; try again later."
}{
"code": "server-error",
"message": "The request could not be completed. It is safe to retry with the same Idempotency-Key."
}Authorizations
oauth2bearerAuth
OAuth 2.0 client credentials. The token request also needs the audience form field (the Account ID), which OAuth tooling does not always send; see POST /v1/oauth/token.
Query Parameters
The page, from 1.
Required range:
x >= 1Clients per page, 1 to 100.
Required range:
1 <= x <= 100Response
A page of clients.
One page of a list.
The items on this page.
Show child attributes
Show child attributes
This page's number, from 1.
The page size asked for.
How many items there are on all pages together.
True when there is a next page.