File size: 3,315 Bytes
bdc2878
 
 
 
 
 
 
 
 
 
53a0992
bdc2878
53a0992
 
 
 
bdc2878
 
53a0992
bdc2878
 
53a0992
 
 
 
bdc2878
 
53a0992
bdc2878
 
53a0992
 
bdc2878
 
53a0992
bdc2878
 
53a0992
 
 
bdc2878
 
53a0992
 
bdc2878
 
53a0992
bdc2878
 
53a0992
 
 
 
bdc2878
53a0992
 
 
 
bdc2878
53a0992
 
 
 
 
 
 
 
 
bdc2878
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
"""Static URL table for all upstream XAI / Grok endpoints.

Canonical source of truth for every URL used by the reverse layer.
Protocol modules re-export the subset they need; transport modules
import from protocol β€” this file is the single shared reference.

NOTE: gRPC-Web endpoints (accept_tos, nsfw_mgmt) live on different
hosts (accounts.x.ai, grok.com with gRPC path), listed separately.
"""

BASE = "https://grok.com"
ASSETS_CDN = "https://assets.grok.com"
CONSOLE_BASE = "https://console.x.ai"

# ── Console API (SSO-shared with grok.com, supports all models) ────────
CONSOLE_RESPONSES = f"{CONSOLE_BASE}/v1/responses"

# ── App-chat (SSE streaming, new conversation) ──────────────────────────
CHAT = f"{BASE}/rest/app-chat/conversations/new"

# ── Asset management ─────────────────────────────────────────────────────
ASSETS_UPLOAD = f"{BASE}/rest/app-chat/upload-file"  # POST (base64 upload)
ASSETS_LIST = f"{BASE}/rest/assets"  # GET
ASSETS_DELETE = f"{BASE}/rest/assets-metadata"  # DELETE /{asset_id}
ASSETS_DOWNLOAD = ASSETS_CDN  # GET /{path}

# ── Rate limits (usage / quota sync) ─────────────────────────────────────
RATE_LIMITS = f"{BASE}/rest/rate-limits"  # POST

# ── gRPC-Web endpoints ──────────────────────────────────────────────────
ACCEPT_TOS = "https://accounts.x.ai/auth_mgmt.AuthManagement/SetTosAcceptedVersion"
NSFW_MGMT = f"{BASE}/auth_mgmt.AuthManagement/UpdateUserFeatureControls"

# ── Auth REST ────────────────────────────────────────────────────────────
SET_BIRTH = f"{BASE}/rest/auth/set-birth-date"  # POST

# ── Media (video) ────────────────────────────────────────────────────────
MEDIA_POST = f"{BASE}/rest/media/post/create"  # POST
MEDIA_POST_LINK = f"{BASE}/rest/media/post/create-link"  # POST
VIDEO_UPSCALE = f"{BASE}/rest/media/video/upscale"  # POST

# ── WebSocket endpoints ─────────────────────────────────────────────────
WS_IMAGINE = "wss://grok.com/ws/imagine/listen"
WS_LIVEKIT = "wss://livekit.grok.com"

# ── LiveKit ─────────────────────────────────────────────────────────────
LIVEKIT_TOKENS = f"{BASE}/rest/livekit/tokens"  # POST

__all__ = [
    "BASE",
    "ASSETS_CDN",
    "CONSOLE_BASE",
    "CONSOLE_RESPONSES",
    "CHAT",
    "ASSETS_UPLOAD",
    "ASSETS_LIST",
    "ASSETS_DELETE",
    "ASSETS_DOWNLOAD",
    "RATE_LIMITS",
    "ACCEPT_TOS",
    "NSFW_MGMT",
    "SET_BIRTH",
    "MEDIA_POST",
    "MEDIA_POST_LINK",
    "VIDEO_UPSCALE",
    "WS_IMAGINE",
    "WS_LIVEKIT",
    "LIVEKIT_TOKENS",
]