Account
Returns the merchant account behind the calling credentials, with every license the account owns embedded — each including its carrier company and per-provider settings — so the account and its carriers come back in a single request.
GET /account
The authenticated merchant account. Auth: client credentials. License: n/a (returns all of the account's licenses; does not select one).
Parameters
None.
Example request
bash
curl --location 'https://app.shipos.co.il/api/v2/account' \
--header 'X-Client-Id: {client_id}' \
--header 'X-Client-Secret: {client_secret}' \
--header 'Accept: application/json'js
// Node.js 18+ / browsers — no dependencies
const response = await fetch('https://app.shipos.co.il/api/v2/account', {
headers: {
'X-Client-Id': process.env.SHIPOS_CLIENT_ID,
'X-Client-Secret': process.env.SHIPOS_CLIENT_SECRET,
Accept: 'application/json',
},
})
if (!response.ok) {
const { error } = await response.json()
throw new Error(`${error.code}: ${error.message}`)
}
const { data: account } = await response.json()
console.log(account.company_name)
for (const license of account.licenses) {
console.log(license.key, '→', license.company.carrier.name)
}php
<?php
// composer require guzzlehttp/guzzle
$client = new \GuzzleHttp\Client([
'base_uri' => 'https://app.shipos.co.il/api/v2/',
'headers' => [
'X-Client-Id' => getenv('SHIPOS_CLIENT_ID'),
'X-Client-Secret' => getenv('SHIPOS_CLIENT_SECRET'),
'Accept' => 'application/json',
],
]);
$account = json_decode(
$client->get('account')->getBody()->getContents(),
true,
)['data'];
echo $account['company_name'], PHP_EOL;
foreach ($account['licenses'] as $license) {
echo $license['key'], ' → ', $license['company']['carrier']['name'], PHP_EOL;
}php
<?php
use Illuminate\Support\Facades\Http;
$account = Http::withHeaders([
'X-Client-Id' => config('services.shipos.client_id'),
'X-Client-Secret' => config('services.shipos.client_secret'),
])
->acceptJson()
->get('https://app.shipos.co.il/api/v2/account')
->throw()
->json('data');
logger()->info($account['company_name']);
foreach ($account['licenses'] as $license) {
logger()->info($license['key'].' → '.$license['company']['carrier']['name']);
}python
# pip install httpx
import os
import httpx
response = httpx.get(
"https://app.shipos.co.il/api/v2/account",
headers={
"X-Client-Id": os.environ["SHIPOS_CLIENT_ID"],
"X-Client-Secret": os.environ["SHIPOS_CLIENT_SECRET"],
"Accept": "application/json",
},
)
response.raise_for_status()
account = response.json()["data"]
print(account["company_name"])
for lic in account["licenses"]:
print(lic["key"], "→", lic["company"]["carrier"]["name"])go
package main
import (
"encoding/json"
"fmt"
"net/http"
"os"
)
type accountResponse struct {
Data struct {
CompanyName string `json:"company_name"`
Licenses []struct {
Key string `json:"key"`
Company struct {
Carrier struct {
Name string `json:"name"`
} `json:"carrier"`
} `json:"company"`
} `json:"licenses"`
} `json:"data"`
}
func main() {
req, _ := http.NewRequest("GET", "https://app.shipos.co.il/api/v2/account", nil)
req.Header.Set("X-Client-Id", os.Getenv("SHIPOS_CLIENT_ID"))
req.Header.Set("X-Client-Secret", os.Getenv("SHIPOS_CLIENT_SECRET"))
req.Header.Set("Accept", "application/json")
res, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer res.Body.Close()
var account accountResponse
if err := json.NewDecoder(res.Body).Decode(&account); err != nil {
panic(err)
}
fmt.Println(account.Data.CompanyName)
for _, license := range account.Data.Licenses {
fmt.Println(license.Key, "→", license.Company.Carrier.Name)
}
}java
// Java 17+ — java.net.http, no dependencies (parse with Jackson/Gson)
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class ShipOsAccount {
public static void main(String[] args) throws Exception {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://app.shipos.co.il/api/v2/account"))
.header("X-Client-Id", System.getenv("SHIPOS_CLIENT_ID"))
.header("X-Client-Secret", System.getenv("SHIPOS_CLIENT_SECRET"))
.header("Accept", "application/json")
.build();
HttpResponse<String> response =
client.send(request, HttpResponse.BodyHandlers.ofString());
if (response.statusCode() != 200) {
throw new RuntimeException("ShipOS error: " + response.body());
}
System.out.println(response.body()); // {"data":{...}} — map with Jackson/Gson
}
}csharp
// .NET 8+ — System.Net.Http.Json
using System.Net.Http.Json;
using System.Text.Json;
using var http = new HttpClient
{
BaseAddress = new Uri("https://app.shipos.co.il/api/v2/"),
};
http.DefaultRequestHeaders.Add("X-Client-Id",
Environment.GetEnvironmentVariable("SHIPOS_CLIENT_ID"));
http.DefaultRequestHeaders.Add("X-Client-Secret",
Environment.GetEnvironmentVariable("SHIPOS_CLIENT_SECRET"));
var payload = await http.GetFromJsonAsync<JsonDocument>("account")
?? throw new InvalidOperationException("Empty response");
var account = payload.RootElement.GetProperty("data");
Console.WriteLine(account.GetProperty("company_name").GetString());
foreach (var license in account.GetProperty("licenses").EnumerateArray())
{
var carrier = license.GetProperty("company").GetProperty("carrier");
Console.WriteLine(
$"{license.GetProperty("key").GetString()} → {carrier.GetProperty("name").GetString()}");
}ruby
require "net/http"
require "json"
uri = URI("https://app.shipos.co.il/api/v2/account")
request = Net::HTTP::Get.new(uri)
request["X-Client-Id"] = ENV.fetch("SHIPOS_CLIENT_ID")
request["X-Client-Secret"] = ENV.fetch("SHIPOS_CLIENT_SECRET")
request["Accept"] = "application/json"
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
http.request(request)
end
raise "ShipOS error: #{response.body}" unless response.is_a?(Net::HTTPSuccess)
account = JSON.parse(response.body).fetch("data")
puts account["company_name"]
account["licenses"].each do |license|
puts "#{license["key"]} → #{license.dig("company", "carrier", "name")}"
endrust
// [dependencies]
// reqwest = { version = "0.12", features = ["json"] }
// tokio = { version = "1", features = ["full"] }
// serde_json = "1"
use serde_json::Value;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let payload: Value = reqwest::Client::new()
.get("https://app.shipos.co.il/api/v2/account")
.header("X-Client-Id", std::env::var("SHIPOS_CLIENT_ID")?)
.header("X-Client-Secret", std::env::var("SHIPOS_CLIENT_SECRET")?)
.header("Accept", "application/json")
.send()
.await?
.error_for_status()?
.json()
.await?;
let account = &payload["data"];
println!("{}", account["company_name"]);
if let Some(licenses) = account["licenses"].as_array() {
for license in licenses {
println!(
"{} → {}",
license["key"], license["company"]["carrier"]["name"]
);
}
}
Ok(())
}Response 200
json
{
"data": {
"id": 1028,
"name": "Sarah Cohen",
"email": "sarah@dafnihair.co.il",
"phone": "0501234567",
"locale": "he",
"company_name": "Dafni Hair",
"company_logo": "https://app.shipos.co.il/storage/logos/dafni.png",
"support_email": "support@dafnihair.co.il",
"support_phone": "037654321",
"trackerPage_contact_info": { "whatsapp": "0501234567" },
"enable_api": 1,
"can_use_collection_points": true,
"enable_sort_by_warehouse": 0,
"display_order_product": 1,
"display_product_price_in_order_detail": 0,
"display_order_number_barcode": 1,
"label_method": "pdf",
"label_type": "a4",
"licenses": [
{
"id": 640,
"key": "9f2c1a7e-...",
"name": "HFD Main",
"company": {
"id": 12,
"name": "HFD Israel",
"carrier": { "id": 3, "name": "HFD" }
},
"commitment_day": 2,
"multiple_shipment": true,
"is_active": 1,
"is_expired": false,
"expires_at": "2027-01-01T00:00:00.000000Z",
"settings": [
{
"id": 810,
"provider_id": 3,
"settings": {
"username": "shipos_dafni",
"client_code": "14641"
},
"collect_street": "Herzl",
"collect_street_number": "45",
"collect_city": "Tel Aviv",
"collect_company": "Dafni Hair",
"print_products": 1,
"print_variations": 0,
"print_customer_detail_sku_and_quantity_bold_in_label": 0,
"print_products_on_label_notes": 1,
"print_products_on_a4_label_notes": 0,
"print_products_name": 1,
"print_products_sku": 0,
"print_virtual_product_on_note": 0,
"enable_cod": 1,
"label_method": "pdf",
"label_type": "a4",
"separate_street_and_number": 1,
"get_street_number_with_suffix": 0,
"display_shipping_line_number": 1,
"order_prefix": "DFN-",
"send_note_on_order": 1,
"created_at": "2026-01-01T00:00:00.000000Z",
"updated_at": "2026-07-01T00:00:00.000000Z"
}
]
}
]
}
}Response fields
Account (top level)
| Field | Type | Description |
|---|---|---|
id | int | Merchant account id. |
name | string | Account holder name. |
email | string | Login email. |
phone | string | Contact phone. |
locale | string | UI locale. |
company_name | string | Merchant company name. |
company_logo | string | Absolute asset URL to the logo. |
support_email | string | Support email shown on the tracker page. |
support_phone | string | Support phone shown on the tracker page. |
trackerPage_contact_info | object | null | Decoded JSON of tracker-page contact info. |
enable_api | int/bool | Whether API access is enabled. |
can_use_collection_points | bool | Whether collection points are available. |
enable_sort_by_warehouse | int/bool | Sort-by-warehouse flag. |
display_order_product | int/bool | Display order products flag. |
display_product_price_in_order_detail | int/bool | Show product price in order detail. |
display_order_number_barcode | int/bool | Show order-number barcode. |
label_method | string | Account-level default label method. |
label_type | string | Account-level default label type. |
licenses | array | The account's licenses (see below). |
License (licenses[])
| Field | Type | Description |
|---|---|---|
id | int | License id. |
key | string | The license's key — use as the license_key selector. |
name | string | License display name. |
company | object | The courier company (see below). |
commitment_day | int | Carrier commitment day setting. |
multiple_shipment | bool | Whether multiple shipments per order are allowed. |
is_active | int/bool | Whether the license is active. |
is_expired | bool | Whether the license has expired. |
expires_at | string | null | Expiry timestamp. |
settings | array | Per-provider settings rows (see below). |
Company (licenses[].company)
| Field | Type | Description |
|---|---|---|
id | int | Company id. |
name | string | Company name. |
carrier | object | The carrier (Provider): id, name. |
License settings (licenses[].settings[])
| Field | Type | Description |
|---|---|---|
id | int | Settings row id. |
provider_id | int | The provider this settings row belongs to. |
settings | object | Raw provider settings JSON. Null/empty-string/empty-array values are shaved out recursively; booleans (including false) and 0 are kept. |
collect_street | string | null | Pickup address street. |
collect_street_number | string | null | Pickup address street number. |
collect_city | string | null | Pickup address city. |
collect_company | string | null | Pickup address company name. |
print_products | int/bool | Print products on label. |
print_variations | int/bool | Print product variations. |
print_customer_detail_sku_and_quantity_bold_in_label | int/bool | Bold SKU + quantity on label. |
print_products_on_label_notes | int/bool | Print products in label notes. |
print_products_on_a4_label_notes | int/bool | Print products in A4 label notes. |
print_products_name | int/bool | Print product names. |
print_products_sku | int/bool | Print product SKUs. |
print_virtual_product_on_note | int/bool | Print virtual products on note. |
enable_cod | int/bool | Cash-on-delivery enabled. |
label_method | string | Label method for this license. |
label_type | string | Label type for this license. |
separate_street_and_number | int/bool | Split street and number. |
get_street_number_with_suffix | int/bool | Include street-number suffix. |
display_shipping_line_number | int/bool | Show shipping line number. |
order_prefix | string | null | Order-number prefix. |
send_note_on_order | int/bool | Send note on order. |
created_at | string | Row creation timestamp. |
updated_at | string | Row update timestamp. |
Credentials in settings
The settings object contains the raw provider configuration, which may include carrier credentials (username, password, token, api_key, client_code, and similar). Treat the GET /account response as sensitive.
Errors
| Status | code | When |
|---|---|---|
| 401 | unauthenticated | Missing or invalid client credentials. |