Skip to content

Customize

Put a key on a connector by id: value is the header's value, kept sealed and never returned, and header_name the header it is sent as (the one it had, or Authorization, when left out).

PATCH/workspaces/{workspace}/customize/connectors/{id}

Makes the connector use header auth, lists its tools again, and returns it. Owners only. Recorded in the audit log.

Rotates a key, or gives a needs_key connector its first one. header_name changes which header it is sent as; left out, the connector keeps its own, or uses Authorization. The tools are listed again with the new key, so state says at once whether it works.

  • Authentication: Required. Send an access token as Authorization: Bearer.
  • MCP tool: customize with action set_connector_key, and the same inputs
  • Scope: An access token needs workspace:admin.
Name Type Required Description
workspace string Yes The workspace’s slug.
id string Yes The connector’s id (con_…), from list_connectors.

Send a JSON object. Names are snake_case, as in responses; the camelCase spelling is accepted too.

Name Type Required Description
header_name string No The header the key is sent as. The one it had, or Authorization, when left out.
value string Yes The key. Kept sealed; never returned.
curl -X PATCH https://api.g1t.sh/workspaces/flagon-io/customize/connectors/con_01kq9j6m8p0r2t4v6x8z0b2d4f \
-H "Authorization: Bearer $G1T_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"value": "fd_live_…"
}'

A successful request answers 200 with:

{
"id": "con_01kq9j6m8p0r2t4v6x8z0b2d4f",
"name": "docs-search",
"title": "docs-search",
"url": "https://mcp.flagon.dev/docs",
"category": null,
"about": null,
"auth": "header",
"state": "connected",
"problem": null,
"from": {
"kind": "address"
},
"tools": [
{
"name": "search_docs",
"description": "Search Flagon's documentation.",
"input_schema": {
"type": "object",
"properties": {
"query": {
"type": "string"
}
},
"required": [
"query"
]
}
}
],
"checked_at": "2026-10-11T15:02:17.950Z",
"header_name": "X-Api-Key",
"signed_in_as": null,
"signed_in_at": null,
"grants": [],
"added_by": "syntaqx",
"added_at": "2026-10-11T14:40:55.130Z"
}

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.
409 conflict The request conflicts with the current state.
422 invalid The input is not valid. message says which field and why.