Skip to content

Caraer API Documentation (1.8.9)

This documentation provides an overview of the Caraer API, including authentication methods, endpoint details, data models, and integration guidelines for building on the Caraer platform.

Download OpenAPI description
Languages
Servers
Mock server
https://developer.caraer.com/_mock/apis
Production
https://v2.api.caraer.com

Auth endpoints handle user authentication and session management. They support login (email/password), registration, password reset (request and reset), email verification (verify and resend), logout, company selection, and user profile retrieval (/me). Authentication uses Bearer tokens and integrates with the multi-tenant company system, allowing users to access multiple companies. The auth system manages user sessions, email verification tokens, password reset tokens, and company access. Auth endpoints temporarily disable scope violation tracking during authentication operations to allow unauthenticated access to login/register endpoints.

Sync configurations define automated data synchronization mappings between CaraerObjects. A Sync specifies how property values from source Records should be mapped to target Records, enabling automated data flow between different object types. Syncs use Mappings that define source and target properties, allowing data to be copied, transformed, or synchronized when source Records are created or updated. Syncs are used for data integration, automation workflows, and keeping related data in sync across the platform. They enable scenarios like automatically creating a Company Record when a User Record is created, or syncing Candidate data to an external system. Syncs support complex mapping rules and can trigger on various Record events.

Operations

Relations define typed connections between CaraerObjects, enabling graph-like data modeling. A Relation specifies how Records of one Object can connect to Records of another Object (e.g., "Candidate applies to Vacancy", "Company has Employees"). Relations create directed or bidirectional relationships between Records, allowing navigation and querying of related data. Relations support cardinality, directionality, and can be used in filtering, sorting, and querying Records. They enable complex data structures where Records reference each other, creating a graph database model on top of the object-oriented schema. Relations are essential for modeling real-world relationships between entities and enable powerful querying capabilities across connected Records.

Operations

WebMenus define navigation structures for public-facing websites. They specify menu items with labels and URLs, locations (header, footer, sidebar), environments (production, preview), and can include custom URLs or links to Records and Webpages. WebMenus enable dynamic navigation that adapts based on published content, allowing websites to automatically reflect changes in the data model. Menus can be activated/deactivated, organized hierarchically, and support multiple environments for preview/testing before production deployment. WebMenus are essential for building dynamic, content-driven navigation in career sites and public-facing applications.

Operations

Feeds expose Records as XML or JSON for job boards and external integrations.

Operations

Forms are dynamic data collection interfaces associated with CaraerObjects. They use a grid-based layout system with FormItems (GridItems) arranged in rows and columns that can render various field types based on Property definitions. Forms support multi-step wizards, lead scoring configurations, styling options (standard, underline, plain), and form submissions that create Records. Forms enable public-facing data collection (e.g., job applications, contact forms, candidate registrations) and can be embedded in Webpages. Forms validate input against Property validation rules and can include nested forms (inner forms) for complex data structures. Form submissions trigger FormSubmissionEvents and can create Relations between Records. Forms are essential for converting external user input into structured Records in the platform.

Operations

File endpoints manage file uploads and downloads using S3-compatible storage. Files are used for attachments, images, documents, and media in Records and Webpages. Files support property format constraints (when used with file-type Properties) and access control through scopes. The file system provides pre-signed URLs for secure, time-limited access to files, supports bulk uploads, and can list files associated with specific Records. Files are stored with unique keys and can be deleted when no longer needed. The file system enables rich content management, allowing Records and Webpages to include images, documents, and other media assets.

Operations

Users represent authenticated individuals in the system. Users belong to one or more Companies and can switch between them. Users can be members of Teams, have roles (SUPER_ADMIN, DEVELOPER, etc.) and scopes that determine their permissions. Users can have associated Records (if the User trait is enabled on an object), enabling user profiles and authentication. Each User has access configurations (HAS_ACCESS_TO) per company that define scopes, filters, and permissions. Users can request additional permissions, reset their permissions to match their team's permissions, and manage their own profile data. The User system enables authentication, authorization, and user management across the multi-tenant platform.

SavedFilters are reusable filter configurations that users can save and share. They encapsulate complex filter criteria for Records, enabling quick access to filtered data views without re-entering filter conditions. SavedFilters improve UX by allowing users to bookmark common queries (e.g., "Active Candidates", "Open Vacancies", "My Applications") and share them with team members. Filters can be soft-deleted and restored, and they support the same filter capabilities as Views but are stored separately for quick access. SavedFilters enable consistent data access patterns across teams and reduce the time needed to access frequently-used filtered views.

Operations

Serverless functions are runtime+code units attached to Apps, used in Webhooks and other extensibility points.

Operations

API endpoints for managing modules

Operations

Views are saved configurations for displaying Records that define filters, sorting, visible properties (show), grouping, calculations, row heights, and display traits (table, flow). Views enable users to create custom perspectives on data (e.g., "My Active Candidates", "High Priority Vacancies", "Recent Applications"). Each View belongs to a CaraerObject and specifies how Records of that Object should be displayed. Views can be shared with other users, set as default views, and include query strings for search functionality. Views support different traits like Table (tabular display), Flow (kanban-style workflow), and can include calculations for aggregated data. Views improve UX by allowing users to bookmark common queries and share them with team members, ensuring consistent data presentation across the platform.

Operations

Partner endpoints manage partner relationships and integrations. Partners may have special access, integrations, or white-label configurations. Partner endpoints enable reseller functionality, allowing partners to create companies, copy databases, and manage their partner relationships. Partners can have reseller relationships with companies, enabling multi-level partner structures. The partner system supports database copying for white-label deployments and partner-specific company management.

Teams are user groups within a Company that enable role-based access control and collaboration. Teams can be assigned to Records, enabling team-based workflows and permissions. Teams help organize users and manage access to data and features. Team members inherit team permissions and scopes, allowing administrators to manage access at the team level rather than individually. Teams support member management (add/remove members), permission reset (applying team permissions to members), and can be used in filtering and access control. Teams enable collaborative workflows where groups of users work together on Records, with shared permissions and access patterns.

Records are actual data instances belonging to a CaraerObject. They contain property values that conform to the object's schema defined by Properties. Records support dynamic relationships via Relations, enabling graph-like data modeling where Records can reference and navigate to related Records. Records can be filtered, sorted, paginated, and displayed in various views (table, flow, page, preview). They support morphing (association with multiple objects), soft deletion with restore capability, and property parsing for formatted display. Records are the core data entities that users create, update, and manage. Each Record has a UUID, belongs to a primary Object, can have morph objects (making it visible in multiple object contexts), and maintains createdAt/updatedAt timestamps. Records enable the platform's dynamic, content-driven data management.

Operations

Request

Updates a record's details identified by its UUID. The record data is provided as a RecordDTO. Returns an UpdateResponse with the updated record. Validation: Record properties are validated according to the property rules defined for the object. Each property may have validation rules such as required, type constraints, character limits, uniqueness, etc.

Security
bearerAuth
Path
uuidstringrequired
objectNamestringrequired
Query
parseboolean

If 'true', parses the updated record to human-readable values before returning.

Default false
ignoreErrorsboolean

If 'true', allows the update to proceed while ignoring certain non-critical validation errors, when supported.

Default false
recordReturnFormatstring

Format of the record to return. LEGACY, USER_FRIENDLY, EXPANDED.

Default "LEGACY"
Bodyapplication/jsonrequired

Record data to update

uuidstringnon-emptyrequired

