Skip to content

Internet

Module to generate internet related entries.

Overview

For user accounts, you may need an email() and a password(), as well as a ASCII username() or Unicode displayName(). Since the emails generated could coincidentally be real email addresses, you should not use these for sending real email addresses. If this is a concern, use exampleEmail() instead.

For websites, you can generate a domainName() or a full url().

To make your data more 🔥, you can use emoji().

You also have access to a number of the more technical elements of web requests, such as httpMethod, httpStatusCode, ip, mac, userAgent, and port.

color

Generates a random css hex color code in aesthetically pleasing color palette.

Based on http://stackoverflow.com/questions/43044/algorithm-to-randomly-generate-an-aesthetically-pleasing-color-palette

Available since v2.0.1

Parameters

NameTypeDefaultDescription
options{ ... }{}

An options object.

options.blueBase?number0

The optional base blue in range between 0 and 255.

options.greenBase?number0

The optional base green in range between 0 and 255.

options.redBase?number0

The optional base red in range between 0 and 255.

Returns: string

ts
function color(
  options: {
    redBase?: number;
    greenBase?: number;
    blueBase?: number;
  } = {}
): string;

Examples

ts
faker.internet.color() // '#30686e'
faker.internet.color({ redBase: 100, greenBase: 100, blueBase: 100 }) // '#4e5f8b'

displayName

Generates a display name using the given person's name as base. The resulting display name may use one or both of the provided names. If the input names include Unicode characters, the resulting display name will contain Unicode characters. It will not contain spaces.

Available since v8.0.0

Parameters

NameTypeDefaultDescription
options{ ... }{}

An options object.

options.firstName?stringfaker.person.firstName()

The optional first name to use.

options.lastName?stringfaker.person.lastName()

The optional last name to use.

Returns: string

ts
function displayName(
  options: {
    firstName?: string;
    lastName?: string;
  } = {}
): string;

Examples

ts
faker.internet.displayName() // 'Nettie_Zboncak40'
faker.internet.displayName({ firstName: 'Jeanne', lastName: 'Doe' }) // 'Jeanne98' - note surname not used.
faker.internet.displayName({ firstName: 'John', lastName: 'Doe' }) // 'John.Doe'
faker.internet.displayName({ firstName: 'Hélene', lastName: 'Müller' }) // 'Hélene_Müller11'
faker.internet.displayName({ firstName: 'Фёдор', lastName: 'Достоевский' }) // 'Фёдор.Достоевский50'
faker.internet.displayName({ firstName: '大羽', lastName: '陳' }) // '大羽.陳'

domainName

Generates a random domain name.

Available since v2.0.1

Returns: string

ts
function domainName(): string;

Examples

ts
faker.internet.domainName() // 'slow-timer.info'

domainSuffix

Returns a random domain suffix.

Available since v2.0.1

Returns: string

ts
function domainSuffix(): string;

Examples

ts
faker.internet.domainSuffix() // 'com'
faker.internet.domainSuffix() // 'name'

domainWord

Generates a random domain word.

Available since v2.0.1

Returns: string

ts
function domainWord(): string;

Examples

ts
faker.internet.domainWord() // 'close-reality'
faker.internet.domainWord() // 'weird-cytoplasm'

email

Generates an email address using the given person's name as base.

Available since v2.0.1

Parameters

NameTypeDefaultDescription
options{ ... }{}

The options to use.

options.allowSpecialCharacters?booleanfalse

Whether special characters such as .!#$%&'*+-/=?^_`{|}~ should be included in the email address.

options.firstName?stringfaker.person.firstName()

The optional first name to use.

options.lastName?stringfaker.person.lastName()

The optional last name to use.

options.provider?string

The mail provider domain to use. If not specified, a random free mail provider will be chosen.

Returns: string

ts
function email(
  options: {
    firstName?: string;
    lastName?: string;
    provider?: string;
    allowSpecialCharacters?: boolean;
  } = {}
): string;

Examples

ts
faker.internet.email() // '[email protected]'
faker.internet.email({ firstName: 'Jeanne'}) // '[email protected]'
faker.internet.email({ firstName: 'Jeanne'}) // '[email protected]'
faker.internet.email({ firstName: 'Jeanne', lastName: 'Doe' }) // '[email protected]'
faker.internet.email({ firstName: 'Jeanne', lastName: 'Doe', provider: 'example.fakerjs.dev' }) // '[email protected]'
faker.internet.email({ firstName: 'Jeanne', lastName: 'Doe', provider: 'example.fakerjs.dev', allowSpecialCharacters: true }) // 'Jeanne%[email protected]'

emoji

