TonicDM Product API (0.0.5)

Main Product API

Download OpenAPI description
Languages
Servers
Mock server
https://developers-internal.tonicdm.com/_mock/tonicdm-product/
Server located in the USA
https://us-api.tonicdm.com/
Server located in Germany
https://de-api.tonicdm.com/
Server located in Ireland
https://ie-api.tonicdm.com/

Organizations & People

Data on People and Organizations (includes both staff and contacts, so these do not need to be looked up separately and combined).

Operations

Get Organizations

Request

Organizations are a feature of the AdvancedContacts TonicDM license. Without that licence, the API user should work one level down with Brands.

Every Person in TonicDM belongs to an Organization: either a Contact Organization or the User's own organization.

There is no POST operation for Organizations because they can only be created as part of the creation of a Person.

If called with no parameters (ie. /organizations) it will return paged data for the Brands in the User's Tenant and all Contact Organizations, in no specific order.

A specific set of organizations' data can be returned by providing the filterIds parameter with an array of Organization id (ie. /organizations with filterIds={organizationId},{organizationId}). If caching the organization data on the client side, the data_quantity=id_only option can be chosen to get the list of GUIDs that match the filtering/sorting/paging requirements with the organization data coming from your client side cache, having been retrieved by providing the filterIds parameter with an array of id.

You can also get the list of Offices (physical locations) or Brands for an Organization by calling /offices with filterOrganizationIds={organizationId} or /brands with filterOrganizationIds={organizationId}. Offices and Brands for Organizations other than your own are a feature of the AdvancedContacts TonicDM license.

Query
searchQuerystring(JSON)

A JSON-encoded string containing the query options.

Example: searchQuery={"example"}
filterIdsArray of strings(CompactUUID)

Returns data for the specified GUIDs

Example: filterIds={id},{id},{id}
filterStatusesArray of strings(Status)

Provide the values of one or more statuses separated by comma (no spaces). If no value is supplied, active is assumed.

Items Enum"active""inactive""deleted"
Example: filterStatuses=active,inactive
filterDisciplinesArray of strings(CompactUUID)

provide the GUIDs of one or more disciplines separated by comma (no spaces)

Example: filterDisciplines={id},{id},{id}
dataQuantityboolean

If caching data on the client side, the data_quantity=id_only|basic|complete option can be passed to manage the completeness of the data received and therefore rate limiting.

Default false
Example: dataQuantity=true
pageSizeinteger[ 1 .. 1000 ]

The number of results to return per page

Default 50
Example: pageSize=100
pageNumberinteger

Which page of the results to return

Example: pageNumber=1
sortBystring

The field by which to sort the results

Enum"nameLong""nameShort""nameInitials"
sortDirectionstring

The sort direction for the results

Enum"asc""desc"
curl -i -X GET \
  'https://developers-internal.tonicdm.com/_mock/tonicdm-product/core/organizations?dataQuantity=true&filterDisciplines={id}%2C{id}%2C{id}&filterIds={id}%2C{id}%2C{id}&filterStatuses=active%2Cinactive&pageNumber=1&pageSize=100&searchQuery={%22example%22}&sortBy=nameLong&sortDirection=asc' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

Successfully read the resource you requested. One or more records are returned in the form of an array.

Bodyapplication/jsonArray [
idstring(CompactUUID)^[0-9a-fA-F]{32}$

UUID without hyphens (32 characters)

Example: "8e8aa42241794371ae9d0ed7b67a8c86"
brandsArray of objects(OrganizationBrandWithId)non-empty

One or more Brands that belong to this Organization. All Organizations are have at least one Brand.

officesArray of objects(OfficeWithId)>= 0 items

Zero or more Offices that belong to this Organization.

]
Response
application/json
[ { "id": "810e48a87ec44cf0bfbf43c6d0af2ee6", "datetimeCreated": "2021-11-03T16:21:02+00:00", "datetimeUpdated": "2024-04-20T16:21:02+00:00", "brands": [ … ] }, { "id": "f5fcae6d03f342ceb9eb8c9b9250c0ce", "datetimeCreated": "2021-11-03T16:21:02+00:00", "datetimeUpdated": "2024-04-20T16:21:02+00:00", "brands": [ … ] } ]

