hemnet-fpx
Query hemnet.se (Swedish property portal) from a shell with the fpx CLI (@fetchproxy/cli) instead of running the hemnet-mcp server — resolve locations, search for-sale and sold listings, and read listing detail via one-shot GraphQL calls through a signed-in browser tab. Use when you want Hemnet data without the MCP, in a script, or on a machine where the MCP isn't installed.
Rank
62
Safety
84
Downloads
1.5k
Updated
Oct 10, 2026
Version
1.1.11
Source
CLAWHUB
About
What it does, and when to use it.
Capability contract not published. No trust telemetry is available yet. 1.5K downloads reported by the source. Last updated 10/10/2026.
Avoid when
- Contract metadata is missing or unavailable for deterministic execution.
Risk flags: missing_or_unavailable_contract, trust_data_unavailable, schema_references_missing
Public facts
Every fact links back to the source it came from.
- Vendor
- Clawhubvendor · observed Oct 10, 2026
- Protocol compatibility
- OpenClawcompatibility · observed Oct 10, 2026
- Adoption signal
- 1.5K downloadsadoption · observed Oct 10, 2026
- Latest release
- 1.1.11release · observed Oct 9, 2026
- Handshake status
- UNKNOWNsecurity
Install and run
Setup complexity: low.
clawhub skill install s17cjx1a349nz5apaqp02vgz4h85728z:hemnet-fpx- Install using `clawhub skill install s17cjx1a349nz5apaqp02vgz4h85728z:hemnet-fpx` in an isolated environment before connecting it to live workloads.
- No published capability contract is available yet, so validate auth and request/response behavior manually.
- Review the upstream CLAWHUB listing at https://clawhub.ai/chrischall/hemnet-fpx before using production credentials.
Contract: missing
curl -s "https://www.xpersona.co/api/v1/agents/clawhub-chrischall-hemnet-fpx/snapshot"
Documentation
CLAWHUB
114,745 characters of source documentation, loaded on request.
Extracted files
4 files captured from the source.
SKILL.md
---
name: hemnet-fpx
description: >-
Query hemnet.se (Swedish property portal) from a shell with the fpx CLI
(@fetchproxy/cli) instead of running the hemnet-mcp server — resolve
locations, search for-sale and sold listings, and read listing detail via
one-shot GraphQL calls through a signed-in browser tab. Use when you want
Hemnet data without the MCP, in a script, or on a machine where the MCP
isn't installed.
---
# Hemnet via fpx (no MCP)
Hemnet fronts `www.hemnet.se` — including `/graphql` — with a Cloudflare
managed challenge that 403s any plain `curl`/Node request. `fpx` routes the
request through the user's own signed-in browser tab (the ContextMint Bridge
extension), which has already cleared the challenge, so the same anonymous
GraphQL query succeeds. No Hemnet login is needed — just a normal open tab.
This is the same data the `hemnet_*` MCP tools return (money in **SEK**
strings, areas in **m²**), reached with one CLI call instead of a running
server.
## One-time setup
```sh
npm install -g @fetchproxy/cli # provides `fpx`
fpx profile add hemnet --domain hemnet.se # only the fetch capability is needed
fpx pair -p hemnet # prints a pair code → approve in ContextMint Bridge
```
Requirements: the **ContextMint Bridge** browser extension installed (from
[its releases](https://github.com/nullnet-app/contextmint-bridge/releases) —
Chrome: load the chrome zip unpacked; Safari isn't available yet, so use
Chrome for now), with an open
`www.hemnet.se` tab, and its Chrome **Site access** allowing `hemnet.se`.
Pairing persists — after the first approval every later `fpx` call reuses it.
ContextMint Bridge is the renamed fetchproxy extension (same maintainer; source at https://github.com/nullnet-app/contextmint-bridge — verify a release zip with `shasum -a 256 -c contextmint-bridge-chrome-<version>.zip.sha256`).
## Core call
Every query is a POST of `{"query": "...", "variables": {...}}` to the
GraphQL endpoint. Send the body raw (no `--json`) so stdout is the GraphQL
JSON, ready for `jq`:
```sh
fpx post-json 'https://www.hemnet.se/graphql' @query.json -p hemnet \
| jq '.data'
```
`@file` reads the body from a file; a literal `'{...}'` string works too but
shell-quoting the embedded query is fiddly — prefer a heredoc into a file.
Ready-to-run query bodies (autocomplete, for-sale search, listing detail,
sold search) with jq recipes are in `references/graphql-queries.md`. Exhaustive
field lists live in the repo at `src/graphql.ts` — the operations here are
compact, live-verified subsets.
## The one rule: resolve the location first
Hemnet searches take numeric **location ids**, never place names. Always
autocomplete first, take the `locationId`, then search:
```sh
printf '{"query":"query($q:String!,$l:Int!){autocompleteLocations(query:$q,limit:$l){hits{locationId fullName parentFullName}}}","variables":{"q":"Höllviken","l":3}}' > /tmp/q.json
fpx post-json 'https://www.hemnet.se/graphql' @/tmp_meta.json
{
"ownerId": "kn700jq4sjtf2anb0rk3ft4p7n856872",
"slug": "hemnet-fpx",
"version": "1.1.11",
"publishedAt": 1791588386737
}references/graphql-queries.md
# Hemnet GraphQL queries for fpx
Ready-to-run bodies for `fpx post-json 'https://www.hemnet.se/graphql' @file -p hemnet`.
Each block is the full POST body (`{"query","variables"}`). All field names
and input shapes are live-verified; the exhaustive field selections live in
the repo at `src/graphql.ts` (these are compact subsets).
Endpoint: `https://www.hemnet.se/graphql` · Method: POST · anonymous.
Write the body to a file (heredoc avoids shell-quoting the GraphQL string),
then send it:
```sh
cat > /tmp/hq.json <<'JSON'
{ "query": "…", "variables": { … } }
JSON
fpx post-json 'https://www.hemnet.se/graphql' @/tmp/hq.json -p hemnet | jq '.data'
```
Always check for GraphQL errors: `jq '.errors // empty'` (an errors array can
ride in an HTTP-200 body).
---
## 1. Resolve a location → locationId (do this first)
`variables.query` is free text; `limit` is required (`Int!`).
```json
{
"query": "query Autocomplete($query: String!, $limit: Int!) { autocompleteLocations(query: $query, limit: $limit) { hits { locationId fullName parentFullName } } }",
"variables": { "query": "Höllviken", "limit": 5 }
}
```
```sh
jq -r '.data.autocompleteLocations.hits[] | "\(.locationId)\t\(.fullName) — \(.parentFullName)"'
```
## 2. Search for-sale listings
`search.locationIds` is an array of strings (from step 1). Optional filters:
`priceMin`/`priceMax` (SEK), `roomsMin`/`roomsMax`, `livingAreaMin`/`livingAreaMax`
(m²), `keywords` (string), `housingFormGroups` (array of `HOUSES`, `APARTMENTS`,
`ROW_HOUSES`, `VACATION_HOMES`, `PLOTS`, `OTHERS`). `limit` is required; `sort`
is `NEWEST` or `OLDEST`.
```json
{
"query": "query Search($search: ListingSearchForSaleInput!, $limit: Int!, $sort: ListingSearchForSaleSorting) { searchForSaleListings(search: $search, limit: $limit, sort: $sort) { total listings { id streetAddress area numberOfRooms livingArea listingHemnetUrl askingPrice { amount formatted } fee { formatted } squareMeterPrice { formatted } } } }",
"variables": {
"search": { "locationIds": ["898675"], "housingFormGroups": ["HOUSES"], "priceMax": 10000000 },
"limit": 10,
"sort": "NEWEST"
}
}
```
```sh
jq -r '.data.searchForSaleListings | "total=\(.total)", (.listings[] | "\(.id)\t\(.askingPrice.formatted)\t\(.streetAddress)")'
```
## 3. Listing detail by id
`id` from a search card (`ID!`); `photoLimit` required (`Int!`). `listing`
returns the `PropertyListing` interface — the detail fields sit behind the
`... on ActivePropertyListing` fragment. A non-active id yields
`__typename` ≠ `ActivePropertyListing` (use the sold query in §5 instead).
```json
{
"query": "query GetListing($id: ID!, $photoLimit: Int!) { listing(id: $id) { __typename ... on ActivePropertyListing { streetAddress area numberOfRooms livingArea legacyConstructionYear description listingHemnetUrl askingPrice { formatted } fee { formatted } runningCosts { formatted } squareMeterPrice { formatted } tenure { name } energyClassification { classification } broker { name skill-card.md
## Description: Guides agents to query public Hemnet property listings and sold prices through a user-approved browser bridge and the fpx CLI. This skill is ready for commercial/non-commercial use. ## Publisher: [chrischall](https://clawhub.ai/user/chrischall) ### License/Terms of Use: MIT-0 ## Use Case: Developers and agents use this skill to resolve Swedish locations, search public for-sale and sold listings, and inspect property details without running an MCP server. ### Deployment Geography for Use: Global ## Known Risks and Mitigations: Risk: Installing an untrusted CLI or browser extension may expose browser activity. Mitigation: Confirm you trust @fetchproxy/cli and ContextMint Bridge before installing; verify the extension release checksum. Risk: Broad site access or persistent pairing can allow unintended future browser requests. Mitigation: Limit browser site access to hemnet.se and remove the pairing when no longer needed. Risk: A successful request may still contain GraphQL errors or too few sold listings for reliable comparisons. Mitigation: Check the response for errors and the sold-listing count before using price summaries. ## Reference(s): - [Hemnet GraphQL query examples](references/graphql-queries.md) - [ContextMint Bridge releases](https://github.com/nullnet-app/contextmint-bridge/releases) - [ClawHub skill release](https://clawhub.ai/chrischall/skills/hemnet-fpx) ## Skill Output: **Output Type(s):** [Shell commands, JSON, Guidance] **Output Format:** [Markdown instructions and GraphQL JSON responses] **Output Parameters:** [1D] **Other Properties Related to Output:** [Public Hemnet data only; prices in SEK and areas in m².] ## Skill Version(s): 1.1.11 (source: server-resolved ClawHub release) ## Ethical Considerations: Users should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.
AionUi
Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!
activepieces
AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents
cherry-studio
AI productivity studio with smart chat, autonomous agents, and 300+ assistants.
CopilotKit
The Frontend for Agents & Generative UI. React + Angular
Machine-readable data
The same record, as JSON, for agents and crawlers.
{
"facts": [
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Clawhub",
"href": "https://clawhub.ai/chrischall/skills/hemnet-fpx",
"sourceUrl": "https://clawhub.ai/chrischall/skills/hemnet-fpx",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-10T09:43:13.291Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "OpenClaw",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-chrischall-hemnet-fpx/contract",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-chrischall-hemnet-fpx/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-10-10T09:43:13.291Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "1.5K downloads",
"href": "https://clawhub.ai/chrischall/hemnet-fpx",
"sourceUrl": "https://clawhub.ai/chrischall/hemnet-fpx",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-10T09:43:13.291Z",
"isPublic": true
},
{
"factKey": "latest_release",
"category": "release",
"label": "Latest release",
"value": "1.1.11",
"href": "https://clawhub.ai/chrischall/hemnet-fpx",
"sourceUrl": "https://clawhub.ai/chrischall/hemnet-fpx",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-10-09T23:26:26.737Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-chrischall-hemnet-fpx/trust",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-chrischall-hemnet-fpx/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
],
"events": [
{
"eventType": "release",
"title": "Release 1.1.11",
"description": "- Removed the file skill-card.md. - No user-facing changes; documentation and usage remain the same.",
"href": "https://clawhub.ai/chrischall/hemnet-fpx",
"sourceUrl": "https://clawhub.ai/chrischall/hemnet-fpx",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-10-09T23:26:26.737Z",
"isPublic": true
}
]
}Record generated Oct 10, 2026.
