{
  "service": "emailoctopus",
  "displayName": "EmailOctopus",
  "categories": [
    "Communication",
    "Marketing"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "00000000-0000-0000-0000-000000000000",
      "description": "EmailOctopus API key used by the official v1 API. Create or manage it from the API key screen in your EmailOctopus account: https://help.emailoctopus.com/article/165-how-to-create-and-delete-api-keys"
    }
  ],
  "homepageUrl": "https://emailoctopus.com",
  "actions": [
    {
      "id": "emailoctopus.create_list_contact",
      "service": "emailoctopus",
      "name": "create_list_contact",
      "description": "Create a contact in an EmailOctopus mailing list.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "list_id": {
            "type": "string",
            "minLength": 1,
            "description": "EmailOctopus list identifier."
          },
          "email_address": {
            "type": "string",
            "description": "Contact email address accepted by the official EmailOctopus API.",
            "format": "email"
          },
          "fields": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Custom contact fields object accepted by the official EmailOctopus API."
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "Tag name accepted by the official EmailOctopus API."
            },
            "description": "Tag names accepted by the official create-contact API."
          },
          "status": {
            "type": "string",
            "minLength": 1,
            "description": "Contact status value accepted by the official EmailOctopus API."
          }
        },
        "additionalProperties": false,
        "required": [
          "list_id",
          "email_address"
        ],
        "description": "Request payload for creating a contact in an EmailOctopus list."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "contact": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Contact object returned by the official EmailOctopus API."
          }
        },
        "additionalProperties": false,
        "description": "Single EmailOctopus contact response normalized by the connector."
      }
    },
    {
      "id": "emailoctopus.delete_list_contact",
      "service": "emailoctopus",
      "name": "delete_list_contact",
      "description": "Delete a contact from an EmailOctopus mailing list.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "list_id": {
            "type": "string",
            "minLength": 1,
            "description": "EmailOctopus list identifier."
          },
          "contact_id": {
            "type": "string",
            "minLength": 1,
            "description": "EmailOctopus contact identifier."
          }
        },
        "additionalProperties": false,
        "description": "Path parameters for fetching or deleting a single EmailOctopus contact."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether EmailOctopus accepted the operation."
          }
        },
        "additionalProperties": false,
        "description": "Success marker returned after an EmailOctopus no-content response."
      }
    },
    {
      "id": "emailoctopus.get_campaign",
      "service": "emailoctopus",
      "name": "get_campaign",
      "description": "Fetch a single EmailOctopus campaign by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "campaign_id": {
            "type": "string",
            "minLength": 1,
            "description": "EmailOctopus campaign identifier."
          }
        },
        "additionalProperties": false,
        "description": "Path parameters for fetching a single EmailOctopus campaign."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "campaign": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Campaign object returned by the official EmailOctopus API."
          }
        },
        "additionalProperties": false,
        "description": "Single EmailOctopus campaign response normalized by the connector."
      }
    },
    {
      "id": "emailoctopus.get_list",
      "service": "emailoctopus",
      "name": "get_list",
      "description": "Fetch a single EmailOctopus mailing list by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "list_id": {
            "type": "string",
            "minLength": 1,
            "description": "EmailOctopus list identifier."
          }
        },
        "additionalProperties": false,
        "description": "Path parameters for fetching a single EmailOctopus list."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "list": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "List object returned by the official EmailOctopus API."
          }
        },
        "additionalProperties": false,
        "description": "Single EmailOctopus list response normalized by the connector."
      }
    },
    {
      "id": "emailoctopus.get_list_contact",
      "service": "emailoctopus",
      "name": "get_list_contact",
      "description": "Fetch a single contact from an EmailOctopus mailing list.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "list_id": {
            "type": "string",
            "minLength": 1,
            "description": "EmailOctopus list identifier."
          },
          "contact_id": {
            "type": "string",
            "minLength": 1,
            "description": "EmailOctopus contact identifier."
          }
        },
        "additionalProperties": false,
        "description": "Path parameters for fetching or deleting a single EmailOctopus contact."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "contact": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Contact object returned by the official EmailOctopus API."
          }
        },
        "additionalProperties": false,
        "description": "Single EmailOctopus contact response normalized by the connector."
      }
    },
    {
      "id": "emailoctopus.list_campaigns",
      "service": "emailoctopus",
      "name": "list_campaigns",
      "description": "List EmailOctopus campaigns available to the current API key.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Maximum number of records to return, up to 100."
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Specific 1-based page number to request."
          }
        },
        "additionalProperties": false,
        "description": "Query parameters for listing EmailOctopus campaigns."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "campaigns": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "Campaign object returned by the official EmailOctopus API."
            },
            "description": "Campaigns returned by the official EmailOctopus API."
          },
          "paging": {
            "type": "object",
            "properties": {
              "limit": {
                "type": "integer",
                "minimum": 1,
                "description": "Page size returned by the official API."
              },
              "current_page": {
                "type": "integer",
                "minimum": 1,
                "description": "Current page number returned by the official API."
              },
              "total_pages": {
                "type": "integer",
                "minimum": 1,
                "description": "Total number of pages returned by the official API."
              },
              "next_page": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "URL of the next page, if available."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "prev_page": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "URL of the previous page, if available."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": true,
            "description": "Pagination object returned by the official EmailOctopus API."
          }
        },
        "additionalProperties": false,
        "required": [
          "campaigns"
        ],
        "description": "Paginated EmailOctopus campaign collection response normalized by the connector."
      }
    },
    {
      "id": "emailoctopus.list_list_contacts",
      "service": "emailoctopus",
      "name": "list_list_contacts",
      "description": "List contacts in a specific EmailOctopus mailing list.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "list_id": {
            "type": "string",
            "minLength": 1,
            "description": "EmailOctopus list identifier."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Maximum number of records to return, up to 100."
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Specific 1-based page number to request."
          }
        },
        "additionalProperties": false,
        "required": [
          "list_id"
        ],
        "description": "Path and query parameters for listing contacts in an EmailOctopus list."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "contacts": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "Contact object returned by the official EmailOctopus API."
            },
            "description": "Contacts returned by the official EmailOctopus API."
          },
          "paging": {
            "type": "object",
            "properties": {
              "limit": {
                "type": "integer",
                "minimum": 1,
                "description": "Page size returned by the official API."
              },
              "current_page": {
                "type": "integer",
                "minimum": 1,
                "description": "Current page number returned by the official API."
              },
              "total_pages": {
                "type": "integer",
                "minimum": 1,
                "description": "Total number of pages returned by the official API."
              },
              "next_page": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "URL of the next page, if available."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "prev_page": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "URL of the previous page, if available."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": true,
            "description": "Pagination object returned by the official EmailOctopus API."
          }
        },
        "additionalProperties": false,
        "required": [
          "contacts"
        ],
        "description": "Paginated EmailOctopus contact collection response normalized by the connector."
      }
    },
    {
      "id": "emailoctopus.list_lists",
      "service": "emailoctopus",
      "name": "list_lists",
      "description": "List EmailOctopus mailing lists available to the current API key.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Maximum number of records to return, up to 100."
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Specific 1-based page number to request."
          }
        },
        "additionalProperties": false,
        "description": "Query parameters for listing EmailOctopus lists."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "lists": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "List object returned by the official EmailOctopus API."
            },
            "description": "Lists returned by the official EmailOctopus API."
          },
          "paging": {
            "type": "object",
            "properties": {
              "limit": {
                "type": "integer",
                "minimum": 1,
                "description": "Page size returned by the official API."
              },
              "current_page": {
                "type": "integer",
                "minimum": 1,
                "description": "Current page number returned by the official API."
              },
              "total_pages": {
                "type": "integer",
                "minimum": 1,
                "description": "Total number of pages returned by the official API."
              },
              "next_page": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "URL of the next page, if available."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "prev_page": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "URL of the previous page, if available."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": true,
            "description": "Pagination object returned by the official EmailOctopus API."
          }
        },
        "additionalProperties": false,
        "required": [
          "lists"
        ],
        "description": "Paginated EmailOctopus list collection response normalized by the connector."
      }
    },
    {
      "id": "emailoctopus.update_list_contact",
      "service": "emailoctopus",
      "name": "update_list_contact",
      "description": "Update a contact in an EmailOctopus mailing list.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "list_id": {
            "type": "string",
            "minLength": 1,
            "description": "EmailOctopus list identifier."
          },
          "contact_id": {
            "type": "string",
            "minLength": 1,
            "description": "EmailOctopus contact identifier."
          },
          "email_address": {
            "type": "string",
            "description": "Contact email address accepted by the official EmailOctopus API.",
            "format": "email"
          },
          "fields": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Custom contact fields object accepted by the official EmailOctopus API."
          },
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "boolean",
              "description": "Whether the tag should be added or removed."
            },
            "description": "Tag update map accepted by the official update-contact API."
          },
          "status": {
            "type": "string",
            "minLength": 1,
            "description": "Contact status value accepted by the official EmailOctopus API."
          }
        },
        "additionalProperties": false,
        "required": [
          "list_id",
          "contact_id"
        ],
        "description": "Request payload for updating a contact in an EmailOctopus list."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "contact": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Contact object returned by the official EmailOctopus API."
          }
        },
        "additionalProperties": false,
        "description": "Single EmailOctopus contact response normalized by the connector."
      }
    }
  ]
}
