Entities and Endpoints
Abstract Crosstable
Generic crosstable entries (abstract_crosstable) used to link arbitrary record pairs across tables. Read-only: Post, Put, Save and Delete are all disabled. Server-driven paging defaults to 120 items per page.
| API | Description |
|---|---|
| GET api/AbstractCrosstable |
Retrieves all crosstable entries, optionally filtered via OData query options. |
| GET api/AbstractCrosstable(id) |
Retrieves the crosstable entry with the specified key. |
| POST api/AbstractCrosstable |
Disabled. Crosstable entries are managed internally and cannot be created through this endpoint. |
Application Version
Application version metadata (per platform) used to drive forced/optional update prompts in the client apps. Superseded the equivalent obsolete actions on .
| API | Description |
|---|---|
| POST api/ApplicationVersion/GetApplicationVersionInfo |
Retrieves the application_version row matching the given version and platform. |
| POST api/ApplicationVersion/GetLatestApplicationVersion |
Retrieves the latest application_version row for the given platform. |
| POST api/ApplicationVersion/AddUpdateApplicationVersion |
Adds a new application_version row, or edits an existing one, depending on the method field. |
Article
Articles (=products, parts, materials). Used for Sales and Services
| API | Description |
|---|---|
| GET api/Article |
Retrieves all articles, optionally filtered via OData query options. |
| GET api/Article(id) |
Retrieves the article with the specified key. |
Article Category
Article categories, used to classify articles (e.g. for filtering and reporting). Read-only through this API.
| API | Description |
|---|---|
| GET api/ArticleCategory |
Retrieves all article categories, optionally filtered via OData query options. |
| GET api/ArticleCategory(id) |
Retrieves the article category with the specified key. |
Article Discount
Discount rules (price/quantity breaks) linked to an article, discount family, and price label. Read-only through this API.
| API | Description |
|---|---|
| GET api/ArticleDiscount |
Retrieves all article discounts, optionally filtered via OData query options. |
| GET api/ArticleDiscount(id) |
Retrieves the article discount with the specified key. |
Article Group
Article groups, used to organize articles into a classification hierarchy (see also , which caches the resolved hierarchy per article). Read-only through this API.
| API | Description |
|---|---|
| GET api/ArticleGroup |
Retrieves all article groups, optionally filtered via OData query options. |
| GET api/ArticleGroup(id) |
Retrieves the article group with the specified key. |
Article Group Cache
Denormalized, per-sales-organization cache of an article's group hierarchy (up to 6 levels), status, and order-channel flag. Read-only through this API.
| API | Description |
|---|---|
| GET api/ArticleGroupCache |
Retrieves all article group cache entries, optionally filtered via OData query options. |
| GET api/ArticleGroupCache(id) |
Retrieves the article group cache entry with the specified key. |
Article No Warranty Reason
Reasons an article can be excluded from warranty coverage, scoped per sales organization. Read-only through this API.
| API | Description |
|---|---|
| GET api/ArticleNoWarrantyReason |
Retrieves all article no-warranty reasons, optionally filtered via OData query options. |
| GET api/ArticleNoWarrantyReason(id) |
Retrieves the article no-warranty reason with the specified key. |
Article Price Label
Price labels (e.g. list price, retail price) used to tag article prices per sales organization and currency. Read-only through this API.
| API | Description |
|---|---|
| GET api/ArticlePriceLabel |
Retrieves all article price labels, optionally filtered via OData query options. |
| GET api/ArticlePriceLabel(id) |
Retrieves the article price label with the specified key. |
Article Price List
Prices of an article per price label (see ). Read-only through this API. Uses a larger default page size (120) than most endpoints.
| API | Description |
|---|---|
| GET api/ArticlePriceList |
Retrieves all article prices, optionally filtered via OData query options. |
| GET api/ArticlePriceList(id) |
Retrieves the article price with the specified key. |
Article Status
Article statuses (e.g. active, discontinued), with a default flag and display color. Read-only through this API.
| API | Description |
|---|---|
| GET api/ArticleStatus |
Retrieves all article statuses, optionally filtered via OData query options. |
| GET api/ArticleStatus(id) |
Retrieves the article status with the specified key. |
Article Status List
Scheduled article status changes: the status an article will have between a start and end date (e.g. a planned "discontinued" window), plus a start-of-delivery date. Read-only through this API. Uses a larger default page size (120) than most endpoints.
| API | Description |
|---|---|
| GET api/ArticleStatusList |
Retrieves all article status schedule entries, optionally filtered via OData query options. |
| GET api/ArticleStatusList(id) |
Retrieves the article status schedule entry with the specified key. |
Article Stock Location
Per-location stock quantities for an article, used when working with multiple stock locations instead of the article's central stock (article.physical_stock). See also (stock value) and (serial-tracked stock).
| API | Description |
|---|---|
| GET api/ArticleStockLocation |
Retrieves all article stock locations, optionally filtered via OData query options. |
| GET api/ArticleStockLocation(id) |
Retrieves the article stock location with the specified key. |
Article Stock Location List
Stock value of an article at a given stock location (see for the stock quantity). Read-only through this API — note that, unlike , Put is also disabled here.
| API | Description |
|---|---|
| GET api/ArticleStockLocationList |
Retrieves all article stock location values, optionally filtered via OData query options. |
| GET api/ArticleStockLocationList(id) |
Retrieves the article stock location value with the specified key. |
Article Stock Location Serial
Serial-tracked stock units of an article at a given stock location (see for non-serial stock quantities).
| API | Description |
|---|---|
| GET api/ArticleStockLocationSerial |
Retrieves all article stock location serial entries, optionally filtered via OData query options. |
| GET api/ArticleStockLocationSerial(id) |
Retrieves the article stock location serial entry with the specified key. |
| PUT api/ArticleStockLocationSerial(id) |
Updates the article stock location serial entry with the specified key. |
Article Translate
Per-language translations (name, short description) of an article. Read-only through this API.
| API | Description |
|---|---|
| GET api/ArticleTranslate |
Retrieves all article translations, optionally filtered via OData query options. |
Car
Cars, if you wish to track car travel (see ). Post and Delete are disabled — cars are created/removed elsewhere; only Put and Save are live here.
| API | Description |
|---|---|
| POST api/Car/Save |
Creates or updates a car. |
| GET api/Car |
Retrieves all cars, optionally filtered via OData query options. |
| GET api/Car(id) |
Retrieves the car with the specified key. |
| PUT api/Car(id) |
Updates the car with the specified key. |
Car Travel
[OBSOLETE]: Use "CarTravelV2Controller" instead. Car travel records (invoiceable driving time/distance, see "HourTypeController" for how these feed invoiceable timesheets). Put and Delete are disabled — use Save to update. See "CarTravelV2Controller" for a fully writable version of this endpoint that also adds a SaveMultiple batch endpoint.
| API | Description |
|---|---|
| POST api/CarTravel/Save |
[OBSOLETE]: Creates or updates a car travel record. |
| GET api/CarTravel |
[OBSOLETE]: Retrieves all car travel records, optionally filtered via OData query options. |
| GET api/CarTravel(id) |
[OBSOLETE]: Retrieves the car travel record with the specified key. |
| POST api/CarTravel |
[OBSOLETE]: Creates a new car travel record. |
Car Travel V2
Car travel records, exposed through a separate CarTravelV2 OData feed from over the same underlying table. Unlike the V1 endpoint, Put and Delete are not disabled here — this version is fully writable, and also adds for batch saves.
| API | Description |
|---|---|
| POST api/CarTravelV2/SaveMultiple |
Creates or updates multiple car travel records in a single batch request. This API is used by the Synchronization module to send multiple records in one request instead of sending each record individually, which: 1. Reduces the number of HTTP requests. 2. Improves performance and efficiency. The batch processing logic (deserialize, validation, transaction handling, saving, and logging) is handled by BatchSaveHelper. Each record will return its own ResponseResult indicating success or failure. |
| POST api/CarTravelV2/Save |
Creates or updates a car travel record. |
| GET api/CarTravelV2 |
Retrieves all car travel records, optionally filtered via OData query options. |
| GET api/CarTravelV2(id) |
Retrieves the car travel record with the specified key. |
| POST api/CarTravelV2 |
Creates a new car travel record. |
| PUT api/CarTravelV2(id) |
Updates the car travel record with the specified key. |
| DELETE api/CarTravelV2(id) |
Deletes the car travel record with the specified key. |
Communication
Automated email communication rules (trigger, recipients, subject/body template, optional PDF attachment), filterable by job type or contract type. Read-only through this API.
| API | Description |
|---|---|
| GET api/Communication |
Retrieves all communication rules, optionally filtered via OData query options. |
| GET api/Communication(id) |
Retrieves the communication rule with the specified key. |
Company
[OBSOLETE]: Use "CompanyV2Controller" instead. Companies (customers/accounts). Change tracking (for sync) also considers the linked company_invoice and db_address tables, so an address-only change is enough to mark a company as modified. See also "CompanyV2Controller", which exposes the same "company" entity through a separate CompanyV2 OData feed whose change tracking does not include db_address, and which does not expose .
| API | Description |
|---|---|
| GET api/Company/GetBySalesTerritory |
[OBSOLETE]: Retrieves the companies belonging to the sales territory given via an OData sales_territory_id eq <guid> filter. |
| GET api/Company/GetDataRelatedToCompany |
[OBSOLETE]: Retrieves companies related to a given company, keyed off a company_id query string parameter parsed from the raw request URI. |
| POST api/Company/Save |
[OBSOLETE]: Creates or updates a company. |
| POST api/Company/GetControllerDataStatus |
[OBSOLETE]: For each entry in the posted list of (controller name, last-known modified_dateutc), checks whether that controller has newer data for the given company, so a sync client can decide which controllers to re-fetch. Controller names not recognized in the internal switch are reported as status_is_unknown and treated as available. |
| GET api/Company |
[OBSOLETE]: Retrieves all companies, optionally filtered via OData query options. |
| GET api/Company(id) |
[OBSOLETE]: Retrieves the company with the specified key. |
| POST api/Company |
[OBSOLETE]: Creates a new company. |
| PUT api/Company(id) |
[OBSOLETE]: Updates the company with the specified key. |
Company Account
Link between a company and a user (e.g. account manager assignment), with a temp-link and logical-delete flag. Read-only through this API.
| API | Description |
|---|---|
| GET api/CompanyAccount |
Retrieves all company accounts, optionally filtered via OData query options. |
| GET api/CompanyAccount(id) |
Retrieves the company account with the specified key. |
Company Calendar
A scheduled calendar entry for a company (a date range plus a description), of a given company calendar type — e.g. a planned closure period. Read-only through this API.
| API | Description |
|---|---|
| GET api/CompanyCalendar |
Retrieves all company calendar entries, optionally filtered via OData query options. |
| GET api/CompanyCalendar(id) |
Retrieves the company calendar entry with the specified key. |
Company Calendar Type
Types of company calendar entries (e.g. closure, holiday), each flagged as unavailable or not and scoped per sales organization. Read-only through this API.
| API | Description |
|---|---|
| GET api/CompanyCalendarType |
Retrieves all company calendar types, optionally filtered via OData query options. |
| GET api/CompanyCalendarType(id) |
Retrieves the company calendar type with the specified key. |
Company Contact
Link between a company and a contact (the people associated with a company). Fully writable through this API, except Put.
| API | Description |
|---|---|
| POST api/CompanyContact/Save |
Creates or updates a company contact link. |
| GET api/CompanyContact |
Retrieves all company contacts, optionally filtered via OData query options. |
| GET api/CompanyContact(id) |
Retrieves the company contact with the specified key. |
| POST api/CompanyContact |
Creates a new company contact link. |
| DELETE api/CompanyContact(id) |
Deletes the company contact link with the specified key. |
Company Discount Family
Discount families: a named flat discount percentage, scoped per sales organization, that can be assigned to companies (see for contract-level discounts). Read-only through this API.
| API | Description |
|---|---|
| GET api/CompanyDiscountFamily |
Retrieves all company discount families, optionally filtered via OData query options. |
| GET api/CompanyDiscountFamily(id) |
Retrieves the company discount family with the specified key. |
Company Files
Files/attachments (with metadata such as name, mime type, and dimensions) linked to a company. Fully writable through this API.
| API | Description |
|---|---|
| GET api/CompanyFiles/GetFileContent/{id}?maxHeight={maxHeight}&maxWidth={maxWidth} |
Retrieves the binary content of a company file, optionally resized if it's an image. |
| POST api/CompanyFiles/Save |
Creates or updates a company file. |
| GET api/CompanyFiles |
Retrieves all company files (metadata only; use for the binary content), optionally filtered via OData query options. |
| GET api/CompanyFiles(id) |
Retrieves the company file with the specified key. |
| POST api/CompanyFiles |
Creates a new company file. |
| PUT api/CompanyFiles(id) |
Updates the company file with the specified key. |
| DELETE api/CompanyFiles(id) |
Deletes the company file with the specified key. |
Company Sales Status
Sales statuses that can be assigned to a company (e.g. prospect, active customer), with a name, description, and display color. Read-only through this API.
| API | Description |
|---|---|
| GET api/CompanySalesStatus |
Retrieves all company sales statuses, optionally filtered via OData query options. |
| GET api/CompanySalesStatus(id) |
Retrieves the company sales status with the specified key. |
Company Sales Territory List
Links a company to an additional sales territory (a company's main territory is company.sales_territory_id; this lets a company also be visible in other territories). Read-only through this API.
| API | Description |
|---|---|
| GET api/CompanySalesTerritoryList |
Retrieves all company/sales-territory links, optionally filtered via OData query options. |
| GET api/CompanySalesTerritoryList(id) |
Retrieves the company/sales-territory link with the specified key. |
Company Type
Company types (e.g. customer, supplier, partner), each optionally scoped to one sales organization or shared across all. Read-only through this API.
| API | Description |
|---|---|
| GET api/CompanyType |
Retrieves all company types, optionally filtered via OData query options. |
| GET api/CompanyType(id) |
Retrieves the company type with the specified key. |
Company V2
Companies (customers/accounts), exposed through a separate CompanyV2 OData feed from the same underlying company table as . Differences from : change tracking (for sync) here considers only the company and company_invoice tables, not db_address, so an address-only change does not mark a company as modified; and this controller does not expose an equivalent of .
| API | Description |
|---|---|
| POST api/CompanyV2/Save |
Creates or updates a company. |
| POST api/CompanyV2/GetControllerDataStatus |
For each entry in the posted list of (controller name, last-known modified_dateutc), checks whether that controller has newer data for the given company, so a sync client can decide which controllers to re-fetch. Controller names not recognized in the internal switch are reported as status_is_unknown and treated as available. |
| GET api/CompanyV2 |
Retrieves all companies, optionally filtered via OData query options. |
| GET api/CompanyV2(id) |
Retrieves the company with the specified key. |
| POST api/CompanyV2 |
Creates a new company. |
| PUT api/CompanyV2(id) |
Updates the company with the specified key. |
Company Vat
VAT/tax rates per country, with a validity date range, a default flag, and an optional legal stipulation note. Read-only through this API.
| API | Description |
|---|---|
| GET api/CompanyVat |
Retrieves all VAT rates, optionally filtered via OData query options. |
| GET api/CompanyVat(id) |
Retrieves the VAT rate with the specified key. |
Contact
Contacts (people), which can be linked to one or more companies via . Fully writable through this API, except Delete.
| API | Description |
|---|---|
| POST api/Contact/Save |
Creates or updates a contact. |
| GET api/Contact |
Retrieves all contacts, optionally filtered via OData query options. |
| GET api/Contact(id) |
Retrieves the contact with the specified key. |
| POST api/Contact |
Creates a new contact. |
| PUT api/Contact(id) |
Updates the contact with the specified key. |
Contract
Service contracts: links a company to a contract type/status over a date range, with a linked fee list, an article price label, and discount/free-hours terms for preventive jobs. Read-only through this API.
| API | Description |
|---|---|
| GET api/Contract |
Retrieves all contracts, optionally filtered via OData query options. |
| GET api/Contract(id) |
Retrieves the contract with the specified key. |
Contract Discount
A date-ranged discount percentage applied to a contract as a whole (see for per-article discounts and for per-feelist-price discounts). Read-only through this API.
| API | Description |
|---|---|
| GET api/ContractDiscount |
Retrieves all contract discounts, optionally filtered via OData query options. |
| GET api/ContractDiscount(id) |
Retrieves the contract discount with the specified key. |
Contract Discount Article
A per-article discount rule on a contract: a discount percentage that applies to a specific article for a given time span. Read-only through this API.
| API | Description |
|---|---|
| GET api/ContractDiscountArticle |
Retrieves all contract discount article rules, optionally filtered via OData query options. |
| GET api/ContractDiscountArticle(id) |
Retrieves the contract discount article rule with the specified key. |
Contract Discount Feelist Price
A date-ranged discount percentage applied to a specific fee list price line of a contract, with an optional warranty-exclusion flag. Read-only through this API.
| API | Description |
|---|---|
| GET api/ContractDiscountFeelistPrice |
Retrieves all contract discount fee list price rules, optionally filtered via OData query options. |
| GET api/ContractDiscountFeelistPrice(id) |
Retrieves the contract discount fee list price rule with the specified key. |
Contract Type
Contract types, scoped per sales organization for sync filtering. Read-only through this API.
| API | Description |
|---|---|
| GET api/ContractType |
Retrieves all contract types, optionally filtered via OData query options. |
| GET api/ContractType(id) |
Retrieves the contract type with the specified key. |
Country
Countries (ISO 3166 2-letter code, name, default language, and per-country culture/display settings). Read-only through this API.
| API | Description |
|---|---|
| GET api/Country |
Retrieves all countries, optionally filtered via OData query options. |
| GET api/Country(id) |
Retrieves the country with the specified key. |
Db Address Company
A company's address (street, zip, city, geocoordinates, country, address type). Addresses cannot be hard-deleted — use the archived flag instead. Fully writable through this API except Delete.
| API | Description |
|---|---|
| POST api/DbAddressCompany/Save |
Creates or updates a company address. |
| GET api/DbAddressCompany |
Retrieves all company addresses, optionally filtered via OData query options. |
| GET api/DbAddressCompany(id) |
Retrieves the company address with the specified key. |
| POST api/DbAddressCompany |
Creates a new company address. |
| PUT api/DbAddressCompany(id) |
Updates the company address with the specified key. |
Db Address Sales Organization
A sales organization's address (street, zip, city, geocoordinates, country). Read-only through this API.
| API | Description |
|---|---|
| GET api/DbAddressSalesOrganization |
Retrieves all sales organization addresses, optionally filtered via OData query options. |
| GET api/DbAddressSalesOrganization(id) |
Retrieves the sales organization address with the specified key. |
Db Address Type
Address types (e.g. company/billing, delivery, working address), flagged as company/delivery/default/working. Read-only through this API.
| API | Description |
|---|---|
| GET api/DbAddressType |
Retrieves all address types, optionally filtered via OData query options. |
| GET api/DbAddressType(id) |
Retrieves the address type with the specified key. |
Db Address User Unavailability
The address associated with a user unavailability period (street, zip, city, geocoordinates, country). Addresses cannot be hard-deleted — use the archived flag instead.
| API | Description |
|---|---|
| POST api/DbAddressUserUnavailability/Save |
Disabled. User unavailability addresses cannot be saved through this endpoint; use Put instead. |
| GET api/DbAddressUserUnavailability |
Retrieves all user unavailability addresses, optionally filtered via OData query options. |
| GET api/DbAddressUserUnavailability(id) |
Retrieves the user unavailability address with the specified key. |
| POST api/DbAddressUserUnavailability |
Disabled. User unavailability addresses cannot be created through this endpoint. |
| PUT api/DbAddressUserUnavailability(id) |
Updates the user unavailability address with the specified key. |
Db File
[OBSOLETE]: Use "DbFileV2Controller" instead. Files/attachments linked to a broad set of entities (project, jobs, task, article, pdf template, work instruction details, ...) identified by "db_table_id", "id_in_table". For entity-scoped file endpoints see "JobFilesController", "CompanyFilesController", and "TaskFilesController"; see also "DbFileV2Controller", a separate feed over the same table for a narrower set of linked entities. Fully writable through this API.
| API | Description |
|---|---|
| GET api/DbFile/GetFileContent/{id}?maxHeight={maxHeight}&maxWidth={maxWidth} |
[OBSOLETE]: Retrieves the binary content of a file, optionally resized if it's an image. |
| POST api/DbFile/Save |
[OBSOLETE]: Creates or updates a file. |
| GET api/DbFile |
[OBSOLETE]: Retrieves all files (metadata only; use for the binary content), optionally filtered via OData query options. |
| GET api/DbFile(id) |
[OBSOLETE]: Retrieves the file with the specified key. |
| POST api/DbFile |
[OBSOLETE]: Creates a new file. |
| PUT api/DbFile(id) |
[OBSOLETE]: Updates the file with the specified key. |
| DELETE api/DbFile(id) |
[OBSOLETE]: Deletes the file with the specified key. |
Db File Tag
Tags that can be assigned to a file (e.g. "Broken", "Important") via . Read-only through this API.
| API | Description |
|---|---|
| GET api/DbFileTag |
Retrieves all file tags, optionally filtered via OData query options. |
| GET api/DbFileTag(id) |
Retrieves the file tag with the specified key. |
Db File Tag List
Crosstable linking a file (db_file_id) to a file tag (db_file_tag_id). Create/save/delete are supported to assign or remove a tag; Put is disabled since a link either exists or doesn't — there is nothing to update in place.
| API | Description |
|---|---|
| POST api/DbFileTagList/Save |
Creates or updates a file/tag link. |
| GET api/DbFileTagList |
Retrieves all file/tag links, optionally filtered via OData query options. |
| GET api/DbFileTagList(id) |
Retrieves the file/tag link with the specified key. |
| POST api/DbFileTagList |
Creates a new file/tag link. |
Db File V2
Files/attachments linked to other kinds of objects (project, and reports linked to jobs), exposed through a separate db_file OData feed from — narrower in the set of linked entities it covers, using its own per-entity queries rather than a single db_table_id switch. Fully writable through this API.
| API | Description |
|---|---|
| GET api/DbFileV2/GetFileContent/{id}?maxHeight={maxHeight}&maxWidth={maxWidth} |
Retrieves the binary content of a file, optionally resized if it's an image. |
| POST api/DbFileV2/Save |
Creates or updates a file. |
| GET api/DbFileV2 |
Retrieves all files (metadata only; use for the binary content), optionally filtered via OData query options. |
| GET api/DbFileV2(id) |
Retrieves the file with the specified key. |
| POST api/DbFileV2 |
Creates a new file. |
| PUT api/DbFileV2(id) |
Updates the file with the specified key. |
| DELETE api/DbFileV2(id) |
Deletes the file with the specified key. |
Db Functionbis
Function labels ("functionbis"), scoped per sales organization. Read-only through this API.
| API | Description |
|---|---|
| GET api/DbFunctionbis |
Retrieves all functionbis, optionally filtered via OData query options. |
| GET api/DbFunctionbis(id) |
Retrieves the functionbis with the specified key. |
Db Info
Chapters (groupings) of custom info fields — see for the field definitions within a chapter, and the various DbInfoData* controllers (e.g. , ) for the values entered against a specific target entity type. Read-only through this API. See the "Info Fields" help guide for more information.
| API | Description |
|---|---|
| GET api/DbInfo |
Retrieves all info chapters, optionally filtered via OData query options. |
| GET api/DbInfo(id) |
Retrieves the info chapter with the specified key. |
Db Info Category
Categories that group info field chapters (see for the chapter/category links), scoped per sales organization and optionally nested via parent_id. Read-only through this API.
| API | Description |
|---|---|
| GET api/DbInfoCategory |
Retrieves all info categories, optionally filtered via OData query options. |
| GET api/DbInfoCategory(id) |
Retrieves the info category with the specified key. |
Db Info Category List
Crosstable linking an info field chapter (db_info_id, see ) to an info category. Read-only through this API.
| API | Description |
|---|---|
| GET api/DbInfoCategoryList |
Retrieves all info chapter/category links, optionally filtered via OData query options. |
| GET api/DbInfoCategoryList(id) |
Retrieves the info chapter/category link with the specified key. |
Db Info Data Article
Custom info field values () entered against an article (target_id = article id). Fully writable through this API except Delete. Uses a larger default page size (180) than most endpoints.
| API | Description |
|---|---|
| POST api/DbInfoDataArticle/Save |
Creates or updates an article info field value. |
| GET api/DbInfoDataArticle |
Retrieves all article info field values, optionally filtered via OData query options. |
| GET api/DbInfoDataArticle(id) |
Retrieves the article info field value with the specified key. |
| POST api/DbInfoDataArticle |
Creates a new article info field value. |
| PUT api/DbInfoDataArticle(id) |
Updates the article info field value with the specified key. |
Db Info Data Company
Custom info field values () entered against a company (target_id = company id). Fully writable through this API except Delete. Uses a larger default page size (180) than most endpoints.
| API | Description |
|---|---|
| POST api/DbInfoDataCompany/Save |
Creates or updates a company info field value. |
| GET api/DbInfoDataCompany |
Retrieves all company info field values, optionally filtered via OData query options. |
| GET api/DbInfoDataCompany(id) |
Retrieves the company info field value with the specified key. |
| POST api/DbInfoDataCompany |
Creates a new company info field value. |
| PUT api/DbInfoDataCompany(id) |
Updates the company info field value with the specified key. |
Db Info Data Db Report
Custom info field values () entered against a db_report (form) (target_id = db_report id). Fully writable through this API, including Delete (unlike the other DbInfoData* controllers, which forbid Delete). Uses a larger default page size (180) than most endpoints.
| API | Description |
|---|---|
| POST api/DbInfoDataDbReport/Save |
Creates or updates a db_report info field value. |
| POST api/DbInfoDataDbReport/SaveMultiple |
Creates or updates multiple db_report info field values in one call. |
| GET api/DbInfoDataDbReport |
Retrieves all db_report info field values, optionally filtered via OData query options. |
| GET api/DbInfoDataDbReport(id) |
Retrieves the db_report info field value with the specified key. |
| POST api/DbInfoDataDbReport |
Creates a new db_report info field value. |
| PUT api/DbInfoDataDbReport(id) |
Updates the db_report info field value with the specified key. |
| DELETE api/DbInfoDataDbReport(id) |
Deletes the db_report info field value with the specified key. |
Db Info Data Jobs
Custom info field values () entered against a work order (target_id = jobs id). Fully writable through this API except Delete. Uses a larger default page size (180) than most endpoints.
| API | Description |
|---|---|
| POST api/DbInfoDataJobs/Save |
Creates or updates a work order info field value. |
| GET api/DbInfoDataJobs |
Retrieves all work order info field values, optionally filtered via OData query options. |
| GET api/DbInfoDataJobs(id) |
Retrieves the work order info field value with the specified key. |
| POST api/DbInfoDataJobs |
Creates a new work order info field value. |
| PUT api/DbInfoDataJobs(id) |
Updates the work order info field value with the specified key. |
Db Info Data Project
Custom info field values () entered against a project (target_id = project id). Fully writable through this API except Delete. Uses a larger default page size (180) than most endpoints.
| API | Description |
|---|---|
| POST api/DbInfoDataProject/Save |
Creates or updates a project info field value. |
| GET api/DbInfoDataProject |
Retrieves all project info field values, optionally filtered via OData query options. |
| GET api/DbInfoDataProject(id) |
Retrieves the project info field value with the specified key. |
| POST api/DbInfoDataProject |
Creates a new project info field value. |
| PUT api/DbInfoDataProject(id) |
Updates the project info field value with the specified key. |
Db Info Data Task
Custom info field values () entered against a task (target_id = task id). Fully writable through this API except Delete. Uses a larger default page size (180) than most endpoints.
| API | Description |
|---|---|
| POST api/DbInfoDataTask/Save |
Creates or updates a task info field value. |
| GET api/DbInfoDataTask |
Retrieves all task info field values, optionally filtered via OData query options. |
| GET api/DbInfoDataTask(id) |
Retrieves the task info field value with the specified key. |
| POST api/DbInfoDataTask |
Creates a new task info field value. |
| PUT api/DbInfoDataTask(id) |
Updates the task info field value with the specified key. |
Db Info Data User
Custom info field values () entered against a user (target_id = user id). Fully writable through this API except Delete. Uses a larger default page size (180) than most endpoints.
| API | Description |
|---|---|
| POST api/DbInfoDataUser/Save |
Creates or updates a user info field value. |
| GET api/DbInfoDataUser |
Retrieves all user info field values, optionally filtered via OData query options. |
| GET api/DbInfoDataUser(id) |
Retrieves the user info field value with the specified key. |
| POST api/DbInfoDataUser |
Creates a new user info field value. |
| PUT api/DbInfoDataUser(id) |
Updates the user info field value with the specified key. |
Db Info Field
Definitions of the custom info fields within a chapter — input type, label, default value, mandatory/readonly/visible-on-app flags. See for the dropdown/radio/combo options of a field, and the DbInfoData* controllers for the values entered against a target entity. Read-only through this API. See the "Info Fields" help guide for more information.
| API | Description |
|---|---|
| GET api/DbInfoField |
Retrieves all info field definitions, optionally filtered via OData query options. |
| GET api/DbInfoField(id) |
Retrieves the info field definition with the specified key. |
Db Info Field Property
Selectable options (code/value/sequence) for a info field whose input type is a ComboBox, SelectBox, or RadioButton. Read-only through this API. See the "Info Fields" help guide for more information.
| API | Description |
|---|---|
| GET api/DbInfoFieldProperty |
Retrieves all info field properties, optionally filtered via OData query options. |
| GET api/DbInfoFieldProperty(id) |
Retrieves the info field property with the specified key. |
Db Notes
Free-text notes attached to any entity, identified by db_table_id/id_in_table (and optionally a separate source_db_table_id/source_id_in_table for notes copied from another record). Fully writable through this API.
| API | Description |
|---|---|
| POST api/DbNotes/Save |
Creates or updates a note. |
| POST api/DbNotes/SaveMultiple |
Creates or updates multiple notes in one call. |
| GET api/DbNotes |
Retrieves all notes, optionally filtered via OData query options. |
| GET api/DbNotes(id) |
Retrieves the note with the specified key. |
| POST api/DbNotes |
Creates a new note. |
| PUT api/DbNotes(id) |
Updates the note with the specified key. |
| DELETE api/DbNotes(id) |
Deletes the note with the specified key. |
Db Payment Methods
Payment methods (a code, name, description, activated/default flags). Read-only through this API.
| API | Description |
|---|---|
| GET api/DbPaymentMethods |
Retrieves all payment methods, optionally filtered via OData query options. |
| GET api/DbPaymentMethods(id) |
Retrieves the payment method with the specified key. |
Db Report
Reports (based on the InfoField system, see ) used for the work order report and visit report — a header record whose actual field values are held in . Fully writable through this API. See the "Db Report" help guide for more information.
| API | Description |
|---|---|
| POST api/DbReport/Save |
Creates or updates a db report. |
| GET api/DbReport |
Retrieves all db reports, optionally filtered via OData query options. |
| GET api/DbReport(id) |
Retrieves the db report with the specified key. |
| POST api/DbReport |
Creates a new db report. |
| PUT api/DbReport(id) |
Updates the db report with the specified key. |
| DELETE api/DbReport(id) |
Deletes the db report with the specified key. |
Db Report Type
Types of db reports (e.g. work order report, visit report). Read-only through this API.
| API | Description |
|---|---|
| GET api/DbReportType |
Retrieves all db report types, optionally filtered via OData query options. |
| GET api/DbReportType(id) |
Retrieves the db report type with the specified key. |
Db Signature
A signature (binary image, signed date, signature type) captured against any entity, identified by db_table_id/id_in_table. Fully writable through this API.
| API | Description |
|---|---|
| POST api/DbSignature/Save |
Creates or updates a signature. |
| GET api/DbSignature |
Retrieves all signatures, optionally filtered via OData query options. |
| GET api/DbSignature(id) |
Retrieves the signature with the specified key. |
| POST api/DbSignature |
Creates a new signature. |
| PUT api/DbSignature(id) |
Updates the signature with the specified key. |
| DELETE api/DbSignature(id) |
Deletes the signature with the specified key. |
Db Status List
A generic workflow transition (from_status_id → to_status_id) for a named master table (job, task, order, etc., via table_name), with an optional action label and read-only flag. Similar in purpose to , but table-agnostic rather than job-specific. Read-only through this API.
| API | Description |
|---|---|
| GET api/DbStatusList |
Retrieves all status transitions, optionally filtered via OData query options. |
| GET api/DbStatusList(id) |
Retrieves the status transition with the specified key. |
Db Title
Personal titles (e.g. Mr, Mrs, Dr), localized per language. Read-only through this API.
| API | Description |
|---|---|
| GET api/DbTitle |
Retrieves all titles, optionally filtered via OData query options. |
| GET api/DbTitle(id) |
Retrieves the title with the specified key. |
Db Translate
Generic per-language translations of a single column value on any table/row (identified by db_table_id/db_column_id/id_in_table and db_language_id). Read-only through this API. Uses a larger default page size (120) than most endpoints.
| API | Description |
|---|---|
| GET api/DbTranslate |
Retrieves all translations, optionally filtered via OData query options. |
| GET api/DbTranslate(id) |
Retrieves the translation with the specified key. |
Db Unit Of Measure
Units of measure (name, code, measure type, decimal/integer flag), each optionally enabled/disabled. Read-only through this API.
| API | Description |
|---|---|
| GET api/DbUnitOfMeasure |
Retrieves all units of measure, optionally filtered via OData query options. |
| GET api/DbUnitOfMeasure(id) |
Retrieves the unit of measure with the specified key. |
Deleted Items
Tombstones (sys_deleted_items / db_modify) used by clients to learn which records were removed since their last sync. Read-only and list-only: single-item Get, Post, Put, Save and Delete are all disabled.
| API | Description |
|---|---|
| GET api/DeletedItems |
Retrieves deleted-item tombstones, optionally filtered via OData query options (typically by modified_dateutc for incremental sync). Server-driven paging defaults to 200 items per page. |
Device
Device sessions (device table) tracking which physical devices are registered/logged in. Both Get overloads, Post, Put and Delete are disabled — devices are registered via and archived via .
| API | Description |
|---|---|
| POST api/Device/SaveDeviceInfo |
Creates or updates the device session for the current physical device: sets identifying info (device id/name, user, app version, db version) and first-synchronization metrics. |
| POST api/Device/UpdateArchivedDevice |
Sets the archived status of a device, looked up by id or device_id. |
| POST api/Device/GetArchivedStatus |
Retrieves the archived status of a device, looked up by id or device_id. |
| POST api/Device/Save |
No documentation available. |
Email Notification
Email notifications queued by the client for the backend to send out. Create-only: both Get overloads, Put and Delete are disabled — only Post/Save (create) are live.
| API | Description |
|---|---|
| POST api/EmailNotification/Save |
Queues (creates) an email notification to be sent. |
| POST api/EmailNotification |
Queues a new email notification to be sent. |
Equipment Brand
Equipment brands (manufacturers). Read-only through this API.
| API | Description |
|---|---|
| GET api/EquipmentBrand |
Retrieves all equipment brands, optionally filtered via OData query options. |
| GET api/EquipmentBrand(id) |
Retrieves the equipment brand with the specified key. |
Equipment Family
Equipment families (categories of equipment, see which references this to pick applicable work instructions). Read-only through this API.
| API | Description |
|---|---|
| GET api/EquipmentFamily |
Retrieves all equipment families, optionally filtered via OData query options. |
| GET api/EquipmentFamily(id) |
Retrieves the equipment family with the specified key. |
Equipment Family Skill List
Links an equipment family to a required skill. Read-only through this API.
| API | Description |
|---|---|
| GET api/EquipmentFamilySkillList |
Retrieves all equipment family/skill links, optionally filtered via OData query options. |
| GET api/EquipmentFamilySkillList(id) |
Retrieves the equipment family/skill link with the specified key. |
Equipment Model
Equipment models, of a given brand. Read-only through this API.
| API | Description |
|---|---|
| GET api/EquipmentModel |
Retrieves all equipment models, optionally filtered via OData query options. |
| GET api/EquipmentModel(id) |
Retrieves the equipment model with the specified key. |
Error Log
Client-side error reports (error_log / db_log), created by the mobile/desktop apps when they hit an unhandled error. Create-only: both Get overloads, Put, Save and Delete are disabled.
| API | Description |
|---|---|
| POST api/ErrorLog |
Records a new client-side error report. |
Fee List
Fee lists (services): named groupings used to configure the price of invoiceable timesheets (see for the actual price matrix). Read-only through this API.
| API | Description |
|---|---|
| GET api/FeeList |
Retrieves all fee lists, optionally filtered via OData query options. |
| GET api/FeeList(id) |
Retrieves the fee list with the specified key. |
Fee List Price
The price matrix (rules) for invoiceable timesheets within a fee list. Read-only through this API.
| API | Description |
|---|---|
| GET api/FeeListPrice |
Retrieves all fee list prices, optionally filtered via OData query options. |
| GET api/FeeListPrice(id) |
Retrieves the fee list price with the specified key. |
Gps Log
GPS location pings (gps_log) reported by the mobile app. Create-only: both Get overloads, Put, Save and Delete are disabled — records are sent via Post (single) or (batch).
| API | Description |
|---|---|
| POST api/GpsLog/AddMultiple |
Records a batch of GPS pings in a single request. |
| POST api/GpsLog |
Records a single GPS ping. |
Holiday
Public holidays (a name and date). Read-only through this API.
| API | Description |
|---|---|
| GET api/Holiday |
Retrieves all holidays, optionally filtered via OData query options. |
| GET api/Holiday(id) |
Retrieves the holiday with the specified key. |
Hour Type
Hour types, used by / to generate invoiceable timesheets (). Read-only through this API.
| API | Description |
|---|---|
| GET api/HourType |
Retrieves all hour types, optionally filtered via OData query options. |
| GET api/HourType(id) |
Retrieves the hour type with the specified key. |
Job Approval
A daily or full work-order approval (customer/technician sign-off), with its detail lines held in .
| API | Description |
|---|---|
| POST api/JobApproval/Save |
Creates or updates a job approval. |
| POST api/JobApproval/SaveJobApprovalJobApprovalList |
Saves a job approval together with its detail lines in one call: the request body is a JSON array whose first element is the job_approval and whose remaining elements are its job_approval_list entries. |
| GET api/JobApproval |
Retrieves all job approvals, optionally filtered via OData query options. |
| GET api/JobApproval(id) |
Retrieves the job approval with the specified key. |
| POST api/JobApproval |
Creates a new job approval. |
| PUT api/JobApproval(id) |
Updates the job approval with the specified key. |
| DELETE api/JobApproval(id) |
Deletes the job approval with the specified key. |
Job Approval List
Detail lines of a job approval. Listing the whole table is disabled; fetch a specific line by key, or via the parent job_approval (see for combined saves).
| API | Description |
|---|---|
| POST api/JobApprovalList/Save |
Creates or updates a job approval list entry. |
| GET api/JobApprovalList(id) |
Retrieves the job approval list entry with the specified key. |
| POST api/JobApprovalList |
Creates a new job approval list entry. |
| PUT api/JobApprovalList(id) |
Updates the job approval list entry with the specified key. |
Job Contact
A snapshot of contact details (name, phone, mobile, email) captured on a job, independent of the live contact record it may have been copied from. Read-only through this API.
| API | Description |
|---|---|
| GET api/JobContact |
Retrieves all job contacts, optionally filtered via OData query options. |
| GET api/JobContact(id) |
Retrieves the job contact with the specified key. |
Job Dispatch Log
A dispatch (or workshop assignment) of a job to a user: when it was created, whether/when it was accepted or rejected (and why), and the list of assigned users.
| API | Description |
|---|---|
| POST api/JobDispatchLog/Save |
Creates or updates a job dispatch log. |
| GET api/JobDispatchLog/Accept?jobs_id={jobs_id}&user_id={user_id}&date_planned={date_planned}&estimated_time={estimated_time} |
Obsolete. Accepts a dispatched job on behalf of a user. Superseded by , which also accepts a target job status. |
| GET api/JobDispatchLog/AcceptDispatch?jobs_id={jobs_id}&new_job_status_id={new_job_status_id}&user_id={user_id}&date_planned={date_planned}&estimated_time={estimated_time} |
Accepts a dispatched job on behalf of a user and moves the job to the given status. |
| GET api/JobDispatchLog/AcceptWorkshop?jobs_id={jobs_id}&user_id={user_id} |
Accepts a workshop-type dispatch of a job on behalf of a user (is_workshop dispatches, as opposed to field dispatches). |
| GET api/JobDispatchLog/AcceptTechnicalCompletion?jobs_id={jobs_id}&user_id={user_id} |
Accepts a technical-completion dispatch of a job on behalf of a user. |
| GET api/JobDispatchLog |
Retrieves all job dispatch logs, optionally filtered via OData query options. |
| GET api/JobDispatchLog(id) |
Retrieves the job dispatch log with the specified key. |
| POST api/JobDispatchLog |
Creates a new job dispatch log. |
| PUT api/JobDispatchLog(id) |
Updates the job dispatch log with the specified key. |
Job Estimated Quantity
Estimated parts (article + quantity) expected to be used to complete a work order, planned ahead of the actual usage recorded in . Read-only through this API.
| API | Description |
|---|---|
| GET api/JobEstimatedQuantity |
Retrieves all job estimated quantities, optionally filtered via OData query options. |
| GET api/JobEstimatedQuantity(id) |
Retrieves the job estimated quantity with the specified key. |
Job Files
Files/attachments linked to a job. Fully writable through this API.
| API | Description |
|---|---|
| GET api/JobFiles/GetFileContent/{id}?maxHeight={maxHeight}&maxWidth={maxWidth} |
Retrieves the binary content of a job file, optionally resized if it's an image. |
| POST api/JobFiles/Save |
Creates or updates a job file. |
| GET api/JobFiles |
Retrieves all job files (metadata only; use for the binary content), optionally filtered via OData query options. |
| GET api/JobFiles(id) |
Retrieves the job file with the specified key. |
| POST api/JobFiles |
Creates a new job file. |
| PUT api/JobFiles(id) |
Updates the job file with the specified key. |
| DELETE api/JobFiles(id) |
Deletes the job file with the specified key. |
Job Measurement
A measurement session on a job: who collected it, when, whether it came from a device (e.g. a Testo probe, with device name/serial/firmware info) or was entered manually. Individual readings are held in . Fully writable through this API.
| API | Description |
|---|---|
| POST api/JobMeasurement/Save |
Creates or updates a job measurement. |
| GET api/JobMeasurement |
Retrieves all job measurements, optionally filtered via OData query options. |
| GET api/JobMeasurement(id) |
Retrieves the job measurement with the specified key. |
| POST api/JobMeasurement |
Creates a new job measurement. |
| PUT api/JobMeasurement(id) |
Updates the job measurement with the specified key. |
| DELETE api/JobMeasurement(id) |
Deletes the job measurement with the specified key. |
Job Measurement Details
A single reading (code, name, unit, measured value) within a job measurement session. Fully writable through this API.
| API | Description |
|---|---|
| POST api/JobMeasurementDetails/Save |
Creates or updates a job measurement detail. |
| GET api/JobMeasurementDetails |
Retrieves all job measurement details, optionally filtered via OData query options. |
| GET api/JobMeasurementDetails(id) |
Retrieves the job measurement detail with the specified key. |
| POST api/JobMeasurementDetails |
Creates a new job measurement detail. |
| PUT api/JobMeasurementDetails(id) |
Updates the job measurement detail with the specified key. |
| DELETE api/JobMeasurementDetails(id) |
Deletes the job measurement detail with the specified key. |
Job Non Part Usage
Invoiceable timesheets and car travels for a work order — non-part costs, as opposed to the parts usage tracked by . Fully writable through this API.
| API | Description |
|---|---|
| POST api/JobNonPartUsage/Save |
Creates or updates a job non-part usage record. |
| POST api/JobNonPartUsage/SaveMultiple |
Save multiple job_non_part_usage records. This endpoint accepts a JSON array of job_non_part_usage objects, validates each record, applies default values, and saves them using the repository. The operation is executed through BatchSaveHelper and processed within a transaction. Each record returns its own ResponseResult indicating success or failure. |
| GET api/JobNonPartUsage |
Retrieves all job non-part usage records, optionally filtered via OData query options. |
| GET api/JobNonPartUsage(id) |
Retrieves the job non-part usage record with the specified key. |
| POST api/JobNonPartUsage |
Creates a new job non-part usage record. |
| PUT api/JobNonPartUsage(id) |
Updates the job non-part usage record with the specified key. |
| DELETE api/JobNonPartUsage(id) |
Deletes the job non-part usage record with the specified key. |
Job Part Usage
Parts (articles/materials) actually used to complete a work order — the counterpart of the planned quantities in . Fully writable through this API.
| API | Description |
|---|---|
| POST api/JobPartUsage/Save |
Creates or updates a job part usage record. |
| POST api/JobPartUsage/SaveMultiple |
Save multiple job_part_usage records in a single batch request. This API is used by the Synchronization module to send multiple records in one request instead of sending each record individually, which: 1. Reduces the number of HTTP requests. 2. Improves performance and efficiency. The batch processing logic (deserialize, validation, transaction handling, saving, and logging) is handled by BatchSaveHelper. Each record will return its own ResponseResult indicating success or failure. |
| GET api/JobPartUsage |
Retrieves all used parts, optionally filtered via OData query options. |
| GET api/JobPartUsage(id) |
Retrieves the used part with the specified key. |
| POST api/JobPartUsage |
Creates a new job part usage record. |
| PUT api/JobPartUsage(id) |
Updates the used part with the specified key. |
| DELETE api/JobPartUsage(id) |
Deletes the used part with the specified key. |
Job Planning
A scheduled time slot (date range, user, travel time) for a job, and the resulting job status once the slot starts or the field technician accepts/rejects it (see ).
| API | Description |
|---|---|
| POST api/JobPlanning/Save |
Creates or updates a job planning. |
| GET api/JobPlanning/FieldAccept?accept={accept}&job_planning_id={job_planning_id} |
Records the field technician's accept/reject decision on a job planning (a response to the field_accept_date_max_timeout window). |
| GET api/JobPlanning |
Retrieves all job plannings, optionally filtered via OData query options. |
| GET api/JobPlanning(id) |
Retrieves the job planning with the specified key. |
| POST api/JobPlanning |
Creates a new job planning. |
| PUT api/JobPlanning(id) |
Updates the job planning with the specified key. |
Job Priority
Priorities (e.g. High, Critical, Low) used to describe work orders. Read-only through this API.
| API | Description |
|---|---|
| GET api/JobPriority |
Retrieves all job priorities, optionally filtered via OData query options. |
| GET api/JobPriority(id) |
Retrieves the job priority with the specified key. |
Jobs
Work orders, the main object of the API. See for scheduling, for dispatch/acceptance, for status, and for a combined batch-save endpoint.
| API | Description |
|---|---|
| POST api/Jobs/Save |
Creates or updates a work order. |
| POST api/Jobs/SaveJob |
Save Job endpoint that supports **batch processing** of Job-related data. |
| GET api/Jobs/PlanAgainFromTask?task_id={task_id}&task_status_id={task_status_id}&job_status_id={job_status_id} |
Creates a new work order re-planned from a task (used when a task needs a follow-up work order), moving the originating task to the given task status and the new work order to the given job status. |
| GET api/Jobs/PlanAgainWO?job_id={job_id}&job_status_id={job_status_id} |
Creates a new follow-up work order re-planned from an existing work order, moving the new work order to the given job status. |
| POST api/Jobs/GetControllerDataStatus |
For each entry in the posted list of (controller name, last-known modified_dateutc), checks whether that controller has newer data for the given job, so a sync client can decide which controllers to re-fetch. Controller names not recognized in the internal switch are reported as status_is_unknown and treated as available. Bounded by the request timeout: any entries not checked before the internal cancellation deadline are returned with data_available = false. |
| GET api/Jobs |
Retrieves all work orders, optionally filtered via OData query options. |
| GET api/Jobs(id) |
Retrieves the work order with the specified key. |
| POST api/Jobs |
Creates a new work order. |
| PUT api/Jobs(id) |
Updates the work order with the specified key. |
Job Status
Work order statuses (e.g. Planned, In Progress, Completed), with a display sequence/color and an optional link to a system status. Read-only through this API. See for the allowed status-to-status transitions.
| API | Description |
|---|---|
| GET api/JobStatus |
Retrieves all job statuses, optionally filtered via OData query options. |
| GET api/JobStatus(id) |
Retrieves the job status with the specified key. |
Job Status List
Allowed workflow transitions between two job statuses (from → to). Read-only through this API.
| API | Description |
|---|---|
| GET api/JobStatusList |
Retrieves all job status transitions, optionally filtered via OData query options. |
| GET api/JobStatusList(id) |
Retrieves the job status transition with the specified key. |
Job Type
Work order types (e.g. Maintenance, Intervention, Inspection). Read-only through this API. See for the skills required per type.
| API | Description |
|---|---|
| GET api/JobType |
Retrieves all work order types, optionally filtered via OData query options. |
| GET api/JobType(id) |
Retrieves the work order type with the specified key. |
Job Type Skill List
Links a job type to a required skill. Read-only through this API.
| API | Description |
|---|---|
| GET api/JobTypeSkillList |
Retrieves all job type/skill links, optionally filtered via OData query options. |
| GET api/JobTypeSkillList(id) |
Retrieves the job type/skill link with the specified key. |
Job Work Instruction
Assigns a work_instruction (for a given equipment family) to a job, with an estimated work time and sequence. Detail progress is tracked in and .
| API | Description |
|---|---|
| POST api/JobWorkInstruction/Save |
Creates or updates a job work instruction. |
| GET api/JobWorkInstruction |
Retrieves all job work instructions, optionally filtered via OData query options. |
| GET api/JobWorkInstruction(id) |
Retrieves the job work instruction with the specified key. |
| POST api/JobWorkInstruction |
Creates a new job work instruction. |
| DELETE api/JobWorkInstruction(id) |
Deletes the job work instruction with the specified key. |
Job Work Instruction Details
Detail steps (description, sequence, action type, grouping) that make up a job work instruction. Fully writable through this API.
| API | Description |
|---|---|
| POST api/JobWorkInstructionDetails/AddUpdateMultiple |
Obsolete. Creates/updates multiple job work instruction details in one call. Superseded by . |
| POST api/JobWorkInstructionDetails/SaveMultiple |
Creates or updates multiple job work instruction details in one call. |
| POST api/JobWorkInstructionDetails/Save |
No documentation available. |
| GET api/JobWorkInstructionDetails |
Retrieves all job work instruction details, optionally filtered via OData query options. |
| GET api/JobWorkInstructionDetails(id) |
Retrieves the job work instruction detail with the specified key. |
| POST api/JobWorkInstructionDetails |
Creates a new job work instruction detail. |
| PUT api/JobWorkInstructionDetails(id) |
Updates the job work instruction detail with the specified key. |
| DELETE api/JobWorkInstructionDetails(id) |
Deletes the job work instruction detail with the specified key. |
Job Work Instruction List
A single checklist line (result: Ok/NotOk/Replaced/NotApplicable, remark, advice, sequence) executed against a job work instruction detail. Fully writable through this API.
| API | Description |
|---|---|
| POST api/JobWorkInstructionList/AddMultiple |
Obsolete. Creates multiple job work instruction checklist lines in one call. Superseded by . |
| POST api/JobWorkInstructionList/SaveMultiple |
Creates or updates multiple job work instruction checklist lines in one call. |
| POST api/JobWorkInstructionList/Save |
No documentation available. |
| GET api/JobWorkInstructionList |
Retrieves all job work instruction checklist lines, optionally filtered via OData query options. |
| GET api/JobWorkInstructionList(id) |
Retrieves the job work instruction checklist line with the specified key. |
| POST api/JobWorkInstructionList |
Creates a new job work instruction checklist line. |
| PUT api/JobWorkInstructionList(id) |
Updates the job work instruction checklist line with the specified key. |
| DELETE api/JobWorkInstructionList(id) |
Deletes the job work instruction checklist line with the specified key. |
Language
Languages (db_language), a reference table used by company, contact and user records, keyed by ISO 639-1 code. Read-only: Post, Put, Save and Delete are all disabled.
| API | Description |
|---|---|
| GET api/Language |
Retrieves all languages, optionally filtered via OData query options. |
| GET api/Language(id) |
Retrieves the language with the specified key. |
Licence Group
Licence groups, defining a set of enabled rights (see for the per-right settings, and for what's actually enabled for the current user). Read-only through this API.
| API | Description |
|---|---|
| GET api/LicenceGroup |
Retrieves all licence groups, optionally filtered via OData query options. |
| GET api/LicenceGroup(id) |
Retrieves the licence group with the specified key. |
Licence Group User Right List
Which rights are enabled for a licence group — the configuration that determines what reports as enabled for a given user. Read-only through this API.
| API | Description |
|---|---|
| GET api/LicenceGroupUserRightList |
Retrieves all licence group rights, optionally filtered via OData query options. |
| GET api/LicenceGroupUserRightList(id) |
Retrieves the licence group right with the specified key. |
Marketing Segment
Marketing segments (marketing_segment), a reference table used to categorize companies/contacts. Read-only: Post, Put, Save and Delete are all disabled.
| API | Description |
|---|---|
| GET api/MarketingSegment |
Retrieves all marketing segments, optionally filtered via OData query options. |
| GET api/MarketingSegment(id) |
Retrieves the marketing segment with the specified key. |
Measurement Type
Measurement types (code, name, unit code/name) available for a job measurement detail. Read-only through this API.
| API | Description |
|---|---|
| GET api/MeasurementType |
Retrieves all measurement types, optionally filtered via OData query options. |
| GET api/MeasurementType(id) |
Retrieves the measurement type with the specified key. |
Meeting
A meeting (subject, description, start/end date, linked online meeting and company) of a given meeting type. Fully writable through this API except Delete.
| API | Description |
|---|---|
| POST api/Meeting/Save |
No documentation available. |
| GET api/Meeting |
Retrieves all meetings, optionally filtered via OData query options. |
| GET api/Meeting(id) |
Retrieves the meeting with the specified key. |
| POST api/Meeting |
Creates a new meeting. |
| PUT api/Meeting(id) |
Updates the meeting with the specified key. |
Meeting Type
Types of meetings. Read-only through this API, and only listable — fetching a single entry by key is disabled.
| API | Description |
|---|---|
| GET api/MeetingType |
Retrieves all meeting types, optionally filtered via OData query options. |
Pdf Template
PDF templates (pdf_template) used to render job/task/project documents. Read-only: Post, Put, Save and Delete are all disabled.
| API | Description |
|---|---|
| GET api/PdfTemplate |
Retrieves all PDF templates, optionally filtered via OData query options. |
| GET api/PdfTemplate(id) |
Retrieves the PDF template with the specified key. |
Project
Projects (equipment installations). Fully writable through this API except Delete; see for the check normally done before closing one.
| API | Description |
|---|---|
| POST api/Project/Save |
Creates or updates a project. |
| GET api/Project/HasActiveJobs/{id} |
Checks whether a project has active (unfinished) jobs, used to warn before closing a project (FSA-2796). |
| GET api/Project |
Retrieves all projects, optionally filtered via OData query options. |
| GET api/Project(id) |
Retrieves the project with the specified key. |
| POST api/Project |
Creates a new project. |
| PUT api/Project(id) |
Updates the project with the specified key. |
Project Bill Of Material
Bill of material (BOM) lines of a project (article + quantity). Read-only through this API.
| API | Description |
|---|---|
| GET api/ProjectBillOfMaterial |
Retrieves all BOM lines, optionally filtered via OData query options. |
| GET api/ProjectBillOfMaterial(id) |
Retrieves the BOM line with the specified key. |
Project Contact
Links a contact to a project. Fully writable through this API.
| API | Description |
|---|---|
| POST api/ProjectContact/Save |
Creates or updates a project contact. |
| GET api/ProjectContact |
Retrieves all project contacts, optionally filtered via OData query options. |
| GET api/ProjectContact(id) |
Retrieves the project contact with the specified key. |
| POST api/ProjectContact |
Creates a new project contact. |
| PUT api/ProjectContact(id) |
Updates the project contact with the specified key. |
| DELETE api/ProjectContact(id) |
Deletes the project contact with the specified key. |
Project Status
Project statuses (e.g. Set up, In production, Out of order). Read-only through this API.
| API | Description |
|---|---|
| GET api/ProjectStatus |
Retrieves all project statuses, optionally filtered via OData query options. |
| GET api/ProjectStatus(id) |
Retrieves the project status with the specified key. |
Purchase Order
Purchase order header for articles ordered against work orders (see for the order lines). Read-only through this API.
| API | Description |
|---|---|
| GET api/PurchaseOrder |
Retrieves all purchase orders, optionally filtered via OData query options. |
| GET api/PurchaseOrder(id) |
Retrieves the purchase order with the specified key. |
Purchase Order Details
Order lines of a purchase order. Read-only through this API.
| API | Description |
|---|---|
| GET api/PurchaseOrderDetails |
Retrieves all purchase order lines, optionally filtered via OData query options. |
| GET api/PurchaseOrderDetails(id) |
Retrieves the purchase order line with the specified key. |
Recurrence
Recurrence rules (e.g. for repeating jobs/tasks). Fully writable through this API.
| API | Description |
|---|---|
| POST api/Recurrence/Save |
Creates or updates a recurrence rule. |
| GET api/Recurrence |
Retrieves all recurrence rules, optionally filtered via OData query options. |
| GET api/Recurrence(id) |
Retrieves the recurrence rule with the specified key. |
Sales Organization
Sales/service organizations — the top-level tenant unit that most other reference data (company types, info fields, article groups, etc.) is scoped to via a sales_organization_id. Read-only through this API.
| API | Description |
|---|---|
| GET api/SalesOrganization |
Retrieves all sales organizations, optionally filtered via OData query options. |
| GET api/SalesOrganization(id) |
Retrieves the sales organization with the specified key. |
Sales Territory
Sales territories, used to scope which companies/users a user can see (a company's main territory is company.sales_territory_id; see also and for additional territory links). Read-only through this API.
| API | Description |
|---|---|
| GET api/SalesTerritory |
Retrieves all sales territories, optionally filtered via OData query options. |
| GET api/SalesTerritory(id) |
Retrieves the sales territory with the specified key. |
Service Model
A service model: attaches an SLA and job type to a contract, for a given service model type. Linked to projects via . Read-only through this API.
| API | Description |
|---|---|
| GET api/ServiceModel |
Retrieves all service models, optionally filtered via OData query options. |
| GET api/ServiceModel(id) |
Retrieves the service model with the specified key. |
Service Model Project List
Links a service model to a project, with an estimated work time and archive tracking. Read-only through this API.
| API | Description |
|---|---|
| GET api/ServiceModelProjectList |
Retrieves all service model/project links, optionally filtered via OData query options. |
| GET api/ServiceModelProjectList(id) |
Retrieves the service model/project link with the specified key. |
Service Model Sla
Service level agreements (SLA): contact/arrival/resolution time targets and coverage type (business hours, working days, or every day), assigned to a service model. Read-only through this API.
| API | Description |
|---|---|
| GET api/ServiceModelSla |
Retrieves all SLAs, optionally filtered via OData query options. |
| GET api/ServiceModelSla(id) |
Retrieves the SLA with the specified key. |
Settings
Application settings (settings), key/value-style configuration entries. Fully writable except Delete, which is disabled. Server-driven paging defaults to 120 items per page.
| API | Description |
|---|---|
| POST api/Settings/GetSettingByCode |
Retrieves the setting with the specified code. |
| POST api/Settings/Save |
Creates or updates a setting. |
| GET api/Settings |
Retrieves all settings, optionally filtered via OData query options. |
| GET api/Settings(id) |
Retrieves the setting with the specified key. |
| POST api/Settings |
Creates a new setting. |
| PUT api/Settings(id) |
Updates the setting with the specified key. |
Skill
Skills, which can be required to perform a work order (see , , ). Users can have 0 to N skills, via . Read-only through this API.
| API | Description |
|---|---|
| GET api/Skill |
Retrieves all skills, optionally filtered via OData query options. |
| GET api/Skill(id) |
Retrieves the skill with the specified key. |
Stat Cockpit
Cockpit statistics (stat_cockpit) synced to offline for dashboard display. List-only: single-item Get, Post, Put, Save and Delete are all disabled. Supersedes the obsolete SystemController.GetAllModifiedStatCockpit action.
| API | Description |
|---|---|
| GET api/StatCockpit |
Retrieves all stat_cockpit entries, optionally filtered via OData query options. |
| GET api/StatCockpit(id) |
Disabled. Stat_cockpit entries are only exposed as a list, never fetched individually by key. |
Sync Log
Detailed per-request sync log entries, submitted by clients to help diagnose synchronization issues. This endpoint is write-only: both Get overloads and Put/Delete are disabled — only Post/Save are live. See also , which accepts an aggregated end-of-sync summary and maps it into a row here.
| API | Description |
|---|---|
| POST api/SyncLog |
Creates a new sync log entry. |
Sync Logs
Accepts an aggregated end-of-sync-session summary from a client (average/max API response time, total processed records, timeouts, etc.) and stores it as a single sync log entry. This controller does not override the base CRUD actions (only is added).
| API | Description |
|---|---|
| POST api/SyncLogs/AddSyncLogs |
Accepts an aggregated sync session summary (see ) and saves it as a row, marked as completed. |
| POST api/SyncLogs/Save |
No documentation available. |
| GET api/SyncLogs |
No documentation available. |
| GET api/SyncLogs(id) |
No documentation available. |
| POST api/SyncLogs |
No documentation available. |
| PUT api/SyncLogs(id) |
No documentation available. |
| DELETE api/SyncLogs(id) |
No documentation available. |
Sys Debugdata
Diagnostic query bundles (sys_debugdata / sys_debugdata_query / sys_debugdata_result) that a device runs and reports back, used to help debug data issues on a specific installation. Supersedes the equivalent obsolete actions on .
| API | Description |
|---|---|
| GET api/SysDebugdata/GetSysDebugdataUncompleted?device_id={device_id} |
Retrieves the debug-data bundles not yet completed for the given device. |
| GET api/SysDebugdata/GetSysDebugdataCompleted?device_id={device_id} |
Retrieves the debug-data bundles already completed for the given device. |
| POST api/SysDebugdata/SetSysDebugDataCompleted |
Marks a debug-data bundle as completed. |
| GET api/SysDebugdata/GetQueries?sys_debugdata_id={sys_debugdata_id} |
Retrieves the diagnostic queries belonging to a debug-data bundle. |
| POST api/SysDebugdata/SetQueryCompleted |
Marks a single diagnostic query as completed. |
| GET api/SysDebugdata/GetResults?sys_debugdata_query_id={sys_debugdata_query_id}&modified_dateutc={modified_dateutc}&top={top} |
Retrieves the results collected for a diagnostic query, modified since the given date. |
| POST api/SysDebugdata/AddResult |
Records a single result for a diagnostic query. |
| POST api/SysDebugdata/AddResultsMultiple |
Records a batch of diagnostic query results in a single request. |
System
Cross-cutting system endpoints: login/account/OTP flows, sync-status checks across all synced tables, and demo/user-position helpers. Several actions here are [Obsolete] and kept only for backward compatibility with older clients — new clients should use the dedicated controller named in each action's summary (e.g. , , ).
| API | Description |
|---|---|
| POST api/System/GetControllerDataStatus |
Checks, for a batch of synced tables, whether new data is available since the client's last sync. Requests are processed concurrently (4 at a time) and the whole call is bounded by the request timeout so it can return partial results rather than fail outright; unrecognized controller names are reported as status_is_unknown and treated as "data available" to be safe. |
| GET api/System/GetUserPosition |
Retrieves the user positions (last known locations) for all users in the caller's sales organization. |
| GET api/System/GetUserInfo?email={email}&password={password} |
Retrieves user info for the given credentials. Runs before login, so no authorization is required. |
| POST api/System/ValidateUser |
Checks whether the current user is allowed to use the application. |
| POST api/System/ValidateDB |
Checks whether the current user's database/implementation has been archived. Kept as a thin wrapper over for backward compatibility: its bare boolean contract is unchanged, including the case where the OCC lookup is inconclusive (reported as "not archived", as before) or the domain is in maintenance. See FSA-6007. An inconclusive OCC lookup is written to the error log where that is still possible, so the bare boolean does not hide the problem from monitoring entirely. Best effort only: the log itself lives in the customer database and is reached through OCC, so an outcome caused by either of those being unreachable leaves no trace. See FSA-6011. |
| POST api/System/GetDomainStatus |
Reports the archived/active status of the caller's OCC-linked domain, disambiguating outcomes that the legacy bare boolean of cannot: a genuinely archived domain, an email with no OCC link at all, and an OCC lookup that could not be completed. See FSA-6007. |
| POST api/System/UserInfoJson |
Login endpoint: validates the given credentials (and, when supplied, the calling physical device) and returns the full user info payload used by the client to complete login. Runs before login, so no authorization is required. Errors are logged against the attempted user email. |
| POST api/System/UsersInfoJson |
Login endpoint for the "log as" / multi-account flow: validates the given credentials and returns info for every user account matching them. Runs before login, so no authorization is required. |
| POST api/System/LogUserLogAs |
Logs which user was selected as the target of a "log as" action, for audit purposes. |
| POST api/System/RequestDemo |
Logs a demo request submitted from the marketing site, capturing the requester's IP and the calling app's version. |
| GET api/System/GetSysDebugData |
Obsolete. Retrieves uncompleted debug-data bundles for the current device. |
| GET api/System/GetSysDebugDataCompleted?device_id={device_id} |
Obsolete. Retrieves completed debug-data bundles for the given device. |
| GET api/System/GetSysDebugDataQuery?sys_debugdata_id={sys_debugdata_id} |
Obsolete. Retrieves the diagnostic queries belonging to a debug-data bundle. |
| GET api/System/GetSysDebugDataResult?sysDebugDataQueryID={sysDebugDataQueryID}&modifiedDate={modifiedDate}&top={top} |
Obsolete. Retrieves the results collected for a diagnostic query, modified since the given date. |
| POST api/System/SaveSysDebugResult |
Obsolete. Records a single result for a diagnostic query. |
| POST api/System/SaveSysDebugData |
Obsolete. Marks a debug-data bundle as completed. |
| POST api/System/UpdateSysDebugQueryCompleted |
Obsolete. Marks a single diagnostic query as completed. |
| POST api/System/ActiveNewAccount |
Activates a new account by setting its password, without requiring the superadmin password. |
| GET api/System/CheckEmailExists?email={email} |
Pre-login check: verifies the email is known and linked to a non-archived implementation. Route: GET api/System/CheckEmailExists?email={email} No authorization required - this runs before the user logs in. Returns status code only: 200 (exists), 404 (not found / archived implementation), 500 (unexpected error). |
| POST api/System/SendOneTimePasswordForLogin |
Sends a one-time password (OTP) to the given email, for use as an alternative login method. |
| POST api/System/ValidateOneTimePasswordForLogin |
Validates a one-time password (OTP) previously sent for login. |
| GET api/System/GetAllModifiedStatCockpit?modifiedDate={modifiedDate}&top={top} |
Obsolete. Retrieves stat_cockpit entries modified since the given date. |
| POST api/System/GetApplicationVersionInfo |
Obsolete. Retrieves the application_version row matching the given version and platform. |
| POST api/System/GetLatestApplicationVersion |
Obsolete. Retrieves the latest application_version row for the given platform. |
| POST api/System/AddUpdateApplicationVersion |
Obsolete. Adds a new application_version row, or edits an existing one, depending on the method field. |
| POST api/System/CheckIfExistence |
Checks whether a row with the given key exists in the specified table. |
Task
Tasks, used for Sales and Services. Fully writable through this API except Delete.
| API | Description |
|---|---|
| POST api/Task/Save |
Creates or updates a task. |
| GET api/Task |
Retrieves all tasks, optionally filtered via OData query options. |
| GET api/Task(id) |
Retrieves the task with the specified key. |
| POST api/Task |
Creates a new task. |
| PUT api/Task(id) |
Updates the task with the specified key. |
Task Activity
Task activities (the kind of activity performed on a task), used for Sales and Services. See for the actual log entries. Read-only through this API.
| API | Description |
|---|---|
| GET api/TaskActivity |
Retrieves all task activities, optionally filtered via OData query options. |
| GET api/TaskActivity(id) |
Retrieves the task activity with the specified key. |
Task Activity Log
Log entries recording activity (of a given task activity type) performed on a task, used for Sales and Services. Fully writable through this API except Delete.
| API | Description |
|---|---|
| POST api/TaskActivityLog/Save |
Creates or updates a task activity log entry. |
| GET api/TaskActivityLog |
Retrieves all task activity log entries, optionally filtered via OData query options. |
| GET api/TaskActivityLog(id) |
Retrieves the task activity log entry with the specified key. |
| POST api/TaskActivityLog |
Creates a new task activity log entry. |
| PUT api/TaskActivityLog(id) |
Updates the task activity log entry with the specified key. |
Task Files
Files/attachments linked to a task. Fully writable through this API.
| API | Description |
|---|---|
| GET api/TaskFiles/GetFileContent/{id}?maxHeight={maxHeight}&maxWidth={maxWidth} |
Retrieves the binary content of a task file, optionally resized if it's an image. |
| POST api/TaskFiles/Save |
Creates or updates a task file. |
| GET api/TaskFiles |
Retrieves all task files (metadata only; use for the binary content), optionally filtered via OData query options. |
| GET api/TaskFiles(id) |
Retrieves the task file with the specified key. |
| POST api/TaskFiles |
Creates a new task file. |
| PUT api/TaskFiles(id) |
Updates the task file with the specified key. |
| DELETE api/TaskFiles(id) |
Deletes the task file with the specified key. |
Task Priority
Task priorities (e.g. Low, Medium, High, Urgent). Read-only through this API.
| API | Description |
|---|---|
| GET api/TaskPriority |
Retrieves all task priorities, optionally filtered via OData query options. |
| GET api/TaskPriority(id) |
Retrieves the task priority with the specified key. |
Task Status
Task statuses (e.g. In Progress, Closed). Read-only through this API.
| API | Description |
|---|---|
| GET api/TaskStatus |
Retrieves all task statuses, optionally filtered via OData query options. |
| GET api/TaskStatus(id) |
Retrieves the task status with the specified key. |
Task Type
Task types (e.g. Call, Prepare Document). Read-only through this API.
| API | Description |
|---|---|
| GET api/TaskType |
Retrieves all task types, optionally filtered via OData query options. |
| GET api/TaskType(id) |
Retrieves the task type with the specified key. |
Text
Single entry point for rewriting free text (e.g. technician job notes) without the client app calling any AI service directly. Has no backing table — all inherited CRUD verbs are disabled and is the only supported action. The rewrite itself is backed by Claude via (FSA-6025), using the prompt templates in (FSA-6026).
| API | Description |
|---|---|
| POST api/Text/Rewrite |
Rewrites free text into a chosen tone/length. Technician identity comes from the authenticated request (user_id header handled by /), not from the request body. |
Usage Tracking
Client feature-usage events (usage_tracking), reported by the mobile/desktop apps for analytics. Create-only: both Get overloads, Post, Put, Save and Delete are disabled — records are sent in bulk via .
| API | Description |
|---|---|
| POST api/UsageTracking/AddMultiple |
Inserts a batch of usage-tracking events in a single request. The company domain is resolved from the request's Authorization header rather than the request body. |
User
Users of the application. Users are provisioned elsewhere (not created through this API): Post, Save, and Delete are disabled, but Put allows updating an existing user's mutable fields.
| API | Description |
|---|---|
| GET api/User |
Retrieves all users, optionally filtered via OData query options. |
| GET api/User(id) |
Retrieves the user with the specified key. |
| PUT api/User(id) |
Updates the user with the specified key. |
User Group
User groups, used to organize users (e.g. for permission/right assignment via ). Read-only through this API.
| API | Description |
|---|---|
| GET api/UserGroup |
Retrieves all user groups, optionally filtered via OData query options. |
| GET api/UserGroup(id) |
Retrieves the user group with the specified key. |
User Planning Slot
A recurring or one-off availability slot for a user (e.g. a working-hours window), of a given slot type. Read-only through this API.
| API | Description |
|---|---|
| GET api/UserPlanningSlot |
Retrieves all user planning slots, optionally filtered via OData query options. |
| GET api/UserPlanningSlot(id) |
Retrieves the user planning slot with the specified key. |
User Planning Slot Type
Types of user planning slots (e.g. working hours, on-call). Read-only through this API.
| API | Description |
|---|---|
| GET api/UserPlanningSlotType |
Retrieves all user planning slot types, optionally filtered via OData query options. |
| GET api/UserPlanningSlotType(id) |
Retrieves the user planning slot type with the specified key. |
User Right List
Which rights are enabled for the current user's licence (see for the rights configured per licence group). Read-only through this API, and only listable — fetching a single entry by key is disabled; use to enable/disable a right.
| API | Description |
|---|---|
| POST api/UserRightList/SaveUserRightList |
Enables or disables a user right. |
| GET api/UserRightList |
Retrieves all user rights, optionally filtered via OData query options. |
| GET api/UserRightList(id) |
Disabled. Fetching a single user right by key is not supported through this endpoint; use the list endpoint with an OData filter instead. |
User Sales Organization List
Links a user to an additional sales organization, beyond their main one. Read-only through this API.
| API | Description |
|---|---|
| GET api/UserSalesOrganizationList |
Retrieves all user/sales-organization links, optionally filtered via OData query options. |
| GET api/UserSalesOrganizationList(id) |
Retrieves the user/sales-organization link with the specified key. |
User Sales Territory List
Links a user to an additional sales territory, beyond their main one (see also for the equivalent on companies). Read-only through this API.
| API | Description |
|---|---|
| GET api/UserSalesTerritoryList |
Retrieves all user/sales-territory links, optionally filtered via OData query options. |
| GET api/UserSalesTerritoryList(id) |
Retrieves the user/sales-territory link with the specified key. |
User Skill List
Links a user to a skill (see for the skills required per job type). Read-only through this API.
| API | Description |
|---|---|
| GET api/UserSkillList |
Retrieves all user/skill links, optionally filtered via OData query options. |
| GET api/UserSkillList(id) |
Retrieves the user/skill link with the specified key. |
User Team
Teams that a user belongs to, used to group users for planning/reporting. Read-only through this API.
| API | Description |
|---|---|
| GET api/UserTeam |
Retrieves all user teams, optionally filtered via OData query options. |
| GET api/UserTeam(id) |
Retrieves the user team with the specified key. |
User Timesheet
[OBSOLETE]: Use "UserTimesheetV2Controller" instead. A user's timesheet entry (worked time on a job/task). Post and Save are live but Put and Delete are disabled — updates and removals must go through Save. See UserTimesheetV2Controller for a fully writable version of this endpoint that also adds a SaveMultiple batch endpoint.
| API | Description |
|---|---|
| POST api/UserTimesheet/Save |
[OBSOLETE]: Creates or updates a user timesheet. |
| GET api/UserTimesheet |
[OBSOLETE]: Retrieves all user timesheets, optionally filtered via OData query options. |
| GET api/UserTimesheet(id) |
[OBSOLETE]: Retrieves the user timesheet with the specified key. |
| POST api/UserTimesheet |
[OBSOLETE]: Creates a new user timesheet. |
User Timesheet V2
A user's timesheet entry (worked time on a job/task), exposed through a separate UserTimesheetV2 OData feed from over the same underlying table. Unlike the V1 endpoint, Put and Delete are not disabled here — this version is fully writable, and also adds for batch saves.
| API | Description |
|---|---|
| POST api/UserTimesheetV2/Save |
Creates or updates a user timesheet. |
| POST api/UserTimesheetV2/SaveMultiple |
Creates or updates multiple user timesheets in a single batch request. This API is used by the Synchronization module to send multiple records in one request instead of sending each record individually, which: 1. Reduces the number of HTTP requests. 2. Improves performance and efficiency. The batch processing logic (deserialize, validation, transaction handling, saving, and logging) is handled by BatchSaveHelper. Each record will return its own ResponseResult indicating success or failure. |
| GET api/UserTimesheetV2 |
Retrieves all user timesheets, optionally filtered via OData query options. |
| GET api/UserTimesheetV2(id) |
Retrieves the user timesheet with the specified key. |
| POST api/UserTimesheetV2 |
Creates a new user timesheet. |
| PUT api/UserTimesheetV2(id) |
Updates the user timesheet with the specified key. |
| DELETE api/UserTimesheetV2(id) |
Deletes the user timesheet with the specified key. |
User Unavailability
User unavailability periods (illness, holidays, etc.), of a given unavailability type. Fully writable through this API — Post/Put/Delete are hidden from the /Help page (ApiExplorerSettings(IgnoreApi = true)) but are not disabled; they perform real writes, same as Save.
| API | Description |
|---|---|
| POST api/UserUnavailability/Save |
Creates or updates a user unavailability period. |
| GET api/UserUnavailability |
Retrieves all user unavailability periods, optionally filtered via OData query options. |
| GET api/UserUnavailability(id) |
Retrieves the user unavailability period with the specified key. |
User Unavailability Type
Types of user unavailability periods (e.g. illness, holiday). Read-only through this API.
| API | Description |
|---|---|
| GET api/UserUnavailabilityType |
Retrieves all unavailability types, optionally filtered via OData query options. |
| GET api/UserUnavailabilityType(id) |
Retrieves the unavailability type with the specified key. |
Work Instruction
Reusable work instruction templates (checklists), of a given type, assigned to jobs via (which references this by work_instruction_id). Read-only through this API.
| API | Description |
|---|---|
| GET api/WorkInstruction |
Retrieves all work instructions, optionally filtered via OData query options. |
| GET api/WorkInstruction(id) |
Retrieves the work instruction with the specified key. |
Work Instruction Action Type
Types of action a work instruction checklist line can result in (e.g. repair, change) — see , whose work_instruction_action_type_id references this. Read-only through this API.
| API | Description |
|---|---|
| GET api/WorkInstructionActionType |
Retrieves all work instruction action types, optionally filtered via OData query options. |
| GET api/WorkInstructionActionType(id) |
Retrieves the work instruction action type with the specified key. |
Work Instruction Details
Detail steps (description, sequence, action type) of a work instruction template — the counterpart of , which tracks these per job. Read-only through this API.
| API | Description |
|---|---|
| GET api/WorkInstructionDetails |
Retrieves all work instruction detail steps, optionally filtered via OData query options. |
| GET api/WorkInstructionDetails(id) |
Retrieves the work instruction detail step with the specified key. |
Work Instruction Skill List
Links a work instruction to a required skill. Read-only through this API.
| API | Description |
|---|---|
| GET api/WorkInstructionSkillList |
Retrieves all work instruction/skill links, optionally filtered via OData query options. |
| GET api/WorkInstructionSkillList(id) |
Retrieves the work instruction/skill link with the specified key. |
Work Instruction Type
Types of work instructions, controlling which result options (see ) are available on their checklist lines. Read-only through this API.
| API | Description |
|---|---|
| GET api/WorkInstructionType |
Retrieves all work instruction types, optionally filtered via OData query options. |
| GET api/WorkInstructionType(id) |
Retrieves the work instruction type with the specified key. |
Work Instruction Type Options
The available result options (e.g. show Ok/NotOk/Replaced/NotApplicable) for a work instruction type. Read-only through this API.
| API | Description |
|---|---|
| GET api/WorkInstructionTypeOptions |
Retrieves all work instruction type options, optionally filtered via OData query options. |
| GET api/WorkInstructionTypeOptions(id) |
Retrieves the work instruction type option with the specified key. |