Get Brands

Request

Gets data on the User's Organization's own Brands and their Contact Organization's Brands.

Query
searchQuerystring(JSON)

A JSON-encoded string containing the query options.

Example: searchQuery={"example"}
filterIdsArray of strings(CompactUUID)

Returns data for the specified GUIDs

Example: filterIds={id},{id},{id}
filterStatusesArray of strings(Status)

Provide the values of one or more statuses separated by comma (no spaces). If no value is supplied, active is assumed.

Items Enum"active""inactive""deleted"
Example: filterStatuses=active,inactive
filterDisciplinesArray of strings(CompactUUID)

provide the GUIDs of one or more disciplines separated by comma (no spaces)

Example: filterDisciplines={id},{id},{id}
dataQuantityboolean

If caching data on the client side, the data_quantity=id_only|basic|complete option can be passed to manage the completeness of the data received and therefore rate limiting.

Default false
Example: dataQuantity=true
pageSizeinteger[ 1 .. 1000 ]

The number of results to return per page

Default 50
Example: pageSize=100
pageNumberinteger

Which page of the results to return

Example: pageNumber=1
sortBystring

The field by which to sort the results

Enum"nameLong""nameShort""nameInitials"
sortDirectionstring

The sort direction for the results

Enum"asc""desc"
curl -i -X GET \
  'https://developers-internal.tonicdm.com/_mock/tonicdm-product/core/brands?dataQuantity=true&filterDisciplines={id}%2C{id}%2C{id}&filterIds={id}%2C{id}%2C{id}&filterStatuses=active%2Cinactive&pageNumber=1&pageSize=100&searchQuery={%22example%22}&sortBy=nameLong&sortDirection=asc' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

Successfully read the resource you requested. One or more records are returned in the form of an array.

Bodyapplication/jsonArray [
idstring(CompactUUID)^[0-9a-fA-F]{32}$

UUID without hyphens (32 characters)

Example: "8e8aa42241794371ae9d0ed7b67a8c86"
datetimeCreatedstring(date-time)read-only

The date and time this Brand was created.

datetimeUpdatedstring(date-time)read-only

The date and time this Brand was last updated.

statusstring(Status)

Whether the item is active or inactive in TonicDM. Potentially the item could be (soft) deleted.

Default "active"
Enum"active""inactive""deleted"
domainsArray of strings

Zero or more domains that belong to this organization and represent the Brand, eg. firm.com, firm.co.us.

In the case of a shared domain contact, the "domain" of their Brand is their full email address, eg. steven.novosel@gmail.com.

nameLongstring<= 128 characters

The full official name of the Brand (used on transmittals).

nameShortstring<= 128 characters

The friendly name of the Brand (used within the TonicDM app).

nameInitialsstring<= 4 characters

The initials of the Brand (used in very small spaces)

brandColorstring(hex)^(?:[0-9a-fA-F]{6}|)$read-only

Brand color for the Brand. This is set centrally by TonicDM and can not be changed directly via this API.

disciplinesArray of objects(Discipline)

limits the disciplines that can be chosen for any person in this Brand to help consistency.

organizationIdstring(guid)^[0-9a-fA-F]{32}$

A GUID used to link multiple Brand records together into an organization. There are no extra fields associated with this GUID. It serves only as a linking mechanism. Use of this feature requires the TonicDM AdvancedContacts license.

isPrimeboolean

Indicates that this Brand is the primary Brand for this organization. When displaying an organization, the Prime Brand info will be used for their Name, etc. Use of this feature requires the TonicDM AdvancedContacts license.

customerDataWarehouseIdstring

The ID of the Brand in the Customer's Data Warehouse. Use of this feature requires the TonicDM AdvancedMetrics license.

customerErpIdstring

The ID of the Brand in the Customer's ERP system (eg. Deltek Vantagepoint). Use of this feature requires the TonicDM AdvancedMetrics license.

customerCrmIdstring

The ID of the Brand in the Customer's CRM system (eg. Deltek Salesforce). Use of this feature requires the TonicDM AdvancedMetrics license.

]
Response
application/json
[ { "id": "39f81d26576d41a285504fac5cc0d215", "datetimeCreated": "2021-11-03T16:21:02+00:00", "datetimeUpdated": "2024-04-20T16:21:02+00:00", "status": "active", "domains": [ … ], "nameLong": "Pacific Architects and Engineers Inc.", "nameShort": "Pacific", "nameInitials": "PAE", "brandColor": "0F6CBD", "organizationId": "f3efcad7082d4e85ae2741a57629b323", "isPrime": true, "customerDataWarehouseId": 675, "customerErpId": "8b37e6b2-786e-4546-93e8-d6760e71bed4", "customerCrmId": "8a12f0af-249d-435b-b997-2034fd472ff8" }, { "id": "5af9258c92204f79b589ddf511f41604", "datetimeCreated": "2021-11-03T16:21:02+00:05", "datetimeUpdated": "2024-04-20T16:21:02+00:05", "status": "active", "domains": [ … ], "nameLong": "Steve Novosel", "nameInitials": "SN", "organizationId": "6c09ed8ddce440fab1319530ce22fd67", "customerDataWarehouseId": 987, "customerErpId": "ae656d88-c979-4e11-ba0b-695b61fa7f5d", "customerCrmId": "9a6d37ef-fc9d-43ee-ac78-678c273cc1e8" } ]