Unique identifier for the entity

namestringnon-emptyrequired

The name of the entity

labelstring

Display label for the entity, can be different from name

createdAtinteger(int64)

Unix timestamp when the entity was created

createdByobject(Record)

Identifier of the user who created the entity

updatedAtinteger(int64)

Unix timestamp when the entity was last updated

updatedByobject(Record)

Identifier of the user who last updated the entity

deletedAtinteger(int64)

Unix timestamp when the entity was deleted (null if not deleted)

deletedByobject(Record)

Identifier of the user who deleted the entity

indexinteger(int32)

Index number for ordering entities

propertiesobject

A map of property names to their corresponding values for this record.

Example: {"key1":"value1","key2":123}
userobject(PublicUserDTO)

The user of the record if the user trait is enabled.

relationsArray of objects(RecordRelationRequestDTO)

Relations to create or merge after the record is saved. Each item links to an existing record (uuid) or creates a nested record first.

curl -i -X PUT \
  'https://developer.caraer.com/_mock/apis/api/v2/records/{objectName}/{uuid}?parse=false&ignoreErrors=false&recordReturnFormat=LEGACY' \
  -H 'Authorization: Bearer <YOUR_Opaque_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "uuid": "string",
    "name": "string",
    "label": "string",
    "createdAt": 0,
    "createdBy": {
      "name": "string",
      "label": "string",
      "createdAt": 0,
      "updatedAt": 0,
      "deletedAt": 0,
      "createdByUuid": "string",
      "updatedByUuid": "string",
      "deletedByUuid": "string",
      "index": 0,
      "deleted": true,
      "complete": true,
      "uuid": "string",
      "properties": [
        {
          "icon": "string",
          "name": "string",
          "value": null,
          "type": "string",
          "label": "string"
        }
      ],
      "objects": {
        "property1": null,
        "property2": null
      },
      "user": {
        "uuid": "string",
        "email": "string",
        "firstname": "string",
        "lastname": "string",
        "initials": "string",
        "scopes": [
          "string"
        ],
        "filters": {
          "property1": {
            "groups": [
              {
                "items": {}
              }
            ]
          },
          "property2": {
            "groups": [
              {
                "items": {}
              }
            ]
          }
        },
        "role": "string",
        "record": {}
      }
    },
    "updatedAt": 0,
    "updatedBy": {
      "name": "string",
      "label": "string",
      "createdAt": 0,
      "updatedAt": 0,
      "deletedAt": 0,
      "createdByUuid": "string",
      "updatedByUuid": "string",
      "deletedByUuid": "string",
      "index": 0,
      "deleted": true,
      "complete": true,
      "uuid": "string",
      "properties": [
        {
          "icon": "string",
          "name": "string",
          "value": null,
          "type": "string",
          "label": "string"
        }
      ],
      "objects": {
        "property1": null,
        "property2": null
      },
      "user": {
        "uuid": "string",
        "email": "string",
        "firstname": "string",
        "lastname": "string",
        "initials": "string",
        "scopes": [
          "string"
        ],
        "filters": {
          "property1": {
            "groups": [
              {
                "items": {}
              }
            ]
          },
          "property2": {
            "groups": [
              {
                "items": {}
              }
            ]
          }
        },
        "role": "string",
        "record": {}
      }
    },
    "deletedAt": 0,
    "deletedBy": {
      "name": "string",
      "label": "string",
      "createdAt": 0,
      "updatedAt": 0,
      "deletedAt": 0,
      "createdByUuid": "string",
      "updatedByUuid": "string",
      "deletedByUuid": "string",
      "index": 0,
      "deleted": true,
      "complete": true,
      "uuid": "string",
      "properties": [
        {
          "icon": "string",
          "name": "string",
          "value": null,
          "type": "string",
          "label": "string"
        }
      ],
      "objects": {
        "property1": null,
        "property2": null
      },
      "user": {
        "uuid": "string",
        "email": "string",
        "firstname": "string",
        "lastname": "string",
        "initials": "string",
        "scopes": [
          "string"
        ],
        "filters": {
          "property1": {
            "groups": [
              {
                "items": {}
              }
            ]
          },
          "property2": {
            "groups": [
              {
                "items": {}
              }
            ]
          }
        },
        "role": "string",
        "record": {}
      }
    },
    "index": 0,
    "properties": {
      "key1": "value1",
      "key2": 123
    },
    "user": {
      "uuid": "string",
      "email": "string",
      "firstname": "string",
      "lastname": "string",
      "initials": "string",
      "scopes": [
        "string"
      ],
      "filters": {
        "property1": {
          "groups": [
            {
              "items": {
                "object": "User",
                "relation": "hasProperty",
                "property": "email",
                "relationIncluded": true,
                "operator": "EQUALS",
                "value": 12345,
                "smartContent": true
              }
            }
          ]
        },
        "property2": {
          "groups": [
            {
              "items": {
                "object": "User",
                "relation": "hasProperty",
                "property": "email",
                "relationIncluded": true,
                "operator": "EQUALS",
                "value": 12345,
                "smartContent": true
              }
            }
          ]
        }
      },
      "role": "string",
      "record": {
        "name": "string",
        "label": "string",
        "createdAt": 0,
        "updatedAt": 0,
        "deletedAt": 0,
        "createdByUuid": "string",
        "updatedByUuid": "string",
        "deletedByUuid": "string",
        "index": 0,
        "deleted": true,
        "complete": true,
        "uuid": "string",
        "properties": [
          {
            "icon": "string",
            "name": "string",
            "value": null,
            "type": "string",
            "label": "string"
          }
        ],
        "objects": {
          "property1": null,
          "property2": null
        },
        "user": {}
      }
    },
    "relations": [
      {
        "relationName": "works_at",
        "uuid": "string",
        "properties": {
          "property1": null,
          "property2": null
        },
        "record": {},
        "objectName": "string",
        "primary": false,
        "merge": true
      }
    ]
  }'

Responses

Record updated successfully

Bodyapplication/json
messagestring

A message detailing the result of the operation.

Example: "Success"
dataany

The data payload of the response, if any.

Response
application/json
{ "message": "Success", "data": null }

Request

Restores a soft-deleted record identified by its UUID. Returns a SuccessResponse confirming that the record has been restored.

Security
bearerAuth
Path
uuidstringrequired
curl -i -X POST \
  'https://developer.caraer.com/_mock/apis/api/v2/records/{uuid}/restore' \
  -H 'Authorization: Bearer <YOUR_Opaque_HERE>'

Responses

Record restored successfully

Bodyapplication/json
messagestring

A message detailing the result of the operation.

Example: "Success"
dataany

The data payload of the response, if any.

Response
application/json
{ "message": "Success", "data": null }

Request

Morphs a record identified by its UUID to one or more objects. You can use this to move a record or add it to another object so it'll be visible in the new object.Returns a SuccessResponse confirming that the record has been morphed.

Security
bearerAuth
Path
uuidstringrequired
Query
recordReturnFormatstring

Format of the record to return. LEGACY, USER_FRIENDLY, EXPANDED.

Default "LEGACY"
parseboolean

Whether to parse the record before returning it.

Bodyapplication/jsonrequired
objectsArray of objects(CaraerObjectDTO)unique

The objects to morph the record into

