{
    "variable": [
        {
            "id": "baseUrl",
            "key": "baseUrl",
            "type": "string",
            "name": "string",
            "value": "https:\/\/korthus.app"
        }
    ],
    "info": {
        "name": "Korthus API Documentation",
        "_postman_id": "23a2f93d-b989-4d76-ac98-3c7dceb6f482",
        "description": "",
        "schema": "https:\/\/schema.getpostman.com\/json\/collection\/v2.1.0\/collection.json"
    },
    "item": [
        {
            "name": "Endpoints",
            "description": "",
            "item": [
                {
                    "name": "Authenticate the request for channel access.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/broadcasting\/auth",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/broadcasting\/auth"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "access-control-allow-origin",
                                    "value": "*"
                                }
                            ],
                            "code": 401,
                            "body": "{\"message\":\"Unauthenticated.\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Opret konto med brugernavn og adgangskode.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/auth\/register",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/auth\/register"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"username\":\"b\",\"password\":\"|]|{+-\",\"email\":\"justina.gaylord@example.org\",\"platform\":\"ios\",\"device_name\":\"i\",\"os_version\":\"k\",\"app_version\":\"h\",\"push_token\":\"w\"}"
                        },
                        "description": "Alternativ til social login. Returnerer et Sanctum-token for enheden."
                    },
                    "response": []
                },
                {
                    "name": "Log ind med e-mail og adgangskode.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/auth\/login",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/auth\/login"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"email\":\"gbailey@example.net\",\"username\":\"architecto\",\"password\":\"|]|{+-\",\"platform\":\"android\",\"device_name\":\"v\",\"os_version\":\"d\",\"app_version\":\"l\",\"push_token\":\"j\"}"
                        },
                        "description": "`username` tages fortsat imod for konti oprettet, f\u00f8r e-mailen blev\nn\u00f8glen (Kasper 2026-09-16) \u2014 de har m\u00e5ske ingen adresse endnu."
                    },
                    "response": []
                },
                {
                    "name": "Log ind med Apple.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/auth\/apple\/token",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/auth\/apple\/token"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"identity_token\":\"architecto\",\"name\":\"n\",\"platform\":\"ios\",\"device_name\":\"g\",\"os_version\":\"z\",\"app_version\":\"m\",\"push_token\":\"i\"}"
                        },
                        "description": "Verificerer et identityToken fra native Sign in with Apple og\nreturnerer et Sanctum-token for enheden. Sendes en gyldig Bearer-token\nmed, kobles Apple-kontoen til den eksisterende bruger."
                    },
                    "response": []
                },
                {
                    "name": "Log ind med Facebook.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/auth\/facebook\/token",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/auth\/facebook\/token"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"access_token\":\"architecto\",\"platform\":\"android\",\"device_name\":\"n\",\"os_version\":\"g\",\"app_version\":\"z\",\"push_token\":\"m\"}"
                        },
                        "description": "Verificerer et accessToken fra Facebook Login SDK og returnerer et\nSanctum-token for enheden. Sendes en gyldig Bearer-token med, kobles\nFacebook-kontoen til den eksisterende bruger."
                    },
                    "response": []
                },
                {
                    "name": "Anmod om nulstilling af adgangskode.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/auth\/forgot-password",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/auth\/forgot-password"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"email\":\"gbailey@example.net\"}"
                        },
                        "description": "Sender en e-mail med nulstillingslink til konti med e-mail. Svaret er\naltid det samme, s\u00e5 det ikke afsl\u00f8rer, om kontoen findes.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                },
                {
                    "name": "Nulstil adgangskode.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/auth\/reset-password",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/auth\/reset-password"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"token\":\"architecto\",\"email\":\"zbailey@example.net\",\"password\":\"|]|{+-\"}"
                        },
                        "description": "Bruger token fra nulstillings-e-mailen. Alle enhedens tokens\ntilbagekaldes, s\u00e5 gamle logins ikke overlever et kompromitteret kodeord.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                },
                {
                    "name": "Underst\u00f8ttede sprog.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/languages",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/languages"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Sprogkoder med aktuel version, s\u00e5 appen kan afg\u00f8re om dens cachede\nsprogfil er for\u00e6ldet. Spillet udledes af appens User-Agent (f.eks.\n`Cucumber\/1.2.0 (ios)` matcher spillet med app-navnet Cucumber);\n`?game=` kan bruges som eksplicit override.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "x-ratelimit-limit",
                                    "value": "60"
                                },
                                {
                                    "key": "x-ratelimit-remaining",
                                    "value": "54"
                                },
                                {
                                    "key": "access-control-allow-origin",
                                    "value": "*"
                                }
                            ],
                            "code": 200,
                            "body": "{\"languages\":[{\"locale\":\"da\",\"version\":230},{\"locale\":\"en\",\"version\":230}]}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Hent sprogfil.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/languages\/:locale",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/languages\/:locale",
                            "variable": [
                                {
                                    "id": "locale",
                                    "key": "locale",
                                    "value": "sr_BA",
                                    "description": ""
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Alle overs\u00e6ttelser for et sprog: f\u00e6lles strenge plus spillets egne\n(spilspecifikke overskriver f\u00e6lles ved samme n\u00f8gle). Spillet udledes\naf appens User-Agent, `?game=` kan override. Sendes `?version=` med,\nog den matcher den aktuelle version, returneres 304 Not Modified, s\u00e5\nappen kan beholde sin cache.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "x-ratelimit-limit",
                                    "value": "60"
                                },
                                {
                                    "key": "x-ratelimit-remaining",
                                    "value": "53"
                                },
                                {
                                    "key": "access-control-allow-origin",
                                    "value": "*"
                                }
                            ],
                            "code": 404,
                            "body": "{\n    \"message\": \"\"\n}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "App-konfiguration og feature flags.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/config",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/config"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Kill-switches, som appen skal respektere uden en ny release. Login-\nflag er kun sande, n\u00e5r b\u00e5de featuren er sl\u00e5et til OG serverens\ncredentials er konfigureret.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "x-ratelimit-limit",
                                    "value": "60"
                                },
                                {
                                    "key": "x-ratelimit-remaining",
                                    "value": "52"
                                },
                                {
                                    "key": "access-control-allow-origin",
                                    "value": "*"
                                }
                            ],
                            "code": 200,
                            "body": "{\"online_enabled\":null,\"matchmaking_enabled\":true,\"apple_login_enabled\":true,\"facebook_login_enabled\":true,\"minimum_app_version\":\"\",\"sound_enabled\":null,\"haptics_enabled\":null,\"hints_enabled\":null,\"auto_sort_enabled\":null,\"deck_designs\":null,\"support_email\":null,\"seats\":null,\"legal_urls\":null}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Rapport\u00e9r en klientfejl.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/client-errors",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/client-errors"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"message\":\"Undefined method\",\"exception\":\"BadMethodCallException\",\"file\":\"app\\\/Livewire\\\/Lobby.php\",\"line\":42,\"trace\":\"architecto\",\"screen\":\"lobby\",\"platform\":\"ios\",\"app_version\":\"0.1.0\",\"app_build\":\"49\",\"match_log\":\"d\",\"match_id\":\"l\"}"
                        },
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Facebook data deletion callback.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/facebook\/data-deletion",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/facebook\/data-deletion"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Status for en sletteanmodning.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/facebook\/data-deletion\/:code",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/facebook\/data-deletion\/:code",
                            "variable": [
                                {
                                    "id": "code",
                                    "key": "code",
                                    "value": "architecto",
                                    "description": ""
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "access-control-allow-origin",
                                    "value": "*"
                                }
                            ],
                            "code": 404,
                            "body": "{\n    \"message\": \"\"\n}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Log ud.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/auth\/logout",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/auth\/logout"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Tilbagekalder enhedens token og fjerner enheden."
                    },
                    "response": []
                },
                {
                    "name": "Registr\u00e9r eller ryd enhedens push-token.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/devices\/push-token",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/devices\/push-token"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"push_token\":\"b\"}"
                        },
                        "description": "iOS beder f\u00f8rst om push-tilladelse efter login, og FCM roterer\ntokens l\u00f8bende \u2014 derfor kan tokenet opdateres n\u00e5r som helst i en\nsession. Opdaterer pr\u00e6cis den enhed, Bearer-tokenet h\u00f8rer til, s\u00e5\nbrugerens \u00f8vrige enheder ikke ber\u00f8res. Send `push_token: null` for\nat rydde det, n\u00e5r brugeren afviser eller tr\u00e6kker tilladelsen\ntilbage. Idempotent."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 204,
                            "body": "{}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Hent min profil.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/me",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/me"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "access-control-allow-origin",
                                    "value": "*"
                                }
                            ],
                            "code": 401,
                            "body": "{\"message\":\"Unauthenticated.\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Opdat\u00e9r min profil.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/me",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/me"
                        },
                        "method": "PATCH",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"username\":\"b\",\"password\":\"|]|{+-\",\"email\":\"justina.gaylord@example.org\",\"phone\":\"+3642559314\",\"country_code\":\"kh\",\"avatar_id\":1,\"locale\":\"en\",\"sound_enabled\":false,\"haptics_enabled\":false,\"leaderboard_visible\":false}"
                        },
                        "description": "Visningsnavn g\u00e5r gennem profanitetsfilteret."
                    },
                    "response": []
                },
                {
                    "name": "Slet min konto.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/me",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/me"
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Tilbagekalder alle tokens med det samme og anonymiserer kontoen i\nbaggrunden. Endelig sletning sker efter 30 dage."
                    },
                    "response": []
                },
                {
                    "name": "Meld din tilstand til vennerne.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/me\/presence",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/me\/presence"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"status\":\"architecto\"}"
                        },
                        "description": "`occupied`, mens spilleren sidder ved et lokalt bord, og `online`,\nn\u00e5r hun g\u00e5r fra det (Kasper 2026-09-22). Optaget l\u00f8ber ud af sig\nselv efter User::OCCUPIED_SECONDS uden en ny melding, s\u00e5 en app,\nder bliver dr\u00e6bt, ikke st\u00e5r som optaget for altid.\n\nKun vennelisten l\u00e6ser tilstanden. Matchmaking g\u00f8r ikke."
                    },
                    "response": []
                },
                {
                    "name": "Upload profilbillede.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/me\/avatar",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/me\/avatar"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "multipart\/form-data"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "formdata",
                            "formdata": [
                                {
                                    "key": "avatar",
                                    "src": [],
                                    "type": "file"
                                }
                            ]
                        },
                        "description": "Multipart\/form-data med feltet `avatar`. Billedet besk\u00e6res til et\nkvadrat og skaleres ned til 256x256 JPEG p\u00e5 serveren \u2014 send originalen,\nikke en nedskaleret udgave.\n\nHEIC accepteres, hvis serveren kan l\u00e6se det; kan den ikke, svarer\nendpointet 422 med en besked, der kan vises til spilleren, i stedet\nfor at fejle tavst."
                    },
                    "response": []
                },
                {
                    "name": "Fjern profilbillede.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/me\/avatar",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/me\/avatar"
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Brugeren falder tilbage p\u00e5 sin avatar_id (de indbyggede tegninger)."
                    },
                    "response": []
                },
                {
                    "name": "Hent venner.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/friends",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/friends"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Accepterede venskaber samt afventende anmodninger i begge retninger."
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "access-control-allow-origin",
                                    "value": "*"
                                }
                            ],
                            "code": 401,
                            "body": "{\"message\":\"Unauthenticated.\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Send venneanmodning via brugernavn.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/friends\/by-username\/:username",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/friends\/by-username\/:username",
                            "variable": [
                                {
                                    "id": "username",
                                    "key": "username",
                                    "value": "kortkasper",
                                    "description": "Modtagerens brugernavn."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Bruges af invitationslinks og QR-koder, hvor afsenderen kun kender\nmodtagerens brugernavn. G\u00f8r pr\u00e6cis det samme som store(): findes der\nen afventende anmodning den anden vej, accepteres den."
                    },
                    "response": []
                },
                {
                    "name": "Send eller accept\u00e9r venneanmodning.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/friends\/:user_id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/friends\/:user_id",
                            "variable": [
                                {
                                    "id": "user_id",
                                    "key": "user_id",
                                    "value": 1,
                                    "description": "The ID of the user."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Findes der en afventende anmodning fra den anden bruger, accepteres\nden; ellers sendes en ny anmodning."
                    },
                    "response": []
                },
                {
                    "name": "Fjern ven eller anmodning.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/friends\/:user_id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/friends\/:user_id",
                            "variable": [
                                {
                                    "id": "user_id",
                                    "key": "user_id",
                                    "value": 1,
                                    "description": "The ID of the user."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Synkronis\u00e9r lokal statistik.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/stats\/sync",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/stats\/sync"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"game_id\":\"b\",\"stats\":[39]}"
                        },
                        "description": "G\u00e6steprofilens singleplayer-statistik knyttes til kontoen. Idempotent:\nt\u00e6llere er monotone, s\u00e5 der tages max af eksisterende og indsendt v\u00e6rdi\nper n\u00f8gle \u2014 et gentaget kald \u00e6ndrer intet."
                    },
                    "response": []
                },
                {
                    "name": "Hent min statistik.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/stats\/me",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/stats\/me"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "access-control-allow-origin",
                                    "value": "*"
                                }
                            ],
                            "code": 401,
                            "body": "{\"message\":\"Unauthenticated.\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "\u00c5bne offentlige rum.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/rooms",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/rooms"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "access-control-allow-origin",
                                    "value": "*"
                                }
                            ],
                            "code": 401,
                            "body": "{\"message\":\"Unauthenticated.\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Opret rum.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/rooms",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/rooms"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"game_id\":\"b\",\"seats\":3,\"rule_set\":[\"architecto\"],\"visibility\":\"public\",\"mode\":\"async\",\"turn_timer_seconds\":11,\"target_score\":67}"
                        },
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Find rum via 6-tegns kode.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/rooms\/code\/:code",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/rooms\/code\/:code",
                            "variable": [
                                {
                                    "id": "code",
                                    "key": "code",
                                    "value": "architecto",
                                    "description": "The code."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "access-control-allow-origin",
                                    "value": "*"
                                }
                            ],
                            "code": 401,
                            "body": "{\"message\":\"Unauthenticated.\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Hent rum.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/rooms\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/rooms\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "architecto",
                                    "description": "The ID of the room."
                                },
                                {
                                    "id": "room",
                                    "key": "room",
                                    "value": "01jf5g8h3k2m4n6p8r0s2t4v6x",
                                    "description": "Rummets id \u2014 en ULID-streng (26 tegn), IKKE et heltal."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "access-control-allow-origin",
                                    "value": "*"
                                }
                            ],
                            "code": 401,
                            "body": "{\"message\":\"Unauthenticated.\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Tag plads i rummet.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/rooms\/:room_id\/join",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/rooms\/:room_id\/join",
                            "variable": [
                                {
                                    "id": "room_id",
                                    "key": "room_id",
                                    "value": "architecto",
                                    "description": "The ID of the room."
                                },
                                {
                                    "id": "room",
                                    "key": "room",
                                    "value": "01jf5g8h3k2m4n6p8r0s2t4v6x",
                                    "description": "Rummets id \u2014 en ULID-streng (26 tegn), IKKE et heltal."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Forlad rummet.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/rooms\/:room_id\/leave",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/rooms\/:room_id\/leave",
                            "variable": [
                                {
                                    "id": "room_id",
                                    "key": "room_id",
                                    "value": "architecto",
                                    "description": "The ID of the room."
                                },
                                {
                                    "id": "room",
                                    "key": "room",
                                    "value": "01jf5g8h3k2m4n6p8r0s2t4v6x",
                                    "description": "Rummets id \u2014 en ULID-streng (26 tegn), IKKE et heltal."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Forlader v\u00e6rten rummet, lukkes det."
                    },
                    "response": []
                },
                {
                    "name": "S\u00e6t klar-status.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/rooms\/:room_id\/ready",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/rooms\/:room_id\/ready",
                            "variable": [
                                {
                                    "id": "room_id",
                                    "key": "room_id",
                                    "value": "architecto",
                                    "description": "The ID of the room."
                                },
                                {
                                    "id": "room",
                                    "key": "room",
                                    "value": "01jf5g8h3k2m4n6p8r0s2t4v6x",
                                    "description": "Rummets id \u2014 en ULID-streng (26 tegn), IKKE et heltal."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Spark en spiller (kun v\u00e6rt).",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/rooms\/:room_id\/kick",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/rooms\/:room_id\/kick",
                            "variable": [
                                {
                                    "id": "room_id",
                                    "key": "room_id",
                                    "value": "architecto",
                                    "description": "The ID of the room."
                                },
                                {
                                    "id": "room",
                                    "key": "room",
                                    "value": "01jf5g8h3k2m4n6p8r0s2t4v6x",
                                    "description": "Rummets id \u2014 en ULID-streng (26 tegn), IKKE et heltal."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Inviter en ven til rummet.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/rooms\/:room_id\/invite",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/rooms\/:room_id\/invite",
                            "variable": [
                                {
                                    "id": "room_id",
                                    "key": "room_id",
                                    "value": "architecto",
                                    "description": "The ID of the room."
                                },
                                {
                                    "id": "room",
                                    "key": "room",
                                    "value": "01jf5g8h3k2m4n6p8r0s2t4v6x",
                                    "description": "Rummets id \u2014 en ULID-streng (26 tegn)."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"user_id\":7}"
                        },
                        "description": "Vennen f\u00e5r et push med et deeplink til SP\u00d8RGE-sk\u00e6rmen \u2014 en\nuopfordret invitation m\u00e5 ikke s\u00e6tte nogen ved et bord uden at\nsp\u00f8rge (Kaspers \u00f8nske 2026-09-16)."
                    },
                    "response": []
                },
                {
                    "name": "Udfyld tomme pladser med AI (kun v\u00e6rt).",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/rooms\/:room_id\/fill-ai",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/rooms\/:room_id\/fill-ai",
                            "variable": [
                                {
                                    "id": "room_id",
                                    "key": "room_id",
                                    "value": "architecto",
                                    "description": "The ID of the room."
                                },
                                {
                                    "id": "room",
                                    "key": "room",
                                    "value": "01jf5g8h3k2m4n6p8r0s2t4v6x",
                                    "description": "Rummets id \u2014 en ULID-streng (26 tegn), IKKE et heltal."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"level\":2,\"seat\":2}"
                        },
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "\u00c6ndr indstillinger (kun v\u00e6rt, kun f\u00f8r start).",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/rooms\/:room_id\/settings",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/rooms\/:room_id\/settings",
                            "variable": [
                                {
                                    "id": "room_id",
                                    "key": "room_id",
                                    "value": "architecto",
                                    "description": "The ID of the room."
                                },
                                {
                                    "id": "room",
                                    "key": "room",
                                    "value": "01jf5g8h3k2m4n6p8r0s2t4v6x",
                                    "description": "Rummets id \u2014 en ULID-streng (26 tegn), IKKE et heltal."
                                }
                            ]
                        },
                        "method": "PATCH",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"rule_set\":[\"architecto\"],\"mode\":\"realtime\",\"turn_timer_seconds\":11,\"target_score\":67}"
                        },
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Start matchen (kun v\u00e6rt).",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/rooms\/:room_id\/start",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/rooms\/:room_id\/start",
                            "variable": [
                                {
                                    "id": "room_id",
                                    "key": "room_id",
                                    "value": "architecto",
                                    "description": "The ID of the room."
                                },
                                {
                                    "id": "room",
                                    "key": "room",
                                    "value": "01jf5g8h3k2m4n6p8r0s2t4v6x",
                                    "description": "Rummets id \u2014 en ULID-streng (26 tegn), IKKE et heltal."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Kr\u00e6ver at alle pladser er fyldt (menneske eller AI), og at alle andre\nspillere er klar."
                    },
                    "response": []
                },
                {
                    "name": "Hent min PlayerView (resync).",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/matches\/:match_id\/view",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/matches\/:match_id\/view",
                            "variable": [
                                {
                                    "id": "match_id",
                                    "key": "match_id",
                                    "value": "architecto",
                                    "description": "The ID of the match."
                                },
                                {
                                    "id": "match",
                                    "key": "match",
                                    "value": "01jf5g8h3k2m4n6p8r0s2t4v6x",
                                    "description": "Matchens id \u2014 en ULID-streng (26 tegn), IKKE et heltal."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Returnerer spillerens egen visning, seneste seq og alle events for\nspillerens plads efter `after_seq`. Bruges efter genforbindelse."
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "access-control-allow-origin",
                                    "value": "*"
                                }
                            ],
                            "code": 401,
                            "body": "{\"message\":\"Unauthenticated.\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Send en handling.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/matches\/:match_id\/actions",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/matches\/:match_id\/actions",
                            "variable": [
                                {
                                    "id": "match_id",
                                    "key": "match_id",
                                    "value": "architecto",
                                    "description": "The ID of the match."
                                },
                                {
                                    "id": "match",
                                    "key": "match",
                                    "value": "01jf5g8h3k2m4n6p8r0s2t4v6x",
                                    "description": "Matchens id \u2014 en ULID-streng (26 tegn), IKKE et heltal."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"action_id\":\"6ff8f7f6-1eb3-3525-be4a-3932c805afed\",\"seat\":84,\"payload\":[]}"
                        },
                        "description": "Idempotent via klient-genereret `action_id`: en gentaget request\nudf\u00f8res ikke to gange."
                    },
                    "response": []
                },
                {
                    "name": "Hent replay (efter afslutning).",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/matches\/:match_id\/replay",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/matches\/:match_id\/replay",
                            "variable": [
                                {
                                    "id": "match_id",
                                    "key": "match_id",
                                    "value": "architecto",
                                    "description": "The ID of the match."
                                },
                                {
                                    "id": "match",
                                    "key": "match",
                                    "value": "01jf5g8h3k2m4n6p8r0s2t4v6x",
                                    "description": "Matchens id \u2014 en ULID-streng (26 tegn), IKKE et heltal."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Kun offentlige events \u2014 private h\u00e6nder afsl\u00f8res ikke."
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "access-control-allow-origin",
                                    "value": "*"
                                }
                            ],
                            "code": 401,
                            "body": "{\"message\":\"Unauthenticated.\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Stil dig i k\u00f8.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/matchmaking",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/matchmaking"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"game_id\":\"b\",\"seats\":3}"
                        },
                        "description": "Matcher spillere i samme spil og pladstal efter rating; b\u00e5ndet\nudvides med ventetiden. K\u00f8en udl\u00f8ber efter 120 sekunder."
                    },
                    "response": []
                },
                {
                    "name": "Forlad k\u00f8en.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/matchmaking",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/matchmaking"
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "K\u00f8-status (polling-fallback).",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/matchmaking",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/matchmaking"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Returnerer den seneste billet \u2014 status `matched` indeholder\n`match_id`, som klienten skal navigere til."
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "access-control-allow-origin",
                                    "value": "*"
                                }
                            ],
                            "code": 401,
                            "body": "{\"message\":\"Unauthenticated.\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Leaderboard for et spil.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/leaderboards\/:game",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/leaderboards\/:game",
                            "variable": [
                                {
                                    "id": "game",
                                    "key": "game",
                                    "value": "architecto",
                                    "description": ""
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Top-50 efter rating (\u00e5ben s\u00e6son) plus din egen placering. Cachet i\n60 sekunder.\n\nEn spiller, der har sl\u00e5et \"vis mig p\u00e5 leaderboardet\" fra, er ude af\nlisten, og placeringerne rykker sammen om hullet. Hun har heller\ningen placering selv: `me.rank` er null, mens rating og antal spil\nstadig kommer med (Kasper 2026-09-22: \"hidden player er ikke p\u00e5\nrank overhovedet\")."
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "access-control-allow-origin",
                                    "value": "*"
                                }
                            ],
                            "code": 401,
                            "body": "{\"message\":\"Unauthenticated.\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Rapport\u00e9r en spiller.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/reports",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/reports"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"user_id\":12,\"seat\":2,\"match_id\":\"architecto\",\"reason\":\"Skrev grimme ting i chatten\",\"comment\":\"z\"}"
                        },
                        "description": "Send `reason` med spillerens egne ord (3-1000 tegn) \u2014 de faste\nkategorier er v\u00e6k. `comment` tages stadig imod for \u00e6ldre builds.\n\nIndberetninger behandles i administrationen."
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Juridisk og hj\u00e6lp",
            "description": "",
            "item": [
                {
                    "name": "Hent privatlivspolitik eller vilk\u00e5r.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/legal\/:document",
                            "query": [
                                {
                                    "key": "locale",
                                    "value": "da",
                                    "description": "da eller en. Standard er appens sprog fra Accept-Language.",
                                    "disabled": false
                                },
                                {
                                    "key": "game",
                                    "value": "agurk",
                                    "description": "Spillets slug, hvis User-Agent ikke siger det.",
                                    "disabled": false
                                }
                            ],
                            "raw": "{{baseUrl}}\/api\/v1\/legal\/:document?locale=da&game=agurk",
                            "variable": [
                                {
                                    "id": "document",
                                    "key": "document",
                                    "value": "privacy",
                                    "description": "privacy eller terms."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Teksten kommer som HTML uden ramme: overskrifter, afsnit, lister og\ntabeller. Appen bestemmer selv typografien.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "x-ratelimit-limit",
                                    "value": "60"
                                },
                                {
                                    "key": "x-ratelimit-remaining",
                                    "value": "51"
                                },
                                {
                                    "key": "access-control-allow-origin",
                                    "value": "*"
                                }
                            ],
                            "code": 200,
                            "body": "{\"data\":{\"document\":\"privacy\",\"title\":\"Privatlivspolitik\",\"locale\":\"da\",\"updated_at\":\"2026-09-15\",\"url\":\"http:\\\/\\\/korthus.app\\\/privacy\\\/agurk\\\/da\",\"html\":\"<h1>Privatlivspolitik<\\\/h1>\\n    <p class=\\\"updated\\\">Senest opdateret 15. september 2026<\\\/p>\\n\\n    <p>\\n        Denne politik beskriver, hvordan Focusweb behandler personoplysninger i\\n        vores kortspils-app <strong>Agurk<\\\/strong> og den tilh\\u00f8rende\\n        onlinetjeneste. Vi er dataansvarlige for behandlingen.\\n    <\\\/p>\\n\\n    <h2>Kort fortalt<\\\/h2>\\n    <ul>\\n        <li>Du kan spille mod computeren <strong>uden<\\\/strong> at oprette en konto. S\\u00e5 forlader intet din telefon.<\\\/li>\\n        <li>Konto kr\\u00e6ves kun for at spille online mod andre.<\\\/li>\\n        <li>Vi s\\u00e6lger ikke dine oplysninger og bruger dem ikke til annoncering eller profilering.<\\\/li>\\n        <li>Du kan n\\u00e5r som helst slette din konto i appen.<\\\/li>\\n    <\\\/ul>\\n\\n    <h2>Hvilke oplysninger behandler vi?<\\\/h2>\\n\\n    <table>\\n        <tr>\\n            <th>Kontooplysninger<\\\/th>\\n            <td>Brugernavn, visningsnavn, valgt avatar, sprog og, hvis du oplyser den, e-mailadresse.\\n                Adgangskoder gemmes altid krypteret (hashet) og kan ikke l\\u00e6ses af os.<\\\/td>\\n        <\\\/tr>\\n        <tr>\\n            <th>Social login<\\\/th>\\n            <td>Logger du ind med Apple eller Facebook, modtager vi et bruger-id fra udbyderen samt\\n                navn og e-mail, hvis du deler dem. V\\u00e6lger du Apples \\\"skjul min e-mail\\\", ser vi kun\\n                den anonyme videresendelsesadresse.<\\\/td>\\n        <\\\/tr>\\n        <tr>\\n            <th>Enheder<\\\/th>\\n            <td>Platform (iOS\\\/Android), enhedsnavn, appversion, tidspunkt for seneste aktivitet og, hvis du tillader\\n                notifikationer, et push-token.<\\\/td>\\n        <\\\/tr>\\n        <tr>\\n            <th>Spildata<\\\/th>\\n            <td>Rum, spillede kort, handlinger, resultater, point, rating og statistik. Vi gemmer et\\n                fuldt h\\u00e6ndelseslog per parti, s\\u00e5 spil kan genoptages, genafspilles og fejls\\u00f8ges, og\\n                s\\u00e5 snyd kan unders\\u00f8ges.<\\\/td>\\n        <\\\/tr>\\n        <tr>\\n            <th>Venner og indberetninger<\\\/th>\\n            <td>Venneanmodninger og blokeringer. Indberetter du en spiller, gemmer vi din\\n                indberetning, den ber\\u00f8rte konto og din eventuelle kommentar.<\\\/td>\\n        <\\\/tr>\\n        <tr>\\n            <th>Teknisk data<\\\/th>\\n            <td>Fejlrapporter og serverlogfiler (bl.a. IP-adresse og tidspunkt) i forbindelse med\\n                drift og fejlretning.<\\\/td>\\n        <\\\/tr>\\n    <\\\/table>\\n\\n    <p>\\n        Vi indsamler <strong>ikke<\\\/strong> placeringsdata, kontakter, billeder eller reklame-id'er,\\n        og vi bruger ikke sporingsteknologi p\\u00e5 tv\\u00e6rs af apps eller websteder.\\n    <\\\/p>\\n\\n    <h2>Hvorfor behandler vi dem?<\\\/h2>\\n    <ul>\\n        <li><strong>For at levere spillet<\\\/strong> (opfyldelse af aftale): konto, login, onlinepartier, venner, rating og statistik.<\\\/li>\\n        <li><strong>For at holde spillet fair og trygt<\\\/strong> (legitim interesse): h\\u00e6ndelseslog mod snyd, indberetninger, filter mod st\\u00f8dende navne.<\\\/li>\\n        <li><strong>For at drifte og forbedre tjenesten<\\\/strong> (legitim interesse): fejlrapporter og driftslogfiler.<\\\/li>\\n        <li><strong>Notifikationer<\\\/strong> (samtykke): \\\"det er din tur\\\" og \\\"match fundet\\\" sendes kun, hvis du har accepteret notifikationer. Du kan altid sl\\u00e5 dem fra igen i enhedens indstillinger.<\\\/li>\\n    <\\\/ul>\\n\\n    <h2>Hvem deler vi med?<\\\/h2>\\n    <p>Vi videregiver ikke oplysninger til andre end de databehandlere, der er n\\u00f8dvendige for at drive tjenesten:<\\\/p>\\n    <ul>\\n        <li><strong>Vores hostingleverand\\u00f8r<\\\/strong> (servere og database i EU).<\\\/li>\\n        <li><strong>Google (Firebase Cloud Messaging)<\\\/strong>: udelukkende push-tokenet og selve notifikationen, n\\u00e5r du har accepteret notifikationer.<\\\/li>\\n        <li><strong>Sentry<\\\/strong>: fejlrapporter, n\\u00e5r noget g\\u00e5r galt i appen eller p\\u00e5 serveren.<\\\/li>\\n        <li><strong>Apple og Facebook<\\\/strong>: kun hvis du selv v\\u00e6lger at logge ind med dem.<\\\/li>\\n    <\\\/ul>\\n    <p>Andre spillere kan se dit visningsnavn, din avatar, dit spil i partiet og din placering p\\u00e5 ranglisten. De ser aldrig din e-mail eller dine kort p\\u00e5 h\\u00e5nden.<\\\/p>\\n\\n    <h2>Hvor l\\u00e6nge gemmer vi data?<\\\/h2>\\n    <ul>\\n        <li><strong>Konto og spildata:<\\\/strong> s\\u00e5 l\\u00e6nge din konto findes.<\\\/li>\\n        <li><strong>Efter sletning:<\\\/strong> kontoen anonymiseres straks og fjernes endeligt senest <strong>30 dage<\\\/strong> efter. Afsluttede partier kan best\\u00e5 i anonymiseret form, s\\u00e5 modspillernes historik og rangliste fortsat giver mening.<\\\/li>\\n        <li><strong>Fejlrapporter og logfiler:<\\\/strong> slettes l\\u00f8bende og typisk inden for 90 dage.<\\\/li>\\n    <\\\/ul>\\n\\n    <h2>Dine rettigheder<\\\/h2>\\n    <p>\\n        Du har ret til indsigt i, berigtigelse af og sletning af dine oplysninger, til at begr\\u00e6nse\\n        eller g\\u00f8re indsigelse mod behandlingen og til dataportabilitet.\\n    <\\\/p>\\n    <ul>\\n        <li><strong>Slet din konto<\\\/strong> direkte i appen under din profil. Det sletter alt som beskrevet ovenfor.<\\\/li>\\n        <li><strong>Indsigt eller kopi af dine data<\\\/strong>: skriv til <a href=\\\"mailto:kasper@focusweb.dk\\\">kasper@focusweb.dk<\\\/a>.<\\\/li>\\n        <li>Har du logget ind med Facebook, kan du ogs\\u00e5 bede om sletning via Facebooks indstillinger; vi modtager anmodningen automatisk.<\\\/li>\\n    <\\\/ul>\\n    <p>\\n        Du kan klage til <a href=\\\"https:\\\/\\\/www.datatilsynet.dk\\\" rel=\\\"noreferrer\\\">Datatilsynet<\\\/a>,\\n        hvis du mener, vi behandler dine oplysninger forkert.\\n    <\\\/p>\\n\\n    <h2>B\\u00f8rn<\\\/h2>\\n    <p>\\n        Tjenesten henvender sig ikke til b\\u00f8rn under 13 \\u00e5r, og vi indsamler ikke bevidst oplysninger\\n        om dem. Bliver vi opm\\u00e6rksomme p\\u00e5 en s\\u00e5dan konto, sletter vi den.\\n    <\\\/p>\\n\\n    <h2>Sikkerhed<\\\/h2>\\n    <p>\\n        Al trafik mellem app og server er krypteret (HTTPS). Adgangskoder hashes, og tokens fra\\n        Apple og Facebook gemmes krypteret. Adgang til administrationen kr\\u00e6ver to-faktor-godkendelse.\\n    <\\\/p>\\n\\n    <h2>\\u00c6ndringer<\\\/h2>\\n    <p>\\n        Vi opdaterer politikken, n\\u00e5r tjenesten \\u00e6ndrer sig. V\\u00e6sentlige \\u00e6ndringer varsles i appen.\\n        Datoen \\u00f8verst viser, hvorn\\u00e5r politikken sidst blev \\u00e6ndret.\\n    <\\\/p>\\n\\n    <h2>Kontakt<\\\/h2>\\n    <p>\\n        Focusweb, <a href=\\\"mailto:kasper@focusweb.dk\\\">kasper@focusweb.dk<\\\/a>\\n    <\\\/p>\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Hent ofte stillede sp\u00f8rgsm\u00e5l.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/faq",
                            "query": [
                                {
                                    "key": "locale",
                                    "value": "da",
                                    "description": "da eller en.",
                                    "disabled": false
                                },
                                {
                                    "key": "game",
                                    "value": "agurk",
                                    "description": "Spillets slug, hvis User-Agent ikke siger det.",
                                    "disabled": false
                                }
                            ],
                            "raw": "{{baseUrl}}\/api\/v1\/faq?locale=da&game=agurk"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Spillets egne sp\u00f8rgsm\u00e5l plus de f\u00e6lles, i den r\u00e6kkef\u00f8lge de vises,\nog kun dem der er skrevet p\u00e5 det valgte sprog.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "x-ratelimit-limit",
                                    "value": "60"
                                },
                                {
                                    "key": "x-ratelimit-remaining",
                                    "value": "50"
                                },
                                {
                                    "key": "access-control-allow-origin",
                                    "value": "*"
                                }
                            ],
                            "code": 200,
                            "body": "{\"data\":[{\"id\":1,\"question\":\"Skal jeg oprette en konto for at spille?\",\"answer\":\"Nej. Du kan spille mod computeren uden konto, det virker ogs\\u00e5 uden internet.\\n\\nEn konto er kun n\\u00f8dvendig, hvis du vil spille online mod andre.\",\"shared\":true},{\"id\":2,\"question\":\"Hvordan spiller jeg mod en ven?\",\"answer\":\"Opret et rum under \\\"Spil online\\\" og del den 6-tegns kode, appen viser. Din ven v\\u00e6lger \\\"Deltag\\\" og indtaster koden.\\n\\nMangler I spillere, kan v\\u00e6rten fylde de tomme pladser med computerspillere.\",\"shared\":true},{\"id\":3,\"question\":\"Hvad sker der, hvis jeg mister forbindelsen midt i et spil?\",\"answer\":\"Kom tilbage i appen, s\\u00e5 genoptager du spillet, hvor det var, serveren gemmer hele partiet.\\n\\nN\\u00e5r det er din tur, har du en tidsgr\\u00e6nse. Overskrides den to gange i tr\\u00e6k, overtager computeren din plads, s\\u00e5 de andre kan spille videre. Du f\\u00e5r pladsen tilbage, s\\u00e5 snart du selv spiller et kort igen.\",\"shared\":true},{\"id\":4,\"question\":\"Hvorfor f\\u00e5r jeg ikke notifikationer?\",\"answer\":\"Notifikationer kr\\u00e6ver, at du har givet appen lov. Tjek din enheds indstillinger under appens navn.\\n\\nDe sendes kun, n\\u00e5r appen ikke er \\u00e5ben, er du i gang med spillet, ser du turen direkte p\\u00e5 sk\\u00e6rmen.\",\"shared\":true},{\"id\":5,\"question\":\"Hvordan \\u00e6ndrer jeg mit navn eller min avatar?\",\"answer\":\"\\u00c5bn din profil i appen. Visningsnavnet er det, andre spillere ser, det skal v\\u00e6re p\\u00e6nt og m\\u00e5 ikke v\\u00e6re st\\u00f8dende.\",\"shared\":true},{\"id\":6,\"question\":\"Hvordan sletter jeg min konto?\",\"answer\":\"Du sletter din konto i appen under din profil. Vi anonymiserer den straks og fjerner den endeligt senest 30 dage efter.\\n\\nAfsluttede partier kan best\\u00e5 i anonym form, s\\u00e5 modspillernes historik stadig giver mening.\",\"shared\":true},{\"id\":7,\"question\":\"En spiller opf\\u00f8rer sig d\\u00e5rligt, hvad g\\u00f8r jeg?\",\"answer\":\"Brug indberetningsfunktionen i appen. Vi gennemg\\u00e5r alle indberetninger manuelt og kan kr\\u00e6ve navneskift, suspendere eller lukke konti.\",\"shared\":true},{\"id\":8,\"question\":\"Koster spillet noget?\",\"answer\":\"Nej. Spillet er gratis, og der er hverken k\\u00f8b i appen, abonnementer eller reklamer.\",\"shared\":true}],\"meta\":{\"locale\":\"da\",\"support_url\":\"http:\\\/\\\/korthus.app\\\/support\\\/agurk\\\/da\"}}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Send en henvendelse til support.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/support-requests",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/support-requests"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"name\":\"b\",\"email\":\"zbailey@example.net\",\"subject\":\"i\",\"message\":\"y\",\"locale\":\"da\"}"
                        },
                        "description": "Kr\u00e6ver ikke login: en spiller, der ikke kan komme ind, er netop en\naf dem, der skal kunne skrive. Er der et token med, knyttes\nhenvendelsen til kontoen.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 201,
                            "body": "{\"data\": {\"reference\": \"S00042\"}}",
                            "name": ""
                        }
                    ]
                }
            ]
        }
    ],
    "auth": {
        "type": "bearer",
        "bearer": [
            {
                "key": "Authorization",
                "type": "string"
            }
        ]
    }
}