Generates a random emoji.

Available since v6.2.0

Parameters

NameTypeDefaultDescription
options{ ... }{}

Options object.

options.types?EmojiType[]Object.keys(faker.definitions.internet.emoji)

A list of the emoji types that should be used.

Returns: string

ts
function emoji(
  options: {
    types?: ReadonlyArray<EmojiType>;
  } = {}
): string;

Examples

ts
faker.internet.emoji() // '🥰'
faker.internet.emoji({ types: ['food', 'nature'] }) // '🥐'

exampleEmail

Generates an email address using an example mail provider using the given person's name as base.

Available since v3.1.0

Parameters

NameTypeDefaultDescription
options{ ... }{}

An options object.

options.allowSpecialCharacters?booleanfalse

Whether special characters such as .!#$%&'*+-/=?^_`{|}~ should be included in the email address.

options.firstName?stringfaker.person.firstName()

The optional first name to use.

options.lastName?stringfaker.person.lastName()

The optional last name to use.

Returns: string

ts
function exampleEmail(
  options: {
    firstName?: string;
    lastName?: string;
    allowSpecialCharacters?: boolean;
  } = {}
): string;

Examples

ts
faker.internet.exampleEmail() // '[email protected]'
faker.internet.exampleEmail({ firstName: 'Jeanne' }) // '[email protected]'
faker.internet.exampleEmail({ firstName: 'Jeanne' }) // '[email protected]'
faker.internet.exampleEmail({ firstName: 'Jeanne', lastName: 'Doe' }) // '[email protected]'
faker.internet.exampleEmail({ firstName: 'Jeanne', lastName: 'Doe', allowSpecialCharacters: true }) // 'Jeanne%[email protected]'

httpMethod

Returns a random http method.

Can be either of the following:

  • GET
  • POST
  • PUT
  • DELETE
  • PATCH

Available since v5.4.0

Returns: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH'

ts
function httpMethod(): 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';

Examples

ts
faker.internet.httpMethod() // 'PATCH'

httpStatusCode

Generates a random HTTP status code.

Available since v7.0.0

Parameters

NameTypeDefaultDescription
options{ ... }{}

Options object.

options.types?HTTPStatusCodeType[]Object.keys(faker.definitions.internet.http_status_code)

A list of the HTTP status code types that should be used.

Returns: number

ts
function httpStatusCode(
  options: {
    types?: ReadonlyArray<HTTPStatusCodeType>;
  } = {}
): number;

Examples

ts
faker.internet.httpStatusCode() // 200
faker.internet.httpStatusCode({ types: ['success', 'serverError'] }) // 500

ip

Generates a random IPv4 or IPv6 address.

Available since v2.0.1

Returns: string

ts
function ip(): string;

Examples

ts
faker.internet.ip() // '245.108.222.0'
faker.internet.ip() // '4e5:f9c5:4337:abfd:9caf:1135:41ad:d8d3'

ipv4

Generates a random IPv4 address.

Available since v6.1.1

Parameters

NameTypeDefaultDescription
options?{ ... } | { ... }{}

The optional options object.

options.cidrBlock?string'0.0.0.0/0'

The optional CIDR block to use. Must be in the format x.x.x.x/y.

options.network?'any' | 'loopback' | 'private-a' | 'private-b' | 'private-c' | 'test-net-1' | 'test-net-2' | 'test-net-3' | 'link-local' | 'multicast''any'

The optional network to use. This is intended as an alias for well-known cidrBlocks.

Returns: string

ts
function ipv4(
  options?:
    | {
        cidrBlock?: string;
      }
    | {
        network?: IPv4NetworkType;
      }
): string;

Examples

ts
faker.internet.ipv4() // '245.108.222.0'
faker.internet.ipv4({ cidrBlock: '192.168.0.0/16' }) // '192.168.215.224'
faker.internet.ipv4({ network: 'private-a' }) // '10.199.154.205'

ipv6

Generates a random IPv6 address.

Available since v4.0.0

Returns: string

ts
function ipv6(): string;

Examples

ts
faker.internet.ipv6() // '269f:1230:73e3:318d:842b:daab:326d:897b'

jwt

Generates a random JWT (JSON Web Token).

Please note that this method generates a random signature instead of a valid one.

Available since v9.1.0

Parameters

NameTypeDefaultDescription
options{ ... }{}

The optional options object.

options.header?Record<string, unknown>{ alg: faker.internet.jwtAlgorithm(), typ: 'JWT' }

The header to use for the token. If present, it will replace any default values.

