Skip to main content
GET
/
v1
/
portal
/
chats
curl https://portal-api.7331.org/v1/portal/chats \
  -b "psession=YOUR_SESSION"
[
  {
    "id": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6",
    "chat_type": "group",
    "name": "general",
    "owner": { "id": 42, "username": "cool_fox_123", "avatar_url": null },
    "visibility": "official",
    "label": null,
    "slug": "general",
    "description": "The main chat.",
    "avatar_url": null,
    "secrets": [],
    "archived": false
  },
  {
    "id": "f6e5d4c3b2a1f0e9d8c7b6a5f4e3d2c1",
    "chat_type": "secret_chat",
    "name": "ghostly-stranger",
    "owner": null,
    "visibility": "private",
    "label": null,
    "slug": null,
    "description": null,
    "avatar_url": null,
    "secrets": [],
    "archived": false
  },
  {
    "id": "c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6",
    "chat_type": "secret_chat",
    "name": "neon-wanderer",
    "owner": null,
    "visibility": "private",
    "label": null,
    "slug": null,
    "description": null,
    "avatar_url": null,
    "secrets": [],
    "archived": true
  }
]

Documentation Index

Fetch the complete documentation index at: https://docs.7331.org/llms.txt

Use this file to discover all available pages before exploring further.

Requires an active session cookie. Returns all non-private GROUP chats, plus private GROUP chats the user owns or is a member of, plus any DIRECT chats the user is currently in or recently archived. Live state (running, viewer_count) is not included — it arrives via Socket.IO chat:list and chat:status events after the initial page load.

Response

Returns an array of chat objects. Each object has a chat_type of group, direct, or secret.
id
string
required
Chat ID (32-character hex string).
chat_type
string
required
"group", "direct", or "secret". SECRET chats are only returned inside a GROUP entry’s secrets list — never at the top level.
name
string
required
Chat display name.
owner
object | null
Chat owner identity. null for SECRET_GROUP and SECRET_CHAT (no owner).
visibility
string
GROUP only: "official", "public", or "private". Always "private" for DIRECT.
label
string | null
GROUP only: platform endorsement label (null if none).
slug
string | null
GROUP only: vanity slug — present on official and public chats, null for private.
description
string | null
GROUP only: chat description.
avatar_url
string | null
GROUP only: resolved avatar URL.
secrets
object[]
GROUP only: list of the caller’s joined secret portals within this chat. Each entry has id (string), name (string), and expires_at (ISO-8601 string or null).
archived
boolean
true for DIRECT chats that have ended but are still within the 24-hour read-only archive window. Archived chats are shown in the sidebar in a dimmed read-only state; they disappear after 24h. Always false for GROUP and SECRET chats.
curl https://portal-api.7331.org/v1/portal/chats \
  -b "psession=YOUR_SESSION"
[
  {
    "id": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6",
    "chat_type": "group",
    "name": "general",
    "owner": { "id": 42, "username": "cool_fox_123", "avatar_url": null },
    "visibility": "official",
    "label": null,
    "slug": "general",
    "description": "The main chat.",
    "avatar_url": null,
    "secrets": [],
    "archived": false
  },
  {
    "id": "f6e5d4c3b2a1f0e9d8c7b6a5f4e3d2c1",
    "chat_type": "secret_chat",
    "name": "ghostly-stranger",
    "owner": null,
    "visibility": "private",
    "label": null,
    "slug": null,
    "description": null,
    "avatar_url": null,
    "secrets": [],
    "archived": false
  },
  {
    "id": "c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6",
    "chat_type": "secret_chat",
    "name": "neon-wanderer",
    "owner": null,
    "visibility": "private",
    "label": null,
    "slug": null,
    "description": null,
    "avatar_url": null,
    "secrets": [],
    "archived": true
  }
]