> For the complete documentation index, see [llms.txt](https://dfend.gitbook.io/documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://dfend.gitbook.io/documentation/developer-api/types/signal.md).

# Signal

A **Signal** represents one action performed by one [**Identity**](/documentation/developer-api/types/identity.md). We compare each Signal against past Signals in real-time.

The fields that we accept for a Signal vary depending on the environment from which the Signal was sent. See the [Signal](/documentation/developer-api/https-api/signal.md) page of the HTTPS API documentation to learn more.

## Attributes

* `idempotencyKey`  <mark style="color:blue;">string</mark>  Prevent duplicate events by providing a unique key for this signal.
* `type`  <mark style="color:blue;">string</mark>  A custom string value representing the type of event.
* `source`  <mark style="color:blue;">enum</mark>  A string of value `'App' | 'Browser' | 'Server' | 'GoogleFetch' | 'Identity' | 'Unknown'`.
* `device`  <mark style="color:blue;">Device</mark>  An object of [Device](/documentation/developer-api/types/device.md) type.
* `identifiers`  <mark style="color:blue;">object</mark>  An object containing at least one primary and any secondary [Identifiers](/documentation/developer-api/types/identifiers.md).
* `ip`  <mark style="color:blue;">string</mark>  The user's IP address.
* `userAgent`  <mark style="color:blue;">string</mark>  The user's user-agent string.
* `lat`  <mark style="color:blue;">number</mark>  The user's latitude coordinate.
* `lon`  <mark style="color:blue;">number</mark>  The user's longitude coordinate.
* `metadata`  <mark style="color:blue;">object</mark>  Custom metadata that was provided with this Signal.
* `time`  <mark style="color:blue;">number</mark>  A Unix timestamp (ms) representing the original time of the action associated with this Signal.
