# TonicDM Product API

Main Product API

Version: 0.0.5
License: Proprietary

## Servers

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
```

## Security

### OAuth2

Type: oauth2
Authorization URL: https://example.com/oauth/authorize
Token URL: https://example.com/oauth/token
Scopes:
- `read`: Read access to protected resources
- `write`: Write access to protected resources

### apiKeyAuth

Type: apiKey
In: query
Name: X-API-KEY

## Download OpenAPI description

 - [TonicDM Product API](https://developers-internal.tonicdm.com/_bundle/tonicdm-product.yaml)

## Organizations

 - [POST /core/organizations/select](https://developers-internal.tonicdm.com/tonicdm-product/organizations/organizations-select.md): **Organizations** is a feature of the AdvancedContacts TonicDM license. Without that licence, the API user should work one level down with **Brands**. If called with no parameters (ie. `/organizations
 - [POST /core/organizations/merge](https://developers-internal.tonicdm.com/tonicdm-product/organizations/organizations-merge.md): Combines the Brands and Locations of Source and Target Organizations. Since Persons and Projects belong to Brands (defined by domain), there are no duplicate EmailAddresses to resolve. The operation c
 - [POST /core/brands/select](https://developers-internal.tonicdm.com/tonicdm-product/organizations/brands-select.md): Gets data on the User's Organization's own Brands and their Contact Organization's Brands. Every **Email Address** in TonicDM belongs to a Brand, defined by the domain of the email address matching a
 - [POST /core/brands/insert](https://developers-internal.tonicdm.com/tonicdm-product/organizations/brands-insert.md): Create one or more new Brand records in the User's own Organization. Only Brands without domains can be manually created, and only in the User's own Organization (not Contact Organizations), and these
 - [POST /core/brands/update](https://developers-internal.tonicdm.com/tonicdm-product/organizations/brands-update.md): Make changes to one or more existing Brand records. If the Brand is at the User's own Organization, the User must be a Tenant Administrator in order to make changes to it. NOT YET IMPLEMENTED
 - [POST /core/brands/merge](https://developers-internal.tonicdm.com/tonicdm-product/organizations/brands-merge.md): Combines the Projects and Persons of Source and Target Brands. Since Persons and Projects belong to a single Brand (defined by domain), there are no duplicate EmailAddresses to resolve. The operation
 - [POST /core/brands/delete](https://developers-internal.tonicdm.com/tonicdm-product/organizations/brands-delete.md): Delete one or more Brands from an Organization. Only Brands that do not have a domain and that are not associated with any Projects can be deleted. The operation can only be performed by one of your o
 - [POST /core/locations/insert](https://developers-internal.tonicdm.com/tonicdm-product/organizations/locations-insert.md): Create one or more new Location records in an Organization/Brand. Organizations/Brands can have Locations (offices), and Persons and Projects in that Organization/Brand can be assigned to one of that
 - [POST /core/locations/select](https://developers-internal.tonicdm.com/tonicdm-product/organizations/locations-select.md): Every Person belongs to an Organization. Organizations can have Locations (offices), and a Person in that Organization can be assigned to one of that Organization's Locations. Note that submitting a B
 - [POST /core/locations/update](https://developers-internal.tonicdm.com/tonicdm-product/organizations/locations-update.md): Make changes to one or more existing Location records.
 - [POST /core/locations/delete](https://developers-internal.tonicdm.com/tonicdm-product/organizations/brands-delete.md): Delete one or more Brands from an Organization. Only Brands that do not have a domain and that are not associated with any Projects can be deleted. In other cases, use Merge Brands instead. The operat
## Persons

 - [POST /core/emailaddresses/select](https://developers-internal.tonicdm.com/tonicdm-product/persons/persons-emailaddresses-select.md): 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
 - [POST /core/emailaddresses/insert](https://developers-internal.tonicdm.com/tonicdm-product/persons/person-emailaddress-insert.md): Note that the Organization/Brand which the EmailAddress will belong to is determined automatically by TonicDM. If an appropriate Organization/Brand doesnt exist, TonicDM will auto-create them. If the
 - [POST /core/emailaddresses/update](https://developers-internal.tonicdm.com/tonicdm-product/persons/person-emailaddress-update.md): Note that you cannot change the Organization that a person belongs to as this is determined automatically by TonicDM. To delete an EmailAddress, PATCH its status to `inactive` or `deleted` (soft delet
 - [POST /core/me/select](https://developers-internal.tonicdm.com/tonicdm-product/persons/me-select.md): The data for the User themselves. There are no parameters. A single object is returned that includes both the Person data and their User Settings.
 - [POST /core/me/update](https://developers-internal.tonicdm.com/tonicdm-product/persons/me-update.md): Change the user's own data. There is no need to specify their `id` as a parameter. Note that you cannot change the Organization that a Person belongs to as this is determined automatically by TonicDM.
 - [POST /core/persons/insert](https://developers-internal.tonicdm.com/tonicdm-product/persons/person-insert.md): If required, the EmailAddress can be merged into an existing Person as a second step. Note that Person records can only be manipulated if the customer has an AdvancedContacts license. Similarly, addin
 - [POST /core/persons/select](https://developers-internal.tonicdm.com/tonicdm-product/persons/persons-select.md): Gets data on one or more Persons. A Person is a collection of one or more EmailAddresses. If called with no parameters (ie. `/persons`) it will return data for all Persons in no specific order. If cal
 - [POST /core/persons/update](https://developers-internal.tonicdm.com/tonicdm-product/persons/person-update.md): Note that you cannot change the Organization that a person belongs to as this is determined automatically by TonicDM. To delete a Person, PATCH their status to `inactive` or `deleted` (soft deleted).
 - [POST /core/staff/select](https://developers-internal.tonicdm.com/tonicdm-product/persons/staff-select.md): Gets data on one or more Staff: emailAddresses in the User's own Organization with an email address of Type `business`. This endpoint does **not** return Person objects. It returns emailAddress object
## Projects and Programs

 - [POST /core/projects/insert](https://developers-internal.tonicdm.com/tonicdm-product/projects-and-programs/project-insert.md): Create a new Project for the User's Organization.
 - [POST /core/projects/select](https://developers-internal.tonicdm.com/tonicdm-product/projects-and-programs/projects-select.md): Get the data for Projects in the current User's organization.
 - [POST /core/projects/update](https://developers-internal.tonicdm.com/tonicdm-product/projects-and-programs/project-update.md): Make changes to the Project record.
 - [POST /core/projects/merge](https://developers-internal.tonicdm.com/tonicdm-product/projects-and-programs/projects-merge.md): Merges Project 1 (source) into Project 2 (target) such that Project 2 remains (and includes the contents of Project 1). The operation can only be performed by one of your organization's TonicDM Admini
 - [POST /core/projects/relate-add](https://developers-internal.tonicdm.com/tonicdm-product/projects-and-programs/projects-relate-add.md): Add a Project to a Related Projects set
 - [POST /core/projects/relate-remove](https://developers-internal.tonicdm.com/tonicdm-product/projects-and-programs/projects-relate-remove.md): Remove a Project from a Related Projects set
 - [POST /core/programs/insert](https://developers-internal.tonicdm.com/tonicdm-product/projects-and-programs/program-insert.md): Create a new Program for the User's Organization.
 - [POST /core/programs/select](https://developers-internal.tonicdm.com/tonicdm-product/projects-and-programs/programs-select.md): Get the data for Programs in the current User's organization.
 - [POST /core/programs/update](https://developers-internal.tonicdm.com/tonicdm-product/projects-and-programs/program-update.md): Make changes to the Program record.
## Teams and Groups

 - [POST /core/groups/select](https://developers-internal.tonicdm.com/tonicdm-product/teams-and-groups/groups-select.md): Get the list of Groups for a Project. This endpoint has no features for filtering or sorting the groups; all groups are returned.
 - [POST /core/groups/insert](https://developers-internal.tonicdm.com/tonicdm-product/teams-and-groups/group-insert.md): Create a new Group in a Project.
 - [POST /core/groups/update](https://developers-internal.tonicdm.com/tonicdm-product/teams-and-groups/group-update.md): Make changes to a Group record.
 - [POST /core/team/insert](https://developers-internal.tonicdm.com/tonicdm-product/teams-and-groups/project-team-insert.md): Submit an array of `ProjectMember` objects to add EmailAddresses to the project. You cannot add Organizations or Locations to the project directly. The Location that will display is a property of the
## Labels and Notes

 - [POST /core/labels/select](https://developers-internal.tonicdm.com/tonicdm-product/labels-and-notes/objects-labels-select.md): Retreive the labels associated with one or more objects provided in the filterIds parameter. To return only active Labels, pass `active` in the filterStatuses parameter. Data will be returned as an ar
 - [POST /core/labels/insert](https://developers-internal.tonicdm.com/tonicdm-product/labels-and-notes/labels-insert.md): Create one or more new Label records. NOT YET IMPLEMENTED
 - [POST /core/labels/update](https://developers-internal.tonicdm.com/tonicdm-product/labels-and-notes/label-update.md): Make changes to one or more existing Label records. NOT YET IMPLEMENTED
 - [POST /core/labels/delete](https://developers-internal.tonicdm.com/tonicdm-product/labels-and-notes/labels-delete.md): Delete one or more Label records by UUID. NOT YET IMPLEMENTED
 - [POST /core/notes/select](https://developers-internal.tonicdm.com/tonicdm-product/labels-and-notes/notes-select.md): Retreive the notes associated with an item PARTIALLY IMPLEMENTED
 - [POST /core/notes/insert](https://developers-internal.tonicdm.com/tonicdm-product/labels-and-notes/notes-insert.md): Create one or more new Note records. PARTIALLY IMPLEMENTED
 - [POST /core/notes/update](https://developers-internal.tonicdm.com/tonicdm-product/labels-and-notes/note-update.md): Make changes to one or more existing Note records. PARTIALLY IMPLEMENTED
 - [POST /core/notes/delete](https://developers-internal.tonicdm.com/tonicdm-product/labels-and-notes/notes-delete.md): Delete one or more Note records by UUID. PARTIALLY IMPLEMENTED
## Disciplines and Certifications

 - [POST /core/certification-definitions/select](https://developers-internal.tonicdm.com/tonicdm-product/disciplines-and-certifications/certification-definitions-select.md): Retreive the configured Certification Definitions. NOT YET IMPLEMENTED
 - [POST /core/certification-definitions/insert](https://developers-internal.tonicdm.com/tonicdm-product/disciplines-and-certifications/certification-definition-insert.md): Create one or more new Certification Definition records. NOT YET IMPLEMENTED
 - [POST /core/certification-definitions/update](https://developers-internal.tonicdm.com/tonicdm-product/disciplines-and-certifications/certification-definition-update.md): Make changes to one or more existing Certification Definitions. NOT YET IMPLEMENTED
 - [POST /core/certification-definitions/delete](https://developers-internal.tonicdm.com/tonicdm-product/disciplines-and-certifications/certification-definitions-delete.md): Delete one or more Certification Definition records by UUID. NOT YET IMPLEMENTED
 - [POST /core/certifications/select](https://developers-internal.tonicdm.com/tonicdm-product/disciplines-and-certifications/certifications-select.md): Retreive the certifications associated with Organizations, Projects, or Persons. NOT YET IMPLEMENTED
 - [POST /core/certifications/insert](https://developers-internal.tonicdm.com/tonicdm-product/disciplines-and-certifications/certifications-insert.md): Create a new Certification record. NOT YET IMPLEMENTED
 - [POST /core/certifications/update](https://developers-internal.tonicdm.com/tonicdm-product/disciplines-and-certifications/certifications-update.md): Make changes to one or more existing Certification records. NOT YET IMPLEMENTED
 - [POST /core/certifications/delete](https://developers-internal.tonicdm.com/tonicdm-product/disciplines-and-certifications/certifications-delete.md): Delete one or more Certification records by UUID. NOT YET IMPLEMENTED
 - [POST /core/disciplines/select](https://developers-internal.tonicdm.com/tonicdm-product/disciplines-and-certifications/disciplines-select.md): Get information on one or more disciplines
## Filesets

 - [POST /fileset/expiry-url/select](https://developers-internal.tonicdm.com/tonicdm-product/filesets/expiry-url-select.md): Expiry URLs are used when sending download links in notifications or emails. An Expiry URL can be used to download a Fileset for a limited time (eg. 30 days). The owner of the Fileset can change the
 - [POST /fileset/files/select](https://developers-internal.tonicdm.com/tonicdm-product/filesets/files-select.md): Get Files stored in the Fileset module. `filterIds` accepts one or more File IDs. `filterFilesetIds` accepts one or more FileSet IDs. At least one must be supplied.
 - [POST /fileset/filesets/select](https://developers-internal.tonicdm.com/tonicdm-product/filesets/filesets-select.md): This endpoint is used to check the status of a Fileset, eg. whether it is in a temporary or finalized state, and whether more files can be added to it. If files in a Fileset have been deleted or repl
 - [POST /fileset/thumbnails/select](https://developers-internal.tonicdm.com/tonicdm-product/filesets/fileset-thumbnails-select.md): Get thumbnails for files stored in the Fileset module.
## Manual Uploading

 - [POST /fileset/multi-part-finalize/select](https://developers-internal.tonicdm.com/tonicdm-product/manual-uploading/finalize-multi-part-upload-select.md): For large files (over 100Mb), initiate a multi-part upload with `..` , then call `...` to get the URL to upload each chunk, then when all the chunks are uploaded call this endpoint to finalize the up
 - [POST /fileset/multi-part-initialize/select](https://developers-internal.tonicdm.com/tonicdm-product/manual-uploading/initialize-multi-part-upload-select.md): For large files (over 100Mb), initiate a multi-part upload with this endpoint, then call `...` to get the URL to upload each chunk, then when all the chunks are uploaded call `...` to finalize the upl
 - [POST /fileset/presigned-url/select](https://developers-internal.tonicdm.com/tonicdm-product/manual-uploading/presigned-url-select.md): Presigned URLs are used to upload a file into the Fileset specified by the Fileset ID in the request. - For small files (under 100Mb), call this endpoint and upload the file to it. - For large files (
## Cloud File Systems

 - [POST /fileset/cloud-file/upsert](https://developers-internal.tonicdm.com/tonicdm-product/cloud-file-systems/cloud-files-upsert.md): Based on the IDs of files in a cloud file system, add those files to a TonicDM fileset. If the files are in different folders, the TonicDM system will determine the appropriate relative path (the comm
 - [POST /fileset/cloudfilesystem-children/delete](https://developers-internal.tonicdm.com/tonicdm-product/cloud-file-systems/cloudfilesystem-child-delete.md): Delete a file or folder from the parent folder.
 - [POST /fileset/cloudfilesystem-children/insert](https://developers-internal.tonicdm.com/tonicdm-product/cloud-file-systems/cloudfilesystem-child-insert.md): Creates a new child *folder* in the parent folder. This cannot be used to add a file to a folder.
 - [POST /fileset/cloudfilesystem-children/select](https://developers-internal.tonicdm.com/tonicdm-product/cloud-file-systems/cloudfilesystem-children-select.md): Retreive the children associated with a cloud file system path. This endpoint is used sucessively to navigate the file system. This endpoint can accept: - just a platform, in which case the childre
 - [POST /fileset/cloudfilesystem-children/update](https://developers-internal.tonicdm.com/tonicdm-product/cloud-file-systems/cloudfilesystem-child-update.md): Change the name of an existing file or folder.
## Correspondence

 - [POST /correspondence/conversations/select](https://developers-internal.tonicdm.com/tonicdm-product/correspondence/conversations-select.md): Get Conversations stored in the Correspondence module.
 - [POST /correspondence/messages/select](https://developers-internal.tonicdm.com/tonicdm-product/correspondence/messages-select.md): Get Messages stored in the Correspondence module.
## File Transfers

 - [POST /workflow/filetransfer-parts/select](https://developers-internal.tonicdm.com/tonicdm-product/file-transfers/workflow-filetransfer-parts-select.md): Get the details of Parts of FileTransfers stored in the Workflow module.
 - [POST /workflow/filetransfers/select](https://developers-internal.tonicdm.com/tonicdm-product/file-transfers/workflow-filetransfers-select.md): Get FileTransfers stored in the Workflow module.
## RFIs

 - [POST /workflow/rfi-integrations-list/select](https://developers-internal.tonicdm.com/tonicdm-product/rfis/pull-rfi-list-select.md): Returns basic information for the list of RFIs available in a 3rd party system (e.g. Procore). The TonicDM user's token for the cloud platform must be set up and have access to the resources in the 3r
 - [POST /workflow/rfi-integrations/insert](https://developers-internal.tonicdm.com/tonicdm-product/rfis/rfi-response-insert.md): Put RFI Response into a 3rd Party system (e.g. Procore). For this to work, the specified 3rd Party system user account must have an active API connection and permissions in the 3rd Party system.
 - [POST /workflow/rfi-integrations/select](https://developers-internal.tonicdm.com/tonicdm-product/rfis/pull-rfi-detail-select.md): Returns detailed information for one RFI available in a 3rd party system (e.g. Procore). The TonicDM user's token for the cloud platform must be set up and have access to the resources in the 3rd part
 - [POST /workflow/rfi-parts/select](https://developers-internal.tonicdm.com/tonicdm-product/rfis/workflow-rfi-parts-select.md): Get the details of Parts of RFIs stored in the Workflow module, either by specifying one or more RFI Items to get all the Parts for those RFIs, or by specifying the UUIDs of the Parts themselves. Part
 - [POST /workflow/rfi-reason-codes/insert](https://developers-internal.tonicdm.com/tonicdm-product/rfis/rfi-reason-code-insert.md): Creates a new RFI Reason Code for the Brand.
 - [POST /workflow/rfi-reason-codes/select](https://developers-internal.tonicdm.com/tonicdm-product/rfis/rfi-reason-codes-select.md): Returns a list of all Reason Codes for the user's Brand.
 - [POST /workflow/rfi-reason-codes/update](https://developers-internal.tonicdm.com/tonicdm-product/rfis/rfi-reason-code-update.md): Edit an RFI Reason Code in the Brand.
 - [POST /workflow/rfis/delete](https://developers-internal.tonicdm.com/tonicdm-product/rfis/rfi-delete.md): Note that deleting an RFI will fail if it has been forwarded or returned.
 - [POST /workflow/rfis/insert](https://developers-internal.tonicdm.com/tonicdm-product/rfis/workflow-rfi-insert.md): Create an RFI in the Workflow module of a particular Project.
 - [POST /workflow/rfis/select](https://developers-internal.tonicdm.com/tonicdm-product/rfis/workflow-rfis-select.md): Get RFIs stored in the Workflow module.
 - [POST /workflow/rfis/update](https://developers-internal.tonicdm.com/tonicdm-product/rfis/workflow-rfi-update.md): Change an RFI.
## Submittals

 - [POST /workflow/submittal-parts/select](https://developers-internal.tonicdm.com/tonicdm-product/submittals/workflow-submittal-parts-select.md): Get the details of Parts of Submittals stored in the Workflow module.
 - [POST /workflow/submittals/delete](https://developers-internal.tonicdm.com/tonicdm-product/submittals/submittal-delete.md): Note that deleting an Submittal will fail if it has been forwarded or returned.
 - [POST /workflow/submittals/insert](https://developers-internal.tonicdm.com/tonicdm-product/submittals/workflow-submittal-insert.md): Create an Submittal in the Workflow module of a particular Project.
 - [POST /workflow/submittals/select](https://developers-internal.tonicdm.com/tonicdm-product/submittals/workflow-submittals-select.md): Get Submittals stored in the Workflow module.
 - [POST /workflow/submittals/update](https://developers-internal.tonicdm.com/tonicdm-product/submittals/workflow-submittal-update.md): Change an Submittal.
## PCOs

 - [POST /workflow/pco-parts/select](https://developers-internal.tonicdm.com/tonicdm-product/pcos/workflow-pco-parts-select.md): Get the details of Parts of PCOs stored in the Workflow module.
 - [POST /workflow/pcos/delete](https://developers-internal.tonicdm.com/tonicdm-product/pcos/pco-delete.md): Note that deleting an PCO will fail if it has been forwarded or returned.
 - [POST /workflow/pcos/insert](https://developers-internal.tonicdm.com/tonicdm-product/pcos/workflow-pco-insert.md): Create an PCO in the Workflow module of a particular Project.
 - [POST /workflow/pcos/select](https://developers-internal.tonicdm.com/tonicdm-product/pcos/workflow-pcos-select.md): Get PCOs stored in the Workflow module.
 - [POST /workflow/pcos/update](https://developers-internal.tonicdm.com/tonicdm-product/pcos/workflow-pco-update.md): Change an PCO.
## COs

 - [POST /workflow/co-parts/select](https://developers-internal.tonicdm.com/tonicdm-product/cos/workflow-co-parts-select.md): Get the details of Parts of COs stored in the Workflow module.
 - [POST /workflow/cos/delete](https://developers-internal.tonicdm.com/tonicdm-product/cos/co-delete.md): Note that deleting an CO will fail if it has been forwarded or returned.
 - [POST /workflow/cos/insert](https://developers-internal.tonicdm.com/tonicdm-product/cos/workflow-co-insert.md): Create an CO in the Workflow module of a particular Project.
 - [POST /workflow/cos/select](https://developers-internal.tonicdm.com/tonicdm-product/cos/workflow-cos-select.md): Get COs stored in the Workflow module.
 - [POST /workflow/cos/update](https://developers-internal.tonicdm.com/tonicdm-product/cos/workflow-co-update.md): Change an CO.
## Tasks

 - [POST /workflow/task-parts/select](https://developers-internal.tonicdm.com/tonicdm-product/tasks/workflow-task-parts-select.md): Get the details of Parts of Tasks stored in the Workflow module.
 - [POST /workflow/tasks/delete](https://developers-internal.tonicdm.com/tonicdm-product/tasks/task-delete.md): Note that deleting an Task will fail if it has been forwarded or returned.
 - [POST /workflow/tasks/insert](https://developers-internal.tonicdm.com/tonicdm-product/tasks/workflow-task-insert.md): Create an Task in the Workflow module of a particular Project.
 - [POST /workflow/tasks/select](https://developers-internal.tonicdm.com/tonicdm-product/tasks/workflow-tasks-select.md): Get Tasks stored in the Workflow module.
 - [POST /workflow/tasks/update](https://developers-internal.tonicdm.com/tonicdm-product/tasks/workflow-task-update.md): Change an Task.
