List custom objects
Authorization
api-token Opero API token. Send it as Authorization: Bearer ek_...
In: header
Path Parameters
Query Parameters
Page number (1-based)
Items per page. Maximum 100.
Count strategy. exact keeps current total-count behavior, none skips totals, hasMore lets endpoints return whether another page exists when implemented.
JSON-encoded recursive filter tree. Example: {"op":"AND","items":[{"field":"status","operator":"eq","value":"ACTIVE"}]}
JSON-encoded ordered sort rule list. A single-valued dictionary-backed field may set dictionaryMetadataKey to a metadata key advertised by that field instead of sorting by its stored entry key.
JSON-encoded ordered list of requested columns. This is a validated presentation contract in v1.
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/v1/custom-modules/string/objects"{ "data": [ { "moduleKey": "string", "key": "string", "name": "string", "namePlural": "string", "kind": "REGULAR", "singleton": true, "displayLabel": "string", "contentSourceLanguage": "en", "icon": "string", "color": "string", "fields": [ { "key": "string", "name": "string", "type": "TEXT", "readable": true, "writable": true, "filterable": true, "sortable": true, "expandable": true, "localizable": true, "options": {} } ], "operations": { "readRecords": true, "createRecords": false, "updateRecords": true, "deleteRecords": false, "readSingleton": true, "updateSingleton": false } } ], "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": {} }}