Skip to main content
Mitratech Success Center

Client Support Center

Need help? Click a product group below to select your application and get access to knowledge articles, webinars, training content, and release notes or to contact our support team.

Authorized users - log in to create a ticket, view tickets status and check your success plan details.

 

REST API HTTP Methods

You can use JSON formatted HTTP requests to create, read, update, or delete records from the TeamConnect server using the REST API methods. You must have the rights to view or make changes to these records.

To create and update records, the REST API provides a limited set of features. For building integrations, it is recommended to use the SOAP API which is more mature and has a wider range of features. The REST API is typically used for creating matters and updating basic matter information, and you can find the SOAP API at Link. It's important to note that if a feature is not available in the REST API, it's not considered a defect. Mitratech plans to release a more fully-featured REST API in November of 2024.

Before you use the REST API HTTP methods, enter the following information:

  • http://<host>/<TeamConnectVersion>/webservice/rest for the root of the API.
  • application/json for the content-type and accept headers.
  • HTTP basic authentication with TeamConnect credentials.

 Note: The web service APIs of TeamConnect only support basic authentication.

The HTTP methods are GET, POST, PUT, and DELETE. When you make a request using one of the HTTP methods, refer to the following tables.

HTTP Methods for Records

HTTP Method Format Description
GET (nothing after GET) Returns a list of record types.
/<TypeOfRecord>

Example: /tasks
Returns all the records of that type in the server.

To limit the number of results, enter a number in the Number of records per result page field on the General page of the Preferences in TeamConnect. To see additional pages of results, enter ?page=2, or another number depending on the page, after /<TypeOfRecord>.

To search text or checkbox fields, enter the following:
?<TreePostition>.<FieldName>=<value> after /<TypeOfRecord>, for example, ?DISP_SUBP.DocketNoSU=1234
/<TypeOfRecord>/<ID>

Example: /tasks/2
Returns information about the record.
POST /<TypeOfRecord> Creates a new record.
To determine the structure of the JSON object, refer to Determining the structure of a JSON object.
/<TypeOfRecord>/<ID> Returns an error.
PUT /<TypeOfRecord> Returns an error.
/<TypeOfRecord>/<ID> Updates a record.
To determine the structure of the JSON object, refer to Determining the structure of a JSON object.
DELETE /<TypeOfRecord> Returns an error.
/<TypeOfRecord>/<ID> Deletes a record.

HTTP Methods for Projects

HTTP Method Format Description
GET (nothing after GET) Returns a list of projects and project codes.
/projects/<ProjectCode>

Example: /projects/DISP
Returns all the records of that project type in the server.
/projects/<ProjectCode>/<ID>

Example: /projects/DISP/3
Returns information about the project record.
POST /projects/<ProjectCode> Creates a new project record.
To determine the structure of the JSON object, refer to Determining the structure of a JSON object.
/projects/<ProjectCode>/<ID> Returns an error.
PUT /projects/<ProjectCode> Returns an error.
/projects/<ProjectCode>/<ID> Updates a project record.
To determine the structure of the JSON object, refer to Determining the structure of a JSON object.
DELETE /projects/<ProjectCode> Returns an error.
/projects/<ProjectCode>/<ID> Deletes a project record.

Determining the structure of a JSON object

When you create or update a new record or project using the POST or PUT method, use the same format as a JSON object. Use the GET method with a record type and ID to return a formatted example.

The following structure is an example of a JSON object for /tasks:

{

"shortDescription":"Created using the API",

"project": {
  "href": "/projects/DISP/4410"

},

"currentAssignee": {

"assignedOn":"Aug 15, 2012 8:15:00 AM", {

"href": "/user/15"

}

}

}

The following structure is an example of a JSON object for /appointments:

