{
  "service": "benchmark_email",
  "displayName": "Benchmark Email",
  "categories": [
    "Marketing",
    "Communication"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Token",
      "placeholder": "BENCHMARK_EMAIL_API_TOKEN",
      "description": "Benchmark Email API token used in XMLAPI query parameters (token/method/output=json). Create or view it from your Benchmark Email developer settings and API guide: https://www.benchmarkemail.com/features/api/.",
      "extraFields": [
        {
          "key": "baseUrl",
          "label": "API Base URL",
          "inputType": "text",
          "required": true,
          "secret": false,
          "placeholder": "https://api.benchmarkemail.com/1.0",
          "description": "The Benchmark Email API base URL for your account region. Use the host documented in the Benchmark API guide or your account's developer settings: https://www.benchmarkemail.com/download/Benchmark-API-Getting-Started-Guide.pdf."
        }
      ]
    }
  ],
  "homepageUrl": "https://www.benchmarkemail.com",
  "actions": [
    {
      "id": "benchmark_email.get_account_summary",
      "service": "benchmark_email",
      "name": "get_account_summary",
      "description": "Get the current Benchmark Email account summary and image storage plan details.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "This action does not require any input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "FreePlan": {
            "type": "integer",
            "description": "Whether the account is on the free plan: 1 for free, 0 for paid."
          },
          "Limit": {
            "type": "integer",
            "description": "The total image storage limit available for the account."
          }
        },
        "additionalProperties": false,
        "required": [
          "FreePlan",
          "Limit"
        ],
        "description": "The Benchmark Email account summary response."
      }
    },
    {
      "id": "benchmark_email.get_contact_details",
      "service": "benchmark_email",
      "name": "get_contact_details",
      "description": "Get detailed information for a specific Benchmark Email contact email within a specific list.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "list_id": {
            "type": "string",
            "minLength": 1,
            "description": "The contact list identifier that contains the contact."
          },
          "email": {
            "type": "string",
            "description": "The email address of the contact to look up within the list.",
            "format": "email"
          }
        },
        "additionalProperties": false,
        "required": [
          "list_id",
          "email"
        ],
        "description": "The input payload for reading a single contact from a Benchmark Email list."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "Status": {
            "type": "string",
            "enum": [
              "1",
              "-1"
            ],
            "description": "The status code returned by Benchmark Email for this response wrapper."
          },
          "Data": {
            "type": "object",
            "properties": {
              "ID": {
                "type": "string",
                "description": "The unique contact identifier in the list."
              },
              "Email": {
                "type": "string",
                "description": "The contact email address."
              },
              "Status": {
                "type": "string",
                "description": "The contact status code returned by Benchmark Email."
              },
              "FirstName": {
                "type": "string",
                "description": "The contact first name."
              },
              "LastName": {
                "type": "string",
                "description": "The contact last name."
              },
              "MiddleName": {
                "type": "string",
                "description": "The contact middle name."
              },
              "EmailType": {
                "type": "string",
                "description": "The email type classification returned by Benchmark Email."
              },
              "ContactMasterID": {
                "type": "string",
                "description": "The Benchmark Email master contact identifier."
              },
              "Optin": {
                "type": "string",
                "description": "The contact opt-in status."
              },
              "EmailPerm": {
                "type": "string",
                "description": "The email permission flag returned by Benchmark Email."
              },
              "Rating": {
                "type": "string",
                "description": "The contact rating score."
              }
            },
            "additionalProperties": true,
            "description": "The detailed contact payload returned by Benchmark Email, including standard and custom field values."
          }
        },
        "additionalProperties": false,
        "required": [
          "Status"
        ],
        "description": "The detailed contact wrapper returned by Benchmark Email."
      }
    },
    {
      "id": "benchmark_email.get_contact_list_summary",
      "service": "benchmark_email",
      "name": "get_contact_list_summary",
      "description": "Get summary counts for a Benchmark Email contact list, including active, bounced, pending, and unsubscribed contacts.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "list_id": {
            "type": "string",
            "minLength": 1,
            "description": "The contact list identifier to summarize."
          }
        },
        "additionalProperties": false,
        "required": [
          "list_id"
        ],
        "description": "The input payload for reading Benchmark Email contact list summary metrics."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "Status": {
            "type": "string",
            "enum": [
              "1",
              "-1"
            ],
            "description": "The status code returned by Benchmark Email for this response wrapper."
          },
          "Data": {
            "type": "object",
            "properties": {
              "TotalContacts": {
                "type": "integer",
                "description": "The total number of contacts in the list."
              },
              "ActiveContacts": {
                "type": "integer",
                "description": "The number of active contacts in the list."
              },
              "BouncedContacts": {
                "type": "integer",
                "description": "The number of bounced contacts in the list."
              },
              "PendingContacts": {
                "type": "integer",
                "description": "The number of pending contacts in the list."
              },
              "UnsubscribedContacts": {
                "type": "integer",
                "description": "The number of unsubscribed contacts in the list."
              }
            },
            "additionalProperties": false,
            "description": "The contact list summary metrics returned by Benchmark Email."
          }
        },
        "additionalProperties": false,
        "required": [
          "Status"
        ],
        "description": "The contact list summary wrapper returned by Benchmark Email."
      }
    },
    {
      "id": "benchmark_email.get_contacts_in_list",
      "service": "benchmark_email",
      "name": "get_contacts_in_list",
      "description": "Get paginated contacts from a Benchmark Email list with optional search, filter, and sorting parameters.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "list_id": {
            "type": "string",
            "minLength": 1,
            "description": "The contact list identifier to query."
          },
          "language": {
            "type": "string",
            "minLength": 1,
            "description": "The Benchmark Email language code forwarded to listGetFilteredContacts when needed."
          },
          "filter": {
            "type": "string",
            "enum": [
              "2",
              "5",
              "100"
            ],
            "description": "The predefined contact subset filter returned by Benchmark Email."
          },
          "order_by": {
            "type": "string",
            "enum": [
              "email",
              "firstname",
              "lastname",
              "date"
            ],
            "description": "The contact field used for sorting list results."
          },
          "sort_order": {
            "type": "string",
            "enum": [
              "asc",
              "desc"
            ],
            "description": "The sort direction used for contact list results."
          },
          "page_size": {
            "type": "integer",
            "minimum": 1,
            "description": "The number of contacts to return per page."
          },
          "page_number": {
            "type": "integer",
            "minimum": 1,
            "description": "The page number to return, starting at 1."
          },
          "search_type": {
            "type": "string",
            "enum": [
              "1",
              "2",
              "3",
              "4"
            ],
            "description": "The search match mode used when filtering contacts in a list."
          },
          "search_field": {
            "type": "string",
            "minLength": 1,
            "description": "The field name to search, such as email or firstname."
          },
          "search_filter": {
            "type": "string",
            "minLength": 1,
            "description": "The text filter to apply when searching within contacts."
          }
        },
        "additionalProperties": false,
        "required": [
          "list_id"
        ],
        "description": "The input payload for reading paginated contacts from a Benchmark Email list."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "Status": {
            "type": "string",
            "enum": [
              "1",
              "-1"
            ],
            "description": "The status code returned by Benchmark Email for this response wrapper."
          },
          "Count": {
            "type": "integer",
            "description": "The total number of contacts matching the current list query."
          },
          "Data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "ID": {
                  "type": "string",
                  "description": "The unique contact entry identifier in the list."
                },
                "Email": {
                  "type": "string",
                  "description": "The contact email address."
                },
                "ReSend": {
                  "type": "string",
                  "description": "The Benchmark Email resend indicator or action token."
                },
                "LastName": {
                  "type": "string",
                  "description": "The contact last name."
                },
                "EmailType": {
                  "type": "string",
                  "description": "The email type classification returned by Benchmark Email."
                },
                "FirstName": {
                  "type": "string",
                  "description": "The contact first name."
                },
                "MiddleName": {
                  "type": "string",
                  "description": "The contact middle name."
                },
                "CreatedDate": {
                  "type": "string",
                  "description": "The date when the contact was created."
                },
                "UpdatedDate": {
                  "type": "string",
                  "description": "The date when the contact was last updated."
                },
                "ContactMasterID": {
                  "type": "string",
                  "description": "The Benchmark Email master contact identifier."
                }
              },
              "additionalProperties": false,
              "description": "A single contact record returned from a Benchmark Email contact list query."
            },
            "description": "The contacts returned for the current page."
          }
        },
        "additionalProperties": false,
        "required": [
          "Status"
        ],
        "description": "The paginated contacts wrapper returned by Benchmark Email."
      }
    }
  ]
}
