---
title: "Create an object"
method: PUT
path: "/api/objects/{objectType}"
tags: ["Objects"]
---

# Create an object

`PUT /api/objects/{objectType}`

## Request

- Base URL: `https://app.useitem.io`
- URL: `https://app.useitem.io/api/objects/{objectType}`
- Auth: API key in header `x-api-key`

Creates a new object of the specified type.

For contacts and companies, the system automatically deduplicates:
- **Contacts** are matched by email — if a contact with the same email exists, it will be updated instead.
- **Companies** are matched by domain, LinkedIn URL, or name similarity.

Custom objects are always created as new records.

## Request body

- object
  - `name` string, required: Display name for the object
  - `fields` object: Key-value pairs of fields to set on the object
  - `profile_image_url` string, uri: Avatar URL (contacts) or logo URL (companies)

## Response `201`

Object created

- object
  - `data` ObjectRecord: A flat object containing all fields. System fields (name, email, phone, etc.) and custom fields are merged into a single level — the `custom_fields` JSON column is flattened so every field is a top-level key.
    - `id` integer: Unique record ID
    - `name` string
    - `email` string
    - `created_at` string, date-time
    - `updated_at` string, date-time

## Other responses

- `400`: Validation error
- `401`: Invalid or missing API key

---

[API](https://skmtc.dev/item/apis/item-api.md) - [All operations](https://skmtc.dev/item/apis/item-api/llms.txt) - [OpenAPI document](https://skmtc.dev/item/apis/item-api/revisions/05e6374d3922?raw)
