Opero Docs
Opero APICustom Objects

List custom records

GET
/v1/custom-modules/{moduleKey}/objects/{objectKey}/records

Authorization

api-token
AuthorizationBearer <token>

Opero API token. Send it as Authorization: Bearer ek_...

In: header

Path Parameters

moduleKey*string
objectKey*string

Query Parameters

contentLocale?string

Resolve every localizable field to this content language, falling back to the object's source language where no translation exists. Must be one of the organization's content languages. This is the language of the data; the interface language stays the caller's own.

includeI18n?boolean

Additionally return the raw translation maps as $i18n. Combinable with contentLocale.

page?number

Page number (1-based)

limit?number

Items per page

count?string

Count strategy. exact returns meta.total, none skips totals, hasMore returns meta.hasMore when implemented.

filters?string

JSON-encoded recursive filter tree. Example: {"op":"AND","items":[{"field":"status","operator":"eq","value":"ACTIVE"}]}

sort?string

JSON-encoded ordered sort rule list. A single-valued dictionary-backed field may set dictionaryMetadataKey to a metadata key declared by that dictionary instead of sorting by its stored entry key.

columns?string

JSON-encoded ordered list of requested columns. This is a validated presentation contract in v1.

expand?string

Comma-separated expandable field keys to inline in the response under _expanded. Supports REFERENCE, USER, USER_MULTI, CONTRACTOR, and CONTRACTOR_MULTI fields. E.g. "equipment_id,site_id". Dangling references resolve to null.

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/v1/custom-modules/string/objects/string/records"
{  "data": [    {      "id": "string",      "createdAt": "2019-08-24T14:15:22Z",      "updatedAt": "2019-08-24T14:15:22Z",      "values": {},      "contentLocale": "de",      "i18n": {},      "expanded": {        "property1": {          "id": "rec_123",          "displayLabel": "Acme Corp",          "moduleKey": "crm",          "objectKey": "companies",          "objectName": "Company",          "color": "#3B82F6",          "icon": "building-2"        },        "property2": {          "id": "rec_123",          "displayLabel": "Acme Corp",          "moduleKey": "crm",          "objectKey": "companies",          "objectName": "Company",          "color": "#3B82F6",          "icon": "building-2"        }      },      "files": {}    }  ],  "meta": {    "page": 1,    "limit": 20,    "total": 100,    "hasMore": true  }}
{  "error": {    "code": "NOT_FOUND",    "message": "Resource not found",    "meta": {      "partiallyApplied": true,      "failedPhase": "defaultForms",      "committedObjects": [        {          "id": "5e2af9bc-be0b-4ad8-af57-e8319fb115d3",          "key": "session",          "created": true        }      ],      "fieldsWritten": 1,      "fieldsDeleted": 0    },    "fieldErrors": {      "name": [        "Field \"name\" is required"      ]    },    "unavailableMutationScopes": [      "contractor.bankAccounts"    ],    "clientMutationId": "019f2e3a-7c8b-7a33-9fc8-90db2b5b1e50",    "relationTableErrors": {},    "idempotencyConflict": {},    "errors": [      {        "message": "relation \"foo\" does not exist"      }    ],    "impacts": [      {}    ],    "validation": {}  }}
{  "error": {    "code": "NOT_FOUND",    "message": "Resource not found",    "meta": {      "partiallyApplied": true,      "failedPhase": "defaultForms",      "committedObjects": [        {          "id": "5e2af9bc-be0b-4ad8-af57-e8319fb115d3",          "key": "session",          "created": true        }      ],      "fieldsWritten": 1,      "fieldsDeleted": 0    },    "fieldErrors": {      "name": [        "Field \"name\" is required"      ]    },    "unavailableMutationScopes": [      "contractor.bankAccounts"    ],    "clientMutationId": "019f2e3a-7c8b-7a33-9fc8-90db2b5b1e50",    "relationTableErrors": {},    "idempotencyConflict": {},    "errors": [      {        "message": "relation \"foo\" does not exist"      }    ],    "impacts": [      {}    ],    "validation": {}  }}
{  "error": {    "code": "NOT_FOUND",    "message": "Resource not found",    "meta": {      "partiallyApplied": true,      "failedPhase": "defaultForms",      "committedObjects": [        {          "id": "5e2af9bc-be0b-4ad8-af57-e8319fb115d3",          "key": "session",          "created": true        }      ],      "fieldsWritten": 1,      "fieldsDeleted": 0    },    "fieldErrors": {      "name": [        "Field \"name\" is required"      ]    },    "unavailableMutationScopes": [      "contractor.bankAccounts"    ],    "clientMutationId": "019f2e3a-7c8b-7a33-9fc8-90db2b5b1e50",    "relationTableErrors": {},    "idempotencyConflict": {},    "errors": [      {        "message": "relation \"foo\" does not exist"      }    ],    "impacts": [      {}    ],    "validation": {}  }}
{  "error": {    "code": "NOT_FOUND",    "message": "Resource not found",    "meta": {      "partiallyApplied": true,      "failedPhase": "defaultForms",      "committedObjects": [        {          "id": "5e2af9bc-be0b-4ad8-af57-e8319fb115d3",          "key": "session",          "created": true        }      ],      "fieldsWritten": 1,      "fieldsDeleted": 0    },    "fieldErrors": {      "name": [        "Field \"name\" is required"      ]    },    "unavailableMutationScopes": [      "contractor.bankAccounts"    ],    "clientMutationId": "019f2e3a-7c8b-7a33-9fc8-90db2b5b1e50",    "relationTableErrors": {},    "idempotencyConflict": {},    "errors": [      {        "message": "relation \"foo\" does not exist"      }    ],    "impacts": [      {}    ],    "validation": {}  }}