curl -i -X POST \
  'https://developer.caraer.com/_mock/apis/api/v2/records/{uuid}/morph?recordReturnFormat=LEGACY&parse=true' \
  -H 'Authorization: Bearer <YOUR_Opaque_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "objects": [
      {
        "uuid": "string",
        "name": "string",
        "label": "string",
        "createdAt": 0,
        "createdBy": {
          "name": "string",
          "label": "string",
          "createdAt": 0,
          "updatedAt": 0,
          "deletedAt": 0,
          "createdByUuid": "string",
          "updatedByUuid": "string",
          "deletedByUuid": "string",
          "index": 0,
          "deleted": true,
          "complete": true,
          "uuid": "string",
          "properties": [
            {
              "icon": "string",
              "name": "string",
              "value": null,
              "type": "string",
              "label": "string"
            }
          ],
          "objects": {
            "property1": null,
            "property2": null
          },
          "user": {
            "uuid": "string",
            "email": "string",
            "firstname": "string",
            "lastname": "string",
            "initials": "string",
            "scopes": [
              "string"
            ],
            "filters": {
              "property1": {
                "groups": [
                  null
                ]
              },
              "property2": {
                "groups": [
                  null
                ]
              }
            },
            "role": "string",
            "record": {}
          }
        },
        "updatedAt": 0,
        "updatedBy": {
          "name": "string",
          "label": "string",
          "createdAt": 0,
          "updatedAt": 0,
          "deletedAt": 0,
          "createdByUuid": "string",
          "updatedByUuid": "string",
          "deletedByUuid": "string",
          "index": 0,
          "deleted": true,
          "complete": true,
          "uuid": "string",
          "properties": [
            {
              "icon": "string",
              "name": "string",
              "value": null,
              "type": "string",
              "label": "string"
            }
          ],
          "objects": {
            "property1": null,
            "property2": null
          },
          "user": {
            "uuid": "string",
            "email": "string",
            "firstname": "string",
            "lastname": "string",
            "initials": "string",
            "scopes": [
              "string"
            ],
            "filters": {
              "property1": {
                "groups": [
                  null
                ]
              },
              "property2": {
                "groups": [
                  null
                ]
              }
            },
            "role": "string",
            "record": {}
          }
        },
        "deletedAt": 0,
        "deletedBy": {
          "name": "string",
          "label": "string",
          "createdAt": 0,
          "updatedAt": 0,
          "deletedAt": 0,
          "createdByUuid": "string",
          "updatedByUuid": "string",
          "deletedByUuid": "string",
          "index": 0,
          "deleted": true,
          "complete": true,
          "uuid": "string",
          "properties": [
            {
              "icon": "string",
              "name": "string",
              "value": null,
              "type": "string",
              "label": "string"
            }
          ],
          "objects": {
            "property1": null,
            "property2": null
          },
          "user": {
            "uuid": "string",
            "email": "string",
            "firstname": "string",
            "lastname": "string",
            "initials": "string",
            "scopes": [
              "string"
            ],
            "filters": {
              "property1": {
                "groups": [
                  null
                ]
              },
              "property2": {
                "groups": [
                  null
                ]
              }
            },
            "role": "string",
            "record": {}
          }
        },
        "index": 0,
        "plural": "string",
        "description": "string",
        "groups": [
          "string"
        ],
        "icon": "string",
        "showInMenu": true,
        "defaultTrait": "string",
        "traits": [
          "string"
        ],
        "views": [
          {
            "uuid": "string",
            "name": "string",
            "label": "string",
            "createdAt": 0,
            "createdBy": {
              "name": "string",
              "label": "string",
              "createdAt": 0,
              "updatedAt": 0,
              "deletedAt": 0,
              "createdByUuid": "string",
              "updatedByUuid": "string",
              "deletedByUuid": "string",
              "index": 0,
              "deleted": true,
              "complete": true,
              "uuid": "string",
              "properties": [
                {}
              ],
              "objects": {
                "property1": null,
                "property2": null
              },
              "user": {
                "uuid": "string",
                "email": "string",
                "firstname": "string",
                "lastname": "string",
                "initials": "string",
                "scopes": [
                  null
                ],
                "filters": {},
                "role": "string",
                "record": {}
              }
            },
            "updatedAt": 0,
            "updatedBy": {
              "name": "string",
              "label": "string",
              "createdAt": 0,
              "updatedAt": 0,
              "deletedAt": 0,
              "createdByUuid": "string",
              "updatedByUuid": "string",
              "deletedByUuid": "string",
              "index": 0,
              "deleted": true,
              "complete": true,
              "uuid": "string",
              "properties": [
                {}
              ],
              "objects": {
                "property1": null,
                "property2": null
              },
              "user": {
                "uuid": "string",
                "email": "string",
                "firstname": "string",
                "lastname": "string",
                "initials": "string",
                "scopes": [
                  null
                ],
                "filters": {},
                "role": "string",
                "record": {}
              }
            },
            "deletedAt": 0,
            "deletedBy": {
              "name": "string",
              "label": "string",
              "createdAt": 0,
              "updatedAt": 0,
              "deletedAt": 0,
              "createdByUuid": "string",
              "updatedByUuid": "string",
              "deletedByUuid": "string",
              "index": 0,
              "deleted": true,
              "complete": true,
              "uuid": "string",
              "properties": [
                {}
              ],
              "objects": {
                "property1": null,
                "property2": null
              },
              "user": {
                "uuid": "string",
                "email": "string",
                "firstname": "string",
                "lastname": "string",
                "initials": "string",
                "scopes": [
                  null
                ],
                "filters": {},
                "role": "string",
                "record": {}
              }
            },
            "index": 0,
            "favorite": true,
            "team": true,
            "shared": true,
            "personal": true,
            "trait": "string",
            "filters": {
              "groups": [
                {}
              ]
            },
            "shows": [
              {
                "object": "User",
                "relation": "hasProperty",
                "property": "email",
                "separator": "|",
                "sticky": false,
                "width": 100,
                "calculationFunction": "max",
                "calculationResult": 100
              }
            ],
            "sorts": [
              {
                "object": "User",
                "relation": "hasProperty",
                "property": "email",
                "direction": "ASC"
              }
            ],
            "limit": 0,
            "showIcons": true,
            "rowHeight": "string",
            "query": "string",
            "icon": "string",
            "flowProperty": "string",
            "flowPreview": "string",
            "defaultView": true,
            "isInternallyPublic": true
          }
        ],
        "properties": [
          {
            "uuid": "string",
            "name": "string",
            "label": "string",
            "createdAt": 0,
            "createdBy": {
              "name": "string",
              "label": "string",
              "createdAt": 0,
              "updatedAt": 0,
              "deletedAt": 0,
              "createdByUuid": "string",
              "updatedByUuid": "string",
              "deletedByUuid": "string",
              "index": 0,
              "deleted": true,
              "complete": true,
              "uuid": "string",
              "properties": [
                {}
              ],
              "objects": {
                "property1": null,
                "property2": null
              },
              "user": {
                "uuid": "string",
                "email": "string",
                "firstname": "string",
                "lastname": "string",
                "initials": "string",
                "scopes": [
                  null
                ],
                "filters": {},
                "role": "string",
                "record": {}
              }
            },
            "updatedAt": 0,
            "updatedBy": {
              "name": "string",
              "label": "string",
              "createdAt": 0,
              "updatedAt": 0,
              "deletedAt": 0,
              "createdByUuid": "string",
              "updatedByUuid": "string",
              "deletedByUuid": "string",
              "index": 0,
              "deleted": true,
              "complete": true,
              "uuid": "string",
              "properties": [
                {}
              ],
              "objects": {
                "property1": null,
                "property2": null
              },
              "user": {
                "uuid": "string",
                "email": "string",
                "firstname": "string",
                "lastname": "string",
                "initials": "string",
                "scopes": [
                  null
                ],
                "filters": {},
                "role": "string",
                "record": {}
              }
            },
            "deletedAt": 0,
            "deletedBy": {
              "name": "string",
              "label": "string",
              "createdAt": 0,
              "updatedAt": 0,
              "deletedAt": 0,
              "createdByUuid": "string",
              "updatedByUuid": "string",
              "deletedByUuid": "string",
              "index": 0,
              "deleted": true,
              "complete": true,
              "uuid": "string",
              "properties": [
                {}
              ],
              "objects": {
                "property1": null,
                "property2": null
              },
              "user": {
                "uuid": "string",
                "email": "string",
                "firstname": "string",
                "lastname": "string",
                "initials": "string",
                "scopes": [
                  null
                ],
                "filters": {},
                "role": "string",
                "record": {}
              }
            },
            "index": 0,
            "description": "string",
            "type": "string",
            "options": [
              {
                "name": "string",
                "label": "string",
                "icon": "string",
                "color": "string",
                "disabled": true,
                "usedIn": {
                  "recordUuids": []
                }
              }
            ],
            "group": "string",
            "format": {
              "label": "string",
              "name": "string",
              "icon": "string",
              "type": "string",
              "settings": [
                {
                  "options": []
                }
              ],
              "filters": [
                "string"
              ],
              "rules": [
                "string"
              ]
            },
            "rules": [
              "string"
            ],
            "immutable": true,
            "hidden": true,
            "nonPublic": true,
            "indexed": true,
            "editable": true,
            "formatSettings": {
              "property1": null,
              "property2": null
            },
            "usedIn": {
              "recordUuids": [
                "string"
              ],
              "count": 0
            },
            "icon": "string",
            "webpagePublic": true,
            "embeddable": true,
            "minAndMaxValue": {
              "t1": 0,
              "t2": 0
            }
          }
        ],
        "relations": [
          {
            "uuid": "string",
            "name": "string",
            "label": "string",
            "createdAt": 0,
            "createdBy": {
              "name": "string",
              "label": "string",
              "createdAt": 0,
              "updatedAt": 0,
              "deletedAt": 0,
              "createdByUuid": "string",
              "updatedByUuid": "string",
              "deletedByUuid": "string",
              "index": 0,
              "deleted": true,
              "complete": true,
              "uuid": "string",
              "properties": [
                {}
              ],
              "objects": {
                "property1": null,
                "property2": null
              },
              "user": {
                "uuid": "string",
                "email": "string",
                "firstname": "string",
                "lastname": "string",
                "initials": "string",
                "scopes": [
                  null
                ],
                "filters": {},
                "role": "string",
                "record": {}
              }
            },
            "updatedAt": 0,
            "updatedBy": {
              "name": "string",
              "label": "string",
              "createdAt": 0,
              "updatedAt": 0,
              "deletedAt": 0,
              "createdByUuid": "string",
              "updatedByUuid": "string",
              "deletedByUuid": "string",
              "index": 0,
              "deleted": true,
              "complete": true,
              "uuid": "string",
              "properties": [
                {}
              ],
              "objects": {
                "property1": null,
                "property2": null
              },
              "user": {
                "uuid": "string",
                "email": "string",
                "firstname": "string",
                "lastname": "string",
                "initials": "string",
                "scopes": [
                  null
                ],
                "filters": {},
                "role": "string",
                "record": {}
              }
            },
            "deletedAt": 0,
            "deletedBy": {
              "name": "string",
              "label": "string",
              "createdAt": 0,
              "updatedAt": 0,
              "deletedAt": 0,
              "createdByUuid": "string",
              "updatedByUuid": "string",
              "deletedByUuid": "string",
              "index": 0,
              "deleted": true,
              "complete": true,
              "uuid": "string",
              "properties": [
                {}
              ],
              "objects": {
                "property1": null,
                "property2": null
              },
              "user": {
                "uuid": "string",
                "email": "string",
                "firstname": "string",
                "lastname": "string",
                "initials": "string",
                "scopes": [
                  null
                ],
                "filters": {},
                "role": "string",
                "record": {}
              }
            },
            "index": 0,
            "description": "string",
            "objects": [
              {}
            ],
            "immutable": true,
            "editable": true
          }
        ],
        "suites": [
          "string"
        ],
        "extendsTo": [
          {}
        ]
      }
    ]
  }'

