---
title: "Collect Automation Intelligence."
method: POST
path: "/edge"
---

# Collect Automation Intelligence.

`POST /edge`

The Automation Intelligence API (in public preview) gives you the tools to determine whether traffic is legitimate and should be accepted by your application.

The API detects automation tools like AI Agents, AI Assistants and AI Browsers. Additionally it provides IP intelligence like geolocation and data center detection.

### Event Retrieval

Events created by the Automation Intelligence API can be fetched via the [`/v4/events/{event_id}`](https://docs.fingerprint.com/reference/server-api-v4-get-event) API using the `event_id` present in the API response.

Fetch all Automation Intelligence API events via the [`/v4/events?source=edge`](https://docs.fingerprint.com/reference/server-api-v4-search-events#parameter-source) API.

## Request body

- EdgeRequest — HTTP request metadata (including the HTTP method, headers and IP address) sent by you (your server) to the Fingerprint API for IP and bot analysis. To improve accuracy, retain as much of the original semantics of the HTTP request as possible. For example, preserve the order of the request headers and their capitalization.
  - `headers` object[], required — Ordered header entries from the request made to your server. Each entry represents one header line. If one header name appears as multiple lines, send each as a separate item in the array. Headers that contain authentication details like `Cookie` or `Authorization` should be included with their value set to an empty string.
    - `name` string, required — Header name as forwarded by your server. Headers must be valid according to RFC 7230 and will be canonicalized according to RFC 9112.
    - `value` string, required — Value of a single forwarded header entry. Be careful to preserve the original encoding and escaping. For example, do not double escape quotes.
  - `method` string, required — HTTP method of the request. Preserve the original HTTP method of the request, including casing.
  - `url` string, uri, required — Absolute URL of the request, without a \#fragment suffix. Only HTTP and HTTPS schemes are supported.
  - `ipv4_address` string, ipv4 — Client IPv4 address observed by your server.
  - `ipv6_address` string, ipv6 — Client IPv6 address observed by your server.
  - `linked_id` string — A customer-provided id that was sent with the request.
  - `tags` Tags — A customer-provided value or an object that was sent with the identification request or updated later.

## Response `200`

OK.

- EdgeResponse — IP and bot analysis for a request submitted through the Automation Intelligence API.
  - `event_id` string, required — Unique identifier of the user's request. The first portion of the event_id is a unix epoch milliseconds timestamp.
  - `timestamp` integer, required — Timestamp of the event with millisecond precision in Unix time.
  - `linked_id` string — A customer-provided id that was sent with the request.
  - `tags` Tags — A customer-provided value or an object that was sent with the identification request or updated later.
  - `url` string — Page URL from which the request was sent.
  - `bot_info` BotInfo — Extended bot information.
    - `category` 'advertising_and_marketing' | 'aggregator' | 'ai_agent' | 'ai_assistant' | 'ai_browser' | 'ai_crawler' | 'ai_search' | 'browser_automation' | 'ecommerce' | 'monitoring_and_analytics' | 'other' | 'scraping' | 'security' | 'search_engine_crawler' | 'search_engine_optimization' | 'unknown', required — The type and purpose of the bot.
    - `provider` string, required — The organization or company operating the bot.
    - `provider_url` string — The URL of the bot provider's website.
    - `name` string, required — The specific name or identifier of the bot.
    - `identity` 'verified' | 'signed' | 'spoofed' | 'unknown', required — The verification status of the bot's identity: * `verified` - well-known bot with publicly verifiable identity, directed by the bot provider. * `signed` - bot that signs its platform via Web Bot Auth, directed by the bot provider's customers. * `spoofed` - bot that claims a public identity but fails verification. * `unknown` - bot that does not publish a verifiable identity.
    - `confidence` 'low' | 'medium' | 'high', required — Confidence level of the bot identification.
  - `ip_info` IPInfo, required — Details about the request IP address. Has separate fields for v4 and v6 IP address versions.
    - `v4` IPInfoV4
      - `address` string, ipv4, required
      - `geolocation` Geolocation
        - `accuracy_radius` integer — The IP address is likely to be within this radius (in km) of the specified location.
        - `latitude` number, double
        - `longitude` number, double
        - `postal_code` string
        - `timezone` string, timezone
        - `city_name` string
        - `country_code` string
        - `country_name` string
        - `continent_code` string
        - `continent_name` string
        - `subdivisions` object[]
          - `iso_code` string, required
          - `name` string, required
      - `asn` string
      - `asn_name` string
      - `asn_network` string
      - `asn_type` string
      - `datacenter_result` boolean — When true, the request originated from a datacenter.
      - `datacenter_name` string
    - `v6` IPInfoV6
      - `address` string, ipv6, required
      - `geolocation` Geolocation
        - `accuracy_radius` integer — The IP address is likely to be within this radius (in km) of the specified location.
        - `latitude` number, double
        - `longitude` number, double
        - `postal_code` string
        - `timezone` string, timezone
        - `city_name` string
        - `country_code` string
        - `country_name` string
        - `continent_code` string
        - `continent_name` string
        - `subdivisions` object[]
          - `iso_code` string, required
          - `name` string, required
      - `asn` string
      - `asn_name` string
      - `asn_network` string
      - `asn_type` string
      - `datacenter_result` boolean — When true, the request originated from a datacenter.
      - `datacenter_name` string
  - `proxy` boolean — IP address was used by a public proxy provider or belonged to a known recent residential proxy
  - `proxy_confidence` 'low' | 'medium' | 'high' — Confidence level of the proxy detection. If a proxy is not detected, confidence is "high". If it's detected, can be "low", "medium", or "high".
  - `proxy_details` ProxyDetails — Proxy detection details (present if `proxy` is `true`)
    - `proxy_type` 'residential' | 'data_center' | 'unknown', required — Proxy type: * `residential` - proxies that route through residential and telecom IP addresses to appear as legitimate traffic * `data_center` - proxies which route through data centers * `unknown` - reported when a proxy is detected solely by the ML model and the IP sources did not determine a specific type
    - `last_seen_at` integer — Unix millisecond timestamp with hourly resolution of when this IP was last seen as a proxy
    - `provider` string — String representing the last proxy service provider detected when this IP was synced. An IP can be shared by multiple service providers.
  - `vpn` boolean — VPN or other anonymizing service has been used when sending the request.
  - `vpn_confidence` 'low' | 'medium' | 'high' — A confidence rating for the VPN detection result — "low", "medium", or "high". Depends on the combination of results returned from all VPN detection methods.
  - `vpn_methods` VpnMethods
    - `timezone_mismatch` boolean — The browser timezone doesn't match the timezone inferred from the request IP address.
    - `public_vpn` boolean — Request IP address is owned and used by a public VPN service provider.
    - `auxiliary_mobile` boolean — This method applies to mobile devices only. Indicates the result of additional methods used to detect a VPN in mobile devices.
    - `os_mismatch` boolean — The browser runs on a different operating system than the operating system inferred from the request network signature.
    - `relay` boolean — Request IP address belongs to a relay service provider, indicating the use of relay services like [Apple Private relay](https://support.apple.com/en-us/102602) or [Cloudflare Warp](https://developers.cloudflare.com/warp-client/). * Like VPNs, relay services anonymize the visitor's true IP address. * Unlike traditional VPNs, relay services don't let visitors spoof their location by choosing an exit node in a different country. This field allows you to differentiate VPN users and relay service users in your fraud prevention logic.
    - `ml_prediction` boolean — `true` if the request came from a device running a VPN, `false` otherwise.

## Other responses

- `400` — Bad request. The request payload is not valid.
- `403` — Forbidden. Access to this API is denied.
- `413` — Bad request. The request payload is too large.
- `429` — Too Many Requests. The request is throttled.
- `500` — Workspace error.

---

[API](https://skmtc.net/fingerprint/apis/management-api.md) · [All operations](https://skmtc.net/fingerprint/apis/management-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/fingerprint/management-api/versions/b17eccec9d47/schema)