options.payload?Record<string, unknown>{ iat: faker.date.recent(), exp: faker.date.soon(), nbf: faker.date.anytime(), iss: faker.company.name(), sub: faker.string.uuid(), aud: faker.string.uuid(), jti: faker.string.uuid() }

The payload to use for the token. If present, it will replace any default values.

options.refDate?string | number | Datefaker.defaultRefDate()

The date to use as reference point for the newly generated date.

Returns: string

ts
function jwt(
  options: {
    header?: Record<string, unknown>;
    payload?: Record<string, unknown>;
    refDate?: string | Date | number;
  } = {}
): string;

Examples

ts
faker.internet.jwt()
faker.internet.jwt({ header: { alg: 'HS256' }}) // 'eyJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE3MTg2MTM3MTIsImV4cCI6MTcxODYzMzY3OSwibmJmIjoxNjk3MjYzNjMwLCJpc3MiOiJEb3lsZSBhbmQgU29ucyIsInN1YiI6IjYxYWRkYWFmLWY4MjktNDkzZS1iNTI1LTJjMGJkNjkzOTdjNyIsImF1ZCI6IjczNjcyMjVjLWIwMWMtNGE1My1hYzQyLTYwOWJkZmI1MzBiOCIsImp0aSI6IjU2Y2ZkZjAxLWRhMzMtNGUxNi04MzJiLTFlYTk3ZGY1MTQ2YSJ9.5iUgaCaFVPZ8d1QD0xMjoeJbmPVyUfKfoRQ6Njzm5MLp5F4UMh5REbPCrW70fAkr'
faker.internet.jwt({ payload: { iss: 'Acme' }}) // 'eyJhbGciOiJFUzM4NCIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJBY21lIn0.syUt0GBukNac8Cn1AGKFq2SWAXWy1YIfl0uOYiwg6TZ3omAW0c7FGWY6bC7ZOFSt'
faker.internet.jwt({ refDate: '2020-01-01T00:00:00.000Z' }) // 'eyJhbGciOiJFUzM4NCIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE1Nzc4MDY4NDUsImV4cCI6MTU3Nzg0NjI4MCwibmJmIjoxNTgxNTQyMDYwLCJpc3MiOiJLcmVpZ2VyLCBBbHRlbndlcnRoIGFuZCBQYXVjZWsiLCJzdWIiOiI5NzVjMjMyOS02MDlhLTRjYTYtYjBkZi05ZmY4MGZiNDUwN2QiLCJhdWQiOiI0ODQxZWYwNi01OWYwLTQzMWEtYmFmZi0xMjkxZmRhZDdhNjgiLCJqdGkiOiJmNDBjZTJiYi00ZWYyLTQ1MjMtOGIxMy1kN2Q4NTA5N2M2ZTUifQ.cuClEZQ0CyPIMVS5uxrMwWXz0wcqFFdt0oNne3PMryyly0jghkxVurss2TapMC3C'

jwtAlgorithm

Generates a random JWT (JSON Web Token) Algorithm.

Available since v9.1.0

Returns: string

ts
function jwtAlgorithm(): string;

Examples

ts
faker.internet.jwtAlgorithm() // 'HS256'
faker.internet.jwtAlgorithm() // 'RS512'

mac

Generates a random mac address.

Available since v3.0.0

Parameters

NameTypeDefaultDescription
options?string | { ... }{}

The optional separator or an options object.

options.separator?string':'

The optional separator to use. Can be either ':', '-' or ''.

Returns: string

ts
function mac(
  options?:
    | string
    | {
        separator?: string;
      }
): string;

Examples

ts
faker.internet.mac() // '32:8e:2e:09:c6:05'

password

Generates a random password-like string. Do not use this method for generating actual passwords for users. Since the source of the randomness is not cryptographically secure, neither is this generator.

Available since v2.0.1

Parameters

NameTypeDefaultDescription
options{ ... }{}

An options object.

options.length?number15

The length of the password to generate.

options.memorable?booleanfalse

Whether the generated password should be memorable.

options.pattern?RegExp/\w/

The pattern that all chars should match. This option will be ignored, if memorable is true.

options.prefix?string''

The prefix to use.

Returns: string

ts
function password(
  options: {
    length?: number;
    memorable?: boolean;
    pattern?: RegExp;
    prefix?: string;
  } = {}
): string;

Examples

ts
faker.internet.password() // '89G1wJuBLbGziIs'
faker.internet.password({ length: 20 }) // 'aF55c_8O9kZaPOrysFB_'
faker.internet.password({ length: 20, memorable: true }) // 'lawetimufozujosodedi'
faker.internet.password({ length: 20, memorable: true, pattern: /[A-Z]/ }) // 'HMAQDFFYLDDUTBKVNFVS'
faker.internet.password({ length: 20, memorable: true, pattern: /[A-Z]/, prefix: 'Hello ' }) // 'Hello IREOXTDWPERQSB'

