# Robohash

> Turn any text into a unique picture. Give Robohash a user id, an email address, a filename or an IP address and it hands back a robot, a monster, a cat, a human avatar or a cosmic ape that is always the same for that text and different for every other, which is what makes it the stand-in for a profile picture nobody has uploaded yet. Build a link to embed, build a whole list of them for a team in one step, or download the picture as a file to attach or upload. Six styles, two backgrounds, ten robot colours and any size up to 4096 pixels, and for email addresses it can show the person's own Gravatar when they have one and a generated picture when they do not. No account or API key required.

App · Images & Design · 6 actions. Web page: https://docs.lodol.com/docs/integrations/robohash

## Actions

### Build an avatar URL

Turn any text into the address of a unique picture: a robot, a monster, a cat or a human avatar, always the same one for the same text. Nothing is downloaded, so this is the cheap way to give a record a profile picture, fill an empty avatar slot or put a face beside a name in an email. No API key required.

**Inputs**

- Text (`text`, text, required): The text to turn into a picture: a user id, an email address, a filename, an IP address, anything at all. The same text always gives the same picture, and a different one gives a different picture, so pass whatever identifies the thing the avatar stands for.
- Image sets (`image_sets`, list): Optional. Which artwork to build the picture from. Leave it empty for the classic robots, which is what Robohash does by default. Pick one set to pin every picture to that style; pick several and the text decides which of them each picture comes from, which keeps a long list from looking uniform. 'Any set' hands the same decision to Robohash across all of its sets, so a set added later can change pictures that already exist. Human avatars is the one to reach for when the picture stands in for a person. One or more of: `any` (Any set (the text decides)), `set1` (Robots), `set2` (Monsters), `set3` (Robot heads), `set4` (Cats), `set5` (Human avatars), `set6` (Cosmic apes).
- Background (`background`, text): Optional. Put a background behind the picture, chosen from the text like everything else. No background by default, which leaves a PNG transparent so it sits on any colour. Choose one where a transparent picture would disappear, such as a dark chat theme. One of: `none` (No background (transparent)), `bg1` (Background set 1 (places)), `bg2` (Background set 2 (patterns)), `any` (Any background (the text decides)). Default: `none`.
- Colour (`color`, text): Optional. Pin every robot to one colour, for a set of avatars that matches a brand. Only the Robots set is drawn in every colour, so this cannot be combined with another set. Left alone, the text picks the colour, which is what makes an untouched list look varied. One of: `any` (Chosen from the text), `blue`, `brown`, `green`, `grey`, `orange`, `pink`, `purple`, `red`, `white`, `yellow`. Default: `any`.
- Width (`width`, number): Optional. How wide the picture should be, in pixels. 300 by default; anything from 1 to 4096. From 1 to 4096. Default: `300`.
- Height (`height`, number): Optional. How tall the picture should be, in pixels. 300 by default; anything from 1 to 4096. The artwork is square, so a different width and height stretches it. From 1 to 4096. Default: `300`.
- Format (`image_format`, text): Optional. The file format. PNG by default, which is the one that keeps a transparent background. JPEG is smaller but is flattened, so a picture with no background lands on black. The format travels as a file extension on the text, which Robohash removes again before hashing, so the same text gives the same picture in every format. One of: `png` (PNG (transparent background)), `jpg` (JPEG (smaller, no transparency)), `gif`, `webp`, `bmp` (Bitmap), `ppm`. Default: `png`.
- Hash the file extension too (`hash_extension`, true/false): Optional, and rarely wanted. Off by default, so the same text gives the same picture whichever format you ask for. Turn it on and the extension counts as part of the text, so the PNG and the JPEG of one text are two different pictures. This is Robohash's 'ignoreext=false'. Default: `false`.
- Try Gravatar first (`gravatar`, text): Optional. Off by default. Turn it on and the link shows the person's own Gravatar picture when they have one, falling back to a generated picture when they do not, so a directory shows real faces without leaving gaps. Choose the second option when the text is an email address and the third when it is already an MD5 hash of one. Get an avatar for an email address does the same thing and downloads the file. One of: `no` (Never (always a Robohash)), `yes` (Use their Gravatar if they have one (the text is an email)), `hashed` (Use their Gravatar if they have one (the text is its MD5)). Default: `no`.

