QR code scavenger hunt: make the clues with AI, one page for every stop

Quick answer

Ask the AI for one HTML page that shows a different clue for each stop number in its address (?stop=1, ?stop=2, and so on). Publish it, then make one QR code per stop from that address. A scan opens that stop's clue on the player's phone, with no app and no account. Convika keeps no scores unless you add a form.

Publish my scavenger hunt

Free plan: no credit card, 1 published page, 10,000 page views a month.

On this page

A QR code scavenger hunt hides a code at each stop: in a classroom, around a school, in a park, or through a house at a birthday party. Each scan shows the clue that leads to the next code. A chat AI can write all the clues as one web page, and one page is all you publish: every code holds the same address with a different stop number at the end. This guide gives you the prompt, the steps to publish and make the codes, how to keep score without an app, and what to watch before you print. The Goosechase, Leaderboarded, MDN, and Apple pages quoted were read October 22, 2026.

Already have the file? The upload box at the top of this page makes a preview link without an account. That preview runs no scripts, so the clues won't change by stop there. Click Keep this page — free, no card and sign up, and the page moves into your account, where its scripts run.

What a QR scavenger hunt needs

  • Stops, in order. 5 to 10 places where a code hangs: the bookshelf, the red bench, the back door. Walk the route once and time it.
  • A clue per stop. A riddle whose answer is the next place. The AI writes these well when you tell it the places and the players' age.
  • An answer check. The player types the answer, and the page says where the next code is. That keeps teams from walking the route without solving anything.
  • A finish. A last screen with a code word the leader checks, so the first team back has proof.

A QR code holds a web address, not the clue itself. So the clues live on one published page, and each code points at it with its stop number: https://yourpage.convika.page/?stop=1, ?stop=2, and so on. The page reads the number and shows that stop. The same idea runs a self-check worksheet, one code per question, in the QR code quiz guide.

Ask the AI for the clue page

Paste this into ChatGPT, Claude, or Gemini, and fill in the theme and the stops:

Make a QR code scavenger hunt as one HTML file, with all the CSS and JavaScript inside it.

Theme: [such as a pirate hunt for 8-year-olds, or a library tour for grade 6]
Stops in order, with the place each code hangs and where its clue leads:
1. [place of code 1] | clue leads to [place of code 2] | answer: [word]
2. [place of code 2] | clue leads to [place of code 3] | answer: [word]
3. [place of the last code] | finish

- Read the stop from the address with new URLSearchParams(location.search).get("stop"), so ?stop=2 means stop 2.
- Show that stop's riddle and an answer box. When the answer is right, say where the next code is hidden. Accept any upper or lower case and extra spaces.
- A Hint button with one hint for each stop.
- Remember the stops this phone has found in localStorage and show "2 of 5 found". If a player opens a stop before the one before it, show "Find the earlier stop first".
- At the last stop, show a finish screen with the code word [word] for the leader.
- With no stop in the address, or one not on the list, show "Find a code to start."
- Big text for a phone held outdoors. Don't ask for names. Don't load anything from other websites except a library over https, and don't send data anywhere.

Give me the whole file in one code block.

Read every clue and answer before you go further: the AI can describe a place that isn't on your route. For younger children, ask for pictures made from emoji in place of riddles, and answers they can tap instead of type.

Publish the hunt and make a code per stop in 4 steps

1. Save the clue page as one HTML file

If the AI gave you a file, download it. If the page is in the chat as code, copy all of it, from <!DOCTYPE html> to </html>. The file can be up to 2 MB.

2. Upload it and keep the page

Drop the file into the upload box at the top of this page, or switch to Paste code and paste it. Click Get my preview link, then Keep this page — free, no card, and sign up. The page moves into your account, and its preview on the page's screen runs the scripts. Check that the start screen shows "Find a code to start."

3. Publish it

Click Publish. The first time, Convika asks 2 things. Under Who can open this page?, Public is free: anyone with the link can open it with no account, and it may show up in search results and in Convika's gallery. Private link keeps it out of both and comes with Pro or the pass. Click Next and pick a plan. Pro monthly is selected first ($12 a month, after a free 7-day trial with a card); the 1-year Pro pass is $29, with no renewal. To stay on Free, pick Free and click Publish free. A paid pick opens the payment page, and the page goes live once the trial starts or the pass is paid. The hunt goes live at an address like yourpage.convika.page.

