# Welcome to FullContact Support

Search our Knowledge Base or Contact Support.

## Multi Field Request

### Multi Field Request

With Identity Streme, the ability to match on one or many input fields is available. Map, store and resolve to individuals by sending any identifiers you may already have, such as an email address(es), Twitter handle, LinkedIn URL, phone number(s), name and location(address), name, social URLs, MAIDs, and more. A customer Record ID will then be used to locate and maintain a custom internal identifier, which can be used as an input for future requests into FullContact APIs.

The more contact data inputs you can provide either via API or Batch, the more accurate and precise we can get with our identity resolution capabilities. If your [Multi Field Request](https://docs.fullcontact.com/docs/multi-field-request-1) contains incomplete identifier combinations alongside valid inputs, the valid inputs **only** will be used to identify and resolve an individual. For example, if a name/address combination does not adhere to what is acceptable alongside a valid email, only the valid email will be used to lookup an individual.

When providing inputs, there’s a few helpful tips to keep in mind:

> 📘 When providing inputs, there’s a few helpful tips to keep in mind:
>
> - To use MD5 emails, be sure to first lowercase and ensure any extraneous characters (e.g. extra spaces or surrounding quotation marks) are stripped off.
> - To use postal address, a name is required alongside the input and vice versa.
> - Only one name/address combination can be included in the API request
> - To use an international phone number, a country code is required.
> - There is a maximum of 25 identifiers by type that you may use in your multi field request. A 400 Response will be returned if there are more than 25 identifiers for any given identifier type.

```bash
curl Fully Formed Multi Field Resolve Request
curl -X POST \
https://api.fullcontact.com/v3/identity.resolve \
 -H 'Authorization: Bearer {Your API Key}' \
 -H 'Content-Type: application/json' \
 -d '{
"emails": [
"bart@fullcontact.com",
"bart.lorang@fullcontact.com"
],
"phones": [
"+17202227799",
"+13035551234"
],
"location": {
"addressLine1": "123 Main Street",
"addressLine2": "Unit 2",
"city": "Denver",
"region": "Colorado",
"regionCode": "CO",
"postalCode": "80203"
},
"name": {
"full": "Bart Lorang",
"given": "Bart",
"family": "Lorang"
},
"profiles": [{
"service": "twitter",
"username": "bartlorang"
}, {
"service": "twitter",
"userid": "5998422"
}, {
"service": "linkedin",
"url": "https://www.linkedin.com/in/bartlorang"
}, {
"service": "github",
"url": "https://www.github.com/lorangb"
}],
"maids": ["ape2ch30-pifn-cbvi-30yy-nia-zex7aw5u"],
"recordId": "customer123",
"personId": "eYxWc0B-dKRxerTw _uQpxCssM_ GyPaLErj0Eu3y2FrU6py1J",
"li_nonid": "-CmQui5eT6tqBVqQ874WGCv4DNO_ taXJOAxVlQ"
}'
```

```json
Example Resolve Response
{
"recordIds": [
    "CUST001"
],
"personIds": [
    "c0VAsuEb4DRPuXmEXLutGitk-Hq9xUMautmqzyfuHpZyl3EP"
]
}
```

> 🚧
>
> **Location or Name in request**
>
| Input Fields |
| --- |
| email<br>stringQueryable | One email address of the contact. Can accept cleartext, an MD5 or SHA-256 hash representation of the email address to query. Be certain to lowercase and trim the email address prior to hashing. |
| emails<br>arrayQueryable | One or many email addresses of the contact. Can accept cleartext, an MD5 or SHA-256 hash representation of the email address to query. Be certain to lowercase and trim the email address prior to hashing. |
| phone<br>stringQueryable | Phone number of the contact. For international numbers a country code is required. |
| phones<br>arrayQueryable | One or many phone numbers of the contact. For international numbers a country code is required. |
| profiles<br>objectQueryable | URLs, IDs and usernames to the profiles on the social platform. |
| name.full<br>stringQueryable | Full name of the contact (givenName, familyName). Only queryable when provided in conjunction with postal address. |
| name.given<br>stringQueryable | The given name (first name) of the individual. Only queryable when provided in conjunction with postal address. |
| name.family<br>stringQueryable | The family name (last name) of the individual. Only queryable when provided in conjunction with postal address. |
| location.addressLine1<br>stringQueryable | The first address line for each location. Only queryable when provided in conjunction with name. |
| location.addressLine2<br>stringQueryable | The second address line for each location. Only queryable when provided in conjunction with name. |
| location.city<br>stringQueryable | The city of each location. Only queryable when provided in conjunction with name. |
| location.region<br>stringQueryable | The region of each location. This is often the state or province. Only queryable when provided in conjunction with name. |
| location.regionCode<br>stringQueryable | The region code of each location. Only queryable when provided in conjunction with name. |
| location.postalCode<br>stringQueryable | The postal or ZIP code for each location. Can accept Zip + 4 or Zip. Only queryable when provided in conjunction with name. |
| maids<br>listQueryable | One or more Mobile Advertising IDs (MAIDs) for an individual. |
| recordId<br>stringQueryable | The client-driven record id attached to a customer. |
| personId<br>stringQueryable | The unique, persistent FullContact person id attached to a customer that is scoped per account. |
| li_nonid<br>stringQueryable | The LiveIntent pre-authenticated digital nonID. |

### Authorization

Authenticating with the FullContact API is accomplished through the use of an API key. You can generate and manage your API keys from the [FullContact Platform UI](https://platform.fullcontact.com/developers/api-keys)

When accessing the FullContact API, include your API Key within the "Authorization" header of your POST, using a prefix of "Bearer". An example of this is shown below.

```bash
curl Passing the Auth Header
curl -X POST https://api.fullcontact.com/v3/identity.resolve \
 -H 'Authorization: Bearer {Your API Key}'
```

> ❗️ Keep Your API Keys Secret
>
> Your API keys are essentially like passwords to access the FullContact API, and should be kept secret. Do not embed them in client-side code or post them in publicly accessible areas such as support forums or GitHub. It is a common and easy mistake to accidentally copy and paste code snippets, including your API key, when seeking help - be sure to remove your API key and any other sensitive information before posting.