Edit a Brand

Request

Change a Brand.

If the Brand is at the User's own Organization, the User must be a Tenant Administrator in order to make changes to it.

Bodyapplication/jsonrequired
idstring(CompactUUID)^[0-9a-fA-F]{32}$

UUID without hyphens (32 characters)

Example: "8e8aa42241794371ae9d0ed7b67a8c86"
statusstring(Status)

Whether the item is active or inactive in TonicDM. Potentially the item could be (soft) deleted.

Default "active"
Enum"active""inactive""deleted"
domainsArray of strings

Zero or more domains that belong to this organization and represent the Brand, eg. firm.com, firm.co.us.

In the case of a shared domain contact, the "domain" of their Brand is their full email address, eg. steven.novosel@gmail.com.

nameLongstring<= 128 characters

The full official name of the Brand (used on transmittals).

nameShortstring<= 128 characters

The friendly name of the Brand (used within the TonicDM app).

nameInitialsstring<= 4 characters

The initials of the Brand (used in very small spaces)

disciplinesArray of objects(Discipline)

limits the disciplines that can be chosen for any person in this Brand to help consistency.

organizationIdstring(guid)^[0-9a-fA-F]{32}$

A GUID used to link multiple Brand records together into an organization. There are no extra fields associated with this GUID. It serves only as a linking mechanism. Use of this feature requires the TonicDM AdvancedContacts license.

isPrimeboolean

Indicates that this Brand is the primary Brand for this organization. When displaying an organization, the Prime Brand info will be used for their Name, etc. Use of this feature requires the TonicDM AdvancedContacts license.

customerDataWarehouseIdstring

The ID of the Brand in the Customer's Data Warehouse. Use of this feature requires the TonicDM AdvancedMetrics license.

customerErpIdstring

The ID of the Brand in the Customer's ERP system (eg. Deltek Vantagepoint). Use of this feature requires the TonicDM AdvancedMetrics license.

customerCrmIdstring

The ID of the Brand in the Customer's CRM system (eg. Deltek Salesforce). Use of this feature requires the TonicDM AdvancedMetrics license.

curl -i -X PATCH \
  https://developers-internal.tonicdm.com/_mock/tonicdm-product/core/brands \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "id": "8e8aa42241794371ae9d0ed7b67a8c86",
    "status": "active",
    "domains": [
      "string"
    ],
    "nameLong": "string",
    "nameShort": "string",
    "nameInitials": "stri",
    "disciplines": [
      {}
    ],
    "organizationId": "string",
    "isPrime": true,
    "customerDataWarehouseId": "string",
    "customerErpId": "string",
    "customerCrmId": "string"
  }'