**Outputs**

- `background` (text): The background that was asked for, or 'none'.
- `color` (text): The colour that was asked for, or 'any' when it was left to the text.
- `content_type` (text): The picture's media type, e.g. image/png.
- `gravatar` (text): Whether the link asks Gravatar first: 'no', 'yes' (the text is an email address) or 'hashed' (the text is its MD5).
- `height` (number): How tall the picture is, in pixels.
- `image_format` (text): The file format the picture is in, e.g. 'png' or 'jpg'.
- `image_sets` (list): The sets that were asked for. Empty means none was, so Robohash used its own default, the classic robots.
- `image_tag` (text): The same link as a ready-made HTML <img> tag, sized and with alt text, for a step that writes an email body or a web page.
- `text` (text): The text the picture was built from, after trimming.
- `url` (text): The picture's address. It never expires and always renders the same picture, so it is safe to store on a record and re-render forever.
- `width` (number): How wide the picture is, in pixels.

**Example output**

```json
{
  "background": "none",
  "color": "any",
  "content_type": "image/png",
  "gravatar": "no",
  "height": 300,
  "image_format": "png",
  "image_sets": [
    "set1"
  ],
  "image_tag": "<img src=\"https://robohash.org/HelloWorld.png?set=set1\" alt=\"Avatar for HelloWorld\" width=\"300\" height=\"300\">",
  "text": "HelloWorld",
  "url": "https://robohash.org/HelloWorld.png?set=set1",
  "width": 300
}
```

### Build avatar URLs in bulk

Build one picture link for every text in a list, in the order they were given: a whole team roster, a column of user ids, the authors of today's comments. Nothing is downloaded, so a long list costs no more than a short one. No API key required.

**Inputs**

- Texts (`texts`, list, required): The texts to build pictures for, one picture each, in the order given. Up to 250 at a time. Wire a list from an earlier step here: a column of user ids, the email addresses on a team, the authors of today's comments.
- Image sets (`image_sets`, list): Optional. Which artwork to build the picture from. Leave it empty for the classic robots, which is what Robohash does by default. Pick one set to pin every picture to that style; pick several and the text decides which of them each picture comes from, which keeps a long list from looking uniform. 'Any set' hands the same decision to Robohash across all of its sets, so a set added later can change pictures that already exist. Human avatars is the one to reach for when the picture stands in for a person. One or more of: `any` (Any set (the text decides)), `set1` (Robots), `set2` (Monsters), `set3` (Robot heads), `set4` (Cats), `set5` (Human avatars), `set6` (Cosmic apes).
- Background (`background`, text): Optional. Put a background behind the picture, chosen from the text like everything else. No background by default, which leaves a PNG transparent so it sits on any colour. Choose one where a transparent picture would disappear, such as a dark chat theme. One of: `none` (No background (transparent)), `bg1` (Background set 1 (places)), `bg2` (Background set 2 (patterns)), `any` (Any background (the text decides)). Default: `none`.
- Colour (`color`, text): Optional. Pin every robot to one colour, for a set of avatars that matches a brand. Only the Robots set is drawn in every colour, so this cannot be combined with another set. Left alone, the text picks the colour, which is what makes an untouched list look varied. One of: `any` (Chosen from the text), `blue`, `brown`, `green`, `grey`, `orange`, `pink`, `purple`, `red`, `white`, `yellow`. Default: `any`.
- Width (`width`, number): Optional. How wide the picture should be, in pixels. 300 by default; anything from 1 to 4096. From 1 to 4096. Default: `300`.
- Height (`height`, number): Optional. How tall the picture should be, in pixels. 300 by default; anything from 1 to 4096. The artwork is square, so a different width and height stretches it. From 1 to 4096. Default: `300`.
- Format (`image_format`, text): Optional. The file format. PNG by default, which is the one that keeps a transparent background. JPEG is smaller but is flattened, so a picture with no background lands on black. The format travels as a file extension on the text, which Robohash removes again before hashing, so the same text gives the same picture in every format. One of: `png` (PNG (transparent background)), `jpg` (JPEG (smaller, no transparency)), `gif`, `webp`, `bmp` (Bitmap), `ppm`. Default: `png`.
- Hash the file extension too (`hash_extension`, true/false): Optional, and rarely wanted. Off by default, so the same text gives the same picture whichever format you ask for. Turn it on and the extension counts as part of the text, so the PNG and the JPEG of one text are two different pictures. This is Robohash's 'ignoreext=false'. Default: `false`.
- Try Gravatar first (`gravatar`, text): Optional. Off by default. Turn it on and the link shows the person's own Gravatar picture when they have one, falling back to a generated picture when they do not, so a directory shows real faces without leaving gaps. Choose the second option when the text is an email address and the third when it is already an MD5 hash of one. Get an avatar for an email address does the same thing and downloads the file. One of: `no` (Never (always a Robohash)), `yes` (Use their Gravatar if they have one (the text is an email)), `hashed` (Use their Gravatar if they have one (the text is its MD5)). Default: `no`.

