# Signal

A **Signal** represents one action performed by one [**Identity**](https://dfend.gitbook.io/documentation/developer-api/types/identity). 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](https://dfend.gitbook.io/documentation/developer-api/https-api/signal) 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](https://dfend.gitbook.io/documentation/developer-api/types/device) type.
* `identifiers`  <mark style="color:blue;">object</mark>  An object containing at least one primary and any secondary [Identifiers](https://dfend.gitbook.io/documentation/developer-api/types/identifiers).
* `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.


---

# 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://dfend.gitbook.io/documentation/developer-api/types/signal.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.