port

Generates a random port number.

Available since v5.4.0

Returns: number

ts
function port(): number;

Examples

ts
faker.internet.port() // '9414'

protocol

Returns a random web protocol. Either http or https.

Available since v2.1.5

Returns: 'http' | 'https'

ts
function protocol(): 'http' | 'https';

Examples

ts
faker.internet.protocol() // 'http'
faker.internet.protocol() // 'https'

url

Generates a random http(s) url.

Available since v2.1.5

Parameters

NameTypeDefaultDescription
options{ ... }{}

Optional options object.

options.appendSlash?booleanfaker.datatype.boolean()

Whether to append a slash to the end of the url (path).

options.protocol?HTTPProtocolType'https'

The protocol to use.

Returns: string

ts
function url(
  options: {
    appendSlash?: boolean;
    protocol?: HTTPProtocolType;
  } = {}
): string;

Examples

ts
faker.internet.url() // 'https://remarkable-hackwork.info'
faker.internet.url({ appendSlash: true }) // 'https://slow-timer.info/'
faker.internet.url({ protocol: 'http', appendSlash: false }) // 'http://www.terrible-idea.com'

userAgent

Generates a random user agent string.

Available since v2.0.1

Returns: string

ts
function userAgent(): string;

Examples

ts
faker.internet.userAgent()
// 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_8_8)  AppleWebKit/536.0.2 (KHTML, like Gecko) Chrome/27.0.849.0 Safari/536.0.2'

username

Generates a username using the given person's name as base. The resulting username may use neither, one or both of the names provided. This will always return a plain ASCII string. Some basic stripping of accents and transliteration of characters will be done.

Available since v9.1.0

Parameters

NameTypeDefaultDescription
options{ ... }{}

An options object.

options.firstName?stringfaker.person.firstName()

The optional first name to use.

options.lastName?stringfaker.person.lastName()

The optional last name to use.

Returns: string

ts
function username(
  options: {
    firstName?: string;
    lastName?: string;
  } = {}
): string;

Examples

ts
faker.internet.username() // 'Nettie_Zboncak40'
faker.internet.username({ firstName: 'Jeanne' }) // 'Jeanne98'
faker.internet.username({ firstName: 'Jeanne' }) // 'Jeanne.Smith98'
faker.internet.username({ firstName: 'Jeanne', lastName: 'Doe'}) // 'Jeanne_Doe98'
faker.internet.username({ firstName: 'John', lastName: 'Doe' }) // 'John.Doe'
faker.internet.username({ firstName: 'Hélene', lastName: 'Müller' }) // 'Helene_Muller11'
faker.internet.username({ firstName: 'Фёдор', lastName: 'Достоевский' }) // 'Fedor.Dostoevskii50'
faker.internet.username({ firstName: '大羽', lastName: '陳' }) // 'hlzp8d.tpv45' - note neither name is used

userName

Deprecated

This method is deprecated and will be removed in a future version.

Use faker.internet.username() instead.

Generates a username using the given person's name as base. The resulting username may use neither, one or both of the names provided. This will always return a plain ASCII string. Some basic stripping of accents and transliteration of characters will be done.

Available since v2.0.1

Parameters

NameTypeDefaultDescription
options{ ... }{}

An options object.

options.firstName?stringfaker.person.firstName()

The optional first name to use.

options.lastName?stringfaker.person.lastName()

The optional last name to use.

Returns: string

ts
function userName(
  options: {
    firstName?: string;
    lastName?: string;
  } = {}
): string;

Examples

ts
faker.internet.userName() // 'Nettie_Zboncak40'
faker.internet.userName({ firstName: 'Jeanne' }) // 'Jeanne98'
faker.internet.userName({ firstName: 'Jeanne' }) // 'Jeanne.Smith98'
faker.internet.userName({ firstName: 'Jeanne', lastName: 'Doe'}) // 'Jeanne_Doe98'
faker.internet.userName({ firstName: 'John', lastName: 'Doe' }) // 'John.Doe'
faker.internet.userName({ firstName: 'Hélene', lastName: 'Müller' }) // 'Helene_Muller11'
faker.internet.userName({ firstName: 'Фёдор', lastName: 'Достоевский' }) // 'Fedor.Dostoevskii50'
faker.internet.userName({ firstName: '大羽', lastName: '陳' }) // 'hlzp8d.tpv45' - note neither name is used

Released under the MIT License.