**Outputs**

- `avatars` (list): One entry per text, in the order they were given.
- `background` (text): The background that was asked for, or 'none'.
- `color` (text): The colour that was asked for, or 'any' when it was left to the text.
- `content_type` (text): The picture's media type, e.g. image/png.
- `count` (number): How many pictures were built.
- `gravatar` (text): Whether the link asks Gravatar first: 'no', 'yes' (the text is an email address) or 'hashed' (the text is its MD5).
- `height` (number): How tall the picture is, in pixels.
- `image_format` (text): The file format the picture is in, e.g. 'png' or 'jpg'.
- `image_sets` (list): The sets that were asked for. Empty means none was, so Robohash used its own default, the classic robots.
- `urls` (list): Just the links, in the same order, for a step that wants the addresses on their own.
- `width` (number): How wide the picture is, in pixels.

**Example output**

```json
{
  "avatars": [
    {
      "image_tag": "<img src=\"https://robohash.org/HelloWorld.png?set=set1\" alt=\"Avatar for HelloWorld\" width=\"300\" height=\"300\">",
      "text": "HelloWorld",
      "url": "https://robohash.org/HelloWorld.png?set=set1"
    }
  ],
  "background": "none",
  "color": "any",
  "content_type": "image/png",
  "count": 1,
  "gravatar": "no",
  "height": 300,
  "image_format": "png",
  "image_sets": [
    "set1"
  ],
  "urls": [
    "https://robohash.org/HelloWorld.png?set=set1"
  ],
  "width": 300
}
```

### Download an avatar

Download the picture for a text as a file, so a later step can attach it to an email, upload it to storage or post it into a chat. Use this where a link will not do and the file itself has to travel with the message. No API key required.

**Inputs**

