{
  "service": "feathery",
  "displayName": "Feathery",
  "categories": [
    "Productivity",
    "Marketing"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "FEATHERY_API_KEY",
      "description": "Feathery API key sent as Authorization: Token <key>. View and manage API keys in Feathery developer settings: https://docs.feathery.io/developers/api."
    }
  ],
  "homepageUrl": "https://www.feathery.io/",
  "actions": [
    {
      "id": "feathery.create_hidden_field",
      "service": "feathery",
      "name": "create_hidden_field",
      "description": "Create a Feathery hidden field by field ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "field_id": {
            "type": "string",
            "minLength": 1,
            "description": "The Feathery hidden field ID.",
            "pattern": "\\S"
          }
        },
        "additionalProperties": false,
        "required": [
          "field_id"
        ],
        "description": "Input payload for one Feathery hidden field."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "hiddenField": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1,
                "description": "The hidden field ID.",
                "pattern": "\\S"
              },
              "field_id": {
                "type": "string",
                "minLength": 1,
                "description": "The hidden field ID returned by write endpoints.",
                "pattern": "\\S"
              },
              "type": {
                "type": "string",
                "minLength": 1,
                "description": "The hidden field value type.",
                "pattern": "\\S"
              },
              "internal_id": {
                "type": "string",
                "minLength": 1,
                "description": "The Feathery internal hidden field identifier.",
                "pattern": "\\S"
              },
              "created_at": {
                "type": "string",
                "minLength": 1,
                "description": "The timestamp when the hidden field was created.",
                "pattern": "\\S"
              },
              "updated_at": {
                "type": "string",
                "minLength": 1,
                "description": "The timestamp when the hidden field was last updated.",
                "pattern": "\\S"
              }
            },
            "additionalProperties": true,
            "description": "One Feathery hidden field."
          }
        },
        "additionalProperties": false,
        "required": [
          "hiddenField"
        ],
        "description": "The normalized Feathery hidden-field create response."
      }
    },
    {
      "id": "feathery.create_or_fetch_user",
      "service": "feathery",
      "name": "create_or_fetch_user",
      "description": "Create a Feathery user or fetch the existing user by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The Feathery user ID.",
            "pattern": "\\S"
          }
        },
        "additionalProperties": false,
        "required": [
          "id"
        ],
        "description": "Input payload for one Feathery user."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "user": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1,
                "description": "The Feathery user ID.",
                "pattern": "\\S"
              },
              "created_at": {
                "type": "string",
                "minLength": 1,
                "description": "The timestamp when the user was created.",
                "pattern": "\\S"
              },
              "sdk_key": {
                "type": "string",
                "minLength": 1,
                "description": "The SDK key returned for this Feathery user.",
                "pattern": "\\S"
              }
            },
            "additionalProperties": true,
            "description": "One Feathery end user."
          }
        },
        "additionalProperties": false,
        "required": [
          "user"
        ],
        "description": "The normalized Feathery create-or-fetch-user response."
      }
    },
    {
      "id": "feathery.create_or_update_form_submissions",
      "service": "feathery",
      "name": "create_or_update_form_submissions",
      "description": "Create or update Feathery form submissions for one form.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "form_id": {
            "type": "string",
            "minLength": 1,
            "description": "The Feathery form ID.",
            "pattern": "\\S"
          },
          "submissions": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "One Feathery submission object."
            },
            "description": "The Feathery submission objects to create or update.",
            "minItems": 1
          }
        },
        "additionalProperties": false,
        "required": [
          "form_id",
          "submissions"
        ],
        "description": "Input payload for creating or updating Feathery form submissions."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Feathery submission write payload."
          }
        },
        "additionalProperties": false,
        "required": [
          "result"
        ],
        "description": "The normalized Feathery submission write response."
      }
    },
    {
      "id": "feathery.delete_hidden_field",
      "service": "feathery",
      "name": "delete_hidden_field",
      "description": "Delete one Feathery hidden field by field ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "field_id": {
            "type": "string",
            "minLength": 1,
            "description": "The Feathery hidden field ID.",
            "pattern": "\\S"
          }
        },
        "additionalProperties": false,
        "required": [
          "field_id"
        ],
        "description": "Input payload for one Feathery hidden field."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "deleted": {
            "type": "boolean",
            "description": "Whether the delete request completed successfully."
          },
          "field_id": {
            "type": "string",
            "minLength": 1,
            "description": "The deleted Feathery hidden field ID.",
            "pattern": "\\S"
          },
          "raw": {
            "description": "The raw response returned by Feathery."
          }
        },
        "additionalProperties": false,
        "required": [
          "deleted",
          "field_id",
          "raw"
        ],
        "description": "The normalized Feathery hidden-field delete response."
      }
    },
    {
      "id": "feathery.delete_user",
      "service": "feathery",
      "name": "delete_user",
      "description": "Delete one Feathery user by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The Feathery user ID.",
            "pattern": "\\S"
          }
        },
        "additionalProperties": false,
        "required": [
          "id"
        ],
        "description": "Input payload for one Feathery user."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "deleted": {
            "type": "boolean",
            "description": "Whether the delete request completed successfully."
          },
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The deleted Feathery user ID.",
            "pattern": "\\S"
          },
          "raw": {
            "description": "The raw response returned by Feathery."
          }
        },
        "additionalProperties": false,
        "required": [
          "deleted",
          "id",
          "raw"
        ],
        "description": "The normalized Feathery delete-user response."
      }
    },
    {
      "id": "feathery.edit_hidden_field",
      "service": "feathery",
      "name": "edit_hidden_field",
      "description": "Rename or edit a Feathery hidden field by field ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "field_id": {
            "type": "string",
            "minLength": 1,
            "description": "The existing Feathery hidden field ID.",
            "pattern": "\\S"
          },
          "new_field_id": {
            "type": "string",
            "minLength": 1,
            "description": "The replacement Feathery hidden field ID.",
            "pattern": "\\S"
          }
        },
        "additionalProperties": false,
        "required": [
          "field_id",
          "new_field_id"
        ],
        "description": "Input payload for editing one Feathery hidden field."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "hiddenField": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1,
                "description": "The hidden field ID.",
                "pattern": "\\S"
              },
              "field_id": {
                "type": "string",
                "minLength": 1,
                "description": "The hidden field ID returned by write endpoints.",
                "pattern": "\\S"
              },
              "type": {
                "type": "string",
                "minLength": 1,
                "description": "The hidden field value type.",
                "pattern": "\\S"
              },
              "internal_id": {
                "type": "string",
                "minLength": 1,
                "description": "The Feathery internal hidden field identifier.",
                "pattern": "\\S"
              },
              "created_at": {
                "type": "string",
                "minLength": 1,
                "description": "The timestamp when the hidden field was created.",
                "pattern": "\\S"
              },
              "updated_at": {
                "type": "string",
                "minLength": 1,
                "description": "The timestamp when the hidden field was last updated.",
                "pattern": "\\S"
              }
            },
            "additionalProperties": true,
            "description": "One Feathery hidden field."
          }
        },
        "additionalProperties": false,
        "required": [
          "hiddenField"
        ],
        "description": "The normalized Feathery hidden-field edit response."
      }
    },
    {
      "id": "feathery.get_account_info",
      "service": "feathery",
      "name": "get_account_info",
      "description": "Retrieve Feathery team and account information for the authenticated API key.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "No input parameters are required for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "account": {
            "type": "object",
            "properties": {
              "team": {
                "type": "string",
                "minLength": 1,
                "description": "The Feathery team name.",
                "pattern": "\\S"
              },
              "accounts": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "minLength": 1,
                      "description": "The Feathery account member ID.",
                      "pattern": "\\S"
                    },
                    "email": {
                      "type": "string",
                      "description": "The account member email address.",
                      "format": "email"
                    },
                    "role": {
                      "type": "string",
                      "minLength": 1,
                      "description": "The account member role.",
                      "pattern": "\\S"
                    }
                  },
                  "additionalProperties": true,
                  "description": "One Feathery account member."
                },
                "description": "The accounts belonging to the Feathery team."
              }
            },
            "additionalProperties": true,
            "description": "The Feathery account information returned for the API key."
          }
        },
        "additionalProperties": false,
        "required": [
          "account"
        ],
        "description": "The normalized Feathery account response."
      }
    },
    {
      "id": "feathery.get_form_schema",
      "service": "feathery",
      "name": "get_form_schema",
      "description": "Retrieve the complete schema for one Feathery form.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "form_id": {
            "type": "string",
            "minLength": 1,
            "description": "The Feathery form ID.",
            "pattern": "\\S"
          }
        },
        "additionalProperties": false,
        "required": [
          "form_id"
        ],
        "description": "Input payload for one Feathery form."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "schema": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Feathery form schema payload."
          }
        },
        "additionalProperties": false,
        "required": [
          "schema"
        ],
        "description": "The normalized Feathery form-schema response."
      }
    },
    {
      "id": "feathery.get_user_data",
      "service": "feathery",
      "name": "get_user_data",
      "description": "Retrieve all Feathery field data, optionally scoped to one user.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The Feathery user ID whose field data should be returned.",
            "pattern": "\\S"
          }
        },
        "additionalProperties": false,
        "description": "Optional input payload for reading Feathery user field data."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "fields": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The field ID.",
                  "pattern": "\\S"
                },
                "type": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The field value type.",
                  "pattern": "\\S"
                },
                "value": {
                  "description": "The submitted field value returned by Feathery."
                },
                "hidden": {
                  "type": "boolean",
                  "description": "Whether this entry is a hidden field."
                },
                "internal_id": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The Feathery internal field identifier.",
                  "pattern": "\\S"
                },
                "display_text": {
                  "type": "string",
                  "description": "The human-readable field label when returned."
                },
                "created_at": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The timestamp when this field was created.",
                  "pattern": "\\S"
                },
                "updated_at": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The timestamp when this field was last updated.",
                  "pattern": "\\S"
                }
              },
              "additionalProperties": true,
              "description": "One Feathery field data entry."
            },
            "description": "The Feathery field data entries returned by the API."
          }
        },
        "additionalProperties": false,
        "required": [
          "fields"
        ],
        "description": "The normalized Feathery user data response."
      }
    },
    {
      "id": "feathery.get_user_session",
      "service": "feathery",
      "name": "get_user_session",
      "description": "Retrieve Feathery form session and progress data for one user.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "user_id": {
            "type": "string",
            "minLength": 1,
            "description": "The Feathery user ID.",
            "pattern": "\\S"
          }
        },
        "additionalProperties": false,
        "required": [
          "user_id"
        ],
        "description": "Input payload for one Feathery user session."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "session": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Feathery user session payload."
          }
        },
        "additionalProperties": false,
        "required": [
          "session"
        ],
        "description": "The normalized Feathery user-session response."
      }
    },
    {
      "id": "feathery.list_forms",
      "service": "feathery",
      "name": "list_forms",
      "description": "List Feathery forms, optionally filtered by tags.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "tags": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "One Feathery form tag.",
              "pattern": "\\S"
            },
            "description": "Only return forms that have all of these Feathery tags."
          }
        },
        "additionalProperties": false,
        "description": "Optional filters for listing Feathery forms."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "forms": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The Feathery form ID.",
                  "pattern": "\\S"
                },
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The Feathery form name.",
                  "pattern": "\\S"
                },
                "active": {
                  "type": "boolean",
                  "description": "Whether the Feathery form is active."
                },
                "tags": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "description": "One Feathery form tag."
                  },
                  "description": "The tags associated with the form."
                },
                "created_at": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The timestamp when the form was created.",
                  "pattern": "\\S"
                },
                "updated_at": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The timestamp when the form was last updated.",
                  "pattern": "\\S"
                },
                "internal_id": {
                  "type": "string",
                  "description": "The Feathery internal form identifier when returned."
                }
              },
              "additionalProperties": true,
              "description": "One Feathery form returned by the Forms API."
            },
            "description": "The Feathery forms returned by the API."
          }
        },
        "additionalProperties": false,
        "required": [
          "forms"
        ],
        "description": "The normalized Feathery form-list response."
      }
    },
    {
      "id": "feathery.list_hidden_fields",
      "service": "feathery",
      "name": "list_hidden_fields",
      "description": "List hidden fields configured in the Feathery account.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "No input parameters are required for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "hiddenFields": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The hidden field ID.",
                  "pattern": "\\S"
                },
                "field_id": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The hidden field ID returned by write endpoints.",
                  "pattern": "\\S"
                },
                "type": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The hidden field value type.",
                  "pattern": "\\S"
                },
                "internal_id": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The Feathery internal hidden field identifier.",
                  "pattern": "\\S"
                },
                "created_at": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The timestamp when the hidden field was created.",
                  "pattern": "\\S"
                },
                "updated_at": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The timestamp when the hidden field was last updated.",
                  "pattern": "\\S"
                }
              },
              "additionalProperties": true,
              "description": "One Feathery hidden field."
            },
            "description": "The hidden fields returned by Feathery."
          }
        },
        "additionalProperties": false,
        "required": [
          "hiddenFields"
        ],
        "description": "The normalized Feathery hidden-field list response."
      }
    },
    {
      "id": "feathery.list_users",
      "service": "feathery",
      "name": "list_users",
      "description": "List Feathery users with optional creation-time and field-value filters.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "created_after": {
            "type": "string",
            "description": "Return users created on or after this ISO timestamp."
          },
          "created_before": {
            "type": "string",
            "description": "Return users created on or before this ISO timestamp."
          },
          "filter_field_id": {
            "type": "string",
            "description": "The form or hidden field ID used to filter users."
          },
          "filter_field_value": {
            "type": "string",
            "description": "The value matched for filter_field_id."
          }
        },
        "additionalProperties": false,
        "description": "Optional filters for listing Feathery users."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "users": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The Feathery user ID.",
                  "pattern": "\\S"
                },
                "created_at": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The timestamp when the user was created.",
                  "pattern": "\\S"
                },
                "sdk_key": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The SDK key returned for this Feathery user.",
                  "pattern": "\\S"
                }
              },
              "additionalProperties": true,
              "description": "One Feathery end user."
            },
            "description": "The Feathery users returned by the API."
          }
        },
        "additionalProperties": false,
        "required": [
          "users"
        ],
        "description": "The normalized Feathery user-list response."
      }
    }
  ]
}
