Skip to main content
PATCH
/
v1
/
integrations
/
connections
/
{connection_id}
/
tools
/
{tool_id}
Edit author-editable metadata on a single tool (response_field_map, is_enabled, input_defaults — defaults + pinned)
curl --request PATCH \
  --url https://api-sandbox.featherhq.com/v1/integrations/connections/{connection_id}/tools/{tool_id} \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <api-key>' \
  --data '
{
  "response_field_map": {},
  "is_enabled": true,
  "input_defaults": {}
}
'
{
  "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "connection_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "organization_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "nickname_slug": "<string>",
  "tool_path": "<string>",
  "slug": "<string>",
  "display_name": "<string>",
  "description": "<string>",
  "input_schema": {},
  "is_enabled": true,
  "last_seen_at": "2023-11-07T05:31:56Z",
  "created_at": "2023-11-07T05:31:56Z",
  "updated_at": "2023-11-07T05:31:56Z",
  "stale_field_paths": [
    "<string>"
  ],
  "default_count": 123,
  "pinned_count": 123,
  "stale_input_fields": [
    "<string>"
  ],
  "merged_input_preview": {},
  "response_schema": {},
  "response_field_map": {},
  "input_defaults": {}
}

Authorizations

x-api-key
string
header
required

Path Parameters

connection_id
string<uuid>
required
tool_id
string<uuid>
required

Body

application/json

Author-editable fields on a single IntegrationConnectionTool.

Three mutable fields: response_field_map (the customer-owned field map {"field_mappings": [...]} that narrows the agent-facing response and drives the AOP compiler's kind=llmkind=action promotion), is_enabled (turn the individual tool on/off for the agent), and input_defaults (operator input-arg config, {field_name: {"value": ..., "type": "default"|"pinned"}} — ENG-590; a default may be overwritten by the agent, a pinned value cannot). input_defaults is validated at the service layer against the row's current input_schema (it needs the row, which a Pydantic validator can't see), so a wrong-type value or unknown field is rejected there with a 422. The response shape (response_schema) is sync-owned and read-only over the API (ENG-631 D2), so it is deliberately NOT accepted here — extra="forbid" rejects it with a 422.

Pydantic's model_fields_set is used at the service layer to distinguish "omit this field" (no-op) from "explicit None" (clear the field).

response_field_map
Response Field Map · object
is_enabled
boolean | null
input_defaults
Input Defaults · object

Response

Successful Response

id
string<uuid>
required
connection_id
string<uuid>
required
organization_id
string<uuid>
required
integration_key
enum<string>
required

Stable identifier for each supported integration.

The string value must match the vendor's per-provider identifier (for Nango: provider_config_key). Persisted on integration_connections.integration_key and integration_connection_tools.integration_key.

Adding a new integration: append a member here, add an IntegrationSpec to INTEGRATIONS, register the provider in the vendor cloud via src/integrations/bootstrap.py (Step 3).

Available options:
slack,
custom_mcp,
notion,
google_drive,
calcom,
twilio,
email
nickname_slug
string
required
tool_path
string
required
slug
string
required
display_name
string
required
description
string | null
required
input_schema
Input Schema · object
required
is_enabled
boolean
required
last_seen_at
string<date-time>
required
created_at
string<date-time>
required
updated_at
string<date-time>
required
stale_field_paths
string[]
required
read-only

Saved field-map paths no longer present in the shape (ENG-631 D4).

default_count
integer
required
read-only

How many input fields carry an operator default (ENG-590 / PRD 7.7).

pinned_count
integer
required
read-only

How many input fields are operator-pinned (ENG-590).

stale_input_fields
string[]
required
read-only

Configured input fields removed/renamed/retyped by a re-sync (PRD 7.6).

merged_input_preview
Merged Input Preview · object
required
read-only

input_schema with each operator value injected (PRD 7.8).

response_schema
Response Schema · object
response_field_map
Response Field Map · object
input_defaults
Input Defaults · object