{

"subject":"Created using the API",

"startOn":"Aug 20, 2012 4:31:00 PM",

"endOn":"Aug 20, 2012 5:31:00 PM",

"project": {
  "href": "/projects/DISP/4410"

"attendees":[ {

"href": "/user/3"

}]

}

The following structure is an example of a JSON object for /DISP:

{

"entityType":"DISP",

"name":"Created using the API",

"categories": {

"DISP":{

"categoryItem":"DISP",

"customFields":{}

}

"DISP_BANK":{

"categoryItem":"DISP_BANK",

"customFields":{}

}

}

}

Supported Objects

TeamConnect's REST API supports the following objects:

  • Tasks
  • Appointments
  • Projects

Note: Custom objects in TeamConnect, such as the TeamConnect Legal objects (Disputes, Transactions, Advice & Counsel), and other objects created for specific functionality, are collectively referred to as "Projects" in the context of the TeamConnect REST API.

It's important to note that the REST API does not support other objects such as Invoices and Contacts. This means that these objects cannot be created or updated using the REST API.

Helpful Information

This section offers useful tips for utilizing the REST API for common use cases.

  • Number fields are populated as follows.

        "NumberField": {

          "type": "com.mitratech.teamconnect.core.model.category.DecimalCustomField",

          "value": 444333.00,

          "name": "NumberField",

          "required": false

        },

  • Text fields are populated as follows:

        "TextField": {

           "type": "com.mitratech.teamconnect.core.model.category.TextCustomField",

           "value": "Data in a field",

           "name": "TextField",

           "required": false

        },

  • The value of Checkbox fields will either be true or false. For example:       
         
         "CheckboxField": {

          "type": "com.mitratech.teamconnect.core.model.category.BooleanCustomField",

          "value": true,

          "name": "CheckboxField",

          "required": false

        },

  • Date fields are populated as follows:

        "DateField": {

          "type": "com.mitratech.teamconnect.core.model.category.DateTimeCustomField",

          "value": "02/25/2023 00:00:00",

          "name": "DateField",

          "required": false

        }

The REST API does not support the creation of Involved Parties. Instead, Involved Parties can be added by using an Involved Party field on the Matter, which requires the primary key of the contact to be used as the involved party.

It's important to keep in mind that modifying the value of the custom field will result in the removal of the involved party. To prevent this, a pre-population rule can be set up to change the primary category of the involved party. Here's an example of how to populate an involved party field:

"InvolvedField": {

    "type": com.mitratech.teamconnect.core.model.category.InvolvedCustomField",

    "value": {

         "href": "/contacts/22507"

    },

    "name": "InvolvedField",

    "required": false

}

  • Assignees can be added to a matter using the primary key of the User record for the assignee. The first assignee added will be automatically set as the Main Assignee by TeamConnect, and there is currently no way to change the Main Assignee using the REST API. Here's an example of how to add an Assignee:

    "assignees": [

        {

            "projectType": "TOBJ",

            "role": {

                "i18nKey": "objdef.TOBJ.assigneerole.DEFA",

                "storedValue": "TOBJ_DEFA"

            },

            "user": {

                "href": "/users/12507"

            }

        }

    ], 

  • Custom Object type fields may be populated by using the primary key for the custom object record.  The value includes the object and the primary key for the record.  For example:

   "CustomObjectField": {

     "type":"com.mitratech.teamconnect.core.model.category.ProjectCustomField",

     "value": {

        "href": "/projects/FCC$/61505"

     },

     "name": "CustomObjectField",

     "required": false

        },
 

  • When populating List type fields, the value, table code and i18nkey need to be populated. For example: 

FD_RecordOrigin": {

   "type":"com.mitratech.teamconnect.core.model.category.TableItemCustomField",

     "value": "RECO:ROOT_IPFO",

     "tableCode": "RECO",

     "i18nKey": "table.custom.RECO.item.IPFO",

     "displayOrder": 0,

     "name": "FD_RecordOrigin",

     "required": true

}

  • Populating Multi-Select type fields is not supported by the REST API.

  • The Matter number of a matter cannot be directly set with the REST API.  The system will leverage the automatic numbering scheme or use any client created matter numbering rules.

  • When updating records with multiple categories, it is necessary to include a section for each category in the update even if fields are not being updated.  Leaving it out will cause the category to be removed and any fields that are populated to be lost.

