Records

Rows — the items a collection holds, and the sub-records that hang one level off them.

GET/records/{collectionId}

List records

Top-level records in a collection. Archived rows and sub-records are excluded; each row carries subRecordCount and amendmentCount.

From an extension view: requires the records:read scope

Path parameters

collectionId*stringCollection id.
bash
curl -X GET 'https://api.conexus-x.example/api/records/{collectionId}' \
  -H 'x-api-key: YOUR_PIT_KEY'

Example response

json
{
  "records": [
    {
      "_id": "66f1a2b3c4d5e6f7a8b9c4d1",
      "name": "Northwind — renewal",
      "position": 0,
      "collectionName": "66f1a2b3c4d5e6f7a8b9c2b1",
      "parentRecord": null,
      "subRecordCount": 2,
      "amendmentCount": 3,
      "module": "66f1a2b3c4d5e6f7a8b9c1a1",
      "workspace": "66f1a2b3c4d5e6f7a8b9c0d1",
      "isCompleted": false,
      "isArchived": false,
      "createdAt": "2026-02-01T10:00:00.000Z",
      "updatedAt": "2026-08-02T15:40:11.000Z"
    }
  ]
}
POST/records/{collectionId}

Create a record

Adds a record to a collection.

From an extension view: requires the records:write scope

Path parameters

collectionId*stringCollection id.

Body

name*stringRecord name.
bash
curl -X POST 'https://api.conexus-x.example/api/records/{collectionId}' \
  -H 'x-api-key: YOUR_PIT_KEY'
  -H 'Content-Type: application/json' \
  -d '{"name":"Northwind — renewal"}'

Example response

json
{
  "record": {
    "_id": "66f1a2b3c4d5e6f7a8b9c4d1",
    "name": "Northwind — renewal",
    "position": 0,
    "collectionName": "66f1a2b3c4d5e6f7a8b9c2b1",
    "parentRecord": null,
    "subRecordCount": 2,
    "amendmentCount": 3,
    "module": "66f1a2b3c4d5e6f7a8b9c1a1",
    "workspace": "66f1a2b3c4d5e6f7a8b9c0d1",
    "isCompleted": false,
    "isArchived": false,
    "createdAt": "2026-02-01T10:00:00.000Z",
    "updatedAt": "2026-08-02T15:40:11.000Z"
  }
}
GET/records/{recordId}/sub-records

List sub-records

The sub-records of one record. They carry the module's subrecord-scoped columns, not the board's.

From an extension view: requires the records:read scope

Path parameters

recordId*stringThe parent record id.
bash
curl -X GET 'https://api.conexus-x.example/api/records/{recordId}/sub-records' \
  -H 'x-api-key: YOUR_PIT_KEY'

Example response

json
{
  "records": [
    {
      "_id": "66f1a2b3c4d5e6f7a8b9c4d1",
      "name": "Northwind — renewal",
      "position": 0,
      "collectionName": "66f1a2b3c4d5e6f7a8b9c2b1",
      "parentRecord": "66f1a2b3c4d5e6f7a8b9c4d1",
      "subRecordCount": 0,
      "amendmentCount": 3,
      "module": "66f1a2b3c4d5e6f7a8b9c1a1",
      "workspace": "66f1a2b3c4d5e6f7a8b9c0d1",
      "isCompleted": false,
      "isArchived": false,
      "createdAt": "2026-02-01T10:00:00.000Z",
      "updatedAt": "2026-08-02T15:40:11.000Z"
    }
  ]
}
POST/records/{recordId}/sub-records

Create a sub-record

Adds a sub-record under a record. The first sub-record on a module seeds its sub-record columns.

From an extension view: requires the records:write scope

Path parameters

recordId*stringThe parent record id.

Body

name*stringSub-record name.
bash
curl -X POST 'https://api.conexus-x.example/api/records/{recordId}/sub-records' \
  -H 'x-api-key: YOUR_PIT_KEY'
  -H 'Content-Type: application/json' \
  -d '{"name":"Follow-up call"}'

Example response

json
{
  "record": {
    "_id": "66f1a2b3c4d5e6f7a8b9c4d1",
    "name": "Northwind — renewal",
    "position": 0,
    "collectionName": "66f1a2b3c4d5e6f7a8b9c2b1",
    "parentRecord": "66f1a2b3c4d5e6f7a8b9c4d1",
    "subRecordCount": 2,
    "amendmentCount": 3,
    "module": "66f1a2b3c4d5e6f7a8b9c1a1",
    "workspace": "66f1a2b3c4d5e6f7a8b9c0d1",
    "isCompleted": false,
    "isArchived": false,
    "createdAt": "2026-02-01T10:00:00.000Z",
    "updatedAt": "2026-08-02T15:40:11.000Z"
  }
}
PUT/records/{recordId}

Update a record

Renames, reorders, moves between collections, completes or archives a record — a sub-record IS a record, so the same route edits one.

From an extension view: requires the records:write scope

Path parameters

recordId*stringRecord id (or sub-record id).

Body

namestringNew name.
positionnumberNew sort position.
collectionNamestringTarget collection id — set to move the record between collections.
isCompletedbooleanMark complete/incomplete.
isArchivedbooleanArchive/restore.
bash
curl -X PUT 'https://api.conexus-x.example/api/records/{recordId}' \
  -H 'x-api-key: YOUR_PIT_KEY'
  -H 'Content-Type: application/json' \
  -d '{"isCompleted":true}'

Example response

json
{
  "record": {
    "_id": "66f1a2b3c4d5e6f7a8b9c4d1",
    "name": "Northwind — renewal",
    "position": 0,
    "collectionName": "66f1a2b3c4d5e6f7a8b9c2b1",
    "parentRecord": null,
    "subRecordCount": 2,
    "amendmentCount": 3,
    "module": "66f1a2b3c4d5e6f7a8b9c1a1",
    "workspace": "66f1a2b3c4d5e6f7a8b9c0d1",
    "isCompleted": false,
    "isArchived": false,
    "createdAt": "2026-02-01T10:00:00.000Z",
    "updatedAt": "2026-08-02T15:40:11.000Z"
  }
}
DELETE/records/{recordId}

Delete a record

Deletes a record. Deleting a parent archives its sub-records with it.

From an extension view: requires the records:write scope

Path parameters

recordId*stringRecord id (or sub-record id).
bash
curl -X DELETE 'https://api.conexus-x.example/api/records/{recordId}' \
  -H 'x-api-key: YOUR_PIT_KEY'

Example response

json
{
  "message": "Record deleted.",
  "archivedSubRecords": 2
}