---
title: Entities
description: "Read-only: list and get Entities."
canonical: https://developers.coevera.com/reference/rest/entities/
section: rest
verification: schema
generatedFrom: spec 5e43371 (2026-10-16)
publisher: Coevera
---

# Entities

Read-only: list and get Entities.

Family: Fields and custom entities. GraphQL: [entity](https://developers.coevera.com/reference/graphql/entity.md). Base URL: `https://{region}.api.coevera.com/api/v100/rest/spaces/{space_id}`.

| Method | Path | Operation |
| --- | --- | --- |
| GET | `/entities/Entities` | List Entities |
| GET | `/entities/Entities/{id}` | Get Entity |

## List Entities

`GET /entities/Entities`

Returns the Entities the API application can read, one page at a time. In the list envelope, `total` counts every match and `page_info` pages through them.

| Parameter | In | Type | Description |
| --- | --- | --- | --- |
| `include-deleted` | query | boolean | Include soft-deleted records. Lists only; get-by-id refuses it. |
| `first` | query | integer | Page size. Default 30, maximum 100; a larger value is refused with HTTP 400, code 117. (default 30, 1 to 100) |
| `last` | query | integer | Return the last N records of the result; together with `first`, the last N of the first M. Maximum 100. (1 to 100) |
| `before` | query | string | Cursor from `page_info.start_cursor`, to page backwards. URL-encode it. |
| `after` | query | string | Cursor from `page_info.end_cursor` of the previous page. URL-encode it: cursors are base64, and a raw + becomes a space. |
| `expand` | query | string | Related records to return inline instead of their URIs, comma-separated; dots reach nested relations, as in `account_relations.account`. |
| `order-by` | query | string | Fields to sort by, comma-separated. A leading - sorts descending, as in `-modified`; dotted paths sort by related fields. |
| `filter` | query | object | `filter[field]=value`. Separate several values with a raw comma (OR), as in `filter[name]=north,south`. Encode a comma that belongs to a value as %2C. URLSearchParams and Python requests encode every comma, so build the filter part of the query string yourself. Dotted paths filter on related records, as in `filter[owner.email]`. Encode a + in a value as %2B: query values are form-decoded, so a raw + becomes a space. |
| `filter-op` | query | object | `filter-op[field]=operator`, one per field: eq (the default), ieq, not-eq, not-ieq, contains, icontains, starts, istarts, ends, iends, gt, gte, lt, lte, between, null, not-null, empty and not-empty. null, not-null, empty and not-empty take no filter value; gt, gte, lt and lte take exactly one. |
| `load-only` | query | string | Fields to return, comma-separated (raw or encoded commas both work here); dots select nested fields, as in `owner.id`. All fields are returned without it. Lists only: get-by-id refuses it with HTTP 400, code 118. |

Responses: 200 (Page of Entity records.: `success`, `total`, `page_info`, `data`), 400, 401, 429, 500.

```bash
curl 'https://{region}.api.coevera.com/api/v100/rest/spaces/{space_id}/entities/Entities?first=10' \
  --user "$COEVERA_API_KEY:$COEVERA_API_SECRET"
```

## Get Entity

`GET /entities/Entities/{id}`

Returns one record by id. `expand` returns related records inline instead of their URIs.

| Parameter | In | Type | Description |
| --- | --- | --- | --- |
| `id` | path | string (uuid) | Required. Id of the Entity record to retrieve. |
| `expand` | query | string | Related records to return inline instead of their URIs, comma-separated; dots reach nested relations. The only parameter this call accepts. |

Responses: 200 (The Entity record.: `success`, `data`), 400, 401, 404, 429, 500.

```bash
curl 'https://{region}.api.coevera.com/api/v100/rest/spaces/{space_id}/entities/Entities/0a000000-0000-4000-a000-000000000001' \
  --user "$COEVERA_API_KEY:$COEVERA_API_SECRET"
```

## Entity fields

| Field | Type | Notes |
| --- | --- | --- |
| `id` | uuid | Read-only. Unique identifier of entity. |
| `is_delete_protected` | boolean | Read-only. True when the record is protected against deletion because it must always exist in the space. |
| `entity_name` | string | Read-only. Stable identifier of the entity (e.g. |
| `table_name` | string | Read-only. Storage identifier of the entity. |
| `table_ex` | string | Read-only. Storage identifier of the entity's custom-field data. |
| `table_data_ex` | string | Read-only. Storage identifier of the entity's option relation data. |
| `default_view_field_id` | uuid | Read-only. Id of the field used as the default display label for records of this entity. |
| `abstract_entity_id` | string | Read-only. For sub-entities (e.g. |
| `entity_type` | integer | Read-only. Kind of the entity in the platform: business entity, system schema, custom entity, etc. |
| `preference_order` | integer | Read-only. Display order used to sort entities in pickers and navigation lists; lower values appear first. |
| `allows_multiple_relation` | boolean | Read-only. True when records of this entity can be linked to multiple records of the same other entity through the same relation. |
| `has_draft` | boolean | Read-only. True when records of this entity support drafts (changes go through a draft before being published). |
| `access_mode` | integer | Read-only. Access scope of records of this entity: shared across the entire space, scoped to a sales unit, or owner-only. |
| `icon` | integer | Read-only. Numeric icon identifier used to render the entity in the UI. |
| `is_deleted` | boolean | Read-only. True when the entity is marked as deleted (soft-delete). |
| `modified` | date-time | Read-only. Last modification time. |
| `created` | date-time | Read-only. Creation time. |
| `settings` | object | Read-only. Optional space-level configuration for the entity (e.g. |
| `name_singular` | string | Read-only. Display name of the entity in singular form (e.g. |
| `name_plural` | string | Read-only. Display name of the entity in plural form (e.g. |

Custom fields appear in your space's live spec: `GET /api/v100/rest/spaces/{space_id}/openapi.json` with your credentials.

## Errors

Every error body has `success: false`, `http_status`, `code`, `name` and `message`. Branch on `code`: the status alone does not tell a missing permission from a bad parameter.

| HTTP | When |
| --- | --- |
| 400 | Bad request: a bad or unknown parameter (codes 117, 118), a missing permission (code 50), conflicting data (code 2002) or any other API error. The REST API answers 400 where others answer 403 or 409; check `code`. |
| 401 | Not authenticated: missing or wrong credentials, a credential of another space, or an expired token (code 401, ERROR_UNAUTHORIZED). |
| 404 | No such record or entity (code 143 ERROR_NO_ENTITY, or 2006 ERROR_UNKNOWN_TYPE). |
| 429 | Too many requests (code 182). Wait for the seconds in Retry-After, then retry. |
| 500 | Unexpected server error (code 1000, ERROR_UNKNOWN). |

All error codes: https://developers.coevera.com/reference/errors.md; how to handle them: https://developers.coevera.com/concepts/errors.md
