{
  "service": "nango",
  "displayName": "Nango",
  "categories": [
    "Developer Tools",
    "Data"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "NANGO_API_KEY",
      "description": "Nango API key sent as a Bearer token. Create or view keys in Environment Settings > API Keys at https://app.nango.dev."
    }
  ],
  "homepageUrl": "https://nango.dev",
  "actions": [
    {
      "id": "nango.delete_connection",
      "service": "nango",
      "name": "delete_connection",
      "description": "Delete a Nango connection.",
      "requiredScopes": [
        "environment:connections:delete"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "connection_id": {
            "type": "string",
            "minLength": 1,
            "description": "Connection ID used when the connection was created."
          },
          "provider_config_key": {
            "type": "string",
            "minLength": 1,
            "description": "Integration ID used to create the connection, also called the unique key."
          }
        },
        "additionalProperties": false,
        "required": [
          "connection_id",
          "provider_config_key"
        ],
        "description": "Input parameters for deleting a Nango connection."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether the operation succeeded."
          }
        },
        "additionalProperties": true,
        "description": "Operation result returned by Nango."
      }
    },
    {
      "id": "nango.get_connection",
      "service": "nango",
      "name": "get_connection",
      "description": "Retrieve a Nango connection and its credentials when permitted.",
      "requiredScopes": [
        "environment:connections:read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "connection_id": {
            "type": "string",
            "minLength": 1,
            "description": "Connection ID used when the connection was created."
          },
          "provider_config_key": {
            "type": "string",
            "minLength": 1,
            "description": "Integration ID used to create the connection, also called the unique key."
          },
          "force_refresh": {
            "type": "boolean",
            "description": "Whether Nango should refresh the access token even if not expired."
          },
          "refresh_token": {
            "type": "boolean",
            "description": "Whether to include the refresh token in the response."
          },
          "refresh_github_app_jwt_token": {
            "type": "boolean",
            "description": "Whether to refresh the JWT token for GitHub App connections."
          }
        },
        "additionalProperties": false,
        "required": [
          "connection_id",
          "provider_config_key"
        ],
        "description": "Input parameters for retrieving a Nango connection."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Internal Nango connection ID."
          },
          "connection_id": {
            "type": "string",
            "minLength": 1,
            "description": "Connection ID used when the connection was created."
          },
          "provider_config_key": {
            "type": "string",
            "minLength": 1,
            "description": "Integration ID used to create the connection, also called the unique key."
          },
          "provider": {
            "type": "string",
            "minLength": 1,
            "description": "Nango provider configuration slug."
          },
          "errors": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Connection error type, such as auth or sync."
                },
                "log_id": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Nango log identifier for this connection error."
                }
              },
              "additionalProperties": false,
              "required": [
                "type",
                "log_id"
              ],
              "description": "Nango connection error."
            },
            "description": "Connection errors returned by Nango."
          },
          "metadata": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Custom metadata attached to the connection."
          },
          "connection_config": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Provider-specific connection configuration."
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "maxLength": 255,
              "description": "Connection tag value."
            },
            "description": "Connection tags keyed by tag name. Nango normalizes keys to lowercase.",
            "maxProperties": 10
          },
          "created_at": {
            "type": "string",
            "minLength": 1,
            "description": "Timestamp when the connection was created."
          },
          "updated_at": {
            "type": "string",
            "minLength": 1,
            "description": "Timestamp when the connection was last updated."
          },
          "last_fetched_at": {
            "type": "string",
            "minLength": 1,
            "description": "Timestamp when the connection credentials were last fetched."
          },
          "credentials": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Connection credentials returned by Nango when the API key is permitted to read them."
          },
          "end_user": {
            "anyOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "Deprecated end-user details returned by Nango."
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": true,
        "required": [
          "id",
          "connection_id",
          "provider_config_key",
          "provider",
          "errors",
          "metadata",
          "connection_config",
          "tags",
          "created_at",
          "updated_at",
          "last_fetched_at"
        ],
        "description": "Detailed Nango connection returned by the API."
      }
    },
    {
      "id": "nango.get_integration",
      "service": "nango",
      "name": "get_integration",
      "description": "Retrieve a Nango integration by unique key.",
      "requiredScopes": [
        "environment:integrations:read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "uniqueKey": {
            "type": "string",
            "minLength": 1,
            "description": "Integration ID, also called the unique_key, to retrieve."
          },
          "include": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "webhook",
                "credentials"
              ],
              "description": "Additional integration data to include."
            },
            "description": "Additional sensitive data to include in the response.",
            "minItems": 1
          }
        },
        "additionalProperties": false,
        "required": [
          "uniqueKey"
        ],
        "description": "Input parameters for retrieving a Nango integration."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "unique_key": {
                "type": "string",
                "minLength": 1,
                "description": "The integration ID created in Nango."
              },
              "display_name": {
                "type": "string",
                "minLength": 1,
                "description": "Provider display name for this integration."
              },
              "provider": {
                "type": "string",
                "minLength": 1,
                "description": "Nango provider configuration slug."
              },
              "logo": {
                "type": "string",
                "description": "Absolute URL to the integration logo.",
                "format": "uri"
              },
              "created_at": {
                "type": "string",
                "description": "Timestamp when the integration was created.",
                "format": "date-time"
              },
              "updated_at": {
                "type": "string",
                "description": "Timestamp when the integration was last updated.",
                "format": "date-time"
              },
              "forward_webhooks": {
                "type": "boolean",
                "description": "Whether provider webhooks are forwarded to your backend."
              },
              "webhook_url": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Webhook URL to configure in the upstream provider.",
                    "format": "uri"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "credentials": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": true,
                    "description": "Sensitive integration credentials returned when requested and permitted."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": true,
            "required": [
              "unique_key",
              "display_name",
              "provider",
              "created_at",
              "updated_at"
            ],
            "description": "Detailed Nango integration returned by the API."
          }
        },
        "additionalProperties": false,
        "required": [
          "data"
        ],
        "description": "Nango integration returned by the API."
      }
    },
    {
      "id": "nango.get_provider",
      "service": "nango",
      "name": "get_provider",
      "description": "Retrieve a provider configuration from Nango.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "provider": {
            "type": "string",
            "minLength": 1,
            "description": "Nango provider name to retrieve."
          }
        },
        "additionalProperties": false,
        "required": [
          "provider"
        ],
        "description": "Input parameters for retrieving a Nango provider."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "minLength": 1,
                "description": "Nango provider name."
              },
              "display_name": {
                "type": "string",
                "minLength": 1,
                "description": "Human-readable provider display name."
              },
              "auth_mode": {
                "type": "string",
                "minLength": 1,
                "description": "Authentication mode used by this provider."
              },
              "categories": {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Provider category slug."
                },
                "description": "Provider categories assigned by Nango."
              },
              "docs": {
                "type": "string",
                "description": "Nango documentation URL for this provider.",
                "format": "uri"
              },
              "proxy": {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "Nango proxy configuration for this provider."
              }
            },
            "additionalProperties": true,
            "description": "Nango provider configuration returned by the API."
          }
        },
        "additionalProperties": false,
        "required": [
          "data"
        ],
        "description": "Nango provider returned by the API."
      }
    },
    {
      "id": "nango.list_connections",
      "service": "nango",
      "name": "list_connections",
      "description": "List Nango connections without credentials.",
      "requiredScopes": [
        "environment:connections:list"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "connectionId": {
            "type": "string",
            "minLength": 1,
            "description": "Exact connection ID to match."
          },
          "search": {
            "type": "string",
            "minLength": 1,
            "description": "Search text to partially match connection IDs or end-user profiles."
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "maxLength": 255,
              "description": "Connection tag value."
            },
            "description": "Connection tags keyed by tag name. Nango normalizes keys to lowercase.",
            "maxProperties": 10
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "description": "Maximum number of connections to return."
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number to retrieve."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for listing Nango connections."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "connections": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "Internal Nango connection ID."
                },
                "connection_id": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Connection ID used when the connection was created."
                },
                "provider": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Nango provider configuration slug."
                },
                "provider_config_key": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Integration ID used to create the connection, also called the unique key."
                },
                "created": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Connection creation timestamp returned by Nango."
                },
                "metadata": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {},
                      "additionalProperties": true,
                      "description": "Custom metadata attached to the connection."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "tags": {
                  "type": "object",
                  "additionalProperties": {
                    "type": "string",
                    "maxLength": 255,
                    "description": "Connection tag value."
                  },
                  "description": "Connection tags keyed by tag name. Nango normalizes keys to lowercase.",
                  "maxProperties": 10
                },
                "errors": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Connection error type, such as auth or sync."
                      },
                      "log_id": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Nango log identifier for this connection error."
                      }
                    },
                    "additionalProperties": false,
                    "required": [
                      "type",
                      "log_id"
                    ],
                    "description": "Nango connection error."
                  },
                  "description": "Connection errors returned by Nango."
                },
                "end_user": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {},
                      "additionalProperties": true,
                      "description": "Deprecated end-user details returned by Nango."
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "additionalProperties": true,
              "required": [
                "id",
                "connection_id",
                "provider",
                "provider_config_key",
                "created",
                "metadata",
                "tags",
                "errors"
              ],
              "description": "Nango connection summary returned by the list endpoint."
            },
            "description": "Nango connection summaries."
          }
        },
        "additionalProperties": false,
        "required": [
          "connections"
        ],
        "description": "Nango connections returned by the API."
      }
    },
    {
      "id": "nango.list_integrations",
      "service": "nango",
      "name": "list_integrations",
      "description": "List integrations configured in the Nango environment.",
      "requiredScopes": [
        "environment:integrations:list"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "Input parameters for listing Nango integrations."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "unique_key": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The integration ID created in Nango."
                },
                "display_name": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Provider display name for this integration."
                },
                "provider": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Nango provider configuration slug."
                },
                "logo": {
                  "type": "string",
                  "description": "Absolute URL to the integration logo.",
                  "format": "uri"
                },
                "created_at": {
                  "type": "string",
                  "description": "Timestamp when the integration was created.",
                  "format": "date-time"
                },
                "updated_at": {
                  "type": "string",
                  "description": "Timestamp when the integration was last updated.",
                  "format": "date-time"
                },
                "forward_webhooks": {
                  "type": "boolean",
                  "description": "Whether provider webhooks are forwarded to your backend."
                }
              },
              "additionalProperties": true,
              "required": [
                "unique_key",
                "display_name",
                "provider",
                "created_at",
                "updated_at"
              ],
              "description": "Nango integration returned by the API."
            },
            "description": "Nango integrations."
          }
        },
        "additionalProperties": false,
        "required": [
          "data"
        ],
        "description": "Nango integrations returned by the API."
      }
    },
    {
      "id": "nango.list_providers",
      "service": "nango",
      "name": "list_providers",
      "description": "List provider configurations available in Nango.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "Input parameters for listing Nango providers."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Nango provider name."
                },
                "display_name": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Human-readable provider display name."
                },
                "auth_mode": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Authentication mode used by this provider."
                },
                "categories": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Provider category slug."
                  },
                  "description": "Provider categories assigned by Nango."
                },
                "docs": {
                  "type": "string",
                  "description": "Nango documentation URL for this provider.",
                  "format": "uri"
                },
                "proxy": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "Nango proxy configuration for this provider."
                }
              },
              "additionalProperties": true,
              "description": "Nango provider configuration returned by the API."
            },
            "description": "Available Nango providers."
          }
        },
        "additionalProperties": false,
        "required": [
          "data"
        ],
        "description": "Nango providers returned by the API."
      }
    },
    {
      "id": "nango.patch_connection_tags",
      "service": "nango",
      "name": "patch_connection_tags",
      "description": "Edit tags for a Nango connection.",
      "requiredScopes": [
        "environment:connections:update"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "connection_id": {
            "type": "string",
            "minLength": 1,
            "description": "Connection ID used when the connection was created."
          },
          "provider_config_key": {
            "type": "string",
            "minLength": 1,
            "description": "Integration ID used to create the connection, also called the unique key."
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "maxLength": 255,
              "description": "Connection tag value."
            },
            "description": "Connection tags keyed by tag name. Nango normalizes keys to lowercase.",
            "maxProperties": 10
          }
        },
        "additionalProperties": false,
        "required": [
          "connection_id",
          "provider_config_key",
          "tags"
        ],
        "description": "Input parameters for editing Nango connection tags."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether the operation succeeded."
          }
        },
        "additionalProperties": true,
        "description": "Operation result returned by Nango."
      }
    },
    {
      "id": "nango.set_connection_metadata",
      "service": "nango",
      "name": "set_connection_metadata",
      "description": "Replace metadata for one or more Nango connections.",
      "requiredScopes": [
        "environment:connections:update"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "connection_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Single connection ID."
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Connection ID."
                },
                "description": "Multiple connection IDs.",
                "minItems": 1
              }
            ],
            "description": "One or more Nango connection IDs."
          },
          "provider_config_key": {
            "type": "string",
            "minLength": 1,
            "description": "Integration ID used to create the connection, also called the unique key."
          },
          "metadata": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Metadata object that replaces the current connection metadata."
          }
        },
        "additionalProperties": false,
        "required": [
          "connection_id",
          "provider_config_key",
          "metadata"
        ],
        "description": "Input parameters for setting Nango connection metadata."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "connection_id": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Single connection ID."
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Connection ID."
                },
                "description": "Multiple connection IDs.",
                "minItems": 1
              }
            ],
            "description": "One or more Nango connection IDs."
          },
          "provider_config_key": {
            "type": "string",
            "minLength": 1,
            "description": "Integration ID used to create the connection, also called the unique key."
          },
          "metadata": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Metadata now attached to the connection."
          }
        },
        "additionalProperties": true,
        "required": [
          "connection_id",
          "provider_config_key",
          "metadata"
        ],
        "description": "Result returned after setting Nango connection metadata."
      }
    }
  ]
}
