Three real-world AI challenges
Prizes & Rewards
- 2,000,000+ kr in prizes
- UTmessan tickets
- Lovable subscriptions
- Summer jobs at Íslandsbanki
Competition Starts In
Competition
January 14-21, 2027
Registration and team changes close at 20:00 UTC on Tuesday, January 19, when the final test set opens.
- University Division: Must be enrolled in an Icelandic university
- Open Division: Anyone not enrolled in an Icelandic university
- Teams with up to 3 members
- 3 Real-world challenges from Icelandic companies
- Kickoff, prize ceremony and support on Discord throughout the competition
- The competition will take place online, but a workspace will be offered in Mýrin, a community for entrepreneurs in Gróska in Science Park.
- CUDA-capable Spark machines are planned for students during the competition; access and capacity details will follow.
Prize Ceremony in Gróska
January 22, 2027 at 3:30-5:00 PM
- Free food
- Company presentations on AI usage
- Networking opportunity
The new challenge briefs will be published at 20:00 on January 14, 2027.
Competition challenges 2027
Looking for the old problem descriptions? Select 2026 above.
Challenge
Details comingSkoffín
The challenge brief, data and scoring rules will be published at 20:00 on January 14, 2027.
Challenge
Details comingHuldukona
The challenge brief, data and scoring rules will be published at 20:00 on January 14, 2027.
Challenge
Details comingNykur
The challenge brief, data and scoring rules will be published at 20:00 on January 14, 2027.
What is confirmed
- The competition runs January 14–21, 2027.
- There will be three new real-world AI challenges.
- Challenge briefs, datasets, metrics and submission rules will be published at 20:00 on January 14, 2027, when the competition starts.
Student support being prepared
- A kickoff event, prize ceremony and support on Discord throughout the competition.
- We expect to make CUDA-capable Spark machines available to students while the competition is live.
- Compute capacity, access, support and any usage limits are still being finalized.
Planned Lovable presentation challenge
Teams will be invited to use Lovable to create a clear, standalone website that explains the problem, their approach, results and the most useful lessons they learned. The purpose is to make strong competition work understandable and reusable by the wider community.
Judging criteria, submission instructions and the deadline will be announced before the competition.
Summer opportunities
The top team in the University Division receives a summer job at Íslandsbanki. We aim to offer summer jobs for winners at additional companies.
Prepare for 2027
Use one account across every year, then confirm participation in the next competition.
Partners
Questions and answers
Frequently Asked Questions
Do I need AI experience to participate?
No! The competition is designed for all skill levels. We provide starter code and baseline models to help you get started. This is a great opportunity to learn.
How do teams work?
Teams can have up to 3 members. You can participate on your own and find teammates later, or form a team from the start.
What is the University vs Open division?
The University Division is for students enrolled at an Icelandic university. It is also for Icelanders studying at a university abroad, meaning Icelandic citizens and those who completed upper secondary school in Iceland. The Open Division is for everyone else, for example professionals and anyone interested.
How can I prepare for the competition?
Review the challenges from the first Icelandic AI Championship in 2026 and try the starter code and baseline models to prepare.
Can I compete in the University Division if only some of my team is enrolled?
No. To compete in the University Division, all team members must meet the University Division's conditions. If even one member does not, the team will compete in the Open Division.
What tools can I use?
You can use any programming language, framework, pre-trained models or APIs allowed by the challenge rules. Your final model must respond within the predefined time limit for that challenge, usually 10 seconds.
How does submission work?
Run your model as a server with a public HTTPS address, on your own computer through a tunnel such as ngrok or on a hosted server. A team member enters the address and API key on our website and confirms with a passkey, and the evaluator then calls your server. Keep it running until evaluation finishes.
What are the prizes?
Over 2,000,000 kr in prizes, tickets to UTmessan and Lovable subscriptions. The top team in the University Division receives a summer job at Íslandsbanki. We aim to offer summer jobs for winners at additional companies.
I didn't get the verification email. What should I do?
The email can take a minute to arrive, so check your spam or junk folder too. On the verification page, press “Resend code”. If you have closed that page, log in with your email and password and we will send you a new code. If nothing arrives, contact us at contact@gki.is.
I signed up with the wrong email. How do I fix it?
Before you verify, press “Change email” on the verification page, correct the address, enter your password again and sign up. The new code is then sent to the correct address. After you verify, you can change your email on your profile.
Do I log in with Google or with a password?
Log in the same way you signed up. If you signed up with Google, press “Continue with Google” on the login page. If you would rather use a password, choose one with “Forgot Password?” on the login page. That disconnects Google, but you can connect it again on your profile.
How do I make another member the team leader?
Until registration closes, the team leader presses “Make leader” next to a member on the “Next competition” card on their profile. The former leader stays on the team as a member.
How do I remove a member from my team?
The team leader presses “Remove” next to the member on the “Next competition” card on their profile. The member stays in the competition and can join another team. A member can also leave on their own by pressing “Leave team”. Neither is possible while the competition is live or after registration closes.
How do I rename our team?
Until registration closes, the team leader presses “Edit team” on the “Next competition” card on their profile, changes the team name and presses “Save”. Another team cannot already have the same name.
How do I delete my account, and what can prevent it?
Press “Delete Account” on your profile. This is not possible while the competition is running or while you are on a team, so leave the team first. A team leader first makes another member the leader, or deletes the team with “Delete empty team” if they are its only member. Accounts that have made submissions cannot be deleted, because competition results are kept. If you cannot leave your team or something else stops the deletion, contact us at contact@gki.is.
Submission Guide
How to set up, test and submit a solution for GKÍ 2027.
Using Claude Code, Codex or another coding agent? The starter's AGENTS.md gives it the context it needs. A team member still approves each score: submitting needs a passkey on a team member's account on this website.
01
What you need
- Python 3.11 or newer, and git.
- A free ngrok account for a public address (recommended), or cloudflared for
connect. - A device that supports passkeys: Face ID, Touch ID, Windows Hello or a security key.
- An account on this website and a place in a 2027 team.
02
Get the starter
The 2027 starter repository is published at kickoff. Once you have it, run:
python gki.py setupsetup creates .venv and a .env file with your own API key. Organizers never issue keys. Never commit .env or paste the key into chat. Use python3 if python is not found.
03
Test on your computer
python gki.py test # unit tests
python gki.py run # server on http://localhost:8000
python gki.py check # in a second terminalcheck sends example requests to your server with your API key. Local testing is unlimited and never touches hidden data.
04
Make it public
We recommend ngrok. Keep run going and start ngrok on the same port (8000) in a second terminal:
ngrok config add-authtoken <token> # once, with the token from your ngrok dashboard
ngrok http 8000 # prints your public https:// address; keep it open
python gki.py check https://<address> # in a third terminalA free ngrok account comes with one fixed address (ending in ngrok-free.app or ngrok-free.dev) that stays the same when ngrok restarts. In a browser, ngrok first shows a warning page: click Visit. The evaluator calls your server directly and does not get that page.
Alternatively, connect starts your server behind a Cloudflare quick tunnel (needs cloudflared). Stop run first, because connect starts the server itself on port 8000:
python gki.py connect # prints the public address and API key; keep it open
python gki.py check https://<address> # in a second terminalThe trycloudflare.com address changes each time connect starts. Any public HTTPS host also works: your own server or cloud service, or Docker behind HTTPS.
05
Submit on the website
- Sign in and join a 2027 team.
- Set up a passkey for your device on the submission page. You confirm your password first (or a code we email you, if you sign in with Google).
- Choose the challenge and Validation, paste the base address and API key, and confirm with your passkey.
Enter only the base address: https:// and the host name, with no path (not …/predict), no port other than 443, and no ?, #, user name or password. Private and local addresses are not allowed.
A team member takes this step. The passkey confirms that a team member's account approved the score; it does not prove who wrote the solution. Coding agents can prepare the address and key, but a team member submits.
Keep the server running until the score is finished.
06
Rules that affect your plan
- Validation has a daily limit per team and challenge. The submission page shows how many are left; the count resets at 00:00 UTC.
- Failures caused by the website or the evaluator do not count against the limit.
- Each team can have one queued or running score per challenge.
- The final test is one attempt per team and challenge. A started run uses the attempt; a run the evaluator refuses before contacting your server does not.
- Final-test scores stay hidden until results are published.
- Your server is never told whether a request is for validation or the final test.
07
Troubleshooting
- The website cannot reach my server
localhostis not public. Use ngrok,connector a hosted server, and open<address>/healthfrom another network, such as a phone with Wi-Fi off.- The address is rejected
- Enter only the base
https://address on port 443, with no path,?,#, user name or password. Private and local addresses are not allowed. If the host name cannot be found, the form says so: check the address and that ngrok orconnectis still running. - 401 Invalid API key
- Paste the exact key from
.envor theconnectoutput, without quotes or the wordBearer. - 422 error
- The request does not match the API contract. Run
python gki.py testand compare with the example requests infixtures/. - 500 error
- Your code raised an error, returned the wrong number of answers or an invalid output. Check the terminal where the server runs.
- Timeout or the tunnel dropped
- Keep the computer awake, load the model at startup rather than on each request, and answer within the problem's time limit.
- A score is stuck or failed on our side
- Keep the submission ID and contact an organizer on Discord. Organizers can restore a final-test attempt after a verified infrastructure failure.
- Before the final test
- Run validation first and use a host that stays up for the whole evaluation. A tunnel stops when ngrok or
connectstops, and ngrok's free plan has monthly request and data limits.
Questions and answers
Technical FAQ
What is a model?
A model is a system that produces outputs from inputs, such as a large language model like ChatGPT or a simple linear function. Most models are trained on pairs of inputs and expected outputs. Training minimizes a loss function so the model's predictions come as close to the expected outputs as possible.
How is model performance measured?
With a scoring metric computed on data the model has not seen. Accuracy, the share of correct predictions, is the most common. Others include MSE, F1 score and AUC. Each problem's metric is published with the problem.
What is an API, and why does the competition use one?
An API (application programming interface) is an agreed way for programs to exchange requests and responses, usually JSON over HTTPS. Your server provides one; the evaluator sends it hidden inputs and scores the answers. The starter already implements the API, so you write the model code.
What is the API key?
A secret the evaluator sends with every request, so your server knows the request is genuine. python gki.py setup generates it; organizers never issue keys. It is stored in .env. Never commit it or paste it into chat, and enter it only on the submission page.
Why can't I just upload my model?
Teams use different languages, libraries and hardware, and running all of it on our side would be slow and fragile. With an API, the evaluator only needs your address and key, and you keep full control of your code. This is also how models are usually served in industry.
What is a tunnel, and what does gki.py connect do?
A tunnel gives a server on your computer a public HTTPS address without changing your router settings. We recommend ngrok: ngrok http 8000 forwards your fixed ngrok address to the server that run starts. Alternatively, connect starts your server and a Cloudflare quick tunnel through cloudflared, then prints the address and key. That address works only while connect runs and changes each time it starts.
Can I run the server on my laptop?
Yes. Keep it awake, plugged in and online until the score finishes. For the final test, use a host that will stay up for the whole evaluation.
Why must the address be public HTTPS?
The evaluator runs in the cloud, so it cannot reach localhost or a private network. HTTPS encrypts your key and answers in transit. The form accepts only the base address on port 443; the evaluator adds the API paths itself.
What does the passkey step do?
Every score must be approved with a passkey on a team member's account on this website, for that problem, dataset, address and key. It confirms that a team member's account approved the score; it does not prove who wrote the solution. The step is deliberately manual: your coding agent can prepare the address and key, and a team member submits.
What counts against the daily validation limit?
Every validation submission your team starts for that problem, including ones still queued or running. Failures caused by the website or the evaluator do not count. The submission page shows how many are left, and the count resets at 00:00 UTC.
About Us
Why Did We Create This?
We are a group of friends that have competed in many competitions from elementary school math competitions to robotics hackathons. These competitions have taught us so much and they are one of the best ways to learn topics quickly. You dive deep into problems, try a bunch of wild solutions you have never touched before, and figure out what actually works. This is way different from school projects where the teacher has already spoon-fed you everything you need to solve the tasks. Since Iceland doesn't have a yearly competition like the ones we learned from, we decided to build one ourselves. We believe this will be a fun and hands-on way to grow Iceland's AI community.
What Makes This Different?
- Clear objectives. You know exactly what you are supposed to do. No finding an idea of a project.
- Real industry problems. Each task is built with an Icelandic company, so you're solving actual engineering challenges, not toy problems.
- Deploy your models. You'll run your solution as a server that our evaluator calls over HTTPS. No more notebooks that only work on your laptop.
- Pure numbers, no bullshit. Everything is judged quantitatively. No pitches, no prototypes, no subjective human judges picking favorites.
- A full week. You have time to experiment, fail, and try different approaches.
The thought behind the logo
Our mark draws on the neural connections of artificial intelligence. It is built on a solid grid where connection points create flow and innovation, and on closer inspection you can spot the competition's abbreviation, GKÍ, where the dots connect. The idea behind the website and the whole look is the Icelandic highlands: bright green moss on black sand. That is where the colours come from, the dark background and the moss green, and the three creatures that stand for the problems are hidden beings of the highlands from Icelandic folklore.
Special thanks to Guðrún Sara Örnólfsdóttir for the design and implementation.
















