# Habbo Hotel API
> Live player profiles from Habbo, the long-running virtual-world social platform, served straight from Habbo's official public API — no key, nothing cached. Habbo has been one of the largest teen virtual worlds for two decades, built around avatars, badges, groups and player-built rooms. The user endpoint returns a player's public profile: their avatar figure, motto, online status, member-since and last-online dates, level and total experience, and their hand-picked showcase badges — for example Puhekupla, a member since 2009. The profile endpoint returns the full social graph the player has made public: their groups, their player-built rooms, and their friend and badge counts. The badges endpoint returns every badge the player has earned with its code, name and description — dedicated collectors rack up hundreds. The avatar endpoint turns a player's figure string into ready-to-use avatar image URLs at several sizes and angles, straight from Habbo's imaging service. Every hotel is supported — the international .com plus the Brazilian, German, Spanish, Finnish, French, Italian, Dutch and Turkish hotels. Everything is live from Habbo, nothing stored. This is the Habbo social layer for any fan site, badge tracker, community tool or bot. Distinct from mainstream social-network APIs — this is the Habbo virtual world: avatars, badges, groups and rooms. 5 endpoints, no key on our side.

## Authentication
All requests require your oanor API key in the `x-oanor-key` header. Get one at https://www.oanor.com/developer/keys.

```bash
curl -H "x-oanor-key: oanor_live_…" "https://api.oanor.com/habbo-api/..."
```

## Pricing
- **Free** (Free) — 2,000 calls/Mo, 3 req/s
- **Starter** ($8/Mo) — 40,000 calls/Mo, 8 req/s
- **Pro** ($21/Mo) — 220,000 calls/Mo, 20 req/s
- **Mega** ($49/Mo) — 1,200,000 calls/Mo, 50 req/s

## Endpoints

### Habbo

#### `GET /v1/avatar` — Avatar image URLs

**Parameters:**
- `name` (query, required, string) — Player name Example: `Puhekupla`
- `hotel` (query, optional, string) — Hotel code (default com) Example: `com`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/habbo-api/v1/avatar?name=Puhekupla&hotel=com"
```

**Response:**
```json
{
    "data": {
        "name": "Puhekupla",
        "avatar": {
            "full": "https://www.habbo.com/habbo-imaging/avatarimage?figure=hr-125-31.hd-180-1.ch-210-1320.lg-275-90.sh-908-68.ha-1003-66&size=l&direction=2&head_direction=2&action=std",
            "small": "https://www.habbo.com/habbo-imaging/avatarimage?figure=hr-125-31.hd-180-1.ch-210-1320.lg-275-90.sh-908-68.ha-1003-66&size=s&direction=2&head_direction=2",
            "headshot": "https://www.habbo.com/habbo-imaging/avatarimage?figure=hr-125-31.hd-180-1.ch-210-1320.lg-275-90.sh-908-68.ha-1003-66&size=l&headonly=1&direction=2&head_direction=3"
        },
        "figure": "hr-125-31.hd-180-1.ch-210-1320.lg-275-90.sh-908-68.ha-1003-66",
        "source": "Habbo"
    },
    "meta": {
        "timestamp": "2026-06-09T11:38:26.640Z",
        "request_id": "61adf111-5dab-443a-b31a-ec201bb87e7f"
    },
    "status": "ok",
    "message": "Avatar retrieved successfully",
    "success": true
}
```

#### `GET /v1/badges` — Every badge a player has earned

**Parameters:**
- `name` (query, required, string) — Player name Example: `Puhekupla`
- `hotel` (query, optional, string) — Hotel code (default com) Example: `com`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/habbo-api/v1/badges?name=Puhekupla&hotel=com"
```

**Response:**
```json
{
    "data": {
        "name": "Puhekupla",
        "badges": [
            {
                "code": "ACH_RegistrationDuration20",
                "name": "100 % True Habbo XX",
                "description": "For being a member of the community for 1825 days."
            },
            {
                "code": "AQR01",
                "name": "Aquarium 1",
                "description": "1 of 4"
            },
            {
                "code": "AQR02",
                "name": "Aquarium 2",
                "description": "2 of 4"
            },
            {
                "code": "ACH_TagB20",
                "name": "Blades of glory XX",
                "description": "For getting tagged 1284 times while ice skating."
            },
            {
                "code": "ACH_RoomDecoBC8",
                "name": "Builders Club designer VIII",
                "description": "For placing 250 Builders Club furni."
            },
            {
                "code": "COW01",
                "name": "Cowboyween",
                "description": "Trick or Treat?"
            },
            {
                "code": "ACH_GuideFeedbackGiver1",
                "name": "Feedback provider",
                "description": "For giving feedback to helpers 2 times."
            },
            {
                "code": "MRG00",
                "name": "Friendship Bracelet",
                "description": "A stranger is a friend you have yet to meet!"
            },
            {
 
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/profile` — A player's public social graph

