---
title: BlueTally API Integration on Truto
slug: bluetally
category: Device Management
canonical: "https://truto.one/integrations/detail/bluetally/"
---

# BlueTally API Integration on Truto



**Category:** Device Management  
**Status:** Generally available

## MCP-ready AI tools

Truto exposes 91 tools for BlueTally that AI agents can call directly.

- **list_all_blue_tally_accessories** — List all accessories in bluetally. Returns: id, name, model_number, order_number, purchase_date, purchase_cost, currency, minimum_quantity, quantity, available, category_id, manufacturer_id, supplier_id, location_id, department_id, qr_code, logo, notes, custom_fields, checked_out_to_employees, checked_out_to_locations, created_at, updated_at, unit_cost. Supports exact-match filters (name,…
- **get_single_blue_tally_accessory_by_id** — Get a single accessory in bluetally by id. Returns the full accessory object including id, name, model_number, quantity, available, custom_fields, and checked_out_to_employees. Required: id.
- **create_a_blue_tally_accessory** — Create a new accessory in bluetally. Returns an empty 201 response on success. Requires name, quantity, and category_id.
- **update_a_blue_tally_accessory_by_id** — Update an accessory in bluetally by id. Returns an empty 200 response on success. Required: id.
- **delete_a_blue_tally_accessory_by_id** — Delete an accessory in bluetally by id. This action is permanent and cannot be undone. Returns an empty 204 response on success. Required: id.
- **blue_tally_accessories_check_in** — Check in an accessory in bluetally, returning it to available stock. Returns an empty 201 response on success. Required: accessory_id, checkin_date (YYYY-MM-DD).
- **blue_tally_accessories_check_out** — Check out a quantity of an accessory in bluetally to an employee or location on a given date. Returns an empty 201 response on success. Required: accessory_id, quantity, checkout_date (YYYY-MM-DD).
- **list_all_blue_tally_activity** — List all activity log entries in bluetally. Returns each entry's timestamp, user_id, user_name, type, event, item_id, item_name, checked_out_to_from_name, and notes. Filter by date_from/date_to, type, event, user_email, employee_email, or item id.
- **list_all_blue_tally_assets** — List all assets in bluetally. Returns asset records with id, asset_id, asset_serial, purchase_cost, product_name, and custom_fields; supports sorting and exact-match filters.
- **get_single_blue_tally_asset_by_id** — Get a single asset in bluetally by id. Returns the full asset object including id, asset_id, asset_serial, product_name, purchase_cost, custom_fields, and deployed_to. Required: id.
- **create_a_blue_tally_asset** — Create an asset in bluetally. Returns the created asset object including id, asset_id, asset_name, product_name, and custom_fields. Required: asset_id, product_id, status_id.
- **update_a_blue_tally_asset_by_id** — Update an asset in bluetally by id. Returns the updated asset object including id, asset_id, asset_serial, product_name, and custom_fields. Required: id.
- **delete_a_blue_tally_asset_by_id** — Delete an asset in bluetally by id. Returns an empty 204 response on success. Required: id. Deletion is permanent and cannot be undone.
- **blue_tally_assets_check_in** — Check-in an asset in bluetally, optionally recording its condition, notes, and the location or department it should belong to. Returns an empty 201 response on success. Required: asset_id, checkin_date, status_id.
- **blue_tally_assets_check_out** — Check-out an asset in bluetally to an employee or location, optionally recording its condition, notes, and the expected check-in date. Returns an empty 201 response on success. Required: asset_id, checkout_date.
- **list_all_blue_tally_audits** — List all bluetally audits. Returns audit records including id, audit_date, audit_status, scheduled, completed, asset_id, user_id, and created_at; sorted by audit_date ascending by default.
- **get_single_blue_tally_audit_by_id** — Get a single bluetally audit by id. Returns the full audit record including id, audit_date, audit_status, scheduled, completed, asset_id, user_id, notes, and created_at. Required: id.
- **create_a_blue_tally_audit** — Create an audit in bluetally. Returns the created audit including id, audit_date, audit_status, scheduled, completed, asset_id, and user_id. Required: audit_date, scheduled, completed, asset_id, user_id. Completed audits need audit_status passed or failed; user_id is a BlueTally user ID (see activity log).
- **update_a_blue_tally_audit_by_id** — Update a bluetally audit by id. Returns the updated audit including id, audit_date, audit_status, scheduled, completed, asset_id, and user_id. Required: id.
- **delete_a_blue_tally_audit_by_id** — Delete a bluetally audit by id. Deletion is permanent and cannot be undone. Returns an empty 204 response on success. Required: id.
- **list_all_blue_tally_categories** — List all categories in bluetally, filterable by exact name and category type. Returns: id, name, type, eula, skip_checkout_emails, logo, number_of_assets, number_of_accessories, number_of_components, number_of_consumables, number_of_licenses, number_of_products, assets, accessories, consumables, licenses, products, minimum_quantity, number_of_deployable_assets, created_at, updated_at, …
- **get_single_blue_tally_category_by_id** — Get a single bluetally category by id. Returns: id, name, type, eula, skip_checkout_emails, logo, number_of_assets, number_of_accessories, number_of_components, number_of_consumables, number_of_licenses, number_of_products, assets, accessories, consumables, licenses, products, minimum_quantity, number_of_deployable_assets, created_at, updated_at, …
- **create_a_blue_tally_category** — Create a category in bluetally. Returns an empty 204 response on success. Required: name and type.
- **update_a_blue_tally_category_by_id** — Update a category in bluetally by id. Returns the updated category including id, name, type, eula, skip_checkout_emails, logo, asset counts, and created_at/updated_at timestamps. Required: id.
- **delete_a_blue_tally_category_by_id** — Delete a category in bluetally by id. Returns an empty 204 response on success. Deletion is permanent and cannot be undone. Required: id.
- **list_all_blue_tally_components** — List all components in BlueTally. Returns component records with id, name, model_number, quantity, available, purchase_cost, and category_id. Supports exact-match filters (name, model_number, purchase_date, unit_cost, category_id, location_id, and more) plus sort and order.
- **get_single_blue_tally_component_by_id** — Get a specific component in BlueTally by id. Returns the full component record including id, name, model_number, quantity, available, purchase_cost, custom_fields, and checked_out_to. Required: id.
- **create_a_blue_tally_component** — Create a component in BlueTally. Returns the created component record including id, name, quantity, available, purchase_cost, and category_id. Requires name, quantity, and category_id.
- **update_a_blue_tally_component_by_id** — Update a component in BlueTally by id. Returns the updated component record including id, name, quantity, available, purchase_cost, and category_id. Required: id.
- **delete_a_blue_tally_component_by_id** — Permanently delete a component in BlueTally by id. This action is irreversible and cannot be undone. Returns an empty 204 response on success. Required: id.
- **blue_tally_components_check_in** — Check in a component in bluetally, returning it to stock from the asset it was checked out to. Returns an empty 201 response on success. Required: component_id, asset_id, checkin_date (YYYY-MM-DD).
- **blue_tally_components_check_out** — Check out a component in bluetally to an asset in a given quantity. Returns an empty 201 response on success. Required: component_id, asset_id, quantity, checkout_date (YYYY-MM-DD).
- **list_all_blue_tally_consumables** — List all consumables in bluetally. Returns each consumable with id, name, model_number, purchase_cost, currency, minimum_quantity, available, custom_fields, checked_out_to_employees, created_at, and updated_at. Supports exact-match filters and sorting.
- **get_single_blue_tally_consumable_by_id** — Get a single consumable in bluetally by id. Returns: id, name, model_number, order_number, purchase_date, purchase_cost, currency, minimum_quantity, available, category_id, manufacturer_id, supplier_id, location_id, department_id, logo, notes, custom_fields, checked_out_to_employees, checked_out_to_locations, created_at, updated_at, unit_cost, …
- **create_a_blue_tally_consumable** — Create a consumable in bluetally. Returns an empty 201 response on success. Required: name, quantity, category_id.
- **update_a_blue_tally_consumable_by_id** — Update a consumable in bluetally by id. Returns an empty 200 response on success. Required: id.
- **delete_a_blue_tally_consumable_by_id** — Permanently delete a consumable in bluetally by id. This action is irreversible and cannot be undone. Returns an empty 204 response on success. Required: id.
- **blue_tally_consumables_check_out** — Check out a consumable in bluetally, recording the quantity checked out and the date of the checkout. Returns an empty 201 response on success. Required: consumable_id, quantity, checkout_date.
- **list_all_blue_tally_departments** — List all departments in bluetally. Returns department records including id, name, email, phone, asset/accessory/component/consumable/license/employee counts, related ID lists, and created_at/updated_at timestamps. Supports exact-search filters on name, email, or phone and sorting by created_at, updated_at, or name.
- **get_single_blue_tally_department_by_id** — Get a single department in bluetally by id. Returns the full department object including id, name, email, phone, related asset/accessory/license/employee ID lists, and created_at/updated_at timestamps. Required: id.
- **create_a_blue_tally_department** — Create a department in bluetally. Returns an empty 201 response on success. Requires name, email, and phone.
- **update_a_blue_tally_department_by_id** — Update a department in bluetally by id. Returns an empty 200 response on success. Required: id.
- **delete_a_blue_tally_department_by_id** — Delete a department in bluetally by id. This action is permanent and cannot be undone. Returns an empty 200 response on success. Required: id.
- **list_all_blue_tally_depreciations** — List all depreciations in bluetally. Returns depreciation records with id, name, months, minimum_value, asset/license/product id lists, and created_at/updated_at. Supports sorting and exact-match filtering by name, months, or minimum_value.
- **get_single_blue_tally_depreciation_by_id** — Get a single depreciation in bluetally by id. Returns: id, name, months, minimum_value, number_of_assets, number_of_licenses, number_of_products, assets, licenses, products, created_at, updated_at. Required: id.
- **create_a_blue_tally_depreciation** — Create a depreciation in bluetally. Returns the created depreciation including id, name, months, minimum_value, and created_at. Required: name and months.
- **update_a_blue_tally_depreciation_by_id** — Update a depreciation in bluetally by id. Returns the updated depreciation including id, name, months, minimum_value, and updated_at. Required: id.
- **delete_a_blue_tally_depreciation_by_id** — Delete a depreciation in bluetally by id. Deleting is permanent and cannot be undone. Returns an empty 204 response on success. Required: id.
- **list_all_blue_tally_employees** — List all employees in bluetally. Returns: id, name, email, title, location_id, department_id, notes, archived, number_of_assets, number_of_accessories, number_of_consumables, number_of_licenses, assets, accessories, consumables, licenses, created_at, updated_at, custom_fields, manager_id. Supports exact-match filters:…
- **get_single_blue_tally_employee_by_id** — Get a single bluetally employee by id. Returns the full employee object including: id, name, email, title, location_id, department_id, notes, archived, number_of_assets, custom_fields, created_at. Required: id.
- **create_a_blue_tally_employee** — Create an employee in bluetally with the given profile details. Returns the created employee including: id, name, email, title, and custom_fields. Required: name, email.
- **update_a_blue_tally_employee_by_id** — Update an employee in bluetally by id. Returns the updated employee including: id, name, email, title, and custom_fields. Required: id.
- **delete_a_blue_tally_employee_by_id** — Delete an employee in bluetally by id. This action is permanent and cannot be undone. Returns an empty 200 response on success. Required: id.
- **list_all_blue_tally_licenses** — List all licenses in bluetally. Returns each license's id, name, licensed_to_name, licensed_to_email, order_number, number_of_seats, seats, and license_type, sorted by name ascending by default. Supports exact-match filters on fields like licensed_to_email, order_number, and expiration_date, plus a billing_interval filter (monthly, quarterly, annually, one-time).
- **get_single_blue_tally_license_by_id** — Get a single license in bluetally by id. Returns the full license object including id, name, licensed_to_email, seats with checkout details, billing_interval, and auto_renew. Required: id.
- **create_a_blue_tally_license** — Create a license in bluetally. Returns the created license object including id, name, licensed_to_email, purchase_cost, number_of_seats, and billing_interval. Required: name, category_id.
- **update_a_blue_tally_license_by_id** — Update a license in bluetally by id. Returns the updated license object including id, name, license_type, billing_interval, auto_renew, renewal_date, and seats. Required: id.
- **delete_a_blue_tally_license_by_id** — Delete a license in bluetally by id. The deletion is permanent and cannot be undone. Returns an empty 204 response on success. Required: id.
- **blue_tally_licenses_check_in** — Check in a bluetally license seat, returning it to the available pool. Returns an empty 201 response on success. Required: license_id, checkin_date. product_key is required for Product Key licenses.
- **blue_tally_licenses_check_out** — Check out a bluetally license to an employee or asset. Returns an empty 201 response on success. Required: license_id, checkout_date. quantity is required for Dynamic licenses and product_key for Product Key licenses.
- **list_all_blue_tally_locations** — List all bluetally locations. Returns locations with id, name, address_line_1, city, country, email, phone, currency, asset counts, related ID lists, created_at, updated_at, and custom_fields. Supports exact-match filters plus sort and order options.
- **get_single_blue_tally_location_by_id** — Get a bluetally location by id. Returns the location's id, name, address_line_1, address_line_2, city, zip, state, country, email, phone, currency, logo, asset counts with related ID lists, created_at, updated_at, and custom_fields. Required: id.
- **create_a_blue_tally_location** — Create a bluetally location. Returns the created location including id, name, address_line_1, city, currency, and created_at. Required: name.
- **update_a_blue_tally_location_by_id** — Update a bluetally location by id. Returns the updated location including id, name, address_line_1, city, currency, and updated_at. Required: id.
- **delete_a_blue_tally_location_by_id** — Permanently delete a bluetally location by id. Returns an empty 200 response on success. Required: id. Deletion is irreversible and cannot be undone.
- **list_all_blue_tally_maintenances** — List all maintenances in bluetally. Returns maintenances with id, type, name, start_date, end_date, cost, asset_id, supplier_id, notes, created_at, and updated_at. Supports filtering by type, name, dates, cost, asset_id, and supplier_id.
- **get_single_blue_tally_maintenance_by_id** — Get a single maintenance in bluetally by id. Returns the maintenance record including id, type, name, start_date, end_date, cost, asset_id, supplier_id, notes, created_at, and updated_at. Required: id.
- **create_a_blue_tally_maintenance** — Create a maintenance in bluetally. Returns the created maintenance record including id, type, name, start_date, cost, asset_id, and created_at. Required: type, name, start_date, asset_id.
- **update_a_blue_tally_maintenance_by_id** — Update a maintenance in bluetally by id. Returns the updated maintenance record including id, type, name, start_date, cost, asset_id, and updated_at. Required: id.
- **delete_a_blue_tally_maintenance_by_id** — Delete a maintenance in bluetally by id. This action is permanent and cannot be undone. Returns an empty 204 response on success. Required: id.
- **list_all_blue_tally_manufacturers** — List all manufacturers in bluetally. Returns each manufacturer's id, name, url, support_url, support_email, assets, products, and created_at/updated_at. Narrow results with exact-match filters such as name or url.
- **get_single_blue_tally_manufacturer_by_id** — Get a single bluetally manufacturer by id. Returns the full manufacturer object including id, name, url, support_url, support_email, assets, products, and created_at/updated_at. Required: id.
- **create_a_blue_tally_manufacturer** — Create a manufacturer in bluetally. Returns an empty 201 response on success. Required: name.
- **update_a_blue_tally_manufacturer_by_id** — Update a manufacturer in bluetally by id. Returns an empty 200 response on success. Required: id.
- **delete_a_blue_tally_manufacturer_by_id** — Delete a bluetally manufacturer by id. This action is permanent and cannot be undone. Returns an empty 204 response on success. Required: id.
- **list_all_blue_tally_products** — List all products in bluetally. Supports exact-match filters (name, model_number, category_id, manufacturer_id, depreciation_id, archived, and more) plus sort/order. Returns: id, name, model_number, end_of_life_date, default_purchase_cost, category_id, manufacturer_id, depreciation_id, logo, notes, archived, custom_fields, number_of_assets, assets, end_of_life_type, end_of_life_months, …
- **get_single_blue_tally_product_by_id** — Get a single bluetally product by id. Returns the full product object including id, name, model_number, default_purchase_cost, category_id, manufacturer_id, custom_fields, assets, and created_at. Required: id.
- **create_a_blue_tally_product** — Create a product in bluetally. Returns the created product including id, name, model_number, end_of_life_type, category_id, and archived. Required: name, category_id.
- **update_a_blue_tally_product_by_id** — Update a bluetally product by id. Returns the updated product including id, name, model_number, end_of_life_type, archived, and custom_fields. Required: id. Supply end_of_life_date when end_of_life_type is Fixed Date, or end_of_life_months for the months-based end-of-life types.
- **delete_a_blue_tally_product_by_id** — Permanently delete a product in bluetally by id; the action cannot be undone. Returns an empty 204 response on success. Required: id.
- **list_all_blue_tally_statuses** — List all statuses in bluetally, sortable and filterable by name, type, navigation visibility, and notes. Returns: id, name, type, show_in_nav, notes, number_of_assets, assets, created_at, updated_at.
- **get_single_blue_tally_status_by_id** — Get a single status in bluetally by id. Returns: id, name, type, show_in_nav, notes, number_of_assets, assets, created_at, updated_at. Required: id.
- **create_a_blue_tally_status** — Create a status in bluetally. Returns the created status object including id, name, type, show_in_nav, and created_at. Required: name and type.
- **update_a_blue_tally_status_by_id** — Update a status in bluetally by id. Returns the updated status object including id, name, type, show_in_nav, and updated_at. Required: id.
- **delete_a_blue_tally_status_by_id** — Delete a status in bluetally by id. This action is permanent and cannot be undone. Returns an empty 204 response on success. Required: id.
- **list_all_blue_tally_suppliers** — List all suppliers in bluetally. Returns supplier records including id, name, contact_name, email, number_of_assets, and created_at. Supports exact-match filters and sorting (defaults to name, asc).
- **get_single_blue_tally_supplier_by_id** — Get a single bluetally supplier by id. Returns the full supplier record including id, name, contact_name, email, url, and linked asset IDs. Required: id.
- **create_a_blue_tally_supplier** — Create a supplier in bluetally. Returns the created supplier record including id, name, address, contact_name, and linked asset counts. Required: name.
- **update_a_blue_tally_supplier_by_id** — Update a bluetally supplier by id. Returns the updated supplier record including id, name, contact_name, address_line_1, and number_of_assets. Required: id.
- **delete_a_blue_tally_supplier_by_id** — Delete a bluetally supplier by id. This action is permanent and cannot be undone. Returns an empty 204 response on success. Required: id.
- **list_all_blue_tally_tenants** — List the tenants this BlueTally API key can access (multi-tenancy accounts only). Returns: tenant_id, tenant_name. Use a tenant_id as the account's Tenant ID so other tools target that tenant.

## How it works

1. **Link your customer's BlueTally account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach BlueTally.** The Proxy API is a 1-to-1 mapping of the BlueTally API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **Embed asset context in IT helpdesk tickets** — Give support agents instant visibility into the hardware, licenses, and accessories assigned to a ticket requester so they can resolve issues without back-and-forth. Agents can log maintenance records directly from the ticket view.
- **Automate hardware offboarding for HR platforms** — When HR marks an employee as terminated, your app can pull their assigned assets, licenses, and accessories from BlueTally and trigger check-in workflows to return items to available stock. This closes a major compliance gap for distributed workforces.
- **Sync procurement purchases into IT inventory** — Spend management and procurement platforms can push approved hardware, consumables, and license purchases directly into BlueTally as unassigned inventory. IT teams see new stock arrive with supplier, cost, and PO data pre-populated.
- **Reclaim unused software licenses from SMPs** — SaaS management platforms detecting unused seats via SSO activity can automatically check licenses back into BlueTally to free them for reassignment. This prevents overbuying and keeps license records accurate.
- **Automate SOC2 and ISO27001 audit evidence** — Compliance platforms can create audit records in BlueTally and pull the activity log to prove device tracking, assignment, and offboarding procedures are being followed. No more screenshot collection for auditors.

## What you can build

- **Employee asset sidebar widget** — Display a logged-in user's assigned assets, licenses, and accessories inside your product by fetching the employee record and their linked inventory from BlueTally.
- **Automated check-in / check-out flows** — Programmatically assign or return assets, licenses, accessories, and components to employees or locations as part of onboarding, offboarding, or ticket resolution workflows.
- **Procurement-to-inventory pipeline** — Create assets, components, consumables, and licenses in BlueTally directly from purchase approvals, with supplier, manufacturer, category, and cost data populated at creation.
- **Consumable and accessory replenishment alerts** — Poll consumable and accessory stock levels against minimum quantity thresholds to trigger automated reorder workflows or purchase requisitions.
- **Audit and compliance evidence export** — Create audit records with pass/fail status against assets and pull the full activity log to feed compliance dashboards or evidence collection systems.
- **Maintenance ticket logging** — Create maintenance records tied to specific assets from inside helpdesk or RMM tools when a device is sent for repair, warranty service, or diagnostics.

## FAQs

### How does authentication to BlueTally work through Truto?

BlueTally uses API key authentication. Your end users provide their BlueTally API key during the connection flow, and Truto securely stores and injects it on every request so your application never handles the credential directly.

### Does the integration support BlueTally's multi-tenant accounts?

Yes. Truto exposes the tenants listing so you can enumerate sub-accounts for larger BlueTally customers and route API calls to the correct tenant context.

### Which BlueTally resources can I read and write?

You can perform full CRUD on assets, accessories, components, consumables, licenses, employees, departments, locations, categories, manufacturers, suppliers, statuses, products, depreciations, maintenances, and audits. Check-in and check-out actions are supported for assets, accessories, components, consumables, and licenses.

### Can I retrieve a historical activity log?

Yes. The activity listing endpoint returns BlueTally's audit trail of asset movements, assignments, and lifecycle changes — useful for compliance evidence and change tracking.

### How fresh is the data — is it polling or webhook-based?

Data is fetched on-demand via BlueTally's REST API. For continuous sync use cases, you can poll list endpoints on a schedule through Truto; webhook support depends on BlueTally's native capabilities for the specific resource.

### How are pagination and rate limits handled?

Truto normalizes BlueTally's pagination so you can iterate list endpoints consistently, and automatically respects BlueTally's rate limits with retries and backoff so your integration stays reliable under load.

## Related reading

- [Connect BlueTally to Claude: Track Licenses and Maintenance Tasks](https://truto.one/blog/connect-bluetally-to-claude-track-licenses-and-maintenance-tasks/) — Learn how to connect BlueTally to Claude via a managed MCP server to automate IT asset tracking, software license provisioning, and employee offboarding.