4. Make a code for each stop

Add the stop number to the page's address, then make a code from it. Show QR code in the dashboard holds the plain address, so make the stop codes in Chrome or another QR code generator:

  1. Open https://yourpage.convika.page/?stop=1 (your own address) in Chrome, or paste it into a generator's URL field.
  2. Make the code. Chrome's steps for a computer, Android, an iPhone, and an iPad are in the QR guide's Chrome section.
  3. Scan the code with a phone and check that the link ends in ?stop=1. Tap it, and the page should show stop 1.

Repeat for every stop, and label each printout on the back with its stop number. We tested the address part on October 22, 2026: a page published on a test copy of Convika showed stop 2 for ?stop=2, and stops found on ?stop=2 were still remembered on ?stop=3 in the same browser.

  • Print them big, and test from a step back. How to turn an HTML file into a QR code has the size and contrast checks.
  • Protect them outdoors. Laminate the codes or put them in plastic sleeves, and tape all 4 edges.
  • Keep a leader's list. Print every stop's address on one sheet. If a code is torn down, the leader can read the address out or show it on their own phone.
  • Keep the page published until the hunt is over. A code stops opening the clue when the page stops: after Unpublish, or when you swap another page in for it. Publish the same page again and the same codes work again.
  • Scan with the camera app. On an iPad or an iPhone, open Camera, frame the code in Photo mode, and tap the link, as Apple's iPad User Guide describes. Use the same phone for the whole hunt, because each browser keeps its own list of stops found.

Keeping score without an app

The page runs on each player's phone, and Convika keeps no scores or names. There are 4 simple ways to keep score anyway.

  • The finish code word. The first team to show the leader the finish screen's code word wins. Nothing to set up.
  • A paper card. Each team carries a card, and a helper at each stop initials it.
  • "2 of 5 found" on the phone. The prompt keeps each phone's progress in localStorage, so a team sees its count, and a reload doesn't lose it. It stays in that browser on that phone only. MDN's localStorage page notes that data from a private or incognito session "is cleared when the last "private" tab is closed".
  • A form at the finish, for older players. On the page's screen, click Add a form to my page and pick Name and email, with the name field relabelled "Team name". Both fields start as Required; untick it for the email field so a team can send without an address. Each entry is emailed to you and listed under Forms. Convika accepts up to 5 entries a minute and 20 an hour from one network, so on one Wi-Fi, teams that finish within the same minute may have to wait to send. On Free, Convika shows and emails the first 50 entries a month across all your forms; entries past that are saved, and Pro or the pass shows them. Test it on the live page, since a form on a preview saves nothing.

A scoreboard every phone sees takes shared storage. A Claude-made page that saves with window.storage shared values keeps them on Convika for that page, up to 1 MB and 1,000 keys on Free. Team names on it are whatever players type, and anyone with the page can change them. Keep Claude artifact storage working on a published link explains how.

What the page can't do: check a player's location or a photo, run one clock shared by all the teams, or hide its answers from a player who opens the page's source code. It's a game. For a hunt with photo missions and automatic scoring, use a hunt app from the table below.

One page, or a page per stop

One page with ?stop=1 to ?stop=10 is the Free path. Free publishes 1 page at a time, and the whole hunt fits in it. A clue fix is one upload, under New version from a file on the page's screen, then Publish v2 at the same link: every printed code opens the new version.

A page per stop means a second publish, and so does a second hunt live at the same time. Publishing another page opens a choice: Pro ($12 a month, after a free 7-day trial with a card), or Swap it in for the live page (free). A swap puts the live page back to a draft, its address stops opening, and its printed codes stop with it until you publish it again. Nothing is deleted. Run one hunt at a time on Free, and swap only once that hunt is over. This is the rule for workspaces created on or after October 23, 2026; earlier workspaces keep the plan they signed up for.

Each scan is a page view. Free includes 10,000 page views a month across all your pages. At that number in a month, editing and analytics pause, and 7 days later the pages stop until the month ends or you upgrade. That counts from sign-up for workspaces created on or after October 23, 2026, and from November 1, 2026 for earlier ones. A class or a party is far below it. Pricing lists each plan.

