Solutions

Doc

Upload a doc, choose a short path, and get a QR page.

Instructions

File

Upload a PDF, image, DOC, or DOCX.

Path

Choose `/doc/my-doc`.

QR

Open the hosted doc or QR page.

Integrations

Use Doc when the file is already finished.

Misebox

Finished menu file.

Structured menu app.

Food menu flow

BuenoHost

Finished guide file.

Property-aware guest guide.

Guest guide flow

Sproochli

Finished translated file.

Translation workflow.

Translation flow

Upgrades

  • Sign in to manage, replace, or delete uploaded docs.
  • Add a logo or centre mark before printing stickers.
  • Set expiry, replacement, and simple access controls for public files.

Dev

GET/api/public/app/info

Read Go QR app identity, public branding, and media from the shared FireUX app-info endpoint.

GET/api/tools/doc

Read the doc tool contract: labels, slug rules, limits, endpoints, and preview URL shape.

GET/api/tools/doc/availability?id=my-doc

Check whether a public document path is valid and available before creating it.

POST/api/tools/doc/create

Upload a public file with a slug. The doc tool owns the internal doc type.

Client wrapper shape
const goQr = createGoQrClient({
  baseUrl: 'https://go-qr.web.app'
})

const appInfo = await goQr.appInfo()
const tool = await goQr.publicDoc.config()
const availability = await goQr.publicDoc.availability('my-doc')

if (availability.available) {
  const result = await goQr.publicDoc.create({
    slug: 'my-doc',
    file
  })
}
Multipart request
const form = new FormData()
form.append('slug', 'my-doc')
form.append('file', file)

const result = await fetch('https://go-qr.web.app/api/tools/doc/create', {
  method: 'POST',
  body: form
}).then((response) => response.json())
Create response
{
  "ok": true,
  "slug": "my-doc",
  "path": "/doc/my-doc",
  "qr_path": "/doc/my-doc/qr"
}