Responses

Record morphed successfully

Bodyapplication/json
messagestring

A message detailing the result of the operation.

Example: "Success"
dataany

The data payload of the response, if any.

Response
application/json
{ "message": "Success", "data": null }

Request

Creates a new record or updates an existing one based on uniqueness criteria for the given object. If a matching record exists, it is updated; otherwise, a new record is created. Returns a CreateResponse or UpdateResponse with the record details. Validation: Record properties are validated according to the property rules defined for the object. Each property may have validation rules such as required, type constraints, character limits, uniqueness, etc.

Security
bearerAuth
Path
objectNamestringrequired
Query
parseboolean
Default false
ignoreErrorsboolean
Default false
recordReturnFormatstring

Format of the record to return. LEGACY, USER_FRIENDLY, EXPANDED.

Default "LEGACY"
Bodyapplication/jsonrequired

Record data to create or update

uuidstringnon-emptyrequired

Unique identifier for the entity

namestringnon-emptyrequired

The name of the entity

labelstring

Display label for the entity, can be different from name

createdAtinteger(int64)

Unix timestamp when the entity was created

createdByobject(Record)

Identifier of the user who created the entity

updatedAtinteger(int64)

Unix timestamp when the entity was last updated

updatedByobject(Record)

Identifier of the user who last updated the entity

deletedAtinteger(int64)

Unix timestamp when the entity was deleted (null if not deleted)

deletedByobject(Record)

Identifier of the user who deleted the entity

indexinteger(int32)

Index number for ordering entities

propertiesobject

A map of property names to their corresponding values for this record.

Example: {"key1":"value1","key2":123}
userobject(PublicUserDTO)

The user of the record if the user trait is enabled.

relationsArray of objects(RecordRelationRequestDTO)

Relations to create or merge after the record is saved. Each item links to an existing record (uuid) or creates a nested record first.

