curl --request GET \
--url https://api.tomorro.com/v2/contracts/{id}/consolidated \
--header 'x-api-key: <api-key>'import requests
url = "https://api.tomorro.com/v2/contracts/{id}/consolidated"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.tomorro.com/v2/contracts/{id}/consolidated', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.tomorro.com/v2/contracts/{id}/consolidated",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.tomorro.com/v2/contracts/{id}/consolidated"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.tomorro.com/v2/contracts/{id}/consolidated")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.tomorro.com/v2/contracts/{id}/consolidated")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"id": "ctr_550e8400-e29b-41d4-a716-446655440000",
"name": "Service Agreement - Acme Corp",
"status": "draft",
"counterparty": {
"id": "550e8400-e29b-41d4-a716-446655440001",
"name": "Acme Corporation"
},
"contractType": {
"id": "550e8400-e29b-41d4-a716-446655440002",
"name": "Service Agreement"
},
"templateId": "550e8400-e29b-41d4-a716-446655440003",
"initialContractId": "550e8400-e29b-41d4-a716-446655440006",
"folderId": "550e8400-e29b-41d4-a716-446655440005",
"author": {
"id": "550e8400-e29b-41d4-a716-446655440004",
"email": "john.doe@example.com"
},
"fields": [
{
"attributeDefinitionId": "123e4567-e89b-12d3-a456-426614174000",
"name": "Department",
"value": "John Doe"
}
],
"signatories": [
{
"id": "sig_550e8400-e29b-41d4-a716-446655440005",
"name": "John Doe",
"email": "john.doe@example.com",
"type": "member"
}
],
"integration": {
"type": "salesforce",
"externalId": "sf-123456",
"externalEntity": "Opportunity",
"externalUrl": "https://my-crm.example.com/opportunities/sf-123456"
},
"createdAt": "2024-01-15T10:30:00.000Z",
"updatedAt": "2024-02-20T14:45:00.000Z",
"contractUrl": "https://app.tomorro.com/acme-corporation/project/550e8400-e29b-41d4-a716-446655440000",
"contractMembers": [
{
"id": "550e8400-e29b-41d4-a716-446655440004",
"email": "john.doe@example.com"
}
]
}Get consolidated contract
Same shape as Get contract, but fields values prefer amendment consolidation tips when present. Use Get contract for as-signed values only.
curl --request GET \
--url https://api.tomorro.com/v2/contracts/{id}/consolidated \
--header 'x-api-key: <api-key>'import requests
url = "https://api.tomorro.com/v2/contracts/{id}/consolidated"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.tomorro.com/v2/contracts/{id}/consolidated', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.tomorro.com/v2/contracts/{id}/consolidated",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.tomorro.com/v2/contracts/{id}/consolidated"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.tomorro.com/v2/contracts/{id}/consolidated")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.tomorro.com/v2/contracts/{id}/consolidated")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"id": "ctr_550e8400-e29b-41d4-a716-446655440000",
"name": "Service Agreement - Acme Corp",
"status": "draft",
"counterparty": {
"id": "550e8400-e29b-41d4-a716-446655440001",
"name": "Acme Corporation"
},
"contractType": {
"id": "550e8400-e29b-41d4-a716-446655440002",
"name": "Service Agreement"
},
"templateId": "550e8400-e29b-41d4-a716-446655440003",
"initialContractId": "550e8400-e29b-41d4-a716-446655440006",
"folderId": "550e8400-e29b-41d4-a716-446655440005",
"author": {
"id": "550e8400-e29b-41d4-a716-446655440004",
"email": "john.doe@example.com"
},
"fields": [
{
"attributeDefinitionId": "123e4567-e89b-12d3-a456-426614174000",
"name": "Department",
"value": "John Doe"
}
],
"signatories": [
{
"id": "sig_550e8400-e29b-41d4-a716-446655440005",
"name": "John Doe",
"email": "john.doe@example.com",
"type": "member"
}
],
"integration": {
"type": "salesforce",
"externalId": "sf-123456",
"externalEntity": "Opportunity",
"externalUrl": "https://my-crm.example.com/opportunities/sf-123456"
},
"createdAt": "2024-01-15T10:30:00.000Z",
"updatedAt": "2024-02-20T14:45:00.000Z",
"contractUrl": "https://app.tomorro.com/acme-corporation/project/550e8400-e29b-41d4-a716-446655440000",
"contractMembers": [
{
"id": "550e8400-e29b-41d4-a716-446655440004",
"email": "john.doe@example.com"
}
]
}Authorizations
API key for authentication. Get your key at https://app.tomorro.com/settings/integrations?integration=api-key
Path Parameters
The unique identifier (UUID) of the contract
"550e8400-e29b-41d4-a716-446655440000"
Response
Contract with consolidated field values
Unique identifier for the contract.
"ctr_550e8400-e29b-41d4-a716-446655440000"
The name or title of the contract.
"Service Agreement - Acme Corp"
The current status of the contract.
draft: The contract is being created or edited.negotiating: The contract is being reviewed with counterparties.signing: The contract is in the signature process.signed: All parties have signed the contract.canceled: The contract has been canceled.
"draft"
The counterparty associated with this contract.
Show child attributes
Show child attributes
{ "id": "550e8400-e29b-41d4-a716-446655440001", "name": "Acme Corporation" }
The type of the contract, it is composed of many templates.
Show child attributes
Show child attributes
{ "id": "550e8400-e29b-41d4-a716-446655440002", "name": "Service Agreement" }
The template used to create this contract.
"550e8400-e29b-41d4-a716-446655440003"
When this contract is an amendment, the id of the initial (root) contract it amends. null for initial contracts and for amendments that have been unlinked.
"550e8400-e29b-41d4-a716-446655440006"
The folder the contract is filed in. null when the contract sits at the root of the contract list. Matches the folderId accepted on PATCH /contracts/{id} and the folderId filter on GET /contracts.
"550e8400-e29b-41d4-a716-446655440005"
The member who created this contract.
Show child attributes
Show child attributes
{ "id": "550e8400-e29b-41d4-a716-446655440004", "email": "john.doe@example.com" }
The fields associated with this contract.
Show child attributes
Show child attributes
[ { "attributeDefinitionId": "123e4567-e89b-12d3-a456-426614174000", "name": "Department", "value": "John Doe" } ]
The signatories associated with this contract.
Show child attributes
Show child attributes
[ { "id": "sig_550e8400-e29b-41d4-a716-446655440005", "name": "John Doe", "email": "john.doe@example.com", "type": "member" } ]
The third-party system this contract is linked to, when it was created via an integration (currently Salesforce or HubSpot). The shape mirrors the integration payload accepted on POST /contracts, so you can use this to look up the originating record in your CRM. null when the contract has no external link or was created from the Tomorro web app.
Show child attributes
Show child attributes
{ "type": "salesforce", "externalId": "sf-123456", "externalEntity": "Opportunity", "externalUrl": "https://my-crm.example.com/opportunities/sf-123456" }
Time at which the contract was created. Formatted as an ISO 8601 date-time string.
"2024-01-15T10:30:00.000Z"
Time at which the contract was last updated. Formatted as an ISO 8601 date-time string.
"2024-02-20T14:45:00.000Z"
Direct link to the contract in the Tomorro app (https://app.tomorro.com/{organizationSlug}/project/{contractId}).
"https://app.tomorro.com/acme-corporation/project/550e8400-e29b-41d4-a716-446655440000"
The list of participants with this contract.
Show child attributes
Show child attributes
[ { "id": "550e8400-e29b-41d4-a716-446655440004", "email": "john.doe@example.com" } ]