# QR Server

> Make QR codes and read them back, with QR Server (goQR.me). Put a link or any text into a code, or build the ones people actually need: a Wi-Fi code that joins the network when a guest scans it, a contact code a phone saves to its address book, an event code it adds to a calendar. Choose the size, colours and file type, and get a PNG for the web or a vector file for print. Reading works the other way: hand it an image or a photo of a code and get the text back. No account or API key required.

App · Links and QR Codes · 5 actions. Web page: https://docs.lodol.com/docs/integrations/qr-server

## Actions

### Create a contact QR code

Turn someone's contact details into a QR code that a phone offers to save straight to its address book. The one to put on a business card, an email signature or a conference badge. No account or API key required.

**Inputs**

- Full name (`full_name`, text, required): The person's name, as it should be saved.
- Company (`organization`, text): Optional. Where they work.
- Job title (`job_title`, text): Optional. Their role.
- Phone (`phone`, text): Optional. Include the country code so the number dials from anywhere.
- Email (`email`, text): Optional. Their email address.
- Website (`website`, text): Optional. A web address to save with the contact.
- Address (`address`, text): Optional. A postal address, written as one line.
- File type (`file_type`, text): PNG suits email, documents and the web. Choose a vector file if the code is going to print at a size you do not know yet. One of: `png` (PNG image, for email, documents and the web), `svg` (SVG vector, stays sharp at any size), `eps` (EPS vector, for professional printing). Default: `png`.
- Size (`size`, number): How many pixels across the code should be, between 10 and 1000. QR codes are always square. Vector files scale to any size afterwards, so this is only their starting point. From 10 to 1000. Default: `300`.
- Code colour (`foreground_color`, text): The colour of the code itself, as a hex colour. It has to be clearly darker than the background or scanners will not read it. Default: `#000000`.
- Background colour (`background_color`, text): The colour behind the code, as a hex colour. Keep it light so the code stands out. Default: `#ffffff`.
- Damage tolerance (`error_correction`, text): How much of the code can be scratched, smudged or covered and still scan. Stronger levels make the pattern denser, so use Standard on screen and step up for anything printed and handled. One of: `L` (Standard, the smallest code), `M` (Better, copes with minor damage), `Q` (Strong, for stickers and labels), `H` (Strongest, for signs and worn surfaces). Default: `L`.
- Border (`border`, number): Blank space around the code, counted in code squares. 4 is the standard and scans most reliably; use 0 if your design already leaves space around it. From 0 to 20. Default: `4`.
- Save as (`filename`, text): Optional. The name to save the image under. Named after what the code holds by default, e.g. jane-doe-qr-code.png.

**Outputs**

- `content_type` (text): File type of the saved QR code.
- `document_ref` (text): Reference to the saved QR code, for use by a later step.
- `documents` (list): The QR code image, in the shape steps that send or upload files expect.
- `encoded_text` (text): The exact text stored in the code: the contact card, in the format phones read.
- `filename` (text): Name the QR code was saved under.
- `size_bytes` (number): Size of the saved QR code in bytes.
- `url` (text): Download link for the saved QR code.

**Example output**

```json
{
  "content_type": "image/png",
  "document_ref": "doc_3c4d5e6f708192a33c4d5e6f708192a3",
  "documents": [
    {
      "content_type": "image/png",
      "document_ref": "doc_3c4d5e6f708192a33c4d5e6f708192a3",
      "filename": "jane-doe-qr-code.png",
      "size_bytes": 612,
      "url": "/actions/core/serve-document/doc_3c4d5e6f708192a33c4d5e6f708192a3?teamId=6512a1b2c3d4e5f600000001"
    }
  ],
  "encoded_text": "BEGIN:VCARD\r\nVERSION:3.0\r\nN:Doe;Jane;;;\r\nFN:Jane Doe\r\nORG:Acme\r\nTEL;TYPE=CELL:+1 555 0100\r\nEMAIL;TYPE=INTERNET:jane@acme.example\r\nEND:VCARD",
  "filename": "jane-doe-qr-code.png",
  "size_bytes": 612,
  "url": "/actions/core/serve-document/doc_3c4d5e6f708192a33c4d5e6f708192a3?teamId=6512a1b2c3d4e5f600000001"
}
```

### Create a QR code

Turn a link or any other text into a QR code image, ready to email, print or drop into a document. The image is saved so later steps can attach or upload it. No account or API key required.

**Inputs**

