---
title: Domain Typosquatting API - Find Typo and Look-Alike Domains for Brand Protection and Phishing Discovery
version: 1.0.0
description: Search for registered domains that read like typo variants of a brand keyword, or that match a wildcard pattern, across the full TLD set. Each match returns what is available of its registration date, expiry date, last-seen date, and drop status, paginated at 100 domains per page. Built for brand and trademark protection, phishing discovery, scheduled monitoring, and domain reclaim.
openapi: 3.1.1
servers:
  - https://api.apifreaks.com/v1.0
paths: 1
operations: 1
schemas: 3
---

## Table of Contents

- [Domain Typosquatting API - Find Typo and Look-Alike Domains for Brand Protection and Phishing Discovery v1.0.0](#domain-typosquatting-api-find-typo-and-look-alike-domains-for-brand-protection-and-phishing-discovery-v100)
  - [Authentication](#authentication)
  - [Domain APIs](#domain-apis)
    - [getDomainTyposquatting](#getdomaintyposquatting)
      - [Parameters](#parameters)
      - [Responses](#responses)
  - [Schemas](#schemas)
    - [DomainTyposquattingResponse](#domaintyposquattingresponse)
    - [DomainItem](#domainitem)
    - [ErrorResponse](#errorresponse)



# Domain Typosquatting API - Find Typo and Look-Alike Domains for Brand Protection and Phishing Discovery v1.0.0

Search for registered domains that read like typo variants of a brand keyword, or that match a wildcard pattern, across the full TLD set. Each match returns what is available of its registration date, expiry date, last-seen date, and drop status, paginated at 100 domains per page. Built for brand and trademark protection, phishing discovery, scheduled monitoring, and domain reclaim.

Base URLs:

* [https://api.apifreaks.com/v1.0](https://api.apifreaks.com/v1.0)

## Authentication

* API Key (ApiKeyAuthHeader)
    - Parameter Name: **X-apiKey**, in: header. Pass your API key via the X-apiKey request header.

* API Key (ApiKeyAuthQuery)
    - Parameter Name: **apiKey**, in: query. Pass your API key via the apiKey query parameter.

## Domain APIs

### getDomainTyposquatting

`GET /domain/typosquatting`

*Find registered typo-variant or wildcard-pattern domains for a brand keyword.*

The Domain Typosquatting API searches for registered domains that are typo or look-alike variants of a brand keyword, or that match a wildcard pattern. Results include registration lifecycle data and drop status across 1529+ TLDs, paginated at 100 domains per page.

#### Parameters

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|format|query|string|false|Format of the response.|
|keyword|query|string|false|Brand or label to find typo variants for. 3-63 characters, letters, digits, or hyphens, a single label with no dots. Case-insensitive. Use either keyword or pattern, never both.|
|pattern|query|string|false|Wildcard search string that combines fuzzy matching with * wildcards. 3-63 characters total, * is the only supported wildcard and each one matches zero or more characters, maximum 3 asterisks per request. Use either keyword or pattern, never both.|
|pageToken|query|string|false|Token from nextPageToken in the previous response. Required to retrieve page 2 and onward. The original keyword or pattern must be passed alongside the token on every page request. Results page at 100 domains per page.|

##### Enumerated Values

|Parameter|Value|
|---|---|
|format|json|
|format|xml|

> Example responses

> Success

```json
{
  "status": true,
  "totalRecords": 1284,
  "currentPage": 1,
  "hasNextPage": true,
  "totalPages": 13,
  "nextPageToken": "<opaque_token>",
  "domains": [
    {
      "domainName": "p-aypal.com",
      "createDate": "2025-04-17",
      "expiryDate": "2026-04-17",
      "lastSeen": "2026-05-29",
      "isDropped": true
    },
    {
      "domainName": "p-aypal.de",
      "lastSeen": "2024-07-11",
      "isDropped": true
    },
    {
      "domainName": "p0aypal.com",
      "createDate": "2017-12-29",
      "expiryDate": "2026-12-29",
      "lastSeen": "2026-08-18",
      "isDropped": false
    },
    {
      "domainName": "p7ypal.com",
      "isDropped": true
    },
    {
      "domainName": "pa-pal.club",
      "createDate": "2019-10-25",
      "expiryDate": "2020-10-25",
      "isDropped": false
    }
  ]
}
```

```json
{
  "status": true,
  "totalRecords": 5471,
  "currentPage": 1,
  "hasNextPage": true,
  "totalPages": 55,
  "nextPageToken": "<opaque_token>",
  "domains": [
    {
      "domainName": "paypal-support.com",
      "createDate": "2024-11-02",
      "expiryDate": "2026-11-02",
      "lastSeen": "2026-08-30",
      "isDropped": false
    },
    {
      "domainName": "login-paypal.net",
      "lastSeen": "2025-12-14",
      "isDropped": true
    }
  ]
}
```

```json
{
  "status": true,
  "totalRecords": 0,
  "currentPage": 1,
  "hasNextPage": false,
  "totalPages": 0,
  "domains": []
}
```

> Bad Request – Invalid parameters

```json
{
  "error": "Invalid Pattern Exception",
  "message": "The pattern must contain at least 5 non-wildcard characters and no more than 3 wildcards.",
  "path": "/v1.0/domain/typosquatting",
  "status": 400,
  "timestamp": "2026-09-08T12:00:00.000Z"
}
```

```json
{
  "error": "Invalid Param Exception",
  "message": "Use either the \"keyword\" or the \"pattern\" parameter, never both.",
  "path": "/v1.0/domain/typosquatting",
  "status": 400,
  "timestamp": "2026-09-08T12:00:00.000Z"
}
```

```json
{
  "error": "Invalid Param Exception",
  "message": "Please provide either a \"keyword\" or a \"pattern\" parameter.",
  "path": "/v1.0/domain/typosquatting",
  "status": 400,
  "timestamp": "2026-09-08T12:00:00.000Z"
}
```

#### Responses

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Success|[DomainTyposquattingResponse](#domaintyposquattingresponse)|
|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Bad Request – Invalid parameters|[ErrorResponse](#errorresponse)|

#### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|X-AF-Credits-Cost|integer||Specifies the number of credits consumed by the current request.|
|400|X-AF-Credits-Cost|integer||Specifies the number of credits consumed by the current request.|

To perform this operation, you must be authenticated by means of one of the following methods:
ApiKeyAuthHeader, ApiKeyAuthQuery

## Schemas

### DomainTyposquattingResponse

Paginated response containing typo-variant or pattern-matched domains.

#### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|status|boolean|true|none|Indicates if the request was successful.|
|totalRecords|integer|true|none|Total number of domains found.|
|currentPage|integer|true|none|Page number of the current response. Starts at 1.|
|hasNextPage|boolean|true|none|true if at least one additional page is available.|
|totalPages|integer|true|none|Total number of pages available.|
|nextPageToken|string|false|none|Opaque token to pass as pageToken on the next request. Present only when hasNextPage is true.|
|domains|[[DomainItem](#domainitem)]|true|none|List of typo-variant or pattern-matched domains on the current page.|

### DomainItem

A single typo-variant or pattern-matched domain with registration lifecycle data.

#### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|domainName|string|true|none|Domain name.|
|createDate|string|false|none|Domain creation date (YYYY-MM-DD). May be absent for older or less-actively-tracked entries.|
|expiryDate|string|false|none|Domain expiration date (YYYY-MM-DD). May be absent for older or less-actively-tracked entries.|
|lastSeen|string|false|none|Last time the domain was observed (YYYY-MM-DD). One of the two fields reliably meaningful across a full result set.|
|isDropped|boolean|true|none|Indicates whether the domain has dropped out of the registry and become available to register again.|

### ErrorResponse

Standard error envelope returned by the API on failed requests.

#### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|error|string|false|none|Short error category or exception type.|
|message|string|true|none|Human-readable error message describing the failure.|
|path|string|false|none|API endpoint path that produced the error.|
|status|integer|false|none|HTTP status code returned with the error.|
|timestamp|string(date-time)|false|none|Timestamp when the error occurred (ISO 8601).|
