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

New Office

Request

Add an Office to an Organization.

Bodyapplication/jsonrequired
statusstring(Status)

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

Default "active"
Enum"active""inactive""deleted"
namestring[ 1 .. 64 ] charactersrequired

The name given to this Office. It is used in the TonicDM app only (not put onto anything externally facing).

addressstring[ 1 .. 256 ] characters

The address of the office. Use \n for new lines when submitting (they will be returned as <br>).

phoneobject(Phone)

A phone number in 3 parts. Country code and phone number are always required.

curl -i -X POST \
  https://developers-internal.tonicdm.com/_mock/tonicdm-product/core/offices \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "status": "active",
    "name": "string",
    "address": "string",
    "phone": {
      "countryCode": 0,
      "phoneNumber": 0,
      "extension": 0
    }
  }'

Responses

Successfully created the resource you sent

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 Office was created.

datetimeUpdatedstring(date-time)read-only

The date and time this Office 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"
namestring[ 1 .. 64 ] characters

The name given to this Office. It is used in the TonicDM app only (not put onto anything externally facing).

addressstring[ 1 .. 256 ] characters

The address of the office. Use \n for new lines when submitting (they will be returned as <br>).

phoneobject(Phone)

A phone number in 3 parts. Country code and phone number are always required.

Response
application/json
{ "id": "2122ff9ebbb140e9856934e8e33a8c1f", "organizationId": "da9c62640a894f61b247801a2e300c44", "status": "active", "name": "London", "address": "300 Dufferin Ave<br>London, ON N6B 1Z2", "phone": { "countryCode": 1, "phoneNumber": 5196612489, "extension": 32 } }

Edit Office

Request

Modify the information for an Office.

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

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"
namestring[ 1 .. 64 ] characters

The name given to this Office. It is used in the TonicDM app only (not put onto anything externally facing).

addressstring[ 1 .. 256 ] characters

The address of the office. Use \n for new lines when submitting (they will be returned as <br>).

phoneobject(Phone)

A phone number in 3 parts. Country code and phone number are always required.

curl -i -X PATCH \
  https://developers-internal.tonicdm.com/_mock/tonicdm-product/core/offices \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "id": "8e8aa42241794371ae9d0ed7b67a8c86",
    "status": "active",
    "name": "string",
    "address": "string",
    "phone": {
      "countryCode": 0,
      "phoneNumber": 0,
      "extension": 0
    }
  }'

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 Office was created.

datetimeUpdatedstring(date-time)read-only

The date and time this Office 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"
namestring[ 1 .. 64 ] characters

The name given to this Office. It is used in the TonicDM app only (not put onto anything externally facing).

addressstring[ 1 .. 256 ] characters

The address of the office. Use \n for new lines when submitting (they will be returned as <br>).

phoneobject(Phone)

A phone number in 3 parts. Country code and phone number are always required.

Response
application/json
{ "id": "2122ff9ebbb140e9856934e8e33a8c1f", "organizationId": "da9c62640a894f61b247801a2e300c44", "status": "active", "name": "London", "address": "300 Dufferin Ave<br>London, ON N6B 1Z2", "phone": { "countryCode": 1, "phoneNumber": 5196612489, "extension": 32 } }

Get EmailAddresses

Request

Gets data on one or more EmailAddresses.

If called with no parameters (ie. /emailaddresses) it will return data for all EmailAddresses in no specific order.

If called with just the data_quantity=id_only parameter (ie. /emailaddresses/me with data_quantity=id_only), it will return just the emailAddressId's' of the User.

A specific set of EmailAddresses' data can be returned by providing the filterIds parameter with an array of EmailAddress id (ie. /emailaddresses with filterIds={emailAddressId},{emailAddressId}).

If caching the Person 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 Person data coming from your client side cache, having been retrieved by providing the filterIds parameter with an array of id.

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}
filterOrganizationIdsArray of strings(CompactUUID)

Returns data for the specified Organization GUIDs

Example: filterOrganizationIds={OrganizationId},{OrganizationId},{OrganizationId}
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}
filterOfficeIdsArray of strings(CompactUUID)

Provide the GUIDs of one or more offices separated by comma (no spaces).

Example: filterOfficeIds={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"name""email""title""office"
sortDirectionstring

The sort direction for the results

Enum"asc""desc"
curl -i -X GET \
  'https://developers-internal.tonicdm.com/_mock/tonicdm-product/core/emailaddresses?dataQuantity=true&filterDisciplines={id}%2C{id}%2C{id}&filterIds={id}%2C{id}%2C{id}&filterOfficeIds={id}%2C{id}%2C{id}&filterOrganizationIds={OrganizationId}%2C{OrganizationId}%2C{OrganizationId}&filterStatuses=active%2Cinactive&pageNumber=1&pageSize=100&searchQuery={%22example%22}&sortBy=name&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 email address record was created.

datetimeUpdatedstring(date-time)read-only

The date and time this email address record 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"
emailAddressstring(email)
namestring[ 1 .. 64 ] characters

The person's full name.

titlestring[ 1 .. 64 ] characters

The person's business title.

deskPhoneobject(Phone)

A phone number in 3 parts. Country code and phone number are always required.

mobilePhoneobject(Phone)

A phone number in 3 parts. Country code and phone number are always required.

officeobject(Office)

The physical location that is assigned to a Project or Person. This allows for filtering by Office, and the calcuation of metrics by Office. Use of this feature for Contact Organizations requires the TonicDM AdvancedContacts license.

disciplinesArray of objects(DisciplineWithId)

The Disciplines this Person is typically involved in.

certificationsArray of items

Zero or more certifications that this Person has obtained, or previously obtained. Use of this feature requires the TonicDM AdvancedContacts license.

emailDeliveryStatusstringread-only

The status of the last email sent to this address. This is updated by the system.

Default "unknown"
Enum"unknown""delivered""bounced"
emailTypestringread-only

The type of email address. This is set by the system.

Enum"business""personal""system""misspelled"
personIdstring(guid)^[0-9a-fA-F]{32}$

A GUID used to link multiple EmailAddress records together, presumably because they belong to the same physical person. 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.

dateActivestring(date)

The date this email address became active. This is used to track the history of email addresses for a person. Use of this feature requires the TonicDM AdvancedContacts license.

dateInactivestring(date)

The date this email address became inactive. This is used to track the history of email addresses for a person. Use of this feature requires the TonicDM AdvancedContacts license.

isPrimeboolean

Indicates that this email address is the primary email address for this person. When displaying a Person, the Prime email address info will be used for their Name, etc. Use of this feature requires the TonicDM AdvancedContacts license.

customerDataWarehouseIdstring

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

customerErpIdstring

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

customerCrmIdstring

The ID of the Person 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", "emailAddress": "user@example.com", "name": "string", "title": "string", "deskPhone": { … }, "mobilePhone": { … }, "office": { … }, "disciplines": [ … ], "certifications": [ … ], "emailDeliveryStatus": "unknown", "emailType": "business", "personId": "string", "dateActive": "2019-08-24", "dateInactive": "2019-08-24", "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