- Link or text (`content`, text, required): What the code should hold. A web address opens when scanned; anything else is shown as text.
- File type (`file_type`, text): PNG suits email, documents and the web. Choose a vector file if the code is going to print at a size you do not know yet. One of: `png` (PNG image, for email, documents and the web), `svg` (SVG vector, stays sharp at any size), `eps` (EPS vector, for professional printing). Default: `png`.
- Size (`size`, number): How many pixels across the code should be, between 10 and 1000. QR codes are always square. Vector files scale to any size afterwards, so this is only their starting point. From 10 to 1000. Default: `300`.
- Code colour (`foreground_color`, text): The colour of the code itself, as a hex colour. It has to be clearly darker than the background or scanners will not read it. Default: `#000000`.
- Background colour (`background_color`, text): The colour behind the code, as a hex colour. Keep it light so the code stands out. Default: `#ffffff`.
- Damage tolerance (`error_correction`, text): How much of the code can be scratched, smudged or covered and still scan. Stronger levels make the pattern denser, so use Standard on screen and step up for anything printed and handled. One of: `L` (Standard, the smallest code), `M` (Better, copes with minor damage), `Q` (Strong, for stickers and labels), `H` (Strongest, for signs and worn surfaces). Default: `L`.
- Border (`border`, number): Blank space around the code, counted in code squares. 4 is the standard and scans most reliably; use 0 if your design already leaves space around it. From 0 to 20. Default: `4`.
- Save as (`filename`, text): Optional. The name to save the image under. qr-code.png by default.

**Outputs**

- `content_type` (text): File type of the saved QR code.
- `document_ref` (text): Reference to the saved QR code, for use by a later step.
- `documents` (list): The QR code image, in the shape steps that send or upload files expect.
- `encoded_text` (text): The exact text stored in the code: the link or text you gave it.
- `filename` (text): Name the QR code was saved under.
- `size_bytes` (number): Size of the saved QR code in bytes.
- `url` (text): Download link for the saved QR code.

**Example output**

```json
{
  "content_type": "image/png",
  "document_ref": "doc_1a2b3c4d5e6f70811a2b3c4d5e6f7081",
  "documents": [
    {
      "content_type": "image/png",
      "document_ref": "doc_1a2b3c4d5e6f70811a2b3c4d5e6f7081",
      "filename": "qr-code.png",
      "size_bytes": 612,
      "url": "/actions/core/serve-document/doc_1a2b3c4d5e6f70811a2b3c4d5e6f7081?teamId=6512a1b2c3d4e5f600000001"
    }
  ],
  "encoded_text": "https://lodol.ai",
  "filename": "qr-code.png",
  "size_bytes": 612,
  "url": "/actions/core/serve-document/doc_1a2b3c4d5e6f70811a2b3c4d5e6f7081?teamId=6512a1b2c3d4e5f600000001"
}
```

### Create a Wi-Fi QR code

Turn a Wi-Fi network's name and password into a QR code that joins the network when a phone scans it, with no typing. The one to print for a reception desk, a meeting room or a rental. No account or API key required.

**Inputs**

- Network name (`network_name`, text, required): The network's name exactly as it appears in the Wi-Fi list, capitals and spaces included.
- Security (`security`, text): How the network is protected. Almost every modern network uses a WPA password. One of: `WPA` (WPA, WPA2 or WPA3 password), `WEP` (WEP password), `nopass` (No password, open network). Default: `WPA`.
- Password (`password`, text): The network's password. Needed for every network except an open one.
- Hidden network (`hidden_network`, true/false): Turn on only if this network does not appear in the Wi-Fi list until you type its name. Default: `false`.
- File type (`file_type`, text): PNG suits email, documents and the web. Choose a vector file if the code is going to print at a size you do not know yet. One of: `png` (PNG image, for email, documents and the web), `svg` (SVG vector, stays sharp at any size), `eps` (EPS vector, for professional printing). Default: `png`.
- Size (`size`, number): How many pixels across the code should be, between 10 and 1000. QR codes are always square. Vector files scale to any size afterwards, so this is only their starting point. From 10 to 1000. Default: `300`.
- Code colour (`foreground_color`, text): The colour of the code itself, as a hex colour. It has to be clearly darker than the background or scanners will not read it. Default: `#000000`.
- Background colour (`background_color`, text): The colour behind the code, as a hex colour. Keep it light so the code stands out. Default: `#ffffff`.
- Damage tolerance (`error_correction`, text): How much of the code can be scratched, smudged or covered and still scan. Stronger levels make the pattern denser, so use Standard on screen and step up for anything printed and handled. One of: `L` (Standard, the smallest code), `M` (Better, copes with minor damage), `Q` (Strong, for stickers and labels), `H` (Strongest, for signs and worn surfaces). Default: `L`.
- Border (`border`, number): Blank space around the code, counted in code squares. 4 is the standard and scans most reliably; use 0 if your design already leaves space around it. From 0 to 20. Default: `4`.
- Save as (`filename`, text): Optional. The name to save the image under. Named after what the code holds by default, e.g. acme-guest-wifi-qr-code.png.

**Outputs**

- `content_type` (text): File type of the saved QR code.
- `document_ref` (text): Reference to the saved QR code, for use by a later step.
- `documents` (list): The QR code image, in the shape steps that send or upload files expect.
- `encoded_text` (text): The exact text stored in the code: the network's joining details, in the format phones read.
- `filename` (text): Name the QR code was saved under.
- `size_bytes` (number): Size of the saved QR code in bytes.
- `url` (text): Download link for the saved QR code.

**Example output**

