# Evil Insult Generator

> Generate random insults from Evil Insult Generator, a free site of crude, deliberately offensive insults in English, Chinese, French, German, Greek, Russian, Spanish and Swahili. Get one or a batch of different ones, each with the translation or source the site keeps for it, skip the ones a workflow has already used, and leave out strong language if you choose. No account or API key required.

App · Misc References · 2 actions. Web page: https://docs.lodol.com/docs/integrations/evil-insult

## Actions

### Generate an insult

Get one random insult from Evil Insult Generator, in English or one of seven other languages, with its number, the translation or source the site keeps for it, and how often it has been handed out. Every run draws a new one; give the numbers of ones already used to never get them again, or skip strong language. No account or API key required.

**Inputs**

- Language (`language`, text): The language of the insult. Defaults to English, which has by far the most. The site also has insults in Chinese, French, German, Greek, Russian, Spanish and Swahili. One of: `cn` (Chinese), `en` (English), `fr` (French), `de` (German), `el` (Greek), `ru` (Russian), `es` (Spanish), `sw` (Swahili). Default: `en`.
- Skip these insults (`exclude`, list): Numbers of insults not to return, such as the ones a workflow has already posted: every insult comes back with its number. A list from an earlier step, or numbers separated by commas.
- Skip strong language (`skip_strong_language`, true/false): Leave out insults with common swear words, slurs or explicit sexual words, in any of the eight languages, by checking the insult, the note the site keeps with it and the name it was submitted under. Off by default. The site rates nothing, so this is Lodol's word list: an insult can still be cruel or crude without those words, and in Greek, Swahili and Russian almost every insult has them, so little or nothing is left. Default: `false`.

**Outputs**

- `comment` (text): The note the site keeps with the insult, or empty. For many insults in other languages it is a translation, mostly into English; for others, where the insult came from.
- `insult` (text): The insult, ready to post.
- `language` (text): The language's code on the site, such as en or de.
- `language_name` (text): The language's name, such as English or German.
- `last_shown_at` (text): When the site last handed out this insult before now, to anyone (ISO 8601, UTC).
- `number` (number): The insult's number on Evil Insult Generator, which tells it apart from every other. Pass it to 'Skip these insults' to avoid it later.
- `strong_language` (true/false): Whether the insult, its note or the name it was submitted under has a common swear word, slur or explicit sexual word, by Lodol's word list; the site rates nothing. Given on every insult, so a workflow can decide for itself.
- `submitted_by` (text): Who submitted the insult or where it came from, as the site records it, or empty.
- `times_shown` (number): How many times the site had handed out this insult before, to anyone.

**Example output**

```json
{
  "comment": "",
  "insult": "I envy people who haven't met you.",
  "language": "en",
  "language_name": "English",
  "last_shown_at": "2026-10-08T15:26:12Z",
  "number": 2284,
  "strong_language": false,
  "submitted_by": "9GAG",
  "times_shown": 315884
}
```

### Generate several insults

Get up to 10 different random insults in one language, none repeated, to pick from or post in turn. The site hands out one at a time, so each insult is one request. If the language runs short, the step returns what it found and says how many.

**Inputs**

- How many (`count`, number): How many insults to get, from 1 to 10. Defaults to 3. From 1 to 10. Default: `3`.
- Language (`language`, text): The language of the insult. Defaults to English, which has by far the most. The site also has insults in Chinese, French, German, Greek, Russian, Spanish and Swahili. One of: `cn` (Chinese), `en` (English), `fr` (French), `de` (German), `el` (Greek), `ru` (Russian), `es` (Spanish), `sw` (Swahili). Default: `en`.
- Skip these insults (`exclude`, list): Numbers of insults not to return, such as the ones a workflow has already posted: every insult comes back with its number. A list from an earlier step, or numbers separated by commas.
- Skip strong language (`skip_strong_language`, true/false): Leave out insults with common swear words, slurs or explicit sexual words, in any of the eight languages, by checking the insult, the note the site keeps with it and the name it was submitted under. Off by default. The site rates nothing, so this is Lodol's word list: an insult can still be cruel or crude without those words, and in Greek, Swahili and Russian almost every insult has them, so little or nothing is left. Default: `false`.

**Outputs**

- `count` (number): How many insults were found.
- `draws` (number): How many insults were drawn to fill the list, one request each, counting repeats and skipped ones.
- `insults` (list): The insults, all different, in the order drawn.
- `language` (text): The language's code on the site, such as en.
- `language_name` (text): The language's name, such as English.
- `requested` (number): How many were asked for. More than count only when the language ran short.

**Example output**

```json
{
  "count": 2,
  "draws": 2,
  "insults": [
    {
      "comment": "Go fry asparagus",
      "insult": "Vete a fre\u00edr esp\u00e1rragos",
      "language": "es",
      "language_name": "Spanish",
      "last_shown_at": "2026-10-02T15:30:13Z",
      "number": 325,
      "strong_language": false,
      "submitted_by": "",
      "times_shown": 3528
    },
    {
      "comment": "I'm going to give you a cookie",
      "insult": "Te voy a dar una galleta",
      "language": "es",
      "language_name": "Spanish",
      "last_shown_at": "2026-10-03T21:16:04Z",
      "number": 319,
      "strong_language": false,
      "submitted_by": "",
      "times_shown": 4124
    }
  ],
  "language": "es",
  "language_name": "Spanish",
  "requested": 2
}
```