curl -i -X POST \
  'https://developer.caraer.com/_mock/apis/api/v2/records/{objectName}/createOrUpdate?parse=false&ignoreErrors=false&recordReturnFormat=LEGACY' \
  -H 'Authorization: Bearer <YOUR_Opaque_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "uuid": "string",
    "name": "string",
    "label": "string",
    "createdAt": 0,
    "createdBy": {
      "name": "string",
      "label": "string",
      "createdAt": 0,
      "updatedAt": 0,
      "deletedAt": 0,
      "createdByUuid": "string",
      "updatedByUuid": "string",
      "deletedByUuid": "string",
      "index": 0,
      "deleted": true,
      "complete": true,
      "uuid": "string",
      "properties": [
        {
          "icon": "string",
          "name": "string",
          "value": null,
          "type": "string",
          "label": "string"
        }
      ],
      "objects": {
        "property1": null,
        "property2": null
      },
      "user": {
        "uuid": "string",
        "email": "string",
        "firstname": "string",
        "lastname": "string",
        "initials": "string",
        "scopes": [
          "string"
        ],
        "filters": {
          "property1": {
            "groups": [
              {
                "items": {}
              }
            ]
          },
          "property2": {
            "groups": [
              {
                "items": {}
              }
            ]
          }
        },
        "role": "string",
        "record": {}
      }
    },
    "updatedAt": 0,
    "updatedBy": {
      "name": "string",
      "label": "string",
      "createdAt": 0,
      "updatedAt": 0,
      "deletedAt": 0,
      "createdByUuid": "string",
      "updatedByUuid": "string",
      "deletedByUuid": "string",
      "index": 0,
      "deleted": true,
      "complete": true,
      "uuid": "string",
      "properties": [
        {
          "icon": "string",
          "name": "string",
          "value": null,
          "type": "string",
          "label": "string"
        }
      ],
      "objects": {
        "property1": null,
        "property2": null
      },
      "user": {
        "uuid": "string",
        "email": "string",
        "firstname": "string",
        "lastname": "string",
        "initials": "string",
        "scopes": [
          "string"
        ],
        "filters": {
          "property1": {
            "groups": [
              {
                "items": {}
              }
            ]
          },
          "property2": {
            "groups": [
              {
                "items": {}
              }
            ]
          }
        },
        "role": "string",
        "record": {}
      }
    },
    "deletedAt": 0,
    "deletedBy": {
      "name": "string",
      "label": "string",
      "createdAt": 0,
      "updatedAt": 0,
      "deletedAt": 0,
      "createdByUuid": "string",
      "updatedByUuid": "string",
      "deletedByUuid": "string",
      "index": 0,
      "deleted": true,
      "complete": true,
      "uuid": "string",
      "properties": [
        {
          "icon": "string",
          "name": "string",
          "value": null,
          "type": "string",
          "label": "string"
        }
      ],
      "objects": {
        "property1": null,
        "property2": null
      },
      "user": {
        "uuid": "string",
        "email": "string",
        "firstname": "string",
        "lastname": "string",
        "initials": "string",
        "scopes": [
          "string"
        ],
        "filters": {
          "property1": {
            "groups": [
              {
                "items": {}
              }
            ]
          },
          "property2": {
            "groups": [
              {
                "items": {}
              }
            ]
          }
        },
        "role": "string",
        "record": {}
      }
    },
    "index": 0,
    "properties": {
      "key1": "value1",
      "key2": 123
    },
    "user": {
      "uuid": "string",
      "email": "string",
      "firstname": "string",
      "lastname": "string",
      "initials": "string",
      "scopes": [
        "string"
      ],
      "filters": {
        "property1": {
          "groups": [
            {
              "items": {
                "object": "User",
                "relation": "hasProperty",
                "property": "email",
                "relationIncluded": true,
                "operator": "EQUALS",
                "value": 12345,
                "smartContent": true
              }
            }
          ]
        },
        "property2": {
          "groups": [
            {
              "items": {
                "object": "User",
                "relation": "hasProperty",
                "property": "email",
                "relationIncluded": true,
                "operator": "EQUALS",
                "value": 12345,
                "smartContent": true
              }
            }
          ]
        }
      },
      "role": "string",
      "record": {
        "name": "string",
        "label": "string",
        "createdAt": 0,
        "updatedAt": 0,
        "deletedAt": 0,
        "createdByUuid": "string",
        "updatedByUuid": "string",
        "deletedByUuid": "string",
        "index": 0,
        "deleted": true,
        "complete": true,
        "uuid": "string",
        "properties": [
          {
            "icon": "string",
            "name": "string",
            "value": null,
            "type": "string",
            "label": "string"
          }
        ],
        "objects": {
          "property1": null,
          "property2": null
        },
        "user": {}
      }
    },
    "relations": [
      {
        "relationName": "works_at",
        "uuid": "string",
        "properties": {
          "property1": null,
          "property2": null
        },
        "record": {},
        "objectName": "string",
        "primary": false,
        "merge": true
      }
    ]
  }'

Responses

Record updated successfully

Bodyapplication/json
Response
application/json
null

Request

Performs a search for records based on the specified criteria in the request body. Returns a PaginationResponse containing matching records.

Security
bearerAuth
Query
archivedboolean

When set to 'true', includes soft-deleted records in the search results.

Default false
parseboolean

If 'true', parses returned records to human-readable values.

Default false
recordReturnFormatstring

Format of the records to return. LEGACY, USER_FRIENDLY, EXPANDED.

Default "LEGACY"
Bodyapplication/jsonrequired

Search criteria

string
curl -i -X POST \
  'https://developer.caraer.com/_mock/apis/api/v2/records/search?archived=false&parse=false&recordReturnFormat=LEGACY' \
  -H 'Authorization: Bearer <YOUR_Opaque_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "query": "",
    "limit": 3,
    "objectUuid": null,
    "recordUuid": null,
    "relationUuid": null,
    "deleted": false,
    "preview": null,
    "parse": false
  }'

Responses

Search completed successfully

Bodyapplication/json
messagestring

A message detailing the result of the operation.

Example: "Success"
dataArray of any

The data returned in the current page of the pagination.

Example: [{"id":1,"name":"Item1"},{"id":2,"name":"Item2"}]
totalinteger(int32)

The total number of items available.

Example: 100
pageinteger(int32)

The current page number (starts from 1).

Example: 1
perPageinteger(int32)

The number of items displayed per page.

Example: 10
lastPageinteger(int32)

The last page number available for the pagination.

Example: 10
Response
application/json
{ "message": "Success", "data": [ {}, {} ], "total": 100, "page": 1, "perPage": 10, "lastPage": 10 }

Request

Creates a relation between two records identified by their UUIDs using the provided relation name.

Security
bearerAuth
Path
fromUuidstringrequired
relationNamestringrequired
toUuidstringrequired
Query
primaryobject

When 'true', marks the created relation as primary. Defaults to 'false'.

curl -i -X POST \
  'https://developer.caraer.com/_mock/apis/api/v2/records/relations/{fromUuid}/{relationName}/{toUuid}' \
  -H 'Authorization: Bearer <YOUR_Opaque_HERE>'

Responses

Relation created successfully

Bodyapplication/json
messagestring

A message detailing the result of the operation.

Example: "Success"
dataany

The data payload of the response, if any.

Response
application/json
{ "message": "Success", "data": null }

Request

Deletes a relation between two records identified by their UUIDs and the relation name.

Security
bearerAuth
Path
fromUuidstringrequired
relationNamestringrequired
toUuidstringrequired
curl -i -X DELETE \
  'https://developer.caraer.com/_mock/apis/api/v2/records/relations/{fromUuid}/{relationName}/{toUuid}' \
  -H 'Authorization: Bearer <YOUR_Opaque_HERE>'

Responses

Relation deleted successfully

Bodyapplication/json
messagestring

A message detailing the result of the operation.

Example: "Success"
dataany

The data payload of the response, if any.

Response
application/json
{ "message": "Success", "data": null }

Request

Retrieves a paginated list of records. If a preview type is specified in the request, returns records formatted for preview; otherwise, returns full record details.

Security
bearerAuth
Query
parseboolean

If set to 'true', records are parsed to human-readable values (for example, unix timestamps are formatted as dates).

archivedboolean

When 'true', archived records are returned instead of active records. Defaults to 'false'.

Default false
relatedRecordUuidstring

UUID of a record used for relation-aware filtering. If supplied and the request body contains a filter, that filter will be smartened based on this related record. If no filter is supplied, a default filter will be applied that returns all records related in any way (any relation) to this record.

recordReturnFormatstring

