v1

latestOpenAPI 3.1.0raw.githubusercontent.com2026-06-304917042.1 MB
integrations

Edit author-editable metadata on a single tool (response_field_map, is_enabled, input_defaults — defaults + pinned)

Update author-editable tool metadata.

Three mutable fields:

  • response_field_map — the customer-owned field map ({"field_mappings": [...]}) selecting which response fields the agent receives. Narrows the agent-facing payload and drives the AOP compiler's kind=llmkind=action promotion (ENG-631). Omit the field to no-op; pass an explicit null to clear. The response shape (response_schema) is sync-owned and read-only over this API (D2), so it is rejected by the request schema's extra="forbid".
  • is_enabled — turn the individual tool on/off (the PRD's per-tool toggle). A disabled tool is excluded from resolution, so the agent can no longer call it. Omit to no-op.
  • input_defaults — operator input-arg config for input fields ({field_name: {"value": ..., "type": "default"|"pinned"}}, ENG-590). A default is a suggestion the agent may overwrite; a pinned value the caller cannot overwrite. Validated against the tool's current input_schema: an unknown field or wrong-type value is rejected with a 422 listing each offending field. Omit to no-op; pass an explicit null to clear. Surfaced on every tool read (default_count / pinned_count / stale_input_fields / merged_input_preview); neither kind is injected into a tool call in this scope (runtime enforcement is a follow-on).

Only the fields the caller actually set are written. Verifies parent-connection org ownership before the tool update so a correctly-org'd tool id under a foreign-org connection still 404s.

patch/v1/integrations/connections/{connection_id}/tools/{tool_id}

Path parameters

connection_idstring uuid required
tool_idstring uuid required

Request body

response_field_mapobject nullable
is_enabledboolean nullable
input_defaultsobject nullable

Response

Successful Response

idstring uuid required
connection_idstring uuid required
organization_idstring uuid required
integration_key'slack' | 'custom_mcp' | 'notion' | 'google_drive' | 'calcom' | 'twilio' | 'email' 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).

nickname_slugstring required
tool_pathstring required
slugstring required
display_namestring required
descriptionstring nullable required
input_schemaobject required
response_schemaobject nullable
response_field_mapobject nullable
input_defaultsobject nullable
is_enabledboolean required
last_seen_atstring date-time required
created_atstring date-time required
updated_atstring date-time required
stale_field_pathsstring[] required

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

default_countinteger required

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

pinned_countinteger required

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

stale_input_fieldsstring[] required

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

merged_input_previewobject required

input_schema with each operator value injected (PRD 7.8).