- Text (`text`, text, required): The text to turn into a picture: a user id, an email address, a filename, an IP address, anything at all. The same text always gives the same picture, and a different one gives a different picture, so pass whatever identifies the thing the avatar stands for.
- Image sets (`image_sets`, list): Optional. Which artwork to build the picture from. Leave it empty for the classic robots, which is what Robohash does by default. Pick one set to pin every picture to that style; pick several and the text decides which of them each picture comes from, which keeps a long list from looking uniform. 'Any set' hands the same decision to Robohash across all of its sets, so a set added later can change pictures that already exist. Human avatars is the one to reach for when the picture stands in for a person. One or more of: `any` (Any set (the text decides)), `set1` (Robots), `set2` (Monsters), `set3` (Robot heads), `set4` (Cats), `set5` (Human avatars), `set6` (Cosmic apes).
- Background (`background`, text): Optional. Put a background behind the picture, chosen from the text like everything else. No background by default, which leaves a PNG transparent so it sits on any colour. Choose one where a transparent picture would disappear, such as a dark chat theme. One of: `none` (No background (transparent)), `bg1` (Background set 1 (places)), `bg2` (Background set 2 (patterns)), `any` (Any background (the text decides)). Default: `none`.
- Colour (`color`, text): Optional. Pin every robot to one colour, for a set of avatars that matches a brand. Only the Robots set is drawn in every colour, so this cannot be combined with another set. Left alone, the text picks the colour, which is what makes an untouched list look varied. One of: `any` (Chosen from the text), `blue`, `brown`, `green`, `grey`, `orange`, `pink`, `purple`, `red`, `white`, `yellow`. Default: `any`.
- Width (`width`, number): Optional. How wide the picture should be, in pixels. 300 by default; anything from 1 to 4096. From 1 to 4096. Default: `300`.
- Height (`height`, number): Optional. How tall the picture should be, in pixels. 300 by default; anything from 1 to 4096. The artwork is square, so a different width and height stretches it. From 1 to 4096. Default: `300`.
- Format (`image_format`, text): Optional. The file format. PNG by default, which is the one that keeps a transparent background. JPEG is smaller but is flattened, so a picture with no background lands on black. The format travels as a file extension on the text, which Robohash removes again before hashing, so the same text gives the same picture in every format. One of: `png` (PNG (transparent background)), `jpg` (JPEG (smaller, no transparency)), `gif`, `webp`, `bmp` (Bitmap), `ppm`. Default: `png`.
- Hash the file extension too (`hash_extension`, true/false): Optional, and rarely wanted. Off by default, so the same text gives the same picture whichever format you ask for. Turn it on and the extension counts as part of the text, so the PNG and the JPEG of one text are two different pictures. This is Robohash's 'ignoreext=false'. Default: `false`.

**Outputs**

- `background` (text): The background that was asked for, or 'none'.
- `byte_size` (number): The file's size in bytes.
- `color` (text): The colour that was asked for, or 'any' when it was left to the text.
- `content_type` (text): The picture's media type, e.g. image/png.
- `document_ref` (text): The stored document's reference.
- `documents` (list): The downloaded picture as a document, ready to attach to a later step.
- `height` (number): How tall the picture is, in pixels.
- `image_format` (text): The file format the picture is in, e.g. 'png' or 'jpg'.
- `image_sets` (list): The sets that were asked for. Empty means none was, so Robohash used its own default, the classic robots.
- `source_url` (text): The picture's address. It never expires and always renders the same picture, so it is safe to store on a record and re-render forever.
- `text` (text): The text the picture was built from, after trimming.
- `url` (text): A URL that serves the stored file.
- `width` (number): How wide the picture is, in pixels.

**Example output**

```json
{
  "background": "none",
  "byte_size": 24187,
  "color": "any",
  "content_type": "image/png",
  "document_ref": "doc_3f9c1b70a2f04d4e9a3f1a2b6c7d8e90",
  "documents": [
    {
      "content_type": "image/png",
      "document_ref": "doc_3f9c1b70a2f04d4e9a3f1a2b6c7d8e90",
      "filename": "robohash-helloworld.png",
      "size_bytes": 24187,
      "url": "/actions/core/serve-document/doc_3f9c1b70a2f04d4e9a3f1a2b6c7d8e90"
    }
  ],
  "height": 300,
  "image_format": "png",
  "image_sets": [
    "set1"
  ],
  "source_url": "https://robohash.org/HelloWorld.png?set=set1",
  "text": "HelloWorld",
  "url": "/actions/core/serve-document/doc_3f9c1b70a2f04d4e9a3f1a2b6c7d8e90",
  "width": 300
}
```

### Get an avatar as a data URI

Get the picture as an inline data URI instead of a link or a file, for somewhere that renders HTML but will not fetch a remote image: an email whose pictures are blocked by default, a self-contained report, a page built by a later step. Keep the size small, because the picture travels as text. No API key required.