Format of the records to return. LEGACY, USER_FRIENDLY, EXPANDED.

Default "LEGACY"
Bodyapplication/jsonrequired

Pagination request for records

pageinteger(int32)

The page index (one-based) to request.

Example: 1
limitinteger(int32)

The number of records to retrieve per page.

Example: 10
filterobject(Filter)

Filters applied to the query.

sortArray of anyunique

Sorting options for the query.

showArray of anyunique

Specifies what data to show in the response.

querystring

A free-text search query applied to the records.

Example: "keyword"
previewstring

Preview information for the records, if supported.

Example: "summary preview"
mainObjectstring

The main object for categorization or context.

Example: "user"
columnstring

The column to group the records by.

Example: "open"
curl -i -X POST \
  'https://developer.caraer.com/_mock/apis/api/v2/records/index?parse=true&archived=false&relatedRecordUuid=string&recordReturnFormat=LEGACY' \
  -H 'Authorization: Bearer <YOUR_Opaque_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "page": 1,
    "limit": 10,
    "filter": {
      "groups": [
        {
          "items": {
            "object": "User",
            "relation": "hasProperty",
            "property": "email",
            "relationIncluded": true,
            "operator": "EQUALS",
            "value": 12345,
            "smartContent": true
          }
        }
      ]
    },
    "sort": [
      null
    ],
    "show": [
      null
    ],
    "query": "keyword",
    "preview": "summary preview",
    "mainObject": "user",
    "column": "open"
  }'

Responses

Records fetched successfully

Bodyapplication/json
messagestring

A message detailing the result of the operation.

Example: "Success"
dataArray of any

The data returned in the current page of the pagination.

Example: [{"id":1,"name":"Item1"},{"id":2,"name":"Item2"}]
totalinteger(int32)

The total number of items available.

Example: 100
pageinteger(int32)

The current page number (starts from 1).

Example: 1
perPageinteger(int32)

The number of items displayed per page.

Example: 10
lastPageinteger(int32)

The last page number available for the pagination.

Example: 10
Response
application/json
{ "message": "Success", "data": [ {}, {} ], "total": 100, "page": 1, "perPage": 10, "lastPage": 10 }

Request

Retrieves records formatted for table display. Returns a PaginationResponse containing records formatted for table view.

Security
bearerAuth
Query
relatedRecordUuidstring

UUID of a record used for relation-aware filtering. If supplied and the request body contains a filter, that filter will be smartened based on this related record. If no filter is supplied, a default filter will be applied that returns all records related in any way (any relation) to this record.

Bodyapplication/jsonrequired

Pagination request for table view

pageinteger(int32)

The page index (one-based) to request.

Example: 1
limitinteger(int32)

The number of records to retrieve per page.

Example: 10
filterobject(Filter)

Filters applied to the query.

sortArray of anyunique

Sorting options for the query.

showArray of anyunique

Specifies what data to show in the response.

querystring

A free-text search query applied to the records.

Example: "keyword"
previewstring

Preview information for the records, if supported.

Example: "summary preview"
mainObjectstring

The main object for categorization or context.

Example: "user"
columnstring

The column to group the records by.

Example: "open"
curl -i -X POST \
  'https://developer.caraer.com/_mock/apis/api/v2/records/index/table?relatedRecordUuid=string' \
  -H 'Authorization: Bearer <YOUR_Opaque_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "page": 1,
    "limit": 10,
    "filter": {
      "groups": [
        {
          "items": {
            "object": "User",
            "relation": "hasProperty",
            "property": "email",
            "relationIncluded": true,
            "operator": "EQUALS",
            "value": 12345,
            "smartContent": true
          }
        }
      ]
    },
    "sort": [
      null
    ],
    "show": [
      null
    ],
    "query": "keyword",
    "preview": "summary preview",
    "mainObject": "user",
    "column": "open"
  }'

Responses

Records for table view fetched successfully

Bodyapplication/json
messagestring

A message detailing the result of the operation.

Example: "Success"
dataArray of any

The data returned in the current page of the pagination.

Example: [{"id":1,"name":"Item1"},{"id":2,"name":"Item2"}]
totalinteger(int32)

The total number of items available.

Example: 100
pageinteger(int32)

The current page number (starts from 1).

Example: 1
perPageinteger(int32)

The number of items displayed per page.

Example: 10
lastPageinteger(int32)

The last page number available for the pagination.

Example: 10
Response
application/json
{ "message": "Success", "data": [ {}, {} ], "total": 100, "page": 1, "perPage": 10, "lastPage": 10 }

Request

Retrieves a paginated list of webpages for page view. The search query is temporarily removed from the pagination request and passed separately. Returns a PaginationResponse containing WebpageDTO objects.

Security
bearerAuth
Query
environmentstring

Target environment for resolving webpages (for example 'staging' or 'production'). Defaults to 'preview'.

Default "staging"
relatedRecordUuidstring

UUID of a record used for relation-aware filtering. If supplied and the request body contains a filter, that filter will be smartened based on this related record. If no filter is supplied, a default filter will be applied that returns all records related in any way (any relation) to this record.

Bodyapplication/jsonrequired

Pagination request for page view

pageinteger(int32)

The page index (one-based) to request.

Example: 1
limitinteger(int32)

The number of records to retrieve per page.

Example: 10
filterobject(Filter)

Filters applied to the query.

sortArray of anyunique

Sorting options for the query.

showArray of anyunique

Specifies what data to show in the response.

querystring

A free-text search query applied to the records.

Example: "keyword"
previewstring

Preview information for the records, if supported.

Example: "summary preview"
mainObjectstring

The main object for categorization or context.

Example: "user"
columnstring

The column to group the records by.

Example: "open"
curl -i -X POST \
  'https://developer.caraer.com/_mock/apis/api/v2/records/index/page?environment=staging&relatedRecordUuid=string' \
  -H 'Authorization: Bearer <YOUR_Opaque_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "page": 1,
    "limit": 10,
    "filter": {
      "groups": [
        {
          "items": {
            "object": "User",
            "relation": "hasProperty",
            "property": "email",
            "relationIncluded": true,
            "operator": "EQUALS",
            "value": 12345,
            "smartContent": true
          }
        }
      ]
    },
    "sort": [
      null
    ],
    "show": [
      null
    ],
    "query": "keyword",
    "preview": "summary preview",
    "mainObject": "user",
    "column": "open"
  }'

Responses

Webpages fetched successfully

Bodyapplication/json
messagestring

A message detailing the result of the operation.

Example: "Success"
dataArray of any

The data returned in the current page of the pagination.

Example: [{"id":1,"name":"Item1"},{"id":2,"name":"Item2"}]
totalinteger(int32)

The total number of items available.

Example: 100
pageinteger(int32)

The current page number (starts from 1).

Example: 1
perPageinteger(int32)

The number of items displayed per page.

Example: 10
lastPageinteger(int32)

The last page number available for the pagination.

Example: 10
Response
application/json
{ "message": "Success", "data": [ {}, {} ], "total": 100, "page": 1, "perPage": 10, "lastPage": 10 }

Request

Retrieves a list of records formatted for flow view based on a specific property. If the property is not provided in the request, defaults to the 'status' property of the main object. Returns a SuccessResponse containing the flow records.

Security
bearerAuth
Query
relatedRecordUuidstring

UUID of a record used for relation-aware filtering. If supplied and the request body contains a filter, that filter will be smartened based on this related record. If no filter is supplied, a default filter will be applied that returns all records related in any way (any relation) to this record.

