Skip to content

getExtensionConfig

GET
/extension/config
curl --request GET \
--url http://localhost:8080/api/v1/extension/config \
--cookie hs_session=<hs_session>

Watchlist, capture rules and helper info for the Companion extension (docs/14-browser-extension.md). Supports If-None-Match with the returned etag.

If-None-Match
string

Config.

Media typeapplication/json
object
etag
required
string
household
required
object
name
required
string
baseUrl
required
string format: uri
member
required
object
id
required
string
/^[a-z]{2,3}_[0-9a-hjkmnp-tv-z]{26}$/
displayName
required
string
avatar
One of:
object
id
required
string
/^[a-z]{2,3}_[0-9a-hjkmnp-tv-z]{26}$/
url
required

Signed URL, valid 24 h.

string
thumbUrl
string
cardUrl
string
posterUrl
string
mime
required
string
width
integer
height
integer
durationMs
integer
blurhash
string
alt
string
canCapture
required

False for viewers (visits only).

boolean
watchlist
required
Array<object>
object
accountId
required
string
/^[a-z]{2,3}_[0-9a-hjkmnp-tv-z]{26}$/
personId
required
string
/^[a-z]{2,3}_[0-9a-hjkmnp-tv-z]{26}$/
personName
required
string
platform
required
string
Allowed values: instagram facebook line wechat bluesky x douyin xiaohongshu truthsocial
handle
required
string
platformUserId
string | null
profileUrl
required
string format: uri
lastCapturedAt
One of:
string format: date-time
rules
required
Array<object>
object
platform
required
string
Allowed values: instagram facebook line wechat bluesky x douyin xiaohongshu truthsocial
capture
required
boolean
recordVisits
required
boolean
hostPermissions
required

Match patterns requested when the member enables this platform.

Array<string>
pagePatterns
required

Profile, story and post URL regexes (JS syntax) from the registry.

Array<string>
mediaHosts
required

Host globs whose assets are listed and read from the cache by the helper.

Array<string>
limits
required
object
maxDomBytes
required
integer
maxAssets
required
integer
maxParallelTabs
required
integer
settleMs
required
integer
maxWaitMs
required
integer
autoScrollViewports
required
integer
focusMs
required
integer
helper
required
object
minVersion
required
string
downloads
required

OS → download URL (macos, windows, linux).

object
key
additional properties
string format: uri

Examples

Exampleseed

Derived from fixtures/seed.json.