**Parameters:**
- `name` (query, required, string) — Player name Example: `Puhekupla`
- `hotel` (query, optional, string) — Hotel code (default com) Example: `com`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/habbo-api/v1/profile?name=Puhekupla&hotel=com"
```

**Response:**
```json
{
    "data": {
        "id": "hhus-fcfff510c4c2cc81790d725126111dbe",
        "name": "Puhekupla",
        "level": 9,
        "motto": ":)",
        "rooms": [
            {
                "id": 30158447,
                "name": "asdf",
                "tags": [],
                "rating": 14,
                "description": null,
                "max_visitors": 25
            },
            {
                "id": 74935991,
                "name": "[]jbhn",
                "tags": [],
                "rating": 1,
                "description": "",
                "max_visitors": 10
            }
        ],
        "avatar": {
            "full": "https://www.habbo.com/habbo-imaging/avatarimage?figure=hr-125-31.hd-180-1.ch-210-1320.lg-275-90.sh-908-68.ha-1003-66&size=l&direction=2&head_direction=2&action=std",
            "small": "https://www.habbo.com/habbo-imaging/avatarimage?figure=hr-125-31.hd-180-1.ch-210-1320.lg-275-90.sh-908-68.ha-1003-66&size=s&direction=2&head_direction=2",
            "headshot": "https://www.habbo.com/habbo-imaging/avatarimage?figure=hr-125-31.hd-180-1.ch-210-1320.lg-275-90.sh-908-68.ha-1003-66&size=l&headonly=1&direction=2&head_direction=3"
        },
        "figure": "hr-125-31.hd-180-1.ch-210-1320.lg-275-90.sh-908-68.ha-1003-66",
        "groups": [],
        "online": false,
        "source": "Habbo",
        "star_gems": 0,
        "room_count": 2,
        "badge_count": 36,
        "group_count": 0,
        "last_online": "2017-11-08T23:2
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/user` — A player's public profile

**Parameters:**
- `name` (query, required, string) — Player name Example: `Puhekupla`
- `hotel` (query, optional, string) — Hotel: com, br, de, es, fi, fr, it, nl, tr (default com) Example: `com`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/habbo-api/v1/user?name=Puhekupla&hotel=com"
```

**Response:**
```json
{
    "data": {
        "id": "hhus-fcfff510c4c2cc81790d725126111dbe",
        "name": "Puhekupla",
        "level": 9,
        "motto": ":)",
        "avatar": {
            "full": "https://www.habbo.com/habbo-imaging/avatarimage?figure=hr-125-31.hd-180-1.ch-210-1320.lg-275-90.sh-908-68.ha-1003-66&size=l&direction=2&head_direction=2&action=std",
            "small": "https://www.habbo.com/habbo-imaging/avatarimage?figure=hr-125-31.hd-180-1.ch-210-1320.lg-275-90.sh-908-68.ha-1003-66&size=s&direction=2&head_direction=2",
            "headshot": "https://www.habbo.com/habbo-imaging/avatarimage?figure=hr-125-31.hd-180-1.ch-210-1320.lg-275-90.sh-908-68.ha-1003-66&size=l&headonly=1&direction=2&head_direction=3"
        },
        "figure": "hr-125-31.hd-180-1.ch-210-1320.lg-275-90.sh-908-68.ha-1003-66",
        "online": false,
        "source": "Habbo",
        "star_gems": 0,
        "last_online": "2017-11-08T23:22:09.000+0000",
        "member_since": "2009-08-21T23:22:47.000+0000",
        "level_percent": 4,
        "profile_visible": true,
        "selected_badges": [
            {
                "code": "UK190",
                "name": "Puhekupla Event winner",
                "description": "Champion chocolate snatcher"
            },
            {
                "code": "COW01",
                "name": "Cowboyween",
                "description": "Trick or Treat?"
            }
        ],
        "total_experience": 141
    },
    "meta": {
        "timestamp": "2026-
…(truncated, see openapi.json for full schema)
```

### Meta

#### `GET /v1/meta` — Spec

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/habbo-api/v1/meta"
```

**Response:**
```json
{
    "data": {
        "hotels": [
            "com",
            "us",
            "br",
            "de",
            "es",
            "fi",
            "fr",
            "it",
            "nl",
            "tr"
        ],
        "source": "Habbo public API (live)",
        "service": "habbo-api",
        "endpoints": {
            "GET /v1/meta": "This document.",
            "GET /v1/user": "A player's public profile (name=Puhekupla, hotel=com): motto, level, online, showcase badges.",
            "GET /v1/avatar": "Avatar image URLs at several sizes from a player's figure (name=, hotel=).",
            "GET /v1/badges": "Every badge a player has earned (name=, hotel=): code, name, description.",
            "GET /v1/profile": "A player's public social graph (name=, hotel=): groups, rooms, friend & badge counts."
        },
        "description": "Live player profiles from Habbo Hotel, the long-running virtual-world social platform, from Habbo's official public API: a player's public profile (avatar figure, motto, online status, member-since and last-online, level, experience, showcase badges); their public social graph (groups, player-built rooms, friend and badge counts); every badge they have earned with code, name and description; and ready-to-use avatar image URLs at several sizes built from their figure string. Every hotel supported (com, br, de, es, fi, fr, it, nl, tr). Live, no key, nothing stored. Distinct from mainstream social-network APIs — this is the Ha
…(truncated, see openapi.json for full schema)
```


---
Marketplace page: https://www.oanor.com/api/habbo-api
OpenAPI spec: https://www.oanor.com/api/habbo-api/openapi.json
