> ## Documentation Index
> Fetch the complete documentation index at: https://developer.folk.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Custom objects

A custom object is an object type you define yourself inside a group — Projects, Applications, Properties, or anything else your workflow needs.

[Deals](/core-concepts/deals) are the default object type in folk, but they are not a special case: a deal is simply the object type every group starts with. Everything below applies equally to deals and to the object types you create.

## Object types

Object types are defined per group, like [custom fields](/core-concepts/custom-fields) are. A "Hiring" group might define an "Applications" object type, while a "Real estate" group defines "Properties". The two are independent, even inside the same workspace.

Each object type has its own set of custom fields. An "Applications" object can track a `Status` and an `Interview date`, while a "Properties" object tracks a `Price` and a `Surface`.

<Info>
  Object types are group specific. Two groups can each define an object type
  with the same name, and they will not share their custom fields.
</Info>

## Object fields

Whatever its type, every object has the same native fields:

* `name`: The name of the object.
* `people`: A list of people associated with the object.
* `companies`: A list of companies associated with the object.
* `createdAt`: The date and time the object was created.
* `createdBy`: The user who created the object.

Everything else is a custom field defined on the object type in its group.

## Object relationships

### People and companies

An object can reference one or more people and companies, shown in its `people` and `companies` arrays. An object can only reference contacts that belong to the same group.

<CardGroup cols={2}>
  <Card title="People" icon="user" href="/core-concepts/people">
    Read more about people <Icon icon="arrow-right" />
  </Card>

  <Card title="Companies" icon="building" href="/core-concepts/companies">
    Read more about companies <Icon icon="arrow-right" />
  </Card>
</CardGroup>

### Group

Objects are created inside a group, and the group is what defines the object types available to them.

<Card horizontal title="Groups" icon="users-viewfinder" href="/core-concepts/groups">
  Read more about groups <Icon icon="arrow-right" />
</Card>

## Custom objects in the API

Every object type shares one set of endpoints, with the object type passed as a path parameter:

```
/v1/groups/{groupId}/{objectType}
```

Reading an application is the same request as reading a deal, with a different `objectType`:

```
GET /v1/groups/grp_bc984b3f-0386-434d-82d7-a91eb6badd71/Applications
GET /v1/groups/grp_bc984b3f-0386-434d-82d7-a91eb6badd71/Deals
```

The object types available in a group are returned by the [List group custom fields](/api-reference/group-custom-fields/list-group-custom-fields) endpoint, as the fields whose `type` is `objectField`.

<Card horizontal title="Custom objects API" icon="cube" href="/api-reference/custom-objects/overview">
  Read more about the custom objects endpoints <Icon icon="arrow-right" />
</Card>