The response from the REST API will be the complete JSON for the record. This will match the configuration of the client’s system.  If a record has embedded object records populated, they will be included in the response.  Here is an example response based on the above examples.

{

    "entityType": "TOBJ",

    "name": "Sample Record from REST API 9",

    "openedOn": "04/12/2023 12:42:08",

    "idNumber": "TEOJ-1013",

    "idNumberGenerationExpected": false,

    "currentPhase": {

        "project": "TOBJ",

        "storedValue": "OPEN"

    },

    "phaseChanges": [

        {

            "phase": {

                "project": "TOBJ",

                "storedValue": "OPEN"

            },

            "transitionedOn": "04/12/2023 12:42:08",

            "transitionedBy": {

                "href": "/users/10509"

            },

            "duration": 0,

            "primaryKey": -1,

            "version": 0,

            "newEntity": true,

            "marked": false

        }

    ],

    "assignees": [],

    "relations": [],

    "categories": {

        "TOBJ": {

            "categoryItem": "TOBJ",

            "customFields": {

                "InvolvedField": {

                    "type": "com.mitratech.teamconnect.core.model.category.InvolvedCustomField",

                    "value": {

                        "href": "/contacts/22507"

                    },

                    "name": "InvolvedField",

                    "required": false

                },

                "MultiTwo": {

                    "type": "com.mitratech.teamconnect.core.model.category.MultiTableItemCustomField",

                    "name": "MultiTwo",

                    "required": false

                },

                "MemoField": {

                    "type": "com.mitratech.teamconnect.core.model.category.NoteCustomField",

                    "value": "Here is some text in a memo field",

                    "name": "MemoField",

                    "required": false

                },

                "TextField": {

                    "type": "com.mitratech.teamconnect.core.model.category.TextCustomField",

                    "value": "Data in a field",

                    "name": "TextField",

                    "required": false

                },

                "MultiField": {

                    "type": "com.mitratech.teamconnect.core.model.category.MultiTableItemCustomField",

                    "name": "MultiField",

                    "required": false

                },

                "ListField": {

                    "type": "com.mitratech.teamconnect.core.model.category.TableItemCustomField",

                    "name": "ListField",

                    "required": false

                },

                "DateField": {

                    "type": "com.mitratech.teamconnect.core.model.category.DateTimeCustomField",

                    "value": "02/25/2023 00:00:00",

                    "name": "DateField",

                    "required": false

                },

                "CustomObjectField": {

                    "type": "com.mitratech.teamconnect.core.model.category.ProjectCustomField",

                    "value": {

                        "href": "/projects/FCC$/61504"

                    },

                    "name": "CustomObjectField",

                    "required": false

                },

                "NumberField": {

                    "type": "com.mitratech.teamconnect.core.model.category.DecimalCustomField",

                    "value": 444333.00,

                    "name": "NumberField",

                    "required": false

                },

                "CheckboxField": {

                    "type": "com.mitratech.teamconnect.core.model.category.BooleanCustomField",

                    "value": true,

                    "name": "CheckboxField",

                    "required": false

                }

            }

        }

    },

    "embeddedProjects": [ ],

    "createdElectronically": false,

    "invoiceRelations": [ ],

    "createdBy": {

        "href": "/users/10509"

    },

    "createdOn": "04/12/2023 12:42:08",

    "modifiedBy": {

        "href": "/users/10509"

    },

    "modifiedOn": "04/12/2023 12:42:08",

    "visibility": "PUBLIC",

    "primaryKey": 157140,

    "version": 1,

    "newEntity": false,

    "marked": false

}

Troubleshooting Error Messages

You receive an error message if you enter the following:

  • An invalid username or password.
  • Invalid parameter values for a record.
  • An ID that does not exist.
  • No ID when you enter a REST method that requires an ID (PUT and DELETE).
  • An ID when the REST method does not require an ID (POST).

You might also receive an error message if you do not enter what the method requires. For example, if you are trying to update a task with the PUT method, but you do not enter new values, you receive an error message.

  • Was this article helpful?