Get shop
Reads one public listing as the shop shows it — its seller's public face, its reputation and the ways to buy it.
GET /v1/marketplace/shop/{id}
| Address | https://api.hanzo.ai/v1/marketplace/shop/{id} |
| Method | GET |
| Operation | get_marketplace_shop_by_id |
| Auth | Authorization: Bearer $HANZO_API_KEY |
Reads one public listing as the shop shows it — its seller's public face, its reputation and the ways to buy it. A private listing and one that does not exist are the same 404. It needs no credential.
Request
1 field.
| Field | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | yes | ID is the listing, from the path. |
Response
| Status | Body | Meaning |
|---|---|---|
200 | marketplace.ShopListing | ok |
default | problem-details | refused |
200 body — 74 fields.
| Field | In | Type | Always | Description |
|---|---|---|---|---|
category | body | string | — | Category groups it; empty is ungrouped. |
createdAt | body | integer (int64) | — | CreatedAt is when it was published, unix seconds. |
currency | body | string | — | Currency labels Price. |
description | body | string | — | Description is the long copy. |
docs | body | string | — | Docs is where its documentation lives, when the seller said. |
expert | body | marketplace.Expert | — | |
expert.areas | body | string[] | — | Areas is what the expert works on: configure, base, commerce, bot, agents, cloud, models, creative or freelance. |
expert.availability | body | string | — | Availability is the expert's weekly hours, in their own words. |
expert.languages | body | string[] | — | Languages are the languages the expert works in, lowercase BCP 47 tags. |
expert.links | body | string[] | — | Links are where the expert's work can be seen: up to 8 https URLs. |
expert.person | body | string | — | Person is the expert's IAM identity: the verified principal that published the listing, never taken off the wire. |
expert.products | body | marketplace.Score[] | — | Products are the products the expert scores highest in, at most three, best first, each with the parts its score is made of; absent until they score in any (expertise.go). |
expert.products[].parts | body | marketplace.Parts | — | |
expert.products[].parts.badges | body | number (double) | — | Badges is the points for the badges held that show the product was used. |
expert.products[].parts.contributions | body | number (double) | — | Contributions is the points for merged pull requests and completed bounties in the product's public repositories. |
expert.products[].parts.jobs | body | number (double) | — | Jobs is the points for jobs released in the product's areas, weighted by stars. |
expert.products[].parts.usage | body | number (double) | — | Usage is the points for lifetime tokens on the product's model family. |
expert.products[].product | body | string | — | Product is the product's id. |
expert.products[].score | body | number (double) | — | Score is the sum of Parts, to one decimal. |
expert.rate | body | any | — | Rate is the hourly rate, exact to 18 decimal places of USD; "0" when the expert sells only a fixed engagement (the listing's price). |
expert.reward | body | marketplace.Reward | — | |
expert.reward.badges | body | marketplace.Badge[] | — | Badges are the three the profile shows first, the rarest first. |
expert.reward.badges[].id | body | string | — | ID is the badge's id, such as first-merge. |
expert.reward.badges[].name | body | string | — | Name is what it is called. |
expert.reward.badges[].pillar | body | string | — | Pillar is what it is for: use, share, community, contribute or expert. |
expert.reward.badges[].rarity | body | string | — | Rarity is how rare it is, from common up. |
expert.reward.level | body | integer (int64) | — | Level is the level the profile shows, such as 2. |
expert.reward.levelName | body | string | — | LevelName is its name, such as Shipper. |
expert.reward.pillars | body | marketplace.Pillars | — | |
expert.reward.pillars.community | body | integer (int64) | — | Community is claims for joining in: Discord, stars and follows. |
expert.reward.pillars.contribute | body | integer (int64) | — | Contribute is claims for building it: merged work, bounties and demos. |
expert.reward.pillars.expert | body | integer (int64) | — | Expert is claims for the work of an expert on the marketplace. |
expert.reward.pillars.share | body | integer (int64) | — | Share is claims for sharing it: referrals and posts. |
expert.reward.pillars.use | body | integer (int64) | — | Use is claims for using Hanzo: models and products. |
expert.reward.points | body | integer (int64) | — | Points are the lifetime points. |
expert.reward.tier | body | marketplace.Tier | — | |
expert.reward.tier.id | body | string | — | ID is the badge's id, such as billionaire. |
expert.reward.tier.label | body | string | — | Label is how the milestone reads, such as 1B+. |
expert.self | body | boolean | — | Self is whether the expert is the caller. |
expert.skills | body | string[] | — | Skills are what the expert is good at, in their own words: up to 20 names of up to 40 characters, each once whatever its case. |
expert.timezone | body | string | — | Timezone is the expert's IANA time zone, "America/Los_Angeles". |
expert.top | body | string[] | — | Top names the products in which the expert ranks among the best three of all experts, in the order of the product list. |
expert.verified | body | boolean | — | Verified is whether staff vouch for the expert. |
id | body | string | — | ID is the listing. |
kind | body | string | — | Kind is what it sells: agent, persona, app, skill, mcp, tool or expert. |
links | body | marketplace.Links | — | |
links.cli | body | string | — | CLI is the hanzo command that buys it. |
links.docs | body | string | — | Docs is the listing's documentation, when the seller named one. |
links.mcp | body | marketplace.MCPRef | — | |
links.mcp.op | body | string | — | Op is the operation within it. |
links.mcp.tool | body | string | — | Tool is the MCP tool: marketplace. |
price | body | any | — | Price is the exact USD price — per call for a tool, per job otherwise, the fixed engagement for an expert; "0" is free. |
public | body | boolean | — | Public is always true here. |
publisherOrg | body | string | — | PublisherOrg is the org that sells it. |
reputation | body | marketplace.Reputation | — | |
reputation.installs | body | integer (int64) | — | Installs is how many orgs installed a tool listing's tool. |
reputation.jobs | body | marketplace.JobCounts | — | |
reputation.jobs.completed | body | integer (int64) | — | Completed is released jobs. |
reputation.jobs.disputed | body | integer (int64) | — | Disputed is jobs ever disputed. |
reputation.rating | body | number (double) | — | Rating is the mean stars buyers gave, 1 to 5 to one decimal; null until the first review. |
reputation.reviews | body | integer (int64) | — | Reviews is how many buyers rated. |
seller | body | marketplace.Seller | — | |
seller.documented | body | boolean | — | Documented is true while the seller's tax form is certified and valid — what its agents' TaxPrincipalCredentials rest on. |
seller.org | body | string | — | Org is the seller org. |
seller.reputation | body | marketplace.Reputation | — | |
seller.reputation.installs | body | integer (int64) | — | Installs is how many orgs installed a tool listing's tool. |
seller.reputation.jobs | body | marketplace.JobCounts | — | |
seller.reputation.jobs.completed | body | integer (int64) | — | Completed is released jobs. |
seller.reputation.jobs.disputed | body | integer (int64) | — | Disputed is jobs ever disputed. |
seller.reputation.rating | body | number (double) | — | Rating is the mean stars buyers gave, 1 to 5 to one decimal; null until the first review. |
seller.reputation.reviews | body | integer (int64) | — | Reviews is how many buyers rated. |
title | body | string | — | Title is the shop-window name. |
tool | body | string | — | Tool names the thing sold, as the seller named it; empty for an expert, who is a person and not a thing. |
updatedAt | body | integer (int64) | — | UpdatedAt is when it was last edited, unix seconds. |
Failure carries the platform error shape — see Errors.
Examples
CLI
SDK
HTTP
MCP
hanzo marketplace shop get <id>.ts
.py
.go
.rs
.java
import { Configuration, MarketplaceApi } from 'hanzoai';
const api = new MarketplaceApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.getMarketplaceShopById({ id: 'id' });from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import MarketplaceApi
client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = MarketplaceApi(client).get_marketplace_shop_by_id(id='id')cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)
resp, _, err := client.MarketplaceAPI.GetMarketplaceShopById(context.Background()).Execute()
if err != nil {
return err
}use hanzo_client::apis::{configuration::Configuration, marketplace_api};
let mut cfg = Configuration::new();
cfg.bearer_access_token = std::env::var("HANZO_API_KEY").ok();
let result = marketplace_api::get_marketplace_shop_by_id(&cfg, Default::default()).await?;import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.MarketplaceApi;
ApiClient client = new ApiClient();
client.setBearerToken(System.getenv("HANZO_API_KEY"));
var result = new MarketplaceApi(client).getMarketplaceShopById();curl https://api.hanzo.ai/v1/marketplace/shop/<id> \
-H "Authorization: Bearer $HANZO_API_KEY"Tool marketplace, op get_marketplace_shop_by_id — POST the JSON-RPC envelope to https://api.hanzo.ai/v1/mcp.
curl -X POST https://api.hanzo.ai/v1/mcp \
-H "Authorization: Bearer $HANZO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "marketplace",
"arguments": {
"op": "get_marketplace_shop_by_id",
"input": {
"id": "<id>"
}
}
}
}'Was this page useful?
Broken link or missing step? Drop it in #docs on Discord or open a PR.