---
updatedAt: 2025-06-09T20:45:55.000Z
agentTools:
  projectIndex: https://docs.fullcontact.com/llms.txt
---

# Managing Customer Records

## Resolve a Customer Record

Using the `identity.resolve` endpoint, you can resolve a customer record - in the form of a [Multi Field Request](https://docs.fullcontact.com/docs/multi-field-request-1) -  to a persistent, unique Person ID. Once you have obtained a Person ID, you can use that identifier for ongoing Resolve and Enrich requests in addition to all other acceptable identifiers.

> 📘
>
> The default rate limit for the resolve endpoint is 100 queries per second.

```curl Example Request
curl --request POST 'https://api.fullcontact.com/v3/identity.resolve' \
    -H 'Authorization: Bearer FC_API_KEY' \
    -H 'Content-Type: application/json' \
    -d '{
    "email": "bart@fullcontact.com",
    "name": {
        "given": "Bart",
        "family": "Lorang"
    },
    "address": {
        "addressLine1": "123 Main St.",
        "city": "Boulder",
        "region": "CO"
    }
}'
```
```json Example Response
{
  "recordIds": [
    "CUST001"
  ],
  "personIds": [
    "c0VAsuEb4DRPuXmEXLutGitk-Hq9xUMautmqzyfuHpZyl3EP"
  ]
}
```

<table class="properties-list">
<thead>
<tr>
<th colspan="2">Response Payload Properties</th>
</tr>
</thead>
<tbody>
<tr>
<td>personIds
<span class="properties-list-type">list</span>
<span class="properties-list-type queryable">Queryable</span></td>
<td>The persistent generated unique identifier for the provided multi field payload.</td>
</tr>
 <tr>
<td>recordIds
<span class="properties-list-type">list</span>
<span class="properties-list-type queryable">Queryable</span></td>
<td>The client-driven Record ID attached to a customer.</td>
</tr>
</tbody>
</table>

## Map A Customer Record

Map and store customer records by sending any acceptable [Multi Field Request](https://docs.fullcontact.com/docs/multi-field-request-1)\
identifier combination along with any `recordId`. You can add multiple Record IDs to the same person.

To see what identifiers are attached to a given record, you can call `identity.resolve` with a `recordId`, `personId`, or acceptable [multi field payload](https://docs.fullcontact.com/docs/multi-field-request-1)

> 📘
>
> * If the recordId exists, and tied to a different person, that mapping will be deleted and will be associated to the most recent multi field query
> * If you do not pass a recordId to identity.map, one with be auto generated for you
> * The default rate limit for the map endpoint is 100 queries per second.

```curl Example Request
curl --request POST 'https://api.fullcontact.com/v3/identity.map' \
    -H 'Authorization: Bearer FC_API_KEY' \
    -H 'Content-Type: application/json' \
    -d '{
    "email": "bart@fullcontact.com",
    "name": {
        "given": "Bart",
        "family": "Lorang"
    },
    "address": {
        "addressLine1": "123 Main St.",
        "city": "Boulder",
        "region": "CO"
    },
    "recordId": "CUST001"
}'
```
```json Example Response
{
    "recordIds": [
        "CUST001"
    ]
}
```

<table class="properties-list">
<thead>
<tr>
<th colspan="2">Response Payload Properties</th>
</tr>
</thead>
<tbody>
<tr>
<td>recordIds
<span class="properties-list-type">list</span>
<span class="properties-list-type queryable">Queryable</span></td>
<td>The client-driven Record ID attached to a customer.</td>
</tr>
</tbody>
</table>

## Map & Resolve a Customer Record

Similar to `identity.map`, but allows returning a person ID in addition to the created record ID in a single API call.

> 📘
>
> * If the recordId exists, and tied to a different person, that mapping will be deleted and will be associated to the most recent multi field query
> * If you do not pass a recordId to identity.mapResolve, one with be auto generated for you
> * This endpoint supports `generatePid` as an optional attribute in the body. Setting this will always return a person ID whether there is a match or not.

```curl
curl --request POST 'https://api.fullcontact.com/v3/identity.mapResolve' \
    -H 'Authorization: Bearer FC_API_KEY' \
    -H 'Content-Type: application/json' \
    -d '{
    "email": "bart@fullcontact.com",
    "name": {
        "given": "Bart",
        "family": "Lorang"
    },
    "address": {
        "addressLine1": "123 Main St.",
        "city": "Boulder",
        "region": "CO"
    },
    "recordId": "CUST0001"
}'
```
```json Response Payload
{
  "recordIds": [
    "CUST001"
  ],
  "personIds": [
    "c0VAsuEb4DRPuXmEXLutGitk-Hq9xUMautmqzyfuHpZyl3EP"
  ]
}
```

<table class="properties-list">
<thead>
<tr>
<th colspan="2">Properties</th>
</tr>
</thead>
<tbody>
<tr>
<td>recordIds
<span class="properties-list-type">list</span>
<span class="properties-list-type queryable">Queryable</span></td>
<td>The client-driven record id attached to a customer.</td>
</tr>
<tr>
<td>personIds
<span class="properties-list-type">list</span>
<span class="properties-list-type queryable">Queryable</span></td>
<td>The new or existing person IDs associated to the customer record.</td>
</tr>
</tbody>
</table>

## Delete a Customer Record

If at any point you need to delete and remove a customer record, you can use the Resolve API Delete endpoint by inputting one or many Customer Record IDs. A successful deletion request will result in a 204 Response.

```curl Example Delete Request
curl --request POST 'https://api.fullcontact.com/v3/identity.delete' \
    -H 'Authorization: Bearer FC_API_KEY' \
    -H 'Content-Type: application/json' \
    -d '{
    "recordId" : "CUST001"
}'
```