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

# Profiles

Read-only: list and get Profiles.

Family: Users, roles, units and permissions. GraphQL: [profile](https://developers.coevera.com/reference/graphql/profile.md). Base URL: `https://{region}.api.coevera.com/api/v100/rest/spaces/{space_id}`.

| Method | Path | Operation |
| --- | --- | --- |
| GET | `/entities/Profiles` | List Profiles |
| GET | `/entities/Profiles/{id}` | Get Profile |

## List Profiles

`GET /entities/Profiles`

Returns the Profiles 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 Profile records.: `success`, `total`, `page_info`, `data`), 400, 401, 429, 500.

```bash
curl 'https://{region}.api.coevera.com/api/v100/rest/spaces/{space_id}/entities/Profiles?first=10&filter%5Bname%5D=north&filter-op%5Bname%5D=icontains' \
  --user "$COEVERA_API_KEY:$COEVERA_API_SECRET"
```

## Get Profile

`GET /entities/Profiles/{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 Profile 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 Profile record.: `success`, `data`), 400, 401, 404, 429, 500.

```bash
curl 'https://{region}.api.coevera.com/api/v100/rest/spaces/{space_id}/entities/Profiles/47000000-0000-4000-a000-000000000001?expand=owner' \
  --user "$COEVERA_API_KEY:$COEVERA_API_SECRET"
```

## Profile 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. |
| `is_deleted` | boolean | Read-only. Specifies if the entity is considered deleted. |
| `modified` | date-time | Read-only. Last modification time. |
| `created` | date-time | Read-only. Creation time. |
| `owner` | uri → Clients | Read-only. User who owns the screen profile. |
| `sync_entity` | uri → Reports | Read-only. Specific record this profile is synchronized to. |
| `entity` | integer | Read-only. Application screen the profile (saved view) belongs to, such as the leads, accounts or opportunities screen. Values: 1 Pipelinescreen, 2 Timelinescreen, 3 Archivescreen, 4 Leadscreen, 6 Accountscreen, 7 Contactscreen, 8 Activityscreen, 9 Feedscreen, 10 Hrmscreen, 11 Auditscreen, 12 Navigator, 13 Insightsscreen, 14 Indicatorsscreen, 15 Conversionsscreen, 16 Lifecyclescreen, 17 Feedscreen2, 18 ProductScreen, 19 Projectscreen, 20 Forecastscreen, 21 LeadArchivescreen, 22 TargetScreen, 23 Quotescreen, 24 QuoteArchivescreen, 25 Approvalscreen, 26 CustomEntityscreen, 27 AccountArchivescreen, 28 ContactArchivescreen, 29 FeedDetailScreen, 30 BetterNavigatorscreen, 31 FeedEmailscreen, 32 FeedEmailDetailScreen, 33 EmailScreen. |
| `entity_api_name` | string | Read-only. API name of the custom entity this profile applies to. |
| `name` | string | Read-only. Name of the entity and its default text representation. |
| `owner_id` | uuid → Clients | Read-only. Id of the owning user. |
| `settings` | object | Read-only. Layout and chart configuration of the screen profile, stored as a JSON document. |
| `share_mode` | integer | Read-only. Who besides the owner can use the profile: nobody (Private), selected users and sales units (Standard), or all users. Values: 0 Standard, 1 Private, 2 AllView, 3 AllEdit. |
| `sync_enabled` | boolean | Read-only. When true, changes to the profile are propagated to records linked via ProfileRelation; when false, the profile is detached from the records. |
| `sync_entity_id` | uuid → Reports | Read-only. Id of the synchronized record. |
| `type` | integer | Read-only. Whether the profile lists the records matching its filter (Dynamic) or a fixed list of records added to it explicitly (Static). Values: 1 Dynamic, 2 Static. |
| `use_lang` | boolean | Read-only. When true, the profile name is treated as a translation key and localized in the UI; otherwise the literal name is shown. |
| `revision` | integer | Read-only. Revision when entity was lastly changed. |
| `pipelines` | array of uuid | Read-only. For pipeline-screen profiles, ids of the pipelines included in the profile configuration; empty for profiles on other screens. |

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