Responses

Successfully updated the resource you requested

Bodyapplication/json
idstring(CompactUUID)^[0-9a-fA-F]{32}$

UUID without hyphens (32 characters)

Example: "8e8aa42241794371ae9d0ed7b67a8c86"
datetimeCreatedstring(date-time)read-only

The date and time this Brand was created.

datetimeUpdatedstring(date-time)read-only

The date and time this Brand was last updated.

statusstring(Status)

Whether the item is active or inactive in TonicDM. Potentially the item could be (soft) deleted.

Default "active"
Enum"active""inactive""deleted"
domainsArray of strings

Zero or more domains that belong to this organization and represent the Brand, eg. firm.com, firm.co.us.

In the case of a shared domain contact, the "domain" of their Brand is their full email address, eg. steven.novosel@gmail.com.

nameLongstring<= 128 characters

The full official name of the Brand (used on transmittals).

nameShortstring<= 128 characters

The friendly name of the Brand (used within the TonicDM app).

nameInitialsstring<= 4 characters

The initials of the Brand (used in very small spaces)

brandColorstring(hex)^(?:[0-9a-fA-F]{6}|)$read-only

Brand color for the Brand. This is set centrally by TonicDM and can not be changed directly via this API.

disciplinesArray of objects(Discipline)

limits the disciplines that can be chosen for any person in this Brand to help consistency.

organizationIdstring(guid)^[0-9a-fA-F]{32}$

A GUID used to link multiple Brand records together into an organization. There are no extra fields associated with this GUID. It serves only as a linking mechanism. Use of this feature requires the TonicDM AdvancedContacts license.

isPrimeboolean

Indicates that this Brand is the primary Brand for this organization. When displaying an organization, the Prime Brand info will be used for their Name, etc. Use of this feature requires the TonicDM AdvancedContacts license.

customerDataWarehouseIdstring

The ID of the Brand in the Customer's Data Warehouse. Use of this feature requires the TonicDM AdvancedMetrics license.

customerErpIdstring

The ID of the Brand in the Customer's ERP system (eg. Deltek Vantagepoint). Use of this feature requires the TonicDM AdvancedMetrics license.

customerCrmIdstring

The ID of the Brand in the Customer's CRM system (eg. Deltek Salesforce). Use of this feature requires the TonicDM AdvancedMetrics license.

Response
application/json
{ "id": "8e8aa42241794371ae9d0ed7b67a8c86", "datetimeCreated": "2019-08-24T14:15:22Z", "datetimeUpdated": "2019-08-24T14:15:22Z", "status": "active", "domains": [ "string" ], "nameLong": "string", "nameShort": "string", "nameInitials": "stri", "brandColor": "string", "disciplines": [ { … } ], "organizationId": "string", "isPrime": true, "customerDataWarehouseId": "string", "customerErpId": "string", "customerCrmId": "string" }

Projects & Teams

Operations

Notes

Operations relating to the Notes that can be attached to various items.

Operations

Disciplines & Certification Definitions

Disciplines & Certification Definitions recognize areas of professional expertise.

Operations

Filesets

APIs to the Fileset module for accessing all files attached to objects in TonicDM.

Operations

Manual Uploading

APIs to the Fileset module for uploading files to the TonicDM cloud.

Operations

Cloud File Systems

Managing cloud file systems that TonicDM can connect to.

Operations

Correspondence

Managing Correspondence Data

Operations

File Transfers

APIs to the File Transfers Workflow module.

Operations

RFIs

APIs to the RFIs Workflow module.

Operations

Submittals

APIs to the Submittals Workflow module.

Operations

PCOs

APIs to the PCOs Workflow module.

Operations

COs

APIs to the COs Workflow module.

Operations

Tasks

APIs to the Tasks Workflow module.

Operations