Skip to content

Customize

The marketplaces a workspace reads plugins from, in the open plugin format (.claude-plugin/marketplace.json): each with its name (the @marketplace part of a plugin's ref), source (github with repo, g1t with repo, git or url with url, or builtin), builtin (every workspace has it and it cannot be removed: claude-plugins-official, anthropic-agent-skills and g1t), about, owner, how many plugins it lists, fetched_at and problem (why its manifest could not be read, when it could not), who added it and when, and can_remove.

GET/workspaces/{workspace}/customize/marketplaces

Members only.

Every workspace reads claude-plugins-official, anthropic-agent-skills and g1t, which are builtin and cannot be removed. source is the marketplace’s source object in the open plugin format: github (repo), g1t (repo, a repository here), git or url (url), or builtin. problem says why the manifest could not be read last time, if it could not. See Customize.

  • Authentication: Required. Send an access token as Authorization: Bearer.
  • MCP tool: customize with action list_marketplaces, and the same inputs
  • Scope: An access token needs workspace:read.
Name Type Required Description
workspace string Yes The workspace’s slug.
curl https://api.g1t.sh/workspaces/flagon-io/customize/marketplaces \
-H "Authorization: Bearer $G1T_TOKEN"

A successful request answers 200 with:

[
{
"name": "claude-plugins-official",
"source": {
"source": "github",
"repo": "anthropics/claude-plugins-official"
},
"builtin": true,
"about": "Official plugins from Anthropic.",
"owner": "Anthropic",
"plugins": 42,
"fetched_at": "2026-10-11T14:02:11.408Z",
"problem": null,
"added_by": null,
"added_at": null,
"can_remove": false
},
{
"name": "flagon-tools",
"source": {
"source": "g1t",
"repo": "flagon-io/plugins"
},
"builtin": false,
"about": "Flagon's own skills and connectors.",
"owner": "Flagon",
"plugins": 3,
"fetched_at": "2026-10-11T14:02:12.117Z",
"problem": null,
"added_by": "syntaqx",
"added_at": "2026-10-09T18:20:03.512Z",
"can_remove": true
}
]

A failed request answers with one of these statuses and a body like {"error": {"code": "not_found", "message": "Repository not found."}}. See errors.

Status Code When
401 unauthenticated A token is required, or the one sent is not valid.
403 forbidden The token is valid but not allowed to do this, such as a member-only change or an agent token outside its repository.
404 not_found It does not exist, or you cannot see it.
422 invalid The input is not valid. message says which field and why.