parseboolean

Whether to parse the record before returning it.

Bodyapplication/jsonrequired

Pagination request for flow view

crudobject(CRUD)
pageinteger(int32)

The page index (one-based) to request.

Example: 1
limitinteger(int32)

The number of records to retrieve per page.

Example: 10
filterobject(Filter)

Filters applied to the query.

sortArray of anyunique

Sorting options for the query.

showArray of anyunique

Specifies what data to show in the response.

querystring

A free-text search query applied to the records.

Example: "keyword"
previewstring

Preview information for the records, if supported.

Example: "summary preview"
mainObjectstring

The main object for categorization or context.

Example: "user"
columnstring

Column name for sorting or filtering data

Example: "status"
propertystring

UUID of the property used in the request

Example: "123e4567-e89b-12d3-a456-426614174000"
curl -i -X POST \
  'https://developer.caraer.com/_mock/apis/api/v2/records/index/flow?relatedRecordUuid=string&parse=true' \
  -H 'Authorization: Bearer <YOUR_Opaque_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "crud": {
      "sessionType": "MAIN",
      "httpSessionId": "string",
      "turnOffMetaRelationships": true
    },
    "page": 1,
    "limit": 10,
    "filter": {
      "groups": [
        {
          "items": {
            "object": "User",
            "relation": "hasProperty",
            "property": "email",
            "relationIncluded": true,
            "operator": "EQUALS",
            "value": 12345,
            "smartContent": true
          }
        }
      ]
    },
    "sort": [
      null
    ],
    "show": [
      null
    ],
    "query": "keyword",
    "preview": "summary preview",
    "mainObject": "user",
    "column": "status",
    "property": "123e4567-e89b-12d3-a456-426614174000"
  }'

Responses

Records for flow view fetched successfully

Bodyapplication/json
messagestring

A message detailing the result of the operation.

Example: "Success"
dataany

The data payload of the response, if any.

Response
application/json
{ "message": "Success", "data": null }

Request

Creates a new record for the specified object using the provided RecordDTO data. Returns a CreateResponse with the newly created record. Validation: Record properties are validated according to the property rules defined for the object. Each property may have validation rules such as required, type constraints, character limits, uniqueness, etc.

Security
bearerAuth
Path
idstringrequired

Object name to create the record for.

Query
parseboolean

If 'true', parses the created record to human-readable values before returning.

Default false
ignoreErrorsboolean

If 'true', allows the creation to proceed while ignoring certain non-critical validation errors, when supported.

Default false
recordReturnFormatstring

Format of the record to return. LEGACY, USER_FRIENDLY, EXPANDED.

Default "LEGACY"
Bodyapplication/jsonrequired

Record data to create

uuidstringnon-emptyrequired

Unique identifier for the entity

namestringnon-emptyrequired

The name of the entity

labelstring

Display label for the entity, can be different from name

createdAtinteger(int64)

Unix timestamp when the entity was created

createdByobject(Record)

Identifier of the user who created the entity

updatedAtinteger(int64)

Unix timestamp when the entity was last updated

updatedByobject(Record)

Identifier of the user who last updated the entity

deletedAtinteger(int64)

Unix timestamp when the entity was deleted (null if not deleted)

deletedByobject(Record)

Identifier of the user who deleted the entity

indexinteger(int32)

Index number for ordering entities

propertiesobject

A map of property names to their corresponding values for this record.

Example: {"key1":"value1","key2":123}
userobject(PublicUserDTO)

The user of the record if the user trait is enabled.

relationsArray of objects(RecordRelationRequestDTO)

Relations to create or merge after the record is saved. Each item links to an existing record (uuid) or creates a nested record first.

curl -i -X POST \
  'https://developer.caraer.com/_mock/apis/api/v2/records/{id}?parse=false&ignoreErrors=false&recordReturnFormat=LEGACY' \
  -H 'Authorization: Bearer <YOUR_Opaque_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "uuid": "string",
    "name": "string",
    "label": "string",
    "createdAt": 0,
    "createdBy": {
      "name": "string",
      "label": "string",
      "createdAt": 0,
      "updatedAt": 0,
      "deletedAt": 0,
      "createdByUuid": "string",
      "updatedByUuid": "string",
      "deletedByUuid": "string",
      "index": 0,
      "deleted": true,
      "complete": true,
      "uuid": "string",
      "properties": [
        {
          "icon": "string",
          "name": "string",
          "value": null,
          "type": "string",
          "label": "string"
        }
      ],
      "objects": {
        "property1": null,
        "property2": null
      },
      "user": {
        "uuid": "string",
        "email": "string",
        "firstname": "string",
        "lastname": "string",
        "initials": "string",
        "scopes": [
          "string"
        ],
        "filters": {
          "property1": {
            "groups": [
              {
                "items": {}
              }
            ]
          },
          "property2": {
            "groups": [
              {
                "items": {}
              }
            ]
          }
        },
        "role": "string",
        "record": {}
      }
    },
    "updatedAt": 0,
    "updatedBy": {
      "name": "string",
      "label": "string",
      "createdAt": 0,
      "updatedAt": 0,
      "deletedAt": 0,
      "createdByUuid": "string",
      "updatedByUuid": "string",
      "deletedByUuid": "string",
      "index": 0,
      "deleted": true,
      "complete": true,
      "uuid": "string",
      "properties": [
        {
          "icon": "string",
          "name": "string",
          "value": null,
          "type": "string",
          "label": "string"
        }
      ],
      "objects": {
        "property1": null,
        "property2": null
      },
      "user": {
        "uuid": "string",
        "email": "string",
        "firstname": "string",
        "lastname": "string",
        "initials": "string",
        "scopes": [
          "string"
        ],
        "filters": {
          "property1": {
            "groups": [
              {
                "items": {}
              }
            ]
          },
          "property2": {
            "groups": [
              {
                "items": {}
              }
            ]
          }
        },
        "role": "string",
        "record": {}
      }
    },
    "deletedAt": 0,
    "deletedBy": {
      "name": "string",
      "label": "string",
      "createdAt": 0,
      "updatedAt": 0,
      "deletedAt": 0,
      "createdByUuid": "string",
      "updatedByUuid": "string",
      "deletedByUuid": "string",
      "index": 0,
      "deleted": true,
      "complete": true,
      "uuid": "string",
      "properties": [
        {
          "icon": "string",
          "name": "string",
          "value": null,
          "type": "string",
          "label": "string"
        }
      ],
      "objects": {
        "property1": null,
        "property2": null
      },
      "user": {
        "uuid": "string",
        "email": "string",
        "firstname": "string",
        "lastname": "string",
        "initials": "string",
        "scopes": [
          "string"
        ],
        "filters": {
          "property1": {
            "groups": [
              {
                "items": {}
              }
            ]
          },
          "property2": {
            "groups": [
              {
                "items": {}
              }
            ]
          }
        },
        "role": "string",
        "record": {}
      }
    },
    "index": 0,
    "properties": {
      "key1": "value1",
      "key2": 123
    },
    "user": {
      "uuid": "string",
      "email": "string",
      "firstname": "string",
      "lastname": "string",
      "initials": "string",
      "scopes": [
        "string"
      ],
      "filters": {
        "property1": {
          "groups": [
            {
              "items": {
                "object": "User",
                "relation": "hasProperty",
                "property": "email",
                "relationIncluded": true,
                "operator": "EQUALS",
                "value": 12345,
                "smartContent": true
              }
            }
          ]
        },
        "property2": {
          "groups": [
            {
              "items": {
                "object": "User",
                "relation": "hasProperty",
                "property": "email",
                "relationIncluded": true,
                "operator": "EQUALS",
                "value": 12345,
                "smartContent": true
              }
            }
          ]
        }
      },
      "role": "string",
      "record": {
        "name": "string",
        "label": "string",
        "createdAt": 0,
        "updatedAt": 0,
        "deletedAt": 0,
        "createdByUuid": "string",
        "updatedByUuid": "string",
        "deletedByUuid": "string",
        "index": 0,
        "deleted": true,
        "complete": true,
        "uuid": "string",
        "properties": [
          {
            "icon": "string",
            "name": "string",
            "value": null,
            "type": "string",
            "label": "string"
          }
        ],
        "objects": {
          "property1": null,
          "property2": null
        },
        "user": {}
      }
    },
    "relations": [
      {
        "relationName": "works_at",
        "uuid": "string",
        "properties": {
          "property1": null,
          "property2": null
        },
        "record": {},
        "objectName": "string",
        "primary": false,
        "merge": true
      }
    ]
  }'