{
"canCapture": true,
"etag": "\"cfg-demo-1\"",
"helper": {
"downloads": {
"linux": "http://localhost:8080/downloads/homestead-helper.tar.gz",
"macos": "http://localhost:8080/downloads/homestead-helper.dmg",
"windows": "http://localhost:8080/downloads/homestead-helper.exe"
},
"minVersion": "1.0.0"
},
"household": {
"baseUrl": "http://localhost:5173",
"name": "The Wongs' Homestead"
},
"limits": {
"autoScrollViewports": 2,
"focusMs": 300,
"maxAssets": 80,
"maxDomBytes": 8388608,
"maxParallelTabs": 2,
"maxWaitMs": 20000,
"settleMs": 1500
},
"member": {
"avatar": null,
"displayName": "Mali",
"id": "mem_01j9kt0d8rwgmhnmxkmv0frnr0"
},
"rules": [
{
"capture": true,
"hostPermissions": [
"*://*.instagram.com/*"
],
"mediaHosts": [
"*.cdninstagram.com",
"*.fbcdn.net"
],
"pagePatterns": [
"^https?://(?:www\\.|m\\.)?instagram\\.com/stories/(?P<handle>[A-Za-z0-9._]{1,30})(?:/|$|\\?)",
"^https?://(?:www\\.|m\\.)?instagram\\.com/(?P<handle>[A-Za-z0-9._]{1,30})/?(?:\\?.*)?$",
"^https?://instagr\\.am/(?P<handle>[A-Za-z0-9._]{1,30})/?$",
"^https?://(?:www\\.)?instagram\\.com/(?:p|reel|tv)/(?P<item>[A-Za-z0-9_-]+)"
],
"platform": "instagram",
"recordVisits": true
},
{
"capture": true,
"hostPermissions": [
"*://*.facebook.com/*"
],
"mediaHosts": [
"*.fbcdn.net"
],
"pagePatterns": [
"^https?://(?:www\\.|m\\.|mbasic\\.|web\\.)?facebook\\.com/profile\\.php\\?(?:.*&)?id=(?P<platformUserId>[0-9]{5,20})",
"^https?://(?:www\\.|m\\.|web\\.)?facebook\\.com/people/[^/]+/(?P<platformUserId>[0-9]{5,20})",
"^https?://(?:www\\.|m\\.|mbasic\\.|web\\.)?(?:facebook|fb)\\.com/(?P<handle>[A-Za-z0-9.]{5,50})/?(?:\\?.*)?$",
"^https?://(?:www\\.)?facebook\\.com/share/(?:p|r|v)/(?P<item>[A-Za-z0-9]+)"
],
"platform": "facebook",
"recordVisits": true
},
{
"capture": true,
"hostPermissions": [
"*://linevoom.line.me/*"
],
"mediaHosts": [
"*.line-scdn.net",
"*.line-apps.com"
],
"pagePatterns": [
"^https?://line\\.me/(?:R/)?ti/p/(?P<handle>~[A-Za-z0-9._-]{4,20})",
"^https?://line\\.me/(?:R/)?ti/p/(?P<handle>@[A-Za-z0-9._-]{3,20})",
"^https?://page\\.line\\.me/(?P<handle>[A-Za-z0-9._-]{3,30})",
"^https?://linevoom\\.line\\.me/user/(?P<platformUserId>[A-Za-z0-9_-]+)",
"^https?://linevoom\\.line\\.me/post/(?P<item>[0-9]+)"
],
"platform": "line",
"recordVisits": true
},
{
"capture": false,
"hostPermissions": [],
"mediaHosts": [],
"pagePatterns": [
"^https?://u\\.wechat\\.com/(?P<handle>[A-Za-z0-9_-]{6,})",
"^https?://weixin\\.qq\\.com/r/(?P<handle>[A-Za-z0-9_-]{6,})"
],
"platform": "wechat",
"recordVisits": false
},
{
"capture": false,
"hostPermissions": [
"*://bsky.app/*"
],
"mediaHosts": [
"cdn.bsky.app",
"video.bsky.app",
"video.cdn.bsky.app"
],
"pagePatterns": [
"^https?://(?:staging\\.)?bsky\\.app/profile/(?P<handle>[^/?#]+)",
"^https?://bsky\\.app/profile/(?P<handle>[^/]+)/post/(?P<item>[a-z0-9]+)"
],
"platform": "bluesky",
"recordVisits": true
},
{
"capture": true,
"hostPermissions": [
"*://x.com/*",
"*://twitter.com/*"
],
"mediaHosts": [
"pbs.twimg.com",
"video.twimg.com"
],
"pagePatterns": [
"^https?://(?:www\\.|mobile\\.)?(?:x|twitter|fxtwitter|vxtwitter|fixupx)\\.com/(?P<handle>[A-Za-z0-9_]{1,15})(?:/status/[0-9]+)?/?(?:\\?.*)?$",
"^https?://(?:www\\.)?(?:x|twitter)\\.com/(?P<handle>[A-Za-z0-9_]{1,15})/status/(?P<item>[0-9]+)"
],
"platform": "x",
"recordVisits": true
},
{
"capture": true,
"hostPermissions": [
"*://*.douyin.com/*"
],
"mediaHosts": [
"*.douyinpic.com",
"*.douyinvod.com",
"*.bytedance.com",
"*.byteimg.com"
],
"pagePatterns": [
"^https?://(?:www\\.)?douyin\\.com/user/(?P<handle>MS4wLjABAAAA[A-Za-z0-9_-]+)",
"^https?://(?:www\\.)?iesdouyin\\.com/share/user/(?P<platformUserId>[0-9]+)",
"^https?://(?:www\\.)?douyin\\.com/(?:video|note)/(?P<item>[0-9]+)",
"^https?://(?:www\\.)?iesdouyin\\.com/share/video/(?P<item>[0-9]+)"
],
"platform": "douyin",
"recordVisits": true
},
{
"capture": true,
"hostPermissions": [
"*://*.xiaohongshu.com/*"
],
"mediaHosts": [
"*.xhscdn.com"
],
"pagePatterns": [
"^https?://(?:www\\.)?xiaohongshu\\.com/user/profile/(?P<handle>[0-9a-f]{24})",
"^https?://(?:www\\.)?xiaohongshu\\.com/(?:explore|discovery/item)/(?P<item>[0-9a-f]{24})"
],
"platform": "xiaohongshu",
"recordVisits": true
},
{
"capture": true,
"hostPermissions": [
"*://truthsocial.com/*"
],
"mediaHosts": [
"static-assets-1.truthsocial.com",
"*.truthsocial.com"
],
"pagePatterns": [
"^https?://(?:www\\.)?truthsocial\\.com/@(?P<handle>[A-Za-z0-9_]{1,30})",
"^https?://(?:www\\.)?truthsocial\\.com/@(?P<handle>[A-Za-z0-9_]{1,30})/(?:posts/)?(?P<item>[0-9]+)"
],
"platform": "truthsocial",
"recordVisits": true
}
],
"watchlist": [
{
"accountId": "acc_01j93283xpmc4y04hy7rmmt7y7",
"handle": "mom.wong.bkk",
"lastCapturedAt": "2026-10-17T08:40:00.000Z",
"personId": "per_01j9wst6a8vjc69r66y6fj70t5",
"personName": "Mom",
"platform": "instagram",
"platformUserId": null,
"profileUrl": "https://www.instagram.com/mom.wong.bkk/"
},
{
"accountId": "acc_01j9wkspf8va1pwmaj7qwb7e1f",
"handle": "pranee.wong",
"lastCapturedAt": null,
"personId": "per_01j9wst6a8vjc69r66y6fj70t5",
"personName": "Mom",
"platform": "facebook",
"platformUserId": null,
"profileUrl": "https://www.facebook.com/pranee.wong"
},
{
"accountId": "acc_01j9te0skfktnnmw6zvew46azb",
"handle": "lin.cooks",
"lastCapturedAt": null,
"personId": "per_01j9f8r1agkh6g3jp30xcwnytc",
"personName": "Lin",
"platform": "instagram",
"platformUserId": null,
"profileUrl": "https://www.instagram.com/lin.cooks/"
},
{
"accountId": "acc_01j9e81cm1p0x7vysze8aeqsje",
"handle": "~grandma_noi",
"lastCapturedAt": null,
"personId": "per_01j9w5jqj9nm7gdsybfz53mcjr",
"personName": "Grandma Noi",
"platform": "line",
"platformUserId": null,
"profileUrl": "https://line.me/R/ti/p/~grandma_noi"
},
{
"accountId": "acc_01j936xmqyft8qfbq7srt9h04r",
"handle": "MS4wLjABAAAAweichengdu0000000000000000000000",
"lastCapturedAt": null,
"personId": "per_01j9yjkch7a0ayzz8784jtf08t",
"personName": "Uncle Wei",
"platform": "douyin",
"platformUserId": "98765432101",
"profileUrl": "https://www.douyin.com/user/MS4wLjABAAAAweichengdu0000000000000000000000"
},
{
"accountId": "acc_01j91es8krfwqg9fhg08x4698y",
"handle": "5f1a2b3c4d5e6f7a8b9c0d1e",
"lastCapturedAt": null,
"personId": "per_01j9nt02btj9vmesaexmby3q67",
"personName": "小厨娘",
"platform": "xiaohongshu",
"platformUserId": null,
"profileUrl": "https://www.xiaohongshu.com/user/profile/5f1a2b3c4d5e6f7a8b9c0d1e"
},
{
"accountId": "acc_01j9dfpvstm7aq628gwwc9xkq3",
"handle": "somsak_runs",
"lastCapturedAt": null,
"personId": "per_01j9rwtm99tsb5zjfh16k89915",
"personName": "Somsak",
"platform": "x",
"platformUserId": null,
"profileUrl": "https://x.com/somsak_runs"
},
{
"accountId": "acc_01j93fce9xpx1fxafb7vaej1he",
"handle": "realexample",
"lastCapturedAt": null,
"personId": "per_01j954try4bd0jk4pfmxk2z1bd",
"personName": "Example News",
"platform": "truthsocial",
"platformUserId": null,
"profileUrl": "https://truthsocial.com/@realexample"
},
{
"accountId": "acc_01j9yyff89w3w7eq8sec0nx68n",
"handle": "jack",
"lastCapturedAt": null,
"personId": "per_01j9h1hs76zr3a67my92z862ww",
"personName": "Jack",
"platform": "x",
"platformUserId": null,
"profileUrl": "https://x.com/jack"
}
]
}
ETag
string

Not modified.