{
  "service": "chattermill",
  "displayName": "Chattermill",
  "categories": [
    "Data",
    "Marketing"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "chattermill_api_key",
      "description": "Chattermill API key sent as a Bearer token in the Authorization header. Create or copy it from the Chattermill API settings page: https://app.chattermill.com/settings/api."
    }
  ],
  "homepageUrl": "https://chattermill.com",
  "actions": [
    {
      "id": "chattermill.create_response",
      "service": "chattermill",
      "name": "create_response",
      "description": "Create a response in a Chattermill project.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "project": {
            "type": "string",
            "minLength": 1,
            "description": "Chattermill project key or identifier used in the API path."
          },
          "response": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw Chattermill object."
          }
        },
        "additionalProperties": false,
        "required": [
          "project",
          "response"
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "response": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw Chattermill object."
          },
          "raw": {
            "description": "Raw Chattermill response payload."
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "chattermill.delete_response",
      "service": "chattermill",
      "name": "delete_response",
      "description": "Permanently delete a Chattermill response by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "project": {
            "type": "string",
            "minLength": 1,
            "description": "Chattermill project key or identifier used in the API path."
          },
          "responseId": {
            "type": "string",
            "minLength": 1,
            "description": "Chattermill resource identifier used in the API path."
          }
        },
        "additionalProperties": false,
        "required": [
          "project",
          "responseId"
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "deleted": {
            "type": "boolean",
            "description": "Whether the deletion request was sent."
          },
          "responseId": {
            "type": "string",
            "minLength": 1,
            "description": "Chattermill resource identifier used in the API path."
          },
          "raw": {
            "description": "Raw Chattermill response payload."
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "chattermill.get_attribute",
      "service": "chattermill",
      "name": "get_attribute",
      "description": "Get a Chattermill attribute by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "project": {
            "type": "string",
            "minLength": 1,
            "description": "Chattermill project key or identifier used in the API path."
          },
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Chattermill resource identifier used in the API path."
          }
        },
        "additionalProperties": false,
        "required": [
          "project",
          "id"
        ],
        "description": "Input identifying a Chattermill project resource."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "attribute": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw Chattermill object."
          },
          "raw": {
            "description": "Raw Chattermill response payload."
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "chattermill.get_category",
      "service": "chattermill",
      "name": "get_category",
      "description": "Get a Chattermill category by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "project": {
            "type": "string",
            "minLength": 1,
            "description": "Chattermill project key or identifier used in the API path."
          },
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Chattermill resource identifier used in the API path."
          }
        },
        "additionalProperties": false,
        "required": [
          "project",
          "id"
        ],
        "description": "Input identifying a Chattermill project resource."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "category": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw Chattermill object."
          },
          "raw": {
            "description": "Raw Chattermill response payload."
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "chattermill.get_data_source",
      "service": "chattermill",
      "name": "get_data_source",
      "description": "Get a Chattermill data source by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "project": {
            "type": "string",
            "minLength": 1,
            "description": "Chattermill project key or identifier used in the API path."
          },
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Chattermill resource identifier used in the API path."
          }
        },
        "additionalProperties": false,
        "required": [
          "project",
          "id"
        ],
        "description": "Input identifying a Chattermill project resource."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "dataSource": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw Chattermill object."
          },
          "raw": {
            "description": "Raw Chattermill response payload."
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "chattermill.get_data_type",
      "service": "chattermill",
      "name": "get_data_type",
      "description": "Get a Chattermill data type by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "project": {
            "type": "string",
            "minLength": 1,
            "description": "Chattermill project key or identifier used in the API path."
          },
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Chattermill resource identifier used in the API path."
          }
        },
        "additionalProperties": false,
        "required": [
          "project",
          "id"
        ],
        "description": "Input identifying a Chattermill project resource."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "dataType": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw Chattermill object."
          },
          "raw": {
            "description": "Raw Chattermill response payload."
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "chattermill.get_metric",
      "service": "chattermill",
      "name": "get_metric",
      "description": "Get a Chattermill metric value for a project.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "project": {
            "type": "string",
            "minLength": 1,
            "description": "Chattermill project key or identifier used in the API path."
          },
          "type": {
            "type": "string",
            "minLength": 1,
            "description": "Chattermill resource identifier used in the API path."
          }
        },
        "additionalProperties": true,
        "description": "Input for reading a metric."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "metric": {
            "description": "Raw Chattermill response payload."
          },
          "raw": {
            "description": "Raw Chattermill response payload."
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "chattermill.get_project",
      "service": "chattermill",
      "name": "get_project",
      "description": "Get a Chattermill project by project ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Chattermill resource identifier used in the API path."
          }
        },
        "additionalProperties": false,
        "required": [
          "id"
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "project": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw Chattermill object."
          },
          "raw": {
            "description": "Raw Chattermill response payload."
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "chattermill.get_response",
      "service": "chattermill",
      "name": "get_response",
      "description": "Get a single Chattermill response by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "project": {
            "type": "string",
            "minLength": 1,
            "description": "Chattermill project key or identifier used in the API path."
          },
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Chattermill resource identifier used in the API path."
          }
        },
        "additionalProperties": false,
        "required": [
          "project",
          "id"
        ],
        "description": "Input identifying a Chattermill project resource."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "response": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw Chattermill object."
          },
          "raw": {
            "description": "Raw Chattermill response payload."
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "chattermill.get_tag",
      "service": "chattermill",
      "name": "get_tag",
      "description": "Get a Chattermill tag by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "project": {
            "type": "string",
            "minLength": 1,
            "description": "Chattermill project key or identifier used in the API path."
          },
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Chattermill resource identifier used in the API path."
          }
        },
        "additionalProperties": false,
        "required": [
          "project",
          "id"
        ],
        "description": "Input identifying a Chattermill project resource."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "tag": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw Chattermill object."
          },
          "raw": {
            "description": "Raw Chattermill response payload."
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "chattermill.get_theme",
      "service": "chattermill",
      "name": "get_theme",
      "description": "Get a Chattermill theme by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "project": {
            "type": "string",
            "minLength": 1,
            "description": "Chattermill project key or identifier used in the API path."
          },
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Chattermill resource identifier used in the API path."
          }
        },
        "additionalProperties": false,
        "required": [
          "project",
          "id"
        ],
        "description": "Input identifying a Chattermill project resource."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "theme": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw Chattermill object."
          },
          "raw": {
            "description": "Raw Chattermill response payload."
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "chattermill.list_attributes",
      "service": "chattermill",
      "name": "list_attributes",
      "description": "List attributes for a Chattermill project.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "project": {
            "type": "string",
            "minLength": 1,
            "description": "Chattermill project key or identifier used in the API path."
          }
        },
        "additionalProperties": false,
        "required": [
          "project"
        ],
        "description": "Input identifying a Chattermill project."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "attributes": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "Raw Chattermill object."
            },
            "description": "Chattermill attributes returned by the API."
          },
          "raw": {
            "description": "Raw Chattermill response payload."
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "chattermill.list_categories",
      "service": "chattermill",
      "name": "list_categories",
      "description": "List categories for a Chattermill project.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "project": {
            "type": "string",
            "minLength": 1,
            "description": "Chattermill project key or identifier used in the API path."
          }
        },
        "additionalProperties": false,
        "required": [
          "project"
        ],
        "description": "Input identifying a Chattermill project."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "categories": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "Raw Chattermill object."
            },
            "description": "Chattermill categories returned by the API."
          },
          "raw": {
            "description": "Raw Chattermill response payload."
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "chattermill.list_custom_segments",
      "service": "chattermill",
      "name": "list_custom_segments",
      "description": "List custom segments for a Chattermill project.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "project": {
            "type": "string",
            "minLength": 1,
            "description": "Chattermill project key or identifier used in the API path."
          }
        },
        "additionalProperties": false,
        "required": [
          "project"
        ],
        "description": "Input identifying a Chattermill project."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "customSegments": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "Raw Chattermill object."
            },
            "description": "Chattermill customSegments returned by the API."
          },
          "raw": {
            "description": "Raw Chattermill response payload."
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "chattermill.list_data_sources",
      "service": "chattermill",
      "name": "list_data_sources",
      "description": "List data sources for a Chattermill project.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "project": {
            "type": "string",
            "minLength": 1,
            "description": "Chattermill project key or identifier used in the API path."
          }
        },
        "additionalProperties": false,
        "required": [
          "project"
        ],
        "description": "Input identifying a Chattermill project."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "dataSources": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "Raw Chattermill object."
            },
            "description": "Chattermill dataSources returned by the API."
          },
          "raw": {
            "description": "Raw Chattermill response payload."
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "chattermill.list_data_types",
      "service": "chattermill",
      "name": "list_data_types",
      "description": "List data types for a Chattermill project.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "project": {
            "type": "string",
            "minLength": 1,
            "description": "Chattermill project key or identifier used in the API path."
          }
        },
        "additionalProperties": false,
        "required": [
          "project"
        ],
        "description": "Input identifying a Chattermill project."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "dataTypes": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "Raw Chattermill object."
            },
            "description": "Chattermill dataTypes returned by the API."
          },
          "raw": {
            "description": "Raw Chattermill response payload."
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "chattermill.list_projects",
      "service": "chattermill",
      "name": "list_projects",
      "description": "List Chattermill projects accessible to the API key.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "Input for listing projects."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "projects": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "Raw Chattermill object."
            },
            "description": "Chattermill projects returned by the API."
          },
          "raw": {
            "description": "Raw Chattermill response payload."
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "chattermill.list_responses",
      "service": "chattermill",
      "name": "list_responses",
      "description": "List responses for a Chattermill project with optional filters.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "project": {
            "type": "string",
            "minLength": 1,
            "description": "Chattermill project key or identifier used in the API path."
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number to request from Chattermill."
          },
          "perPage": {
            "type": "integer",
            "minimum": 1,
            "description": "Maximum number of records to return per page."
          }
        },
        "additionalProperties": true,
        "description": "Filters accepted by Chattermill when listing responses."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "responses": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "Raw Chattermill object."
            },
            "description": "Chattermill responses returned by the API."
          },
          "raw": {
            "description": "Raw Chattermill response payload."
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "chattermill.list_tags",
      "service": "chattermill",
      "name": "list_tags",
      "description": "List tags for a Chattermill project.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "project": {
            "type": "string",
            "minLength": 1,
            "description": "Chattermill project key or identifier used in the API path."
          }
        },
        "additionalProperties": false,
        "required": [
          "project"
        ],
        "description": "Input identifying a Chattermill project."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "tags": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "Raw Chattermill object."
            },
            "description": "Chattermill tags returned by the API."
          },
          "raw": {
            "description": "Raw Chattermill response payload."
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "chattermill.list_themes",
      "service": "chattermill",
      "name": "list_themes",
      "description": "List themes for a Chattermill project.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "project": {
            "type": "string",
            "minLength": 1,
            "description": "Chattermill project key or identifier used in the API path."
          }
        },
        "additionalProperties": false,
        "required": [
          "project"
        ],
        "description": "Input identifying a Chattermill project."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "themes": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "Raw Chattermill object."
            },
            "description": "Chattermill themes returned by the API."
          },
          "raw": {
            "description": "Raw Chattermill response payload."
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "chattermill.search_responses",
      "service": "chattermill",
      "name": "search_responses",
      "description": "Search for Chattermill responses by response ID, user metadata, or custom criteria.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "project": {
            "type": "string",
            "minLength": 1,
            "description": "Chattermill project key or identifier used in the API path."
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number to request from Chattermill."
          },
          "perPage": {
            "type": "integer",
            "minimum": 1,
            "description": "Maximum number of records to return per page."
          }
        },
        "additionalProperties": true,
        "description": "Search criteria accepted by Chattermill."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "responses": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "Raw Chattermill object."
            },
            "description": "Chattermill responses returned by the API."
          },
          "raw": {
            "description": "Raw Chattermill response payload."
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "chattermill.update_response",
      "service": "chattermill",
      "name": "update_response",
      "description": "Update user metadata, segments, or other response fields in Chattermill.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "project": {
            "type": "string",
            "minLength": 1,
            "description": "Chattermill project key or identifier used in the API path."
          },
          "responseId": {
            "type": "string",
            "minLength": 1,
            "description": "Chattermill resource identifier used in the API path."
          },
          "response": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw Chattermill object."
          }
        },
        "additionalProperties": false,
        "required": [
          "project",
          "responseId",
          "response"
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "response": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw Chattermill object."
          },
          "raw": {
            "description": "Raw Chattermill response payload."
          }
        },
        "additionalProperties": false
      }
    }
  ]
}