**Inputs**

- Text (`text`, text, required): The text to turn into a picture: a user id, an email address, a filename, an IP address, anything at all. The same text always gives the same picture, and a different one gives a different picture, so pass whatever identifies the thing the avatar stands for.
- Image sets (`image_sets`, list): Optional. Which artwork to build the picture from. Leave it empty for the classic robots, which is what Robohash does by default. Pick one set to pin every picture to that style; pick several and the text decides which of them each picture comes from, which keeps a long list from looking uniform. 'Any set' hands the same decision to Robohash across all of its sets, so a set added later can change pictures that already exist. Human avatars is the one to reach for when the picture stands in for a person. One or more of: `any` (Any set (the text decides)), `set1` (Robots), `set2` (Monsters), `set3` (Robot heads), `set4` (Cats), `set5` (Human avatars), `set6` (Cosmic apes).
- Background (`background`, text): Optional. Put a background behind the picture, chosen from the text like everything else. No background by default, which leaves a PNG transparent so it sits on any colour. Choose one where a transparent picture would disappear, such as a dark chat theme. One of: `none` (No background (transparent)), `bg1` (Background set 1 (places)), `bg2` (Background set 2 (patterns)), `any` (Any background (the text decides)). Default: `none`.
- Colour (`color`, text): Optional. Pin every robot to one colour, for a set of avatars that matches a brand. Only the Robots set is drawn in every colour, so this cannot be combined with another set. Left alone, the text picks the colour, which is what makes an untouched list look varied. One of: `any` (Chosen from the text), `blue`, `brown`, `green`, `grey`, `orange`, `pink`, `purple`, `red`, `white`, `yellow`. Default: `any`.
- Width (`width`, number): Optional. How wide the picture should be, in pixels. 300 by default; anything from 1 to 4096. A data URI carries the picture as text, so a small size keeps the value manageable. From 1 to 4096. Default: `300`.
- Height (`height`, number): Optional. How tall the picture should be, in pixels. 300 by default; anything from 1 to 4096. The artwork is square, so a different width and height stretches it. From 1 to 4096. Default: `300`.
- Format (`image_format`, text): Optional. The file format. PNG by default, which is the one that keeps a transparent background. JPEG is smaller but is flattened, so a picture with no background lands on black. The format travels as a file extension on the text, which Robohash removes again before hashing, so the same text gives the same picture in every format. One of: `png` (PNG (transparent background)), `jpg` (JPEG (smaller, no transparency)), `gif`, `webp`, `bmp` (Bitmap), `ppm`. Default: `png`.
- Hash the file extension too (`hash_extension`, true/false): Optional, and rarely wanted. Off by default, so the same text gives the same picture whichever format you ask for. Turn it on and the extension counts as part of the text, so the PNG and the JPEG of one text are two different pictures. This is Robohash's 'ignoreext=false'. Default: `false`.

**Outputs**

- `background` (text): The background that was asked for, or 'none'.
- `byte_size` (number): The picture's size in bytes before encoding. The data URI is roughly a third longer again.
- `color` (text): The colour that was asked for, or 'any' when it was left to the text.
- `content_type` (text): The picture's media type, e.g. image/png.
- `data_uri` (text): The whole picture as a 'data:image/png;base64,...' string, ready to use as the src of an img tag.
- `height` (number): How tall the picture is, in pixels.
- `image_format` (text): The file format the picture is in, e.g. 'png' or 'jpg'.
- `image_sets` (list): The sets that were asked for. Empty means none was, so Robohash used its own default, the classic robots.
- `text` (text): The text the picture was built from, after trimming.
- `url` (text): The picture's address. It never expires and always renders the same picture, so it is safe to store on a record and re-render forever.
- `width` (number): How wide the picture is, in pixels.

**Example output**

