REST APIDocuments and mediaCloudObjectRelations
CloudObjectRelations
CloudObjectRelations: list, get, create, update and delete, plus batch operations.
- 8 operations
- 53 fields
- Schema CloudObjectRelation
- GraphQL: cloudObjectRelation
The summaries on this page are generated from the specification; written descriptions come with the next releases of the reference.
| Method | Path | Operation |
|---|---|---|
| GET | /entities/CloudObjectRelations | List CloudObjectRelations |
| POST | /entities/CloudObjectRelations | Create CloudObjectRelation |
| GET | /entities/CloudObjectRelations/{id} | Get CloudObjectRelation |
| PATCH | /entities/CloudObjectRelations/{id} | Update CloudObjectRelation |
| DEL | /entities/CloudObjectRelations/{id} | Delete CloudObjectRelation |
| POST | /entities/CloudObjectRelations/batch-modify | Create or update CloudObjectRelations in a batch |
| POST | /entities/CloudObjectRelations/batch-delete | Delete CloudObjectRelations in a batch |
| POST | /entities/CloudObjectRelations/batch-restore | Restore deleted CloudObjectRelations |
GET List CloudObjectRelations
Returns the CloudObjectRelations the API application can read, one page at a time. In the list envelope, total counts every match and page_info pages through them.
Query parameters
| Name | Type | Description |
|---|---|---|
include-deleted | boolean | Include soft-deleted records. Lists only; get-by-id refuses it. |
first | integer | Page size. Default 30, maximum 100; a larger value is refused with HTTP 400, code 117. |
last | integer | Return the last N records of the result; together with first, the last N of the first M. Maximum 100. |
before | string | Cursor from page_info.start_cursor, to page backwards. URL-encode it. |
after | string | Cursor from page_info.end_cursor of the previous page. URL-encode it: cursors are base64, and a raw + becomes a space. |
expand | string | Related records to return inline instead of their URIs, comma-separated; dots reach nested relations, as in account_relations.account. |
order-by | string | Fields to sort by, comma-separated. A leading - sorts descending, as in -modified; dotted paths sort by related fields. |
filter | object | filter[field]=value. Separate several values with a raw comma (OR), as in filter[name]=north,south. Encode a comma that belongs to a value as %2C. URLSearchParams and Python requests encode every comma, so build the filter part of the query string yourself. Dotted paths filter on related records, as in filter[owner.email]. Encode a + in a value as %2B: query values are form-decoded, so a raw + becomes a space. |
filter-op | object | filter-op[field]=operator, one per field: eq (the default), ieq, not-eq, not-ieq, contains, icontains, starts, istarts, ends, iends, gt, gte, lt, lte, between, null, not-null, empty and not-empty. null, not-null, empty and not-empty take no filter value; gt, gte, lt and lte take exactly one. |
load-only | string | Fields to return, comma-separated (raw or encoded commas both work here); dots select nested fields, as in owner.id. All fields are returned without it. Lists only: get-by-id refuses it with HTTP 400, code 118. |
Responses
200 Page of CloudObjectRelation records.: success, total, page_info, data 400 Bad request 401 Not authenticated 429 Rate limited 500 Server error
curl 'https://{region}.api.coevera.com/api/v100/rest/spaces/{space_id}/entities/CloudObjectRelations?first=10' \
--user "$COEVERA_API_KEY:$COEVERA_API_SECRET"fetch('https://{region}.api.coevera.com/api/v100/rest/spaces/{space_id}/entities/CloudObjectRelations?first=10', {
headers: {
Authorization: "Basic " + btoa(`${process.env.COEVERA_API_KEY}:${process.env.COEVERA_API_SECRET}`)
}
})import os
import requests
response = requests.get(
"https://{region}.api.coevera.com/api/v100/rest/spaces/{space_id}/entities/CloudObjectRelations",
params={
"first": "10"
},
auth=(os.environ["COEVERA_API_KEY"], os.environ["COEVERA_API_SECRET"])
)POST Create CloudObjectRelation
Creates one record and answers 201 with it.
Query parameters
| Name | Type | Description |
|---|---|---|
validation-level | integer | Bit mask that relaxes validation on this write. 0 (the default) validates everything. Bits: 2 skip unchanged fields, 4 skip admin-defined validations, 8 allow read-only fields, 16 skip relation checks, 32 skip value checks, 64 skip invalid recalculations, 128 skip step-checklist gates, 256 add conditional field requirements, 512 skip uniqueness checks. Add bits together (20 = 4 + 16); member names and comma lists such as 4,16 work too. A value with an internal-only bit is refused with HTTP 400, code 117. |
Request body
The new record's fields. Relations are set by id. Schema createCloudObjectRelationInput; the fields are in CloudObjectRelation fields.
Responses
201 The created CloudObjectRelation record.: success, data 400 Bad request 401 Not authenticated 422 Validation failed 429 Rate limited 500 Server error
curl 'https://{region}.api.coevera.com/api/v100/rest/spaces/{space_id}/entities/CloudObjectRelations' \
--request POST \
--user "$COEVERA_API_KEY:$COEVERA_API_SECRET" \
--header 'Content-Type: application/json' \
--data '{}'fetch('https://{region}.api.coevera.com/api/v100/rest/spaces/{space_id}/entities/CloudObjectRelations', {
method: 'POST',
headers: {
Authorization: "Basic " + btoa(`${process.env.COEVERA_API_KEY}:${process.env.COEVERA_API_SECRET}`),
'Content-Type': 'application/json'
},
body: JSON.stringify({})
})import os
import requests
response = requests.post(
"https://{region}.api.coevera.com/api/v100/rest/spaces/{space_id}/entities/CloudObjectRelations",
headers={
"Content-Type": "application/json"
},
auth=(os.environ["COEVERA_API_KEY"], os.environ["COEVERA_API_SECRET"]),
json={}
)GET Get CloudObjectRelation
Returns one record by id. expand returns related records inline instead of their URIs.
Path parameters
| Name | Type | Description |
|---|---|---|
id | string (uuid) | Id of the CloudObjectRelation record to retrieve. Required |
Query parameters
| Name | Type | Description |
|---|---|---|
expand | string | Related records to return inline instead of their URIs, comma-separated; dots reach nested relations. The only parameter this call accepts. |
Responses
200 The CloudObjectRelation record.: success, data 400 Bad request 401 Not authenticated 404 Not found 429 Rate limited 500 Server error
curl 'https://{region}.api.coevera.com/api/v100/rest/spaces/{space_id}/entities/CloudObjectRelations/be000000-0000-4000-a000-000000000001' \
--user "$COEVERA_API_KEY:$COEVERA_API_SECRET"fetch('https://{region}.api.coevera.com/api/v100/rest/spaces/{space_id}/entities/CloudObjectRelations/be000000-0000-4000-a000-000000000001', {
headers: {
Authorization: "Basic " + btoa(`${process.env.COEVERA_API_KEY}:${process.env.COEVERA_API_SECRET}`)
}
})import os
import requests
response = requests.get(
"https://{region}.api.coevera.com/api/v100/rest/spaces/{space_id}/entities/CloudObjectRelations/be000000-0000-4000-a000-000000000001",
auth=(os.environ["COEVERA_API_KEY"], os.environ["COEVERA_API_SECRET"])
)PATCH Update CloudObjectRelation
Changes the fields you send and leaves the rest as they are; there is no PUT.
Path parameters
| Name | Type | Description |
|---|---|---|
id | string (uuid) | Id of the CloudObjectRelation record to update. Required |
Query parameters
| Name | Type | Description |
|---|---|---|
validation-level | integer | Bit mask that relaxes validation on this write. 0 (the default) validates everything. Bits: 2 skip unchanged fields, 4 skip admin-defined validations, 8 allow read-only fields, 16 skip relation checks, 32 skip value checks, 64 skip invalid recalculations, 128 skip step-checklist gates, 256 add conditional field requirements, 512 skip uniqueness checks. Add bits together (20 = 4 + 16); member names and comma lists such as 4,16 work too. A value with an internal-only bit is refused with HTTP 400, code 117. |
Request body
The fields to change. Schema updateCloudObjectRelationInput; the fields are in CloudObjectRelation fields.
Responses
200 The changed CloudObjectRelation record.: success, data 400 Bad request 401 Not authenticated 404 Not found 422 Validation failed 429 Rate limited 500 Server error
curl 'https://{region}.api.coevera.com/api/v100/rest/spaces/{space_id}/entities/CloudObjectRelations/be000000-0000-4000-a000-000000000001' \
--request PATCH \
--user "$COEVERA_API_KEY:$COEVERA_API_SECRET" \
--header 'Content-Type: application/json' \
--data '{
"cloud_object": {}
}'fetch('https://{region}.api.coevera.com/api/v100/rest/spaces/{space_id}/entities/CloudObjectRelations/be000000-0000-4000-a000-000000000001', {
method: 'PATCH',
headers: {
Authorization: "Basic " + btoa(`${process.env.COEVERA_API_KEY}:${process.env.COEVERA_API_SECRET}`),
'Content-Type': 'application/json'
},
body: JSON.stringify({
cloud_object: {}
})
})import os
import requests
response = requests.patch(
"https://{region}.api.coevera.com/api/v100/rest/spaces/{space_id}/entities/CloudObjectRelations/be000000-0000-4000-a000-000000000001",
headers={
"Content-Type": "application/json"
},
auth=(os.environ["COEVERA_API_KEY"], os.environ["COEVERA_API_SECRET"]),
json={
"cloud_object": {}
}
)DEL Delete CloudObjectRelation
Deletes one record and answers with its id.
Path parameters
| Name | Type | Description |
|---|---|---|
id | string (uuid) | Id of the CloudObjectRelation record to delete. Required |
Responses
200 Deletion confirmation.: success, data 400 Bad request 401 Not authenticated 404 Not found 429 Rate limited 500 Server error
curl 'https://{region}.api.coevera.com/api/v100/rest/spaces/{space_id}/entities/CloudObjectRelations/be000000-0000-4000-a000-000000000001' \
--request DELETE \
--user "$COEVERA_API_KEY:$COEVERA_API_SECRET"fetch('https://{region}.api.coevera.com/api/v100/rest/spaces/{space_id}/entities/CloudObjectRelations/be000000-0000-4000-a000-000000000001', {
method: 'DELETE',
headers: {
Authorization: "Basic " + btoa(`${process.env.COEVERA_API_KEY}:${process.env.COEVERA_API_SECRET}`)
}
})import os
import requests
response = requests.delete(
"https://{region}.api.coevera.com/api/v100/rest/spaces/{space_id}/entities/CloudObjectRelations/be000000-0000-4000-a000-000000000001",
auth=(os.environ["COEVERA_API_KEY"], os.environ["COEVERA_API_SECRET"])
)POST Create or update CloudObjectRelations in a batch
An item with an id updates that record; an item without one creates a record. By default one invalid item fails the whole call with HTTP 422 and nothing is written; with rollback-method=1 the response has an id or an error for each item, in input order.
Query parameters
| Name | Type | Description |
|---|---|---|
validation-level | integer | Bit mask that relaxes validation on this write. 0 (the default) validates everything. Bits: 2 skip unchanged fields, 4 skip admin-defined validations, 8 allow read-only fields, 16 skip relation checks, 32 skip value checks, 64 skip invalid recalculations, 128 skip step-checklist gates, 256 add conditional field requirements, 512 skip uniqueness checks. Add bits together (20 = 4 + 16); member names and comma lists such as 4,16 work too. A value with an internal-only bit is refused with HTTP 400, code 117. |
rollback-method | integer | 0, the default: one failed item fails the whole batch (HTTP 422, or 404 for an unknown id) and nothing is written. 1: the valid items are written and the call answers 200 with success false and one result per item, an id or an error, in input order. Check every item. |
Request body
A JSON array of records: an item with an id updates, an item without one creates. Schema batchCloudObjectRelationInput; the fields are in CloudObjectRelation fields.
Responses
200 Result per item, in request order: the id of the created or updated record, or the error.: success, data 400 Bad request 401 Not authenticated 422 Validation failed 429 Rate limited 500 Server error
curl 'https://{region}.api.coevera.com/api/v100/rest/spaces/{space_id}/entities/CloudObjectRelations/batch-modify' \
--request POST \
--user "$COEVERA_API_KEY:$COEVERA_API_SECRET" \
--header 'Content-Type: application/json' \
--data '[
{},
{
"id": "be000000-0000-4000-a000-000000000001",
"cloud_object": {}
}
]'fetch('https://{region}.api.coevera.com/api/v100/rest/spaces/{space_id}/entities/CloudObjectRelations/batch-modify', {
method: 'POST',
headers: {
Authorization: "Basic " + btoa(`${process.env.COEVERA_API_KEY}:${process.env.COEVERA_API_SECRET}`),
'Content-Type': 'application/json'
},
body: JSON.stringify([
{},
{
id: 'be000000-0000-4000-a000-000000000001',
cloud_object: {}
}
])
})import os
import requests
response = requests.post(
"https://{region}.api.coevera.com/api/v100/rest/spaces/{space_id}/entities/CloudObjectRelations/batch-modify",
headers={
"Content-Type": "application/json"
},
auth=(os.environ["COEVERA_API_KEY"], os.environ["COEVERA_API_SECRET"]),
json=[
{},
{
"id": "be000000-0000-4000-a000-000000000001",
"cloud_object": {}
}
]
)POST Delete CloudObjectRelations in a batch
Deletes the records whose ids are in the body, a JSON array. By default an unknown id fails the whole call with HTTP 404.
Query parameters
| Name | Type | Description |
|---|---|---|
rollback-method | integer | 0, the default: one failed item fails the whole batch (HTTP 422, or 404 for an unknown id) and nothing is written. 1: the valid items are written and the call answers 200 with success false and one result per item, an id or an error, in input order. Check every item. |
Request body
A JSON array of ids.
Responses
200 Result per id, in request order: the id of the deleted record, or the error.: success, data 400 Bad request 401 Not authenticated 404 Not found 422 Validation failed 429 Rate limited 500 Server error
curl 'https://{region}.api.coevera.com/api/v100/rest/spaces/{space_id}/entities/CloudObjectRelations/batch-delete' \
--request POST \
--user "$COEVERA_API_KEY:$COEVERA_API_SECRET" \
--header 'Content-Type: application/json' \
--data '[
"be000000-0000-4000-a000-000000000001",
"be000000-0000-4000-a000-000000000002"
]'fetch('https://{region}.api.coevera.com/api/v100/rest/spaces/{space_id}/entities/CloudObjectRelations/batch-delete', {
method: 'POST',
headers: {
Authorization: "Basic " + btoa(`${process.env.COEVERA_API_KEY}:${process.env.COEVERA_API_SECRET}`),
'Content-Type': 'application/json'
},
body: JSON.stringify(['be000000-0000-4000-a000-000000000001', 'be000000-0000-4000-a000-000000000002'])
})import os
import requests
response = requests.post(
"https://{region}.api.coevera.com/api/v100/rest/spaces/{space_id}/entities/CloudObjectRelations/batch-delete",
headers={
"Content-Type": "application/json"
},
auth=(os.environ["COEVERA_API_KEY"], os.environ["COEVERA_API_SECRET"]),
json=[
"be000000-0000-4000-a000-000000000001",
"be000000-0000-4000-a000-000000000002"
]
)POST Restore deleted CloudObjectRelations
Restores the deleted records whose ids are in the body, a JSON array.
Query parameters
| Name | Type | Description |
|---|---|---|
rollback-method | integer | 0, the default: one failed item fails the whole batch (HTTP 422, or 404 for an unknown id) and nothing is written. 1: the valid items are written and the call answers 200 with success false and one result per item, an id or an error, in input order. Check every item. |
Request body
A JSON array of ids.
Responses
200 Result per id, in request order: the id of the restored record, or the error.: success, data 400 Bad request 401 Not authenticated 404 Not found 422 Validation failed 429 Rate limited 500 Server error
curl 'https://{region}.api.coevera.com/api/v100/rest/spaces/{space_id}/entities/CloudObjectRelations/batch-restore' \
--request POST \
--user "$COEVERA_API_KEY:$COEVERA_API_SECRET" \
--header 'Content-Type: application/json' \
--data '[
"be000000-0000-4000-a000-000000000001",
"be000000-0000-4000-a000-000000000002"
]'fetch('https://{region}.api.coevera.com/api/v100/rest/spaces/{space_id}/entities/CloudObjectRelations/batch-restore', {
method: 'POST',
headers: {
Authorization: "Basic " + btoa(`${process.env.COEVERA_API_KEY}:${process.env.COEVERA_API_SECRET}`),
'Content-Type': 'application/json'
},
body: JSON.stringify(['be000000-0000-4000-a000-000000000001', 'be000000-0000-4000-a000-000000000002'])
})import os
import requests
response = requests.post(
"https://{region}.api.coevera.com/api/v100/rest/spaces/{space_id}/entities/CloudObjectRelations/batch-restore",
headers={
"Content-Type": "application/json"
},
auth=(os.environ["COEVERA_API_KEY"], os.environ["COEVERA_API_SECRET"]),
json=[
"be000000-0000-4000-a000-000000000001",
"be000000-0000-4000-a000-000000000002"
]
)CloudObjectRelation fields
| Field | Type | Notes |
|---|---|---|
id | uuid | Read-only Unique identifier of entity. |
cloud_object | uri → CloudObjects | Cloud object (file) being linked. |
report_schedule | uri → ReportSchedules | Report schedule the file is attached to (e.g. |
text_message | uri → TextMessages | Text message (SMS/MMS) the file is attached to. |
account_id | uuid → Accounts | Id of the linked account. |
activity_id | uuid | Id of the linked appointment or task, or empty when not linked. |
approval_process_id | uuid → ApprovalProcesses | Id of the linked approval process. |
call_id | uuid → Calls | Id of the linked call. |
cloud_object_folder_id | uuid → CloudObjectFolders | Id of the folder within the parent record, or empty when stored at the record root. |
cloud_object_id | uuid → CloudObjects | Id of the linked file. |
contact_id | uuid → Contacts | Id of the linked contact. |
custom_entity_id | uuid | Id of the linked custom entity record. |
email_sequence_id | uuid → EmailSequences | Id of the linked email sequence. |
email_template_id | uuid → EmailTemplates | Id of the linked email template. |
field_mapping_id | uuid → FieldMappings | Id of the linked field mapping. |
Show all 53 fields
| Field | Type | Notes |
|---|---|---|
lead_oppty_id | uuid | Id of the linked lead or opportunity, or empty when not linked. |
media_id | uuid → Medias | Id of the linked media record. |
message_id | uuid | Id of the linked email or memo, or empty when not linked. |
online_form_field_id | uuid → Fields | Id of the online form field the file was uploaded into. |
online_form_id | uuid → OnlineForms | Id of the linked online form submission. |
process_id | uuid → Processes | Id of the linked sales process. |
process_template_id | uuid → ProcessTemplates | Id of the linked sales process template. |
project_id | uuid → Projects | Id of the linked project. |
quote_id | uuid → Quotes | Id of the linked quote. |
report_schedule_id | uuid → ReportSchedules | Id of the linked report schedule. |
text_message_id | uuid → TextMessages | Id of the linked text message. |
revision | integer | Revision when entity was lastly changed. |
is_delete_protected | boolean | Read-only True when the record is protected against deletion because it must always exist in the space. |
is_deleted | boolean | Read-only Specifies if the entity is considered deleted. |
modified | date-time | Read-only Last modification time. |
created | date-time | Read-only Creation time. |
account | uri → Accounts | Read-only Account the file is attached to, or empty when not attached to an account. |
appointment | uri → Appointments | Read-only Appointment the file is attached to. |
task | uri → Tasks | Read-only Task the file is attached to. |
approval_process | uri → ApprovalProcesses | Read-only Approval process the file is attached to. |
call | uri → Calls | Read-only Call the file is attached to (e.g. |
cloud_object_folder | uri → CloudObjectFolders | Read-only Folder the file is filed under within the parent record, or empty when stored at the record root. |
contact | uri → Contacts | Read-only Contact the file is attached to, or empty when not attached to a contact. |
custom_entity | uri | Read-only Custom entity record the file is attached to. |
email_sequence | uri → EmailSequences | Read-only Email sequence the file is attached to. |
email_template | uri → EmailTemplates | Read-only Email template the file is attached to as a template attachment. |
field_mapping | uri → FieldMappings | Read-only Field mapping the file is attached to (e.g. |
lead | uri → Leads | Read-only Lead the file is attached to. |
oppty | uri → Opportunities | Read-only Opportunity the file is attached to. |
media | uri → Medias | Read-only Media record the file is attached to. |
email | uri → Emails | Read-only Email the file is attached to (e.g. |
memo | uri → Memos | Read-only Memo the file is attached to. |
online_form_field | uri → Fields | Read-only Online form field the file was uploaded into. |
online_form | uri → OnlineForms | Read-only Online form submission the file was uploaded with. |
process | uri → Processes | Read-only Sales process the file is attached to. |
process_template | uri → ProcessTemplates | Read-only Sales process template the file is attached to. |
project | uri → Projects | Read-only Project the file is attached to. |
quote | uri → Quotes | Read-only Quote the file is attached to. |
Custom fields appear in your space's live spec: fetch it with your credentials.
Errors
Every error body has success: false, http_status, code, name and message. Branch on code: the status alone does not tell a missing permission from a bad parameter. All codes: error codes; how to handle them: Errors.
| HTTP | When |
|---|---|
| 400 | Bad request: a bad or unknown parameter (codes 117, 118), a missing permission (code 50), conflicting data (code 2002) or any other API error. The REST API answers 400 where others answer 403 or 409; check code. |
| 401 | Not authenticated: missing or wrong credentials, a credential of another space, or an expired token (code 401, ERROR_UNAUTHORIZED). |
| 404 | No such record or entity (code 143 ERROR_NO_ENTITY, or 2006 ERROR_UNKNOWN_TYPE). |
| 422 | Validation failed (code 40000, with the failing fields) or a required parameter is missing (code 119). By default one failed item fails a whole batch and nothing is written. |
| 429 | Too many requests (code 182). Wait for the seconds in Retry-After, then retry. |
| 500 | Unexpected server error (code 1000, ERROR_UNKNOWN). |