# Identify HTTP API

This API can be used in tandem with [Track HTTP API](/integration/api-calls/track-event-http-api.md), to send extra information about a user like its tags, location etc.

Similar, to the Track API, you will need your project API key. This key is available on your Project's [settings page](https://browsee.io/app/settings). To learn more about how to get this KEY [see](/integration/api-calls/track-event-http-api.md#api-key).<br>

## Identify API

## identify

<mark style="color:green;">`POST`</mark> `https://api.browsee.io/api/v1/identify`

An API to send custom information about a user

#### Request Body

| Name        | Type   | Description                                                                                                                                                                                                                      |
| ----------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| apiKey      | string | Your Project's API Key                                                                                                                                                                                                           |
| userId      | string | A unique identifier of the user in your database. At least one of userId or anonymousId is required.                                                                                                                             |
| traits      | object | JSON Dictionary Object of the traits to assign users like name, email and others. See below for special keys and examples.                                                                                                       |
| anonymousId | string | This is an identifier that can be sent to tie a series of events and the information sent in this identify call to a certain user and a session. In case you are sending userId, this is not required, otherwise, it is required |
| timestamp   | string | Timestamp of the event in ISO-8601 format date string "2021-12-02T00:30:08.276Z". If not provided we assume the time of receipt.                                                                                                 |

{% tabs %}
{% tab title="200 When data is successfully received" %}

```
{
    "status": "success"
}
```

{% endtab %}

{% tab title="400 " %}

```
{
    "status": "failure",
    "message": <Problem in request parameters>
}
```

{% endtab %}
{% endtabs %}

### Using the identify API

You can send any information in the `traits` object like

```
{
 name: 'Jon Snow',
 email: 'knowsnothing@gmail.com',
 location: 'Castle Black'
}
```

* Some keys like `name`, `email`, `phone` and `$tags` are special keys. When you send them in an identify call, you can see them on the right hand side of a session panel and search for the session using these keys from session search.

![Easily search for sessions with name, email and tags](/files/-MUEB5NLTujP35uJM7lI)

* `$tags`.can be used to assign free from text labels to sessions. These can then be searched back in session search.

```
{'$tags': ["Logged In", "Cohort 78435"]}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.browsee.io/integration/api-calls/identify-http-api.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
