All topics
Get started8Account, team & permissions44Units & fields70Records, views & tasks39WhatsApp & Cortex Chat68Email & social27Lead ads & distribution38Automations52Documents & quotes32Dashboards40Cortex AI18Developers & API12
Help Center·448 guidesAll topicsContact support

Records, comments and field discovery endpoints

A key reaches: the connection’s identity, discovering units and their fields, reading, writing, assigning and deleting records, and record comments. The keys in a write body are field IDs (slugs), not field names.

7 min

How it works

The base path: https://{HOST}/api/v1.

Discovery

Method and path
Scope
Purpose
GET /object/active
None
The active units (ID, name and icon)
GET /object/field/active/:objectSlug
read
The unit’s fields: ID, name and type

Reading (read.{unit})

Path
Purpose
GET /object/data/:objectSlug
A paginated list
GET /object/data/:objectSlug/:dataSlug
One record
POST /object/data/:objectSlug/search
Search with filters
GET /object/data/:objectSlug/lookup
A light search for autocomplete
GET /object/data/facets/:objectSlug
Grouped counts
GET /object/data/:objectSlug/field-options/:fieldSlug
A field’s allowed values
GET /object/data/select-options/:objectSlug/:fieldSlug
A choice field’s options
GET /object/data/:objectSlug/:dataSlug/relations/:relationSlug
The linked records
GET /object/data/:objectSlug/:dataSlug/logs
The record’s change history

Writing

Method and path
Scope
POST /object/data/:objectSlug
create
PUT /object/data/:objectSlug/:dataSlug
update
POST /object/data/:objectSlug/bulk-update
update
PATCH /object/data/:objectSlug/:dataSlug/assignees
assign
POST /object/data/:objectSlug/bulk-assign
assign
DELETE /object/data/:objectSlug/:dataSlug
delete
POST /object/data/:objectSlug/bulk-delete
delete
DELETE /object/data/:objectSlug/bulk/all
delete

The write body: { "data": { "name-8fk2": "Sara", "phone-p0zx": "+9665..." } }. Use the field ID from discovery. The display name may be refused in a required field.

Records created through the API take their fields’ default values.

If you send admin_slug in a PUT without the permission to assign, the rest is saved and an ASSIGN_SCOPE_DENIED notice comes back in warnings. Match on code, not on the text.

Comments (all read.{unit})

Path
Purpose
GET/POST /comments/:objectSlug/:dataSlug
Show the comments, or add a comment with mentions and images
PUT/DELETE /comments/:objectSlug/:dataSlug/:comment
Edit or delete a comment the key wrote
GET /comments/.../:comment/replies
The replies
POST /comments/.../:comment/reply
A reply
POST /comments/.../:comment/react
An emoji reaction

A comment is written under the name of the key’s member. Editing and deleting are for the writer only, and a key doesn’t get the owner’s override.

Ad campaign fields

Only with a key can you write the campaign, ad set, ad and lead form fields, for example for clients of an ad platform with no direct connection. Send the ID of an existing option, { "id": "...", "name": "..." }, or a text name. The name is up to 255 characters.

If something goes wrong

What you see
Why
What to do
400 on a required field
You used the field’s name instead of its ID.
Use the ID from discovery.
403 on assignees
The assign scope is missing.
Create a key with the Write level. See Key scopes, and how they combine with permissions.
404 for a comment
The comment doesn’t belong to this record.
Use the right record’s path.
Campaign values were dropped into dropped_fields
The write wasn’t made with an API key.
Send them with an API key.

A real example

Shield Security Co.
The situation

The in-house maintenance system needs to create a monthly visit for every active contract.

What they did
  1. The system read the “Visits” fields from discovery and saved their IDs.
  2. It creates a visit for each contract, and assigns it to the technician through the assignees endpoint, with a Write-level key.
The result

Visits show for technicians in Corteksa at the start of every month, with no manual entry.

A made-up company, to show the idea. The numbers are rounded.

Good to know

120 requests a minute per key.
Units and fields are read-only through a key.
Any endpoint not listed here isn’t available to integrations, even if it’s in the app.
Did this guide solve it?
If not, we’ll ask what was missing.
Open in Corteksa
Did this guide solve it?

We read every answer. To get a reply, use Contact support.