Responses

Record created successfully

Bodyapplication/json
messagestring

A message detailing the result of the operation.

Example: "Success"
dataany

The data payload of the response, if any.

Response
application/json
{ "message": "Success", "data": null }

Request

Retrieves detailed information about a record by its UUID. Returns a ShowResponse containing the record details.

Security
bearerAuth
Path
idstringrequired

UUID of the record to retrieve.

Query
objectstring

Optional object name to resolve the record in a specific object context.

recordReturnFormatstring

Format of the record to return. LEGACY, USER_FRIENDLY, EXPANDED.

Default "LEGACY"
parseboolean

Whether to parse the record before returning it.

curl -i -X GET \
  'https://developer.caraer.com/_mock/apis/api/v2/records/{id}?object=string&recordReturnFormat=LEGACY&parse=true' \
  -H 'Authorization: Bearer <YOUR_Opaque_HERE>'

Responses

Record retrieved successfully

Bodyapplication/json
messagestring

A message detailing the result of the operation.

Example: "Success"
dataany

The data payload of the response, if any.

Response
application/json
{ "message": "Success", "data": null }

Request

Deletes a record specified by its UUID.

Security
bearerAuth
Path
idstringrequired

UUID of the record to delete.

Query
modestring

Controls how the record is removed. Allowed values: 'archive' (soft delete, keep all data), 'anonymize' (remove data but keep relationships), 'delete' (hard delete). Defaults to 'archive'.

Default "archive"
curl -i -X DELETE \
  'https://developer.caraer.com/_mock/apis/api/v2/records/{id}?mode=archive' \
  -H 'Authorization: Bearer <YOUR_Opaque_HERE>'

Responses

Record deleted successfully

Bodyapplication/json
messagestring

A message detailing the result of the operation.

Example: "Success"
dataany

The data payload of the response, if any.

Response
application/json
{ "message": "Success", "data": null }

Request

Retrieves a preview for a record specified by its UUID and preview name. Returns a ShowResponse containing the preview data.

Security
bearerAuth
Path
uuidstringrequired
namestringrequired
Query
objectstring

Optional object name used to resolve the record before building the preview.

parseboolean

Whether to parse the record before returning it.

curl -i -X GET \
  'https://developer.caraer.com/_mock/apis/api/v2/records/{uuid}/previews/{name}?object=string&parse=true' \
  -H 'Authorization: Bearer <YOUR_Opaque_HERE>'

Responses

Preview retrieved successfully

Bodyapplication/json
messagestring

A message detailing the result of the operation.

Example: "Success"
dataany

The data payload of the response, if any.

Response
application/json
{ "message": "Success", "data": null }

Traits are behavioral features that can be added to CaraerObjects to extend their functionality without modifying the core schema. Common traits include Flow (kanban-style workflow management), Table (tabular data display with sorting and filtering), Page (enables Records to have public-facing Webpages), and User (enables user authentication and user profile Records). Traits are composable - an Object can have multiple traits enabled simultaneously. Traits extend object functionality by adding specific behaviors, UI components, and capabilities. For example, the Flow trait adds workflow state management, the Table trait adds list view capabilities, and the Page trait enables CMS functionality. Traits enable flexible feature composition where objects can be customized with different capabilities based on business needs.

Operations

Properties define the schema and field definitions for CaraerObjects. A Property specifies the data type (string, number, date, boolean, etc.), format (text, email, select, multi-select, linked, file, etc.), validation rules (required, unique, character limits, etc.), and display options (label, description, icon, groups). Properties determine what data Records can store, how it's validated, how it's displayed in forms and views, and how it can be searched. Each Property belongs to a CaraerObject and defines one field in that object's schema. Properties support various formats including linked properties (relationships to other Records), file uploads, rich text, and custom option lists. Properties are immutable once created to maintain data integrity, and they can be organized into groups for better UX. The Property system enables dynamic, schema-on-read data modeling where object structures can be customized per company without code changes.

Operations

Endpoints for Caraer Automations and Latenode integration.

Operations

Webpages are CMS pages associated with Records that enable public-facing content. They support dynamic content layouts using PageContent structures, preview and production environments, scheduled publishing (publish_at/unpublish_at), SEO metadata (title, excerpt, slug, image), custom CSS and JavaScript, and sidebar previews. Webpages are used to create career sites, landing pages, job detail pages, and other public-facing content. They integrate with Forms for data collection and Previews for displaying related Records. Webpages can be published/unpublished, support environment-specific content (preview vs production), and maintain publication timestamps. The Webpage system enables dynamic, data-driven public websites where content is managed through Records and automatically rendered as HTML pages.

Operations

Apps are third-party integrations and extensions that extend Caraer functionality. They can provide additional features, connect to external services, include Webhooks for event handling, and offer custom UI components through AppBars. Apps enable the platform ecosystem where companies can integrate with their existing tools and workflows. Apps can be public (available to all companies) or private (company-specific), have pricing models, descriptions, and settings schemas. Apps can include Webhooks with rate limiting and secret-based authentication. The App system enables extensibility and integration capabilities, allowing the platform to connect with external systems and provide additional functionality beyond the core platform features.

Operations

Companies represent multi-tenant organizations in Caraer. Each company has its own isolated database, users, objects, Records, and data. Companies enable SaaS multi-tenancy where each organization's data is completely isolated from others. Companies have settings (branding, configuration), subdomains for custom URLs, and can be customized with their own Objects, Properties, Forms, and Webpages. Users belong to one or more companies and can switch between them. Companies maintain their own access control, scopes, and permissions. The Company system enables the platform to serve multiple organizations while maintaining strict data isolation and allowing each company to customize the platform to their needs.

Operations

CaraerObjects are schema definitions for dynamic domain entities (e.g., "Candidate", "Vacancy", "Company"). They define the structure and behavior of Records through Properties (field definitions), Relations (connections to other objects), Views (display configurations), and Traits (behavioral features like Flow, Table, Webpage, User). Objects enable a flexible, schema-on-read data model where entities can be customized per company without code changes. Each Object has a name (lowercase identifier), label (display name), plural form, description, icon, and can be organized into groups. Objects can have traits that add specific behaviors: Flow enables kanban-style workflows, Table provides tabular data views, Webpage allows Records to have public-facing pages, and User enables authentication and user profiles. Objects are the foundation of the platform's dynamic data modeling system.

Operations
Operations