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(), and an image avatar(). 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.

avatar

Deprecated

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

Use faker.image.avatar() instead.

Returns a random avatar url.

Available since v2.0.1

Returns: string

ts
faker.internet.avatar(): string
faker.internet.avatar()
// 'https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/315.jpg'

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?number | { ... }{}

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.

legacyGreenBase?number0

The optional base green in range between 0 and 255.

legacyBlueBase?number0

The optional base blue in range between 0 and 255.

Returns: string

ts
faker.internet.color(options?: number | {
  blueBase: number,
  greenBase: number,
  redBase: number
} = {}, legacyGreenBase?: number = 0, legacyBlueBase?: number = 0): string
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?string | { ... }{}

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.

legacyLastName?string

The optional last name to use. If not specified, a random one will be chosen.

Returns: string

ts
faker.internet.displayName(options?: string | {
  firstName: string,
  lastName: string
} = {}, legacyLastName?: string): string
faker.internet.displayName() // 'Nettie_Zboncak40'
faker.internet.displayName({ firstName: 'Jeanne', lastName: 'Doe'}) // 'Jeanne98' - note surname is 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
faker.internet.domainName(): string
faker.internet.domainName() // 'slow-timer.info'

domainSuffix

Returns a random domain suffix.

Available since v2.0.1

Returns: string

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

domainWord

Generates a random domain word.

Available since v2.0.1

Returns: string

ts
faker.internet.domainWord(): string
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?string | { ... }{}

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.

legacyLastName?string

The optional last name to use. If not specified, a random one will be chosen.

legacyProvider?string

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

legacyOptions?{ ... }

The options to use.

legacyOptions.allowSpecialCharacters?booleanfalse

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

Returns: string

ts
faker.internet.email(options?: string | {
  allowSpecialCharacters: boolean,
  firstName: string,
  lastName: string,
  provider: string
} = {}, legacyLastName?: string, legacyProvider?: string, legacyOptions?: {
  allowSpecialCharacters: boolean
}): string
faker.internet.email() // 'Kassandra4@hotmail.com'
faker.internet.email({ firstName: 'Jeanne' }) // 'Jeanne63@yahoo.com'
faker.internet.email({ firstName: 'Jeanne' }) // 'Jeanne.Smith63@yahoo.com'
faker.internet.email({ firstName: 'Jeanne', lastName: 'Doe' }) // 'Jeanne_Doe63@yahoo.com'
faker.internet.email({ firstName: 'Jeanne', lastName: 'Doe', provider: 'example.fakerjs.dev' }) // 'Jeanne_Doe88@example.fakerjs.dev'
faker.internet.email({ firstName: 'Jeanne', lastName: 'Doe', provider: 'example.fakerjs.dev', allowSpecialCharacters: true }) // 'Jeanne%Doe88@example.fakerjs.dev'

emoji

Generates a random emoji.

Available since v6.2.0

Parameters

NameTypeDefaultDescription
options{ ... }{}

Options object.

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

A list of the emoji types that should be used.

Returns: string

ts
faker.internet.emoji(options: {
  types: readonly EmojiType[]
} = {}): string
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?string | { ... }{}

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.

legacyLastName?string

The optional last name to use. If not specified, a random one will be chosen.

legacyOptions?{ ... }

The options to use.

legacyOptions.allowSpecialCharacters?booleanfalse

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

Returns: string

ts
faker.internet.exampleEmail(options?: string | {
  allowSpecialCharacters: boolean,
  firstName: string,
  lastName: string
} = {}, legacyLastName?: string, legacyOptions?: {
  allowSpecialCharacters: boolean
}): string
faker.internet.exampleEmail() // 'Helmer.Graham23@example.com'
faker.internet.exampleEmail({ firstName: 'Jeanne' }) // 'Jeanne96@example.net'
faker.internet.exampleEmail({ firstName: 'Jeanne' }) // 'Jeanne.Smith96@example.net'
faker.internet.exampleEmail({ firstName: 'Jeanne', lastName: 'Doe' }) // 'Jeanne_Doe96@example.net'
faker.internet.exampleEmail({ firstName: 'Jeanne', lastName: 'Doe', allowSpecialCharacters: true }) // 'Jeanne%Doe88@example.com'

httpMethod

Returns a random http method.

Can be either of the following:

  • GET
  • POST
  • PUT
  • DELETE
  • PATCH

Available since v5.4.0

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

ts
faker.internet.httpMethod(): "GET" | "POST" | "PUT" | "DELETE" | "PATCH"
faker.internet.httpMethod() // 'PATCH'

httpStatusCode

Generates a random HTTP status code.

Available since v7.0.0

Parameters

NameTypeDefaultDescription
options{ ... }{}

Options object.

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

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

Returns: number

ts
faker.internet.httpStatusCode(options: {
  types: readonly HTTPStatusCodeType[]
} = {}): number
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
faker.internet.ip(): string
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

Returns: string

ts
faker.internet.ipv4(): string
faker.internet.ipv4() // '245.108.222.0'

ipv6

Generates a random IPv6 address.

Available since v4.0.0

Returns: string

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

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
faker.internet.mac(options?: string | {
  separator: string
} = {}): string
faker.internet.mac() // '32:8e:2e:09:c6:05'

password

Generates a random password.

Available since v2.0.1

Parameters

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

The length of the password or 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.

legacyMemorable?booleanfalse

Whether the generated password should be memorable.

legacyPattern?RegExp/\w/

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

legacyPrefix?string''

The prefix to use.

Returns: string

ts
faker.internet.password(options?: number | {
  length: number,
  memorable: boolean,
  pattern: RegExp,
  prefix: string
} = {}, legacyMemorable?: boolean = false, legacyPattern?: RegExp = /\w/, legacyPrefix?: string = ''): string
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
faker.internet.port(): number
faker.internet.port() // '9414'

protocol

Returns a random web protocol. Either http or https.

Available since v2.1.5

Returns: 'http' | 'https'

ts
faker.internet.protocol(): "http" | "https"
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
faker.internet.url(options: {
  appendSlash: boolean,
  protocol: HTTPProtocolType
} = {}): string
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
faker.internet.userAgent(): string
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 v2.0.1

Parameters

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

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.

legacyLastName?string

The optional last name to use. If not specified, a random one will be chosen.

Returns: string

ts
faker.internet.userName(options?: string | {
  firstName: string,
  lastName: string
} = {}, legacyLastName?: string): string
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.