curl --request GET \
--url https://api.antsfield.com/workspaces/{idOrSlug} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.antsfield.com/workspaces/{idOrSlug}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.antsfield.com/workspaces/{idOrSlug}', 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.antsfield.com/workspaces/{idOrSlug}",
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.antsfield.com/workspaces/{idOrSlug}"
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.antsfield.com/workspaces/{idOrSlug}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.antsfield.com/workspaces/{idOrSlug}")
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": "<string>",
"name": "<string>",
"slug": "<string>",
"logo": null,
"usage": 123,
"usageLimit": 123,
"itemsUsage": 123,
"itemsLimit": 123,
"billingDocumentsUsage": 123,
"billingDocumentsLimit": 123,
"suppliersUsage": 123,
"suppliersLimit": 123,
"locationsUsage": 123,
"locationsLimit": 123,
"defaultLocationId": null,
"defaultCurrency": "<string>",
"invoiceNumberPrefix": "INV",
"defaultTaxPercent": 50,
"defaultTaxIncluded": true,
"defaultInvoiceDueDays": 182,
"defaultInvoiceNote": null,
"defaultEstimateNote": null,
"invoicingBusinessName": null,
"invoicingBrandColor": null,
"invoicingEmail": null,
"invoicingPhone": null,
"invoicingAddress": null,
"invoicingWebsite": null,
"invoicingLogoUrl": null,
"invoicingPdfTemplate": "classic",
"defaultInvoiceSourceLocationId": null,
"defaultTransferFromLocationId": null,
"defaultLocationType": "warehouse",
"defaultMarkupPercent": 500,
"tagsLimit": 123,
"usersLimit": 123,
"plan": "free",
"stripeId": "<string>",
"appleOriginalTransactionId": null,
"billingCycleStart": 123,
"createdAt": "<string>",
"trialEndsAt": "<string>",
"billingCycleEndsAt": "<string>",
"subscriptionCanceledAt": "<string>",
"paymentFailedAt": "<string>",
"users": [
{
"role": "owner"
}
],
"inviteCode": "<string>",
"ssoEmailDomain": "<string>",
"ssoEnforcedAt": "<string>",
"paymentReminderEnabled": true,
"paymentReminderDaysBefore": null,
"paymentReminderOffsets": null,
"emailMessageUseGeneric": true,
"emailMessageDefault": null,
"emailMessageInvoice": null,
"emailMessageEstimate": null,
"emailMessageCc": null,
"emailMessageBcc": null,
"paymentNoteEnabled": true,
"paymentReceiptEnabled": false,
"taxCountry": null,
"taxRegistrationNumber": null,
"taxYearStartMonth": 1,
"taxYearStartDay": 1,
"withholdingTaxEnabled": false,
"withholdingTaxLabel": "Withholding Tax",
"withholdingTaxPercent": null,
"taxes": [],
"clientFollowUpEnabled": false,
"clientFollowUpDefaultMonths": 6,
"clientFollowUpDefaultOnInvoice": false,
"clientFollowUpSubject": null,
"clientFollowUpBody": null,
"shiftLiveLocationEnabled": true,
"estimateNumberPrefix": "EST",
"autoServiceCallLineEnabled": false,
"deductInventoryOnInvoice": true,
"defaultLowStockThreshold": 5,
"stockDigestEnabled": false,
"serviceCallLabel": null,
"serviceCallPriceCents": null,
"serviceCallQuantity": 1,
"defaultDepositPercent": null,
"invoicingOnlinePaymentsEnabled": false,
"stripeConnectChargesEnabled": false,
"locationAccess": {
"restricted": true,
"locations": [
{
"locationId": "<string>",
"accessLevel": "read"
}
]
},
"memberPermissions": {
"capabilities": {},
"profile": {
"builtinTemplateKey": "<string>",
"customTemplateId": "<string>",
"customTemplateName": "<string>",
"overrideCount": 123,
"permissionsManaged": true,
"legacyUnrestricted": true
}
},
"impersonation": {
"active": true,
"actorIsOwner": true,
"target": {
"id": "<string>",
"name": "<string>",
"email": "<string>",
"image": "<string>"
},
"startedAt": "<string>",
"expiresAt": "<string>"
}
}{
"error": {
"code": "bad_request",
"message": "The requested resource was not found.",
"doc_url": "https://docs.antsfield.com/api-reference/errors#bad-request"
}
}{
"error": {
"code": "unauthorized",
"message": "The requested resource was not found.",
"doc_url": "https://docs.antsfield.com/api-reference/errors#unauthorized"
}
}{
"error": {
"code": "forbidden",
"message": "The requested resource was not found.",
"doc_url": "https://docs.antsfield.com/api-reference/errors#forbidden"
}
}{
"error": {
"code": "not_found",
"message": "The requested resource was not found.",
"doc_url": "https://docs.antsfield.com/api-reference/errors#not-found"
}
}{
"error": {
"code": "conflict",
"message": "The requested resource was not found.",
"doc_url": "https://docs.antsfield.com/api-reference/errors#conflict"
}
}{
"error": {
"code": "invite_expired",
"message": "The requested resource was not found.",
"doc_url": "https://docs.antsfield.com/api-reference/errors#invite-expired"
}
}{
"error": {
"code": "unprocessable_entity",
"message": "The requested resource was not found.",
"doc_url": "https://docs.antsfield.com/api-reference/errors#unprocessable-entity"
}
}{
"error": {
"code": "rate_limit_exceeded",
"message": "The requested resource was not found.",
"doc_url": "https://docs.antsfield.com/api-reference/errors#rate-limit_exceeded"
}
}{
"error": {
"code": "internal_server_error",
"message": "The requested resource was not found.",
"doc_url": "https://docs.antsfield.com/api-reference/errors#internal-server_error"
}
}Retrieve a workspace
Retrieve a workspace for the authenticated user.
curl --request GET \
--url https://api.antsfield.com/workspaces/{idOrSlug} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.antsfield.com/workspaces/{idOrSlug}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.antsfield.com/workspaces/{idOrSlug}', 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.antsfield.com/workspaces/{idOrSlug}",
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.antsfield.com/workspaces/{idOrSlug}"
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.antsfield.com/workspaces/{idOrSlug}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.antsfield.com/workspaces/{idOrSlug}")
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": "<string>",
"name": "<string>",
"slug": "<string>",
"logo": null,
"usage": 123,
"usageLimit": 123,
"itemsUsage": 123,
"itemsLimit": 123,
"billingDocumentsUsage": 123,
"billingDocumentsLimit": 123,
"suppliersUsage": 123,
"suppliersLimit": 123,
"locationsUsage": 123,
"locationsLimit": 123,
"defaultLocationId": null,
"defaultCurrency": "<string>",
"invoiceNumberPrefix": "INV",
"defaultTaxPercent": 50,
"defaultTaxIncluded": true,
"defaultInvoiceDueDays": 182,
"defaultInvoiceNote": null,
"defaultEstimateNote": null,
"invoicingBusinessName": null,
"invoicingBrandColor": null,
"invoicingEmail": null,
"invoicingPhone": null,
"invoicingAddress": null,
"invoicingWebsite": null,
"invoicingLogoUrl": null,
"invoicingPdfTemplate": "classic",
"defaultInvoiceSourceLocationId": null,
"defaultTransferFromLocationId": null,
"defaultLocationType": "warehouse",
"defaultMarkupPercent": 500,
"tagsLimit": 123,
"usersLimit": 123,
"plan": "free",
"stripeId": "<string>",
"appleOriginalTransactionId": null,
"billingCycleStart": 123,
"createdAt": "<string>",
"trialEndsAt": "<string>",
"billingCycleEndsAt": "<string>",
"subscriptionCanceledAt": "<string>",
"paymentFailedAt": "<string>",
"users": [
{
"role": "owner"
}
],
"inviteCode": "<string>",
"ssoEmailDomain": "<string>",
"ssoEnforcedAt": "<string>",
"paymentReminderEnabled": true,
"paymentReminderDaysBefore": null,
"paymentReminderOffsets": null,
"emailMessageUseGeneric": true,
"emailMessageDefault": null,
"emailMessageInvoice": null,
"emailMessageEstimate": null,
"emailMessageCc": null,
"emailMessageBcc": null,
"paymentNoteEnabled": true,
"paymentReceiptEnabled": false,
"taxCountry": null,
"taxRegistrationNumber": null,
"taxYearStartMonth": 1,
"taxYearStartDay": 1,
"withholdingTaxEnabled": false,
"withholdingTaxLabel": "Withholding Tax",
"withholdingTaxPercent": null,
"taxes": [],
"clientFollowUpEnabled": false,
"clientFollowUpDefaultMonths": 6,
"clientFollowUpDefaultOnInvoice": false,
"clientFollowUpSubject": null,
"clientFollowUpBody": null,
"shiftLiveLocationEnabled": true,
"estimateNumberPrefix": "EST",
"autoServiceCallLineEnabled": false,
"deductInventoryOnInvoice": true,
"defaultLowStockThreshold": 5,
"stockDigestEnabled": false,
"serviceCallLabel": null,
"serviceCallPriceCents": null,
"serviceCallQuantity": 1,
"defaultDepositPercent": null,
"invoicingOnlinePaymentsEnabled": false,
"stripeConnectChargesEnabled": false,
"locationAccess": {
"restricted": true,
"locations": [
{
"locationId": "<string>",
"accessLevel": "read"
}
]
},
"memberPermissions": {
"capabilities": {},
"profile": {
"builtinTemplateKey": "<string>",
"customTemplateId": "<string>",
"customTemplateName": "<string>",
"overrideCount": 123,
"permissionsManaged": true,
"legacyUnrestricted": true
}
},
"impersonation": {
"active": true,
"actorIsOwner": true,
"target": {
"id": "<string>",
"name": "<string>",
"email": "<string>",
"image": "<string>"
},
"startedAt": "<string>",
"expiresAt": "<string>"
}
}{
"error": {
"code": "bad_request",
"message": "The requested resource was not found.",
"doc_url": "https://docs.antsfield.com/api-reference/errors#bad-request"
}
}{
"error": {
"code": "unauthorized",
"message": "The requested resource was not found.",
"doc_url": "https://docs.antsfield.com/api-reference/errors#unauthorized"
}
}{
"error": {
"code": "forbidden",
"message": "The requested resource was not found.",
"doc_url": "https://docs.antsfield.com/api-reference/errors#forbidden"
}
}{
"error": {
"code": "not_found",
"message": "The requested resource was not found.",
"doc_url": "https://docs.antsfield.com/api-reference/errors#not-found"
}
}{
"error": {
"code": "conflict",
"message": "The requested resource was not found.",
"doc_url": "https://docs.antsfield.com/api-reference/errors#conflict"
}
}{
"error": {
"code": "invite_expired",
"message": "The requested resource was not found.",
"doc_url": "https://docs.antsfield.com/api-reference/errors#invite-expired"
}
}{
"error": {
"code": "unprocessable_entity",
"message": "The requested resource was not found.",
"doc_url": "https://docs.antsfield.com/api-reference/errors#unprocessable-entity"
}
}{
"error": {
"code": "rate_limit_exceeded",
"message": "The requested resource was not found.",
"doc_url": "https://docs.antsfield.com/api-reference/errors#rate-limit_exceeded"
}
}{
"error": {
"code": "internal_server_error",
"message": "The requested resource was not found.",
"doc_url": "https://docs.antsfield.com/api-reference/errors#internal-server_error"
}
}Authorizations
Bearer API key from Settings → API Keys. Use restricted keys (prefix retrac_) with the minimum scopes required.
Path Parameters
The ID or slug of the workspace.
Response
The retrieved workspace
The unique ID of the workspace.
The name of the workspace.
The slug of the workspace.
The logo of the workspace.
The usage of the workspace.
The usage limit of the workspace.
The items usage of the workspace.
The items limit of the workspace.
Lifetime invoices + estimates created on this workspace.
Max billing documents allowed (Free plan quota).
The suppliers usage of the workspace.
The suppliers limit of the workspace.
The locations usage of the workspace.
The locations limit of the workspace.
The ID of the default 'Inventory' location.
Default currency for jobs and monetary displays.
3Fixed prefix used when generating invoice numbers.
INV Default tax rate applied when closing jobs.
0 <= x <= 100When true, line prices include tax; when false, tax is added on top.
Days after creation when new invoices are due by default (0 = no default due date).
0 <= x <= 365Default note/payment terms pre-filled on new invoices.
Default note/payment terms pre-filled on new estimates.
Business name shown on invoices and estimates.
Accent color used on client-facing billing documents.
Contact email shown on billing documents.
Contact phone shown on billing documents.
Business address shown on billing documents.
Website shown on billing documents.
Custom logo URL for invoices and estimates (overrides workspace logo).
PDF layout for invoices and estimates.
classic, modern, minimal, impact, elegant, showcase Default source location when closing jobs.
Default source location when creating transfers.
Default type for newly created locations.
warehouse, van, truck, site, other Default markup percentage applied from unit cost to sell price.
0 <= x <= 1000The tags limit of the workspace.
The users limit of the workspace.
The plan of the workspace.
free, pro, business, advanced, business plus, business extra, business max, enterprise The Stripe ID of the workspace.
The Apple In-App Purchase subscription linked to the workspace, if billing is managed through the App Store.
The date and time when the billing cycle starts for the workspace.
The date and time when the workspace was created.
When the workspace billing trial ends, if applicable.
When the current billing cycle ends.
When the workspace subscription was canceled.
When the last platform subscription payment failed.
The role of the authenticated user in the workspace.
Show child attributes
Show child attributes
The invite code of the workspace.
10-365 <= x <= 3655000500050001 <= x <= 121 <= x <= 310 <= x <= 100Named tax rates configured under Tax settings & currency.
Show child attributes
Show child attributes
Whether live location pings are recorded during active shifts.
Fixed prefix used when generating estimate numbers.
EST Whether new invoices/estimates get a default service-call line.
Whether sending an invoice deducts catalog item stock from the source location.
Default low-stock threshold for items without an override. 0 means only exact zero is treated as out of stock.
x >= 0Whether to send a weekly stock-health digest to owners/admins with inventory alerts on.
Label for the default service-call line item.
Unit price in cents for the default service-call line.
Quantity for the default service-call line.
Default deposit percent suggested on invoices.
Whether online payment collection is enabled for invoices.
Whether Stripe Connect is ready to accept charges.
Location access for the authenticated member.
Show child attributes
Show child attributes
Effective member capabilities for the authenticated user.
Show child attributes
Show child attributes
Present when the workspace owner is temporarily viewing as another member.
Show child attributes
Show child attributes
Was this page helpful?