If you run hunts as a business and need a booking page with a form, Convika's Made for you service makes one for $199, paid once and only if you publish it (details).

Who can open the hunt

Anyone who has a code, or a photo of one, can open the page. On Free, a published page is Public: anyone with the link can open it, and it may show up in search results and in Convika's gallery. A Private link (Pro or pass) keeps it out of search and the gallery, but anyone the link reaches can still open it. A password comes with Pro or the 1-year pass.

For a children's hunt, keep the page to riddles. Leave off children's names, the school's name, a home address, and anything a stranger shouldn't read. Convika doesn't take a page with names, school or class names, or contact details into the gallery, and a page with only riddles has nothing to hide.

Ways to run a QR scavenger hunt, compared

WayWhat players needScoringFree versionPaid
A QR generator and a Google Form per checkpoint (Leaderboarded's free DIY method)A phone cameraBy hand: "there's no live ranking, scoring is manual"FreeNone
Leaderboarded QR Checkpoint HuntA phone camera. Players "enter their name once": "no password, no account"A live leaderboard for a TV2 boards at a time; "Top 25 participants shown publicly"Plus: $19 for one month, paid once, 100 participants per board
GoosechaseAny web browser or the free app, "as a guest or create an account", with a join link, code, or QR codeMissions earn points"Up to 3 participants per Experience", one Experience at a time "for up to 24 hours"One Experience from $99, up to 10 participants, for 30 days; K-12 pricing by quote
An AI-made clue page on ConvikaA phone camera, no accountNone built in: a finish code word, or a form you add1 published page, 10,000 page views a monthPro, $12 a month: no Convika bar, up to 50 pages

Read on October 22, 2026: Leaderboarded's QR code scavenger hunt guide and pricing, and Goosechase's pricing.

How to choose:

  • Photo missions, a live feed, and automatic points: Goosechase.
  • A live ranking on a TV with check-ins at each stop: Leaderboarded.
  • Riddles you wrote with an AI, any theme, for a class or a party, no accounts: an AI-made page on Convika.

Frequently asked questions

How do I make a QR code scavenger hunt?

Ask ChatGPT, Claude, or Gemini for one HTML page that shows a different clue for each stop number in its address, publish it on Convika, and make one QR code per stop from the address plus ?stop=1, ?stop=2, and so on. Print the codes and hide them in order. A scan opens that stop's clue in the phone's browser.

Can I make a QR code scavenger hunt for free?

Yes, you can make a QR code scavenger hunt for free. Convika's Free plan publishes 1 page at a time, with no credit card, and one clue page holds every stop. Chrome makes the QR codes for free. Goosechase's free version allows up to 3 participants per Experience, and Leaderboarded's free plan shows the top 25 participants.

How do I make a QR code treasure hunt for kids?

Ask the AI for a treasure hunt page with short riddles or emoji pictures, answers children can tap, and a big finish screen. Publish it, make one code per stop, and hide the codes at a child's eye level. Keep names and the school's name off the page, and test every code before the party.

How many QR codes do I need?

You need one QR code per stop: 5 to 10 is enough for an hour. Each code holds the same page's address with its own stop number. Print 1 spare set and a leader's list of the addresses in case a code goes missing.

Can I change the clues after printing the codes?

Yes, you can change the clues after printing, because the codes hold the page's address, not the clues. Upload the fixed file under New version from a file on the page's screen and click Publish v2 at the same link. Keep the stop numbers the same, and the printed codes open the new clues.

How do I stop students looking ahead?

Have the page ask for each stop's answer before it says where the next code is, and remember on each phone which stops were found. Use words instead of numbers for the stops, such as ?stop=oak, so the next address can't be guessed. The answers sit in the page's code, so a determined student can still read them.

Sources

QR Code is a registered trademark of DENSO WAVE INCORPORATED in Japan and in other countries.

Next step

How to password protect an HTML page without code, on your own domain

JavaScript passwords sit in the page code. Put an HTML page from ChatGPT or Claude behind a server-checked password on your own domain.

Related articles

More ways to hand out pages in class

Share this article

One clue page, a QR code for every stop

Upload the hunt the AI made and publish it. Fix a clue later and every printed code opens the new version.

Publish my scavenger hunt

Free plan: no credit card, 1 published page, 10,000 page views a month.