Dots API is designed for easy integration with your internal systems, such as HR, procurement tools, or inventory systems, so you can automate visibility into who owns what and where assets are located within your organization.
The API includes two main Core endpoints:
Get Employee Details – Retrieve employee data using their email address. The response also includes all assets currently assigned to that employee.
Get Asset Details – Retrieve detailed information about a specific asset, including model, serial number, purchase date, and assignment status.
And an additional four new endpoints to support deeper client integrations and broader access to operational data:
GET Locations – Retrieve list of costume locations.
GET WH – Retrieve warehouse list.
GET Assets by serial number – Retrieve asset details by serial number.
GET WH assets – Retrieve list of assets within a warehouse.
These additions allow clients to programmatically access more operational data, enabling deeper and more flexible integrations with their internal systems.
Authentication
All requests require an API key that can be generated from your Client Dashboard → Tab Settings → API Access section.
The key must be passed in the request header:
authorization: YOUR_API_KEY
This API is READ-ONLY and returns structured JSON responses, making it simple to connect with your internal dashboards, inventory systems, or reporting tools.
Core Endpoints
Get Employee Details
Endpoint:
GET https://dots-public-api.dotstech.com/api/v1/company-staff?email=EMPLOYEE_EMAIL
Description:
Retrieves information about an employee by their email address and lists all assets currently assigned to that employee.
Example for API response of Employee data retrieval:
{
"id": "string",
"email": "string",
"phone": "string",
"fullName": "string",
"status": "EMPLOYED",
"wasOffboarded": false,
"wasOnboarded": true,
"role": {
"name": "string"
},
"team": {
"name": "string"
},
"addressInfo": {
"address": "string",
"addressLine2": "string,
"addressAdditionalInfo": "string",
"zipCode": "string",
"country": {
"name": "string",
"alphaCode2": "SE"
},
"city": {
"name": "string"
},
"state": {
"name": "string"
}
},
"assetsId": [
"string",
"string"
]
}
Employee API Response Example (with Values):
{
"id": "5bd9d28f-13cb-4k64-98cb-3b3e6219cccc",
"email": "dots@dotstech.com",
"phone": "+380674642387",
"fullName": "Denys",
"status": "EMPLOYED",
"wasOffboarded": false,
"wasOnboarded": true,
"role": {
"name": "Head of R&D"
},
"team": {
"name": "R&D"
},
"addressInfo": {
"address": "Eliezer Kaplan Street 2, Tel Aviv-Yafo, Israel",
"addressLine2": "string",
"addressAdditionalInfo": "2nd floor",
"zipCode": "0432",
"country": {
"name": "Israel",
"alphaCode2": "IL"
},
"city": {
"name": "Tel Aviv-Yafo"
},
"state": {
"name": "string"
}
},
"assetsId": [
"b16fea6a-e935-4d31-a508-8e4005c9ad27",
"7c08e001-1fe8-4e88-8d71-ae8c598392ce"
]
}
Get Asset Details
Endpoint:
https://dots-public-api.dotstech.com/api/v1/asset/ASSET_ID
Description:
Returns detailed information about a specific asset.
Example for API response of Asset data retrieval:
{
"id": "0ac8facb-a822-4557-ae17-346a20644018",
"name": "Test asset ",
"model": "Test asset model name",
"condition": "USED",
"serialNumber": "Test asset serial number",
"diskEncryption": "No disc encryption ",
"purchaseDate": "2025-11-03T00:00:00.000Z",
"status": "IN_USE",
"dpn": "CS-NT-APL-2445-0024",
"application": null,
"keyboardLanguage": "UK ENGLISH",
"productCode": "Test asset MPN",
"ipAddress": "Test asset IP",
"notes": "Test asset note ",
"sku": null,
"price": 100,
"image": "Test asset immage url",
"warrantyUntil": "2025-11-25T00:00:00.000Z",
"assignee": {
"fullName": "DOTS TEST API",
"email": "dotstestapu@gmail.com"
},
"os": {
"name": null,
"version": null
},
"brand": {
"name": "Apple"
},
"subcategory": {
"name": "Notebooks & Laptops"
},
"category": {
"name": "Computer systems"
}
}Asset API Response Example (with Values):
{
"id": "0ac8facb-a822-4557-ae17-346a20644018",
"name": "Denys Macbook",
"model": "MacBook Air (13-inch, M4, 2024)",
"condition": "USED",
"serialNumber": "SDKSMW820",
"diskEncryption": "No disc encryption",
"purchaseDate": "2025-11-03T00:00:00.000Z",
"status": "IN_USE",
"dpn": "CS-NT-APL-2445-0024",
"application": "[{\"name\":\"Activity Monitor\",\"version\":\"10.14\",\"path\":\"/System/Applications/Utilities/Activity Monitor.app\",\"bundle_id\":\"com.apple.ActivityMonitor\"},{\"name\":\"iPhone Mirroring\",\"version\":\"1.2\",\"path\":\"/System/Applications/iPhone Mirroring.app\",\"bundle_id\":\"com.apple.ScreenContinuity\"}]",
"keyboardLanguage": "UK ENGLISH",
"productCode": "Z1600076U",
"ipAddress": "192.168.0.0",
"notes": "Test asset note",
"sku": null,
"price": 100,
"image": "Test asset immage url",
"warrantyUntil": "2025-11-25T00:00:00.000Z",
"assignee": {
"fullName": "DOTS TEST API",
"email": "dotstestapi@gmail.com"
},
"os": {
"name": "Mac",
"version": "15.7.2"
},
"brand": {
"name": "Apple"
},
"subcategory": {
"name": "Notebooks & Laptops"
},
"category": {
"name": "Computer systems"
}
}
Operational Endpoints
Get Locations
Endpoint:
https://dots-public-api.dotstech.com/api/v1/location
Description:
Returns a list of locations and the assets stored in each location.
Example Response:
[
{
"id": "location_id",
"name": "Berlin Warehouse",
"country": "Germany",
"region": "Europe",
"city": "Berlin",
"assetsCount": 8,
"assets": [
"asset_uuid_1",
"asset_uuid_2",
"asset_uuid_3"
],
"spaces": [
{
"id": "space_uuid_1",
"name": "Floor 1"
}
]
}
]
Get Warehouses
Endpoint:
https://dots-public-api.dotstech.com/api/v1/warehouse
Description:
Returns a list of warehouses with asset counts per warehouse.
Example Response:
[
{
"id": "warehouse_id",
"name": "London Warehouse",
"country": "United Kingdom",
"assetsCount": 1947
}
]
Get Warehouse Assets
Endpoint:
https://dots-public-api.dotstech.com/api/v1/warehouse/{ID}/assetsDescription:
Returns a list of assets stored in a specific warehouse.
Example Response:
{
"id": "warehouse_id",
"name": "Location name",
"country": "United Kingdom",
"assetsCount": 590,
"assets": [
"asset_id_1",
"asset_id_2",
"asset_id_3"
]
}
Get Asset by Serial Number
Endpoint:
https://dots-public-api.dotstech.com/api/v1/asset/{SERIAL_NUMBER}Description:
Returns detailed information about an asset using its serial number.
Example Response:
{
"id": "asset_id",
"name": "Asset name",
"model": "Model name",
"condition": "NEW",
"serialNumber": "SERIAL_NUMBER",
"diskEncryption": true,
"purchaseDate": "2026-01-15",
"status": "PENDING",
"dpn": "DPN_CODE",
"application": "Assigned application",
"keyboardLanguage": "EN",
"productCode": "PRODUCT_CODE",
"ipAddress": "192.168.1.10",
"notes": "Additional notes about the asset",
"sku": "SKU_CODE",
"price": 1299.99,
"image": "https://api.example.com/assets/image.png",
"warrantyUntil": "2029-01-15",
"assignee": {
"fullName": "John Doe",
"email": "john.doe@example.com"
},
"os": {
"name": "Windows",
"version": "11 Pro"
},
"brand": {
"name": "Brand name"
},
"subcategory": {
"name": "Subcategory name"
},
"category": {
"name": "Category name"
}
}
Error Handling & Rate Limits
All API responses include a “success” field and return standard HTTP status codes.
If a request fails, the response will contain a clear “message” explaining what went wrong.
For example:
success: false
message: Invalid API key
Common HTTP Status Codes
200 – OK
Request completed successfully.
400 – Bad Request
Missing or invalid parameter (for example, missing “email”).
401 – Unauthorized
Invalid or missing x-api-key header.
404 – Not Found
Employee or asset not found.
429 – Too Many Requests
Rate limit exceeded — wait and retry later.
500 – Internal Server Error
Unexpected error on the server side.
Rate Limits
To ensure stable performance, the API enforces per-minute and per-day limits for each organization.
If you exceed these limits, you will receive HTTP 429 Too Many Requests.
Rate limit information is also included in each response header:
x-ratelimit-limit-day – maximum number of requests allowed per day
x-ratelimit-limit-minute – maximum number of requests allowed per minute
x-ratelimit-remaining-day – how many requests remain for the current day
x-ratelimit-remaining-minute – how many requests remain for the current minute
x-ratelimit-reset-day – timestamp when the daily limit resets
Tip: Use these headers to monitor your usage and prevent rate limit errors. If your integration sends many requests, add retry logic that waits until reset before sending more.
If you have any questions please reach our support - support@dotstech.com
