---
title: "ContactKPIs.create"
method: POST
path: "/entities/ContactKPIs"
tags: ["Contact"]
---

# ContactKPIs.create

`POST /entities/ContactKPIs`

## Request

- Base URL: `https://us-east.api.coevera.com/api/v100/rest/spaces/your_space_id`
- URL: `https://us-east.api.coevera.com/api/v100/rest/spaces/your_space_id/entities/ContactKPIs`
- Auth: HTTP basic
- TypeScript: <https://skmtc.dev/coevera/apis/coevera-crm-api/docs/entities/ContactKPIs/post.ts> (a function with typed inputs; its response is checked against the schema)

Creates a ContactKPI record.

## Query parameters

- `validation-level` integer

## Request body

- CreateContactKPIInput: Field values of a new ContactKPI record.
  - `modified` string, date-time: Last modification time.
  - `created` string, date-time: Creation time.
  - `application_id` string, uuid: Application context in which the KPI event was triggered (e.g. browser, automation, third-party integration).
  - `client_id` string, uuid: Id of the user who triggered the event.
  - `contact_id` string, uuid, required: Id of the contact this KPI event relates to.
  - `kpi` 1 | 2 | 3 | 4 | 5, required: KPI metric this event represents: CreateContact, FirstEmailSent, LastEmailSent, Archive or LastModified. Integer enum value: 1 - CreateContact, 2 - LastEmailSent, 3 - FirstEmailSent, 4 - Archive, 5 - LastModified
  - `owner_id` string, uuid, required: Id of the contact owner at the time of the event.
  - `unit_id` string, uuid: Id of the sales unit.
  - `revision` integer: Revision when entity was lastly changed.

## Response `201`

The created ContactKPI record.

- object
  - `success` boolean: True when the request succeeded; false on error.
  - `data` ContactKPI: Recorded KPI event of a contact, such as its creation, archiving or the first and last email sent, used in KPI reports.
    - `is_delete_protected` boolean, required: True when the record is protected against deletion because it must always exist in the space. Deleting a record that is not protected can still fail on other checks. Read-only.
    - `id` string, uuid, required: Unique identifier of entity.
    - `is_deleted` boolean: Specifies if the entity is considered deleted.
    - `modified` string, date-time: Last modification time.
    - `created` string, date-time: Creation time.
    - `client` string, uri: User who triggered the KPI event (e.g. created or archived the contact, sent the first email). Related Client record, returned as the URI of the record. With the 'expand' parameter the full record is returned instead; see 'Client' for its fields.
    - `contact` string, uri, required: Contact this KPI event relates to. Related Contact record, returned as the URI of the record. With the 'expand' parameter the full record is returned instead; see 'Contact' for its fields.
    - `owner` string, uri, required: Contact owner at the time the KPI event occurred. Related Client record, returned as the URI of the record. With the 'expand' parameter the full record is returned instead; see 'Client' for its fields.
    - `unit` string, uri: Sales unit the triggering user belonged to at the time of the event. Related SalesUnit record, returned as the URI of the record. With the 'expand' parameter the full record is returned instead; see 'SalesUnit' for its fields.
    - `application_id` string, uuid: Application context in which the KPI event was triggered (e.g. browser, automation, third-party integration).
    - `client_id` string, uuid: Id of the user who triggered the event.
    - `contact_id` string, uuid, required: Id of the contact this KPI event relates to.
    - `kpi` 1 | 2 | 3 | 4 | 5, required: KPI metric this event represents: CreateContact, FirstEmailSent, LastEmailSent, Archive or LastModified. Integer enum value: 1 - CreateContact, 2 - LastEmailSent, 3 - FirstEmailSent, 4 - Archive, 5 - LastModified
    - `owner_id` string, uuid, required: Id of the contact owner at the time of the event.
    - `unit_id` string, uuid: Id of the sales unit.
    - `revision` integer: Revision when entity was lastly changed.

## Other responses

- `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).
- `422`: Validation failed (code 40000, with the failing fields) or a required parameter is missing (code 119). By default one failed item fails a whole batch and nothing is written.
- `429`: Too many requests (code 182). Wait for the seconds in Retry-After, then retry.
- `500`: Unexpected server error (code 1000, ERROR_UNKNOWN).

---

[API](https://skmtc.dev/coevera/apis/coevera-crm-api.md) - [All operations](https://skmtc.dev/coevera/apis/coevera-crm-api/llms.txt) - [OpenAPI document](https://skmtc.dev/coevera/apis/coevera-crm-api/revisions/40ebbc83f179?raw)
