Integrer med Skyskraber via vores REST API. Hent brugerdata, toplister, markedsplads-opslag og meget mere.
Registrer din applikation i din Skyskraber-profil under "Developer" for at få et client_id og client_secret.
Brug OAuth 2.0 authorization code flow med PKCE til at få adgang på vegne af brugere.
Send requests til vores REST API med din access token i Authorization-headeren.
Skyskraber understøtter to autentificeringsmetoder:
Brug Authorization: Basic base64(client_id:client_secret) til at tilgå statistik, marketplace og rum direkte — ingen bruger-login krævet.
Brug Authorization Code flow med PKCE for at tilgå brugerdata på vegne af en bruger. Se flow nedenfor.
GET /api/oauth/authorize
?client_id=DIN_CLIENT_ID
&redirect_uri=DIN_URI
&response_type=code
&scope=user:profile:read
&state=TILFAELDIG_STRENG
&code_challenge=BASE64URL_SHA256_HASH
&code_challenge_method=S256Generér en code_verifier (43-128 tegn), hash den med SHA-256 og base64url-encod resultatet som code_challenge.
Send som JSON body (Content-Type: application/json):
// Authorization code exchange
{
"grant_type": "authorization_code",
"code": "AUTH_CODE_FRA_REDIRECT",
"redirect_uri": "DIN_URI",
"client_id": "DIN_CLIENT_ID",
"client_secret": "DIN_CLIENT_SECRET",
"code_verifier": "DIN_ORIGINALE_CODE_VERIFIER"
}
// Refresh token
{
"grant_type": "refresh_token",
"refresh_token": "DIN_REFRESH_TOKEN",
"client_id": "DIN_CLIENT_ID",
"client_secret": "DIN_CLIENT_SECRET"
}/api/oauth/userinfoHent profil for den autoriserede bruger (kræver Bearer token)/api/oauth/revokeTilbagekald en access eller refresh token (JSON: { "token": "...", "token_type_hint": "access_token" })OAuth Bearer — kræver bruger-login via authorize flow:
user:profile:readLæs basisprofil (brugernavn, level, avatar, online-status)Basic Auth — app-niveau, ingen bruger-login krævet:
marketplace:readLæs markedspriser og salgshistorikstatistics:readLæs serverstatistik, toplister og katalogrooms:readLæs ruminformationapp:users:readSe brugere tilknyttet din applikation og tilgå deres profilerBase URL: https://www.skyskraber.dk/api/v1
Alle responses returneres som JSON i en envelope med data og meta.timestamp. Paginerede endpoints inkluderer pagination. Inkluder din access token: Authorization: Bearer DIN_TOKEN
Ved fejl returneres: { error: { code: string, message: string } }
Rate limit: 60 requests/minut per applikation. Ved overskridelse returneres 429 med { error: { code: "rate_limit_exceeded", message: "..." } } og header Retry-After (sekunder).
Avatarer, ting, tøj og rum er bygget op af lagdelte billeder. API'et returnerer rå asset-data (lag, offsets, skin tone m.m.) — du renderer selv client-side. Se starter kit'et for en komplet canvas-rendering implementering.
Hvert asset-lag returneres som et objekt med disse felter:
imageUrl/api/files/{uuid}URL til billedfilenlayerType"foreground" | "background"foreground = bag avatar-kroppen, background = foran avatar-kroppenoffsetX / offsetYnumberPosition: drawX = avatarX - offsetX, drawY = avatarY - offsetYframes / frameDurationnumberSprite sheet: horisontal strip, hver frame = totalWidth / frames bredscalestringSkala-multiplikator for billedetsortOrdernumberRækkefølge indenfor lag-gruppen (lavere først)needsSkinTonebooleanOm billedet skal farves med brugerens hudtoneLag med layerType "foreground" tegnes først (bag kroppen). Sortér efter sortOrder, derefter wearable order.
Tegn base avatar-billedet (/avatars/{sex}/happy.png). Påfør hudtone hvis skinTone ≠ 0.5.
Lag med layerType "background" tegnes sidst (foran kroppen). Samme sortering.
Lag med needsSkinTone: true skal farves med brugerens hudtone-værdi (0–1, standard 0.5). Algoritmen bruger HSL-baseret recoloring — se kildekoden for den præcise implementering. Billeder hvor needsSkinTone er false tegnes som de er.
Fork vores starter kit og hav en fungerende fællesskabs-app på få minutter. Det demonstrerer alle API-endpoints med OAuth, avatar-rendering, katalog-browser, rum-browser, statistik og markedspris-detaljer.
Fuld authorization code flow med S256
Canvas-baseret med hudtone og lag-komposition
Virtualiseret liste med filtre og markedspriser
Kortvisning med søgning og paginering
Online-tæller, totaler og toplister
Systembaseret tema med skift
# 1. Fork og klon
gh repo fork miccidk/skyskraber-starter-kit --clone
cd skyskraber-starter-kit
# 2. Installér
bun install
# 3. Konfigurér
cp .env.example .env
# Udfyld VITE_CLIENT_ID og VITE_CLIENT_SECRET
# 4. Start
bun run dev| Niveau | Grænse |
|---|---|
| Alle apps | 60 requests/minut |
Ved overskridelse returnerer API'et 429 Too Many Requests med en Retry-After header. Verificerede apps kan få forhøjede grænser i fremtiden.
Alle fejl returneres som JSON med et error-felt. HTTP-statuskoden indikerer fejltypen:
400Bad RequestUgyldigt request eller manglende felter401UnauthorizedUgyldig eller udløbet access token403ForbiddenManglende scope eller ingen adgang til ressourcen404Not FoundRessourcen blev ikke fundet429Too Many RequestsRate limit overskredet — se Retry-After header500Internal Server ErrorUventet serverfejl — prøv igen senereVed at oprette en applikation og benytte Skyskraber API accepterer du følgende betingelser. Overtrædelse kan medføre øjeblikkelig suspension af din applikation og API-adgang.
API-adgang gives udelukkende til fællesskabs-apps og ikke-kommercielle projekter relateret til Skyskraber. Din applikation skal tydeligt fremstå som et community-projekt og må ikke give indtryk af at være et officielt Skyskraber-produkt.
Alt indhold tilgængeligt via API'et — herunder brugerdata, billeder, avatarer, tøj, ting, rum-assets og statistik — er ophavsretligt beskyttet og tilhører Skyskraber. Du må ikke:
Du er ansvarlig for at beskytte brugerdata i overensstemmelse med GDPR og dansk lovgivning. Brugerdata må kun bruges til det formål brugeren har givet samtykke til via OAuth-godkendelsen. Du må ikke dele brugerdata med tredjeparter.
Overhold de fastsatte hastighedsgrænser. Undlad at overbelaste API'et med unødvendige forespørgsler. Implementer caching hvor det er muligt. Misbrug af API-ressourcer kan medføre begrænsning eller suspension.
Din applikation skal tydeligt angive at data stammer fra Skyskraber, f.eks. med teksten "Data fra Skyskraber" eller Skyskrabers logo med link til skyskraber.dk.
Skyskraber forbeholder sig retten til at ændre, begrænse eller opsige API-adgang til enhver tid og uden varsel. Vi kan opdatere disse betingelser — fortsat brug af API'et udgør accept af opdaterede betingelser.
Disse betingelser supplerer Skyskrabers generelle servicevilkår. Ved uoverensstemmelse gælder de mest restriktive betingelser.
Opret din første app i dag og bliv en del af Skyskraber-økosystemet. Se også eksisterende fællesskabet.
En 2D-chatverden med sjov, aktivitet og fællesskab.