```json
{
  "content_type": "image/png",
  "document_ref": "doc_2b3c4d5e6f7081922b3c4d5e6f708192",
  "documents": [
    {
      "content_type": "image/png",
      "document_ref": "doc_2b3c4d5e6f7081922b3c4d5e6f708192",
      "filename": "acme-guest-wifi-qr-code.png",
      "size_bytes": 612,
      "url": "/actions/core/serve-document/doc_2b3c4d5e6f7081922b3c4d5e6f708192?teamId=6512a1b2c3d4e5f600000001"
    }
  ],
  "encoded_text": "WIFI:T:WPA;S:Acme Guest;P:hunter2;;",
  "filename": "acme-guest-wifi-qr-code.png",
  "size_bytes": 612,
  "url": "/actions/core/serve-document/doc_2b3c4d5e6f7081922b3c4d5e6f708192?teamId=6512a1b2c3d4e5f600000001"
}
```

### Create an event QR code

Turn an event's name, time and place into a QR code that a phone offers to add to its calendar. The one for a poster, an invitation or a ticket. Times are stored so the event lands correctly whichever time zone it is scanned in. No account or API key required.

**Inputs**

- Event name (`title`, text, required): What the event is called.
- Starts (`starts_at`, date and time, required): When the event starts.
- Ends (`ends_at`, date and time): Optional. When the event finishes. Leave blank for a 1-hour event.
- Location (`location`, text): Optional. Where it happens. An address here becomes a tappable one in the calendar entry.
- Details (`description`, text): Optional. Anything else to save with the event.
- File type (`file_type`, text): PNG suits email, documents and the web. Choose a vector file if the code is going to print at a size you do not know yet. One of: `png` (PNG image, for email, documents and the web), `svg` (SVG vector, stays sharp at any size), `eps` (EPS vector, for professional printing). Default: `png`.
- Size (`size`, number): How many pixels across the code should be, between 10 and 1000. QR codes are always square. Vector files scale to any size afterwards, so this is only their starting point. From 10 to 1000. Default: `300`.
- Code colour (`foreground_color`, text): The colour of the code itself, as a hex colour. It has to be clearly darker than the background or scanners will not read it. Default: `#000000`.
- Background colour (`background_color`, text): The colour behind the code, as a hex colour. Keep it light so the code stands out. Default: `#ffffff`.
- Damage tolerance (`error_correction`, text): How much of the code can be scratched, smudged or covered and still scan. Stronger levels make the pattern denser, so use Standard on screen and step up for anything printed and handled. One of: `L` (Standard, the smallest code), `M` (Better, copes with minor damage), `Q` (Strong, for stickers and labels), `H` (Strongest, for signs and worn surfaces). Default: `L`.
- Border (`border`, number): Blank space around the code, counted in code squares. 4 is the standard and scans most reliably; use 0 if your design already leaves space around it. From 0 to 20. Default: `4`.
- Save as (`filename`, text): Optional. The name to save the image under. Named after what the code holds by default, e.g. launch-party-qr-code.png.

**Outputs**

- `content_type` (text): File type of the saved QR code.
- `document_ref` (text): Reference to the saved QR code, for use by a later step.
- `documents` (list): The QR code image, in the shape steps that send or upload files expect.
- `encoded_text` (text): The exact text stored in the code: the event, in the format phones read.
- `filename` (text): Name the QR code was saved under.
- `size_bytes` (number): Size of the saved QR code in bytes.
- `url` (text): Download link for the saved QR code.

**Example output**

```json
{
  "content_type": "image/png",
  "document_ref": "doc_4d5e6f708192a3b44d5e6f708192a3b4",
  "documents": [
    {
      "content_type": "image/png",
      "document_ref": "doc_4d5e6f708192a3b44d5e6f708192a3b4",
      "filename": "launch-party-qr-code.png",
      "size_bytes": 612,
      "url": "/actions/core/serve-document/doc_4d5e6f708192a3b44d5e6f708192a3b4?teamId=6512a1b2c3d4e5f600000001"
    }
  ],
  "encoded_text": "BEGIN:VEVENT\r\nSUMMARY:Launch party\r\nDTSTART:20260910T180000Z\r\nDTEND:20260910T200000Z\r\nLOCATION:The Roastery\r\nEND:VEVENT",
  "filename": "launch-party-qr-code.png",
  "size_bytes": 612,
  "url": "/actions/core/serve-document/doc_4d5e6f708192a3b44d5e6f708192a3b4?teamId=6512a1b2c3d4e5f600000001"
}
```

### Read a QR code

Read the text out of a QR code in an image: an attachment, a file from an earlier step, or a photo of a code on a wall. Large photos are resized to fit automatically. No account or API key required.

**Inputs**

- Image (`image`, text, required): The picture holding the QR code: upload one, paste a link to an image, or use a file from an earlier step.

**Outputs**

- `content` (text): The text stored in the code, exactly as it was written there.

**Example output**

```json
{
  "content": "https://lodol.ai"
}
```
