cURL
curl --request GET \
--url https://api.maesn.dev/accounting/items \
--header 'X-ACCOUNT-KEY: <x-account-key>' \
--header 'X-API-KEY: <x-api-key>'import requests
url = "https://api.maesn.dev/accounting/items"
headers = {
"X-API-KEY": "<x-api-key>",
"X-ACCOUNT-KEY": "<x-account-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'X-API-KEY': '<x-api-key>', 'X-ACCOUNT-KEY': '<x-account-key>'}
};
fetch('https://api.maesn.dev/accounting/items', 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.maesn.dev/accounting/items",
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-ACCOUNT-KEY: <x-account-key>",
"X-API-KEY: <x-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.maesn.dev/accounting/items"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-KEY", "<x-api-key>")
req.Header.Add("X-ACCOUNT-KEY", "<x-account-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.maesn.dev/accounting/items")
.header("X-API-KEY", "<x-api-key>")
.header("X-ACCOUNT-KEY", "<x-account-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.maesn.dev/accounting/items")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-KEY"] = '<x-api-key>'
request["X-ACCOUNT-KEY"] = '<x-account-key>'
response = http.request(request)
puts response.read_body{
"meta": {
"warnings": [
"Field not used by target system"
],
"pagination": {
"total": 125,
"perPage": 50,
"currentPage": 1,
"totalPages": 3
}
},
"data": [
{
"id": "02c74e8a-b95b-ef11-bfe2-002248e5aac5",
"assetAccountId": "80",
"expenseAccountId": "81",
"incomeAccountId": "79",
"inventoryStartDate": "2021-01-01",
"itemNumber": "12345-A",
"lastModifiedDate": "2021-01-01T00:00:00Z",
"name": "Handmade Plastic Chair",
"priceIncludesTax": true,
"stockCount": 11,
"taxCode": "TAX19",
"taxRatePercentage": 19,
"type": "PRODUCT",
"unitName": "PIECE",
"unitPurchasePrice": 10,
"unitSalesPrice": 20.5
}
]
}Items
Get items
GET
/
accounting
/
items
cURL
curl --request GET \
--url https://api.maesn.dev/accounting/items \
--header 'X-ACCOUNT-KEY: <x-account-key>' \
--header 'X-API-KEY: <x-api-key>'import requests
url = "https://api.maesn.dev/accounting/items"
headers = {
"X-API-KEY": "<x-api-key>",
"X-ACCOUNT-KEY": "<x-account-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'X-API-KEY': '<x-api-key>', 'X-ACCOUNT-KEY': '<x-account-key>'}
};
fetch('https://api.maesn.dev/accounting/items', 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.maesn.dev/accounting/items",
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-ACCOUNT-KEY: <x-account-key>",
"X-API-KEY: <x-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.maesn.dev/accounting/items"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-KEY", "<x-api-key>")
req.Header.Add("X-ACCOUNT-KEY", "<x-account-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.maesn.dev/accounting/items")
.header("X-API-KEY", "<x-api-key>")
.header("X-ACCOUNT-KEY", "<x-account-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.maesn.dev/accounting/items")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-KEY"] = '<x-api-key>'
request["X-ACCOUNT-KEY"] = '<x-account-key>'
response = http.request(request)
puts response.read_body{
"meta": {
"warnings": [
"Field not used by target system"
],
"pagination": {
"total": 125,
"perPage": 50,
"currentPage": 1,
"totalPages": 3
}
},
"data": [
{
"id": "02c74e8a-b95b-ef11-bfe2-002248e5aac5",
"assetAccountId": "80",
"expenseAccountId": "81",
"incomeAccountId": "79",
"inventoryStartDate": "2021-01-01",
"itemNumber": "12345-A",
"lastModifiedDate": "2021-01-01T00:00:00Z",
"name": "Handmade Plastic Chair",
"priceIncludesTax": true,
"stockCount": 11,
"taxCode": "TAX19",
"taxRatePercentage": 19,
"type": "PRODUCT",
"unitName": "PIECE",
"unitPurchasePrice": 10,
"unitSalesPrice": 20.5
}
]
}Field support per integration

bexio
bexio

Business Central
Business Central
If you’re not using the Interactive Authentication Flow, make sure the query parameters
environmentName and companyId are correctly populated.
You can obtain these values by using the GET Environments and GET Companies endpoints available under the Authentication section.enum
Available options:
5, 10, 20, 50, 100number
string
boolean
string
string
boolean
number
enum
Available options:
PRODUCT, SERVICEstring
number
number

Exact Online
Exact Online
If you’re not using the Interactive Authentication Flow, make sure the query parameter
companyId is correctly populated.
You can obtain this value by using the GET Companies endpoint available under the Authentication section.enum
Available options:
5, 10, 20, 50, 100number
boolean
string
string
string
number
string
string
number
number

Lexware Office
Lexware Office
Query parameters:Supported response fields:
enum
Available options:
5, 10, 20, 50, 100number
string
Filter by item number.
Example:
Example:
itemNumber=ART-100enum
Filter by type.
Available options:
Available options:
PRODUCT, SERVICEboolean
string
string
string
string
boolean
number
enum
Available options:
PRODUCT, SERVICEstring
number

QuickBooks
QuickBooks
Query parameters:Supported response fields:
enum
Available options:
5, 10, 20, 50, 100number
boolean
string
string
string
string
string
string
string
number
string
enum
Available options:
PRODUCT, SERVICEnumber
number

Sage Active
Sage Active
If you’re not using the Interactive Authentication Flow, make sure the query parameter
companyId is correctly populated.
You can obtain this value by using the GET Companies endpoint available under the Authentication section. Please use the id field as the companyId.enum
Available options:
5, 10, 20, 50, 100number
string
boolean
string
string
boolean
number
enum
Available options:
PRODUCT, SERVICEnumber
enum
Available options:
HOUR, KILOGRAM, LITRE, METRE, MILLILITRE, MILLIGRAM, PACK, SQUARE_METRE, TONNE, UNIT,
CUBIC_METRE, DAY, GRAM, KILOMETRE, MONTH, NIGHT, NOT_UNIT, PERCENTAGECustomized values are supported.
Query Parameters
Available options:
5, 10, 20, 50, 100 Last modified on August 17, 2026
Was this page helpful?