```json
{
  "background": "none",
  "byte_size": 24187,
  "color": "any",
  "content_type": "image/png",
  "data_uri": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAYAAAB5fY51AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAgAElEQVR4nOy9WY9k2XUm",
  "height": 300,
  "image_format": "png",
  "image_sets": [
    "set1"
  ],
  "text": "HelloWorld",
  "url": "https://robohash.org/HelloWorld.png?set=set1",
  "width": 300
}
```

### Get an avatar for an email address

Download the person's own Gravatar picture when they have one, and a generated picture when they do not, so a member list or a digest shows real faces without leaving gaps. The result says which of the two answered. The address is only ever hashed, never sent in the clear. No API key required.

**Inputs**

- Email address (`email`, text, required): The person's email address. A value that is already an MD5 hash of one is used as it stands, so either shape can be wired in from an earlier step. The address is only ever hashed; it is never sent anywhere in the clear.
- Image sets (`image_sets`, list): Optional. Which artwork to build the picture from. Leave it empty for the classic robots, which is what Robohash does by default. Pick one set to pin every picture to that style; pick several and the text decides which of them each picture comes from, which keeps a long list from looking uniform. 'Any set' hands the same decision to Robohash across all of its sets, so a set added later can change pictures that already exist. Human avatars is the one to reach for when the picture stands in for a person. One or more of: `any` (Any set (the text decides)), `set1` (Robots), `set2` (Monsters), `set3` (Robot heads), `set4` (Cats), `set5` (Human avatars), `set6` (Cosmic apes).
- Background (`background`, text): Optional. Put a background behind the picture, chosen from the text like everything else. No background by default, which leaves a PNG transparent so it sits on any colour. Choose one where a transparent picture would disappear, such as a dark chat theme. One of: `none` (No background (transparent)), `bg1` (Background set 1 (places)), `bg2` (Background set 2 (patterns)), `any` (Any background (the text decides)). Default: `none`.
- Colour (`color`, text): Optional. Pin every robot to one colour, for a set of avatars that matches a brand. Only the Robots set is drawn in every colour, so this cannot be combined with another set. Left alone, the text picks the colour, which is what makes an untouched list look varied. One of: `any` (Chosen from the text), `blue`, `brown`, `green`, `grey`, `orange`, `pink`, `purple`, `red`, `white`, `yellow`. Default: `any`.
- Width (`width`, number): Optional. How wide the picture should be, in pixels. 300 by default; anything from 1 to 4096. From 1 to 4096. Default: `300`.
- Height (`height`, number): Optional. How tall the picture should be, in pixels. 300 by default; anything from 1 to 4096. The artwork is square, so a different width and height stretches it. From 1 to 4096. Default: `300`.

**Outputs**

- `background` (text): The background that was asked for, or 'none'.
- `byte_size` (number): The file's size in bytes.
- `color` (text): The colour that was asked for, or 'any' when it was left to the text.
- `content_type` (text): The picture's media type, e.g. image/png.
- `document_ref` (text): The stored document's reference.
- `documents` (list): The downloaded picture as a document, ready to attach to a later step.
- `email` (text): The address that was looked up. Null when an MD5 hash was passed in, because the address itself was never known.
- `email_hash` (text): The MD5 Gravatar was looked up by, which is the safe form to log or store.
- `height` (number): How tall the picture is, in pixels.
- `image_format` (text): The file format the picture is in, e.g. 'png' or 'jpg'.
- `image_sets` (list): The sets that were asked for. Empty means none was, so Robohash used its own default, the classic robots.
- `is_gravatar` (true/false): True when the person's own Gravatar answered. Branch on this rather than comparing the source text.
- `source` (text): Which service the picture came from: 'gravatar' when the person has one, 'robohash' when the picture was generated instead.
- `source_url` (text): Where the picture was actually served from: a gravatar.com address when the person had one, a robohash.org one otherwise.
- `url` (text): A URL that serves the stored file.
- `width` (number): How wide the picture is, in pixels.

**Example output**

```json
{
  "background": "none",
  "byte_size": 24187,
  "color": "any",
  "content_type": "image/png",
  "document_ref": "doc_3f9c1b70a2f04d4e9a3f1a2b6c7d8e90",
  "documents": [
    {
      "content_type": "image/png",
      "document_ref": "doc_3f9c1b70a2f04d4e9a3f1a2b6c7d8e90",
      "filename": "robohash-robo-robohash-org.png",
      "size_bytes": 24187,
      "url": "/actions/core/serve-document/doc_3f9c1b70a2f04d4e9a3f1a2b6c7d8e90"
    }
  ],
  "email": "robo@robohash.org",
  "email_hash": "b6293493b62a8f71b5b4c0559745086a",
  "height": 300,
  "image_format": "png",
  "image_sets": [
    "set1"
  ],
  "is_gravatar": false,
  "source": "robohash",
  "source_url": "https://robohash.org/robo@robohash.org?gravatar=yes",
  "url": "/actions/core/serve-document/doc_3f9c1b70a2f04d4e9a3f1a2b6c7d8e90",
  "width": 300
}
```

### List image sets

List everything a picture can be built from: the six sets of artwork with the artist and licence behind each one, the backgrounds, the colours and the file formats. Read this to offer someone the choice, to pick a set by name, or to print the credit Robohash asks for wherever its pictures are shown. No API key required.

**Inputs**: None.

**Outputs**

- `attribution` (text): The credit Robohash asks be shown wherever its pictures are used.
- `backgrounds` (list): The backgrounds a picture can be placed on, as the Background field expects them.
- `colors` (list): The colours the Robots set is drawn in, as the Colour field expects them.
- `count` (number): How many sets there are.
- `formats` (list): The file formats a picture can come back in.
- `image_sets` (list): The sets, each with the id the Image sets field expects, what it looks like, who drew it and how it is licensed.
- `max_size` (number): The largest width or height Robohash renders, in pixels.

**Example output**

```json
{
  "attribution": "Robots lovingly delivered by Robohash.org",
  "backgrounds": [
    {
      "id": "bg1",
      "name": "Background set 1 (places)"
    },
    {
      "id": "bg2",
      "name": "Background set 2 (patterns)"
    }
  ],
  "colors": [
    "blue",
    "brown",
    "green",
    "grey",
    "orange",
    "pink",
    "purple",
    "red",
    "white",
    "yellow"
  ],
  "count": 6,
  "formats": [
    "png",
    "jpg",
    "gif",
    "bmp",
    "webp",
    "ppm"
  ],
  "image_sets": [
    {
      "artist": "Zikri Kader",
      "description": "The original robotic workforce, and the only set that can be pinned to a colour.",
      "id": "set1",
      "license": "CC-BY-3.0, CC-BY-4.0",
      "name": "Robots"
    },
    {
      "artist": "Hrvoje Novakovic",
      "description": "A whole slew of random monsters.",
      "id": "set2",
      "license": "CC-BY-3.0",
      "name": "Monsters"
    },
    {
      "artist": "Julian Peter Arias",
      "description": "New, suave, disembodied heads.",
      "id": "set3",
      "license": "CC-BY-3.0",
      "name": "Robot heads"
    },
    {
      "artist": "David Revoy",
      "description": "Hydroponically grown beautiful kittens.",
      "id": "set4",
      "license": "CC-BY-4.0",
      "name": "Cats"
    },
    {
      "artist": "Pablo Stanley",
      "description": "Human technicians to mind the robot army, drawn in the avataaars style. The set to reach for when the picture stands in for a person rather than decorating a row.",
      "id": "set5",
      "license": "Free for personal and commercial use",
      "name": "Human avatars"
    },
    {
      "artist": "OceanSlim",
      "description": "Apes monkeying around with the fabric of space-time. Laser eyes and tear-drop tattoos are deliberately rare.",
      "id": "set6",
      "license": "CC0",
      "name": "Cosmic apes"
    }
  ],
  "max_size": 4096
}
```
