Mailsquad icon

Mailsquad

MailSquad offers an affordable and super easy way to create, send and track delightful emails

COMMUNITYAPI KEY0 INSTALLS
API Docs
OpenAPI Specificationv3.0
{
  "swagger": "2.0",
  "schemes": [
    "https"
  ],
  "host": "api.inboxroute.com",
  "basePath": "/api",
  "info": {
    "contact": {
      "email": "support@mailsquad.com",
      "url": "https://mailsquad.com"
    },
    "description": "MailSquad offers an affordable and super easy way to create, send and track delightful emails.",
    "title": "Mailsquad",
    "version": "0.9",
    "x-apisguru-categories": [
      "email",
      "marketing"
    ],
    "x-logo": {
      "url": "https://api.apis.guru/v2/cache/logo/https_pbs.twimg.com_profile_images_528918177711796225_5tzW9XKS.png"
    },
    "x-origin": [
      {
        "format": "swagger",
        "url": "https://api.inboxroute.com/api/api-docs",
        "version": "2.0"
      }
    ],
    "x-providerName": "inboxroute.com"
  },
  "consumes": [
    "application/json"
  ],
  "produces": [
    "application/json"
  ],
  "securityDefinitions": {
    "mqApiKey": {
      "in": "header",
      "name": "Authorization",
      "type": "apiKey"
    }
  },
  "security": [
    {
      "mqApiKey": []
    }
  ],
  "responses": {
    "401": {
      "description": "Invalid api key or key does not have access to this ressource",
      "schema": {
        "items": {
          "properties": {
            "classification": {
              "description": "Type of error (AccesDenied)",
              "type": "string"
            },
            "message": {
              "description": "Human readable description of the error",
              "type": "string"
            }
          }
        },
        "type": "array"
      }
    },
    "404": {
      "description": "The requested resource was not found",
      "schema": {
        "items": {
          "properties": {
            "classification": {
              "description": "Type of error (Object not found)",
              "type": "string"
            },
            "message": {
              "description": "Human readable description of the error",
              "type": "string"
            }
          }
        },
        "type": "array"
      }
    },
    "422": {
      "description": "The request parameters were invalid",
      "schema": {
        "items": {
          "properties": {
            "classification": {
              "description": "Type of error (ValidationError)",
              "type": "string"
            },
            "message": {
              "description": "Human readable description of the error",
              "type": "string"
            }
          }
        },
        "type": "array"
      }
    }
  },
  "paths": {
    "/contacts": {
      "get": {
        "description": "Get a paged result of contacts from a list",
        "parameters": [
          {
            "description": "Unique 16 characters ID of the contact list to get contacts of",
            "in": "query",
            "name": "listid",
            "type": "string"
          },
          {
            "description": "Skip that many records",
            "in": "query",
            "name": "offset",
            "type": "integer"
          },
          {
            "description": "Maximum number of items in page",
            "in": "query",
            "name": "limit",
            "type": "integer"
          },
          {
            "description": "Property to sort by. Append '-' for descending order.",
            "in": "query",
            "name": "sort",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Page object",
            "schema": {
              "$ref": "#/definitions/ContactPage"
            }
          },
          "401": {
            "$ref": "#/responses/401"
          },
          "404": {
            "$ref": "#/responses/404"
          },
          "422": {
            "$ref": "#/responses/422"
          }
        },
        "security": [
          {
            "mqApiKey": []
          }
        ],
        "tags": [
          "contacts"
        ]
      }
    },
    "/contacts/lists": {
      "get": {
        "description": "Get a paged result of contact lists.",
        "parameters": [
          {
            "description": "Skip that many records",
            "in": "query",
            "name": "offset",
            "type": "integer"
          },
          {
            "description": "Maximum number of items in page",
            "in": "query",
            "name": "limit",
            "type": "integer"
          },
          {
            "description": "Property to sort by. Append '-' for descending order.",
            "in": "query",
            "name": "sort",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Page object",
            "schema": {
              "$ref": "#/definitions/ContactListPage"
            }
          },
          "401": {
            "$ref": "#/responses/401"
          },
          "404": {
            "$ref": "#/responses/404"
          },
          "422": {
            "$ref": "#/responses/422"
          }
        },
        "security": [
          {
            "mqApiKey": []
          }
        ],
        "tags": [
          "lists"
        ]
      },
      "post": {
        "description": "Add a new contact list",
        "parameters": [
          {
            "description": "Contact list initial properties",
            "in": "body",
            "name": "contactlist",
            "schema": {
              "$ref": "#/definitions/ContactListUpdate"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Page object",
            "schema": {
              "$ref": "#/definitions/NewId"
            }
          },
          "401": {
            "$ref": "#/responses/401"
          },
          "422": {
            "$ref": "#/responses/422"
          }
        },
        "security": [
          {
            "mqApiKey": []
          }
        ],
        "tags": [
          "lists"
        ]
      }
    },
    "/contacts/lists/{listid}": {
      "delete": {
        "description": "Delete an existing contact list",
        "parameters": [
          {
            "description": "Unique 16 characters ID of the contact list",
            "in": "path",
            "name": "listid",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Empty response"
          },
          "401": {
            "$ref": "#/responses/401"
          },
          "404": {
            "$ref": "#/responses/404"
          }
        },
        "security": [
          {
            "mqApiKey": []
          }
        ],
        "tags": [
          "lists"
        ]
      },
      "put": {
        "description": "Update an existing contact list",
        "parameters": [
          {
            "description": "Unique 16 characters ID of the contact list",
            "in": "path",
            "name": "listid",
            "required": true,
            "type": "string"
          },
          {
            "description": "Contact list properties to update",
            "in": "body",
            "name": "contactlist",
            "schema": {
              "$ref": "#/definitions/ContactListUpdate"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Empty response"
          },
          "401": {
            "$ref": "#/responses/401"
          },
          "404": {
            "$ref": "#/responses/404"
          },
          "422": {
            "$ref": "#/responses/422"
          }
        },
        "security": [
          {
            "mqApiKey": []
          }
        ],
        "tags": [
          "lists"
        ]
      }
    },
    "/contacts/{contactid}": {
      "delete": {
        "description": "Delete an existing contact",
        "parameters": [
          {
            "description": "Unique 16 characters ID of the contact",
            "in": "path",
            "name": "contactid",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Empty response"
          },
          "401": {
            "$ref": "#/responses/401"
          },
          "404": {
            "$ref": "#/responses/404"
          }
        },
        "security": [
          {
            "mqApiKey": []
          }
        ],
        "tags": [
          "contacts"
        ]
      },
      "put": {
        "description": "Update an existing contact",
        "parameters": [
          {
            "description": "Unique 16 characters ID of the contact",
            "in": "path",
            "name": "contactid",
            "required": true,
            "type": "string"
          },
          {
            "description": "Contact properties to update",
            "in": "body",
            "name": "contact",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ContactUpdate"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Empty response"
          },
          "401": {
            "$ref": "#/responses/401"
          },
          "404": {
            "$ref": "#/responses/404"
          },
          "422": {
            "$ref": "#/responses/422"
          }
        },
        "security": [
          {
            "mqApiKey": []
          }
        ],
        "tags": [
          "contacts"
        ]
      }
    },
    "/subscription/{listid}": {
      "post": {
        "description": "Subscribe an email address to a list. This api call has the same behavior as\na regular subscribe form. However, single opt-in is allowed for system integration\npurposes.\n\n- If email address does not exist, a new contact will be added to the list.\n- If email address exists custom fields will be updated and status will be put\n  to unconfirmed or active depending of singleoptin value.\n- If current status if Active, this operation will only update the custom fields.\n- If singleoptin is true, no email confirmation will be sent. In that case,\n  you must provide the subscribe's origin ip and confirmation date-time.\n",
        "parameters": [
          {
            "description": "Unique 16 characters ID of the contact list",
            "in": "path",
            "name": "listid",
            "required": true,
            "type": "string"
          },
          {
            "description": "Subscription request",
            "in": "body",
            "name": "subscription",
            "required": true,
            "schema": {
              "$ref": "#/definitions/SubscriptionRequest"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Empty response"
          },
          "401": {
            "$ref": "#/responses/401"
          },
          "404": {
            "$ref": "#/responses/404"
          },
          "422": {
            "$ref": "#/responses/422"
          }
        },
        "security": [
          {
            "mqApiKey": []
          }
        ],
        "tags": [
          "subscription"
        ]
      }
    }
  },
  "definitions": {
    "Contact": {
      "properties": {
        "_id": {
          "description": "Unique 16 characters ID",
          "type": "string"
        },
        "clientid": {
          "description": "Unique 16 characters ID of the client owner",
          "type": "string"
        },
        "confirmed": {
          "description": "Date+time subscriber confirmed his/her list opt-in",
          "format": "date-time",
          "type": "string"
        },
        "customfields": {
          "description": "Dictionnary of field key to value"
        },
        "email": {
          "description": "Email address",
          "type": "string"
        },
        "fullname": {
          "description": "Full name (Last name, First Name) of the subscriber\n",
          "type": "string"
        },
        "ip": {
          "description": "Subscriber's IP address when he/she confirmed list opt-in",
          "type": "string"
        },
        "lang": {
          "description": "ISO 639-1 language code of the subscriber. When lang is one the supported system language, all communication\nwill be in this language. \n",
          "type": "string"
        },
        "listid": {
          "description": "Unique 16 characters ID of the list owner",
          "type": "string"
        },
        "status": {
          "description": "Status (\n  1- Active,\n  2- Unconfirmed,\n  3- Unsubscribed,\n  4- Deleted,\n  5- Cleaned because of hard bounce or spam complaint)\n",
          "type": "integer"
        }
      }
    },
    "ContactAdd": {
      "properties": {
        "confirmed": {
          "description": "Date+time subscriber confirmed his/her list opt-in",
          "format": "date-time",
          "type": "string"
        },
        "customfields": {
          "description": "Dictionnary of field key to value"
        },
        "email": {
          "description": "Email address",
          "type": "string"
        },
        "ip": {
          "description": "Subscriber's IP address when he/she confirmed list opt-in",
          "type": "string"
        },
        "listid": {
          "description": "Unique 16 characters ID of the list owner",
          "type": "string"
        },
        "status": {
          "description": "Status (\n  1- Active,\n  2- Unconfirmed,\n  3- Unsubscribed,\n  4- Deleted,\n  5- Cleaned because of hard bounce or spam complaint)\n",
          "type": "integer"
        }
      },
      "required": [
        "listid",
        "email"
      ]
    },
    "ContactCustomFieldSchema": {
      "properties": {
        "key": {
          "description": "equivalent to html form input name attribute",
          "type": "string"
        },
        "label": {
          "description": "User friendly label describing the field",
          "type": "string"
        },
        "required": {
          "description": "Is field required",
          "type": "boolean"
        },
        "type": {
          "description": "Type (\n  1- String / text free form\n  2- Numeric / integer or decimal\n  3- Date / ISO 8601 format (YYYY/MM/DD)\n)\n",
          "type": "integer"
        }
      },
      "required": [
        "label",
        "key",
        "type"
      ]
    },
    "ContactList": {
      "properties": {
        "_id": {
          "description": "Unique 16 characters ID",
          "type": "string"
        },
        "clientid": {
          "description": "Unique 16 characters ID of the client owner",
          "type": "string"
        },
        "created": {
          "format": "date-time",
          "type": "string"
        },
        "customfields": {
          "description": "Array of ContactCustomFieldSchema",
          "items": {
            "$ref": "#/definitions/ContactCustomFieldSchema"
          },
          "type": "array"
        },
        "eventcustomizations": {
          "description": "Array of ContactListEventCustomization",
          "items": {
            "$ref": "#/definitions/ContactListEventCustomization"
          },
          "type": "array"
        },
        "name": {
          "description": "Name of the contact list",
          "type": "string"
        }
      }
    },
    "ContactListEventCustomization": {
      "properties": {
        "redirecturl": {
          "description": "full url of the destination landing page",
          "type": "string"
        },
        "type": {
          "description": "Type (\n  1- Subscribe confirmation request landing page\n  2- Subscribe opt-in landing page\n  3- Unsubscribe confirmation landing page\n)\n",
          "type": "integer"
        }
      },
      "required": [
        "type"
      ]
    },
    "ContactListPage": {
      "properties": {
        "page": {
          "description": "Array of ContactList for that page",
          "items": {
            "$ref": "#/definitions/ContactList"
          },
          "type": "array"
        },
        "total": {
          "description": "Total number of items in query",
          "type": "integer"
        }
      }
    },
    "ContactListUpdate": {
      "properties": {
        "customfields": {
          "description": "Array of ContactCustomFieldSchema",
          "items": {
            "$ref": "#/definitions/ContactCustomFieldSchema"
          },
          "type": "array"
        },
        "eventcustomizations": {
          "description": "Array of ContactListEventCustomization",
          "items": {
            "$ref": "#/definitions/ContactListEventCustomization"
          },
          "type": "array"
        },
        "name": {
          "description": "Name of the contact list",
          "type": "string"
        }
      }
    },
    "ContactPage": {
      "properties": {
        "page": {
          "description": "Array of Contact for that page",
          "items": {
            "$ref": "#/definitions/Contact"
          },
          "type": "array"
        },
        "total": {
          "description": "Total number of items in query",
          "type": "integer"
        }
      }
    },
    "ContactUpdate": {
      "properties": {
        "confirmed": {
          "description": "Date+time subscriber confirmed his/her list opt-in",
          "format": "date-time",
          "type": "string"
        },
        "customfields": {
          "description": "Dictionnary of field key to value"
        },
        "email": {
          "description": "Email address",
          "type": "string"
        },
        "ip": {
          "description": "Subscriber's IP address when he/she confirmed list opt-in",
          "type": "string"
        },
        "status": {
          "description": "Status (\n  1- Active,\n  2- Unconfirmed,\n  3- Unsubscribed,\n  4- Deleted,\n  5- Cleaned because of hard bounce or spam complaint)\n",
          "type": "integer"
        }
      }
    },
    "NewId": {
      "properties": {
        "_id": {
          "description": "The created ressource id",
          "type": "string"
        }
      }
    },
    "SubscriptionRequest": {
      "properties": {
        "confirmed": {
          "description": "Date-time when subscriber opted-in. Required if singleoptin is true.",
          "format": "date-time",
          "type": "string"
        },
        "email": {
          "description": "Email address of the subscriber",
          "type": "string"
        },
        "fullname": {
          "description": "Full name (Last name, First Name) of the subscriber\n",
          "type": "string"
        },
        "ip": {
          "description": "Origin Ip of the subscriber when he/she opted-in. Required if singleoptin is true.",
          "type": "string"
        },
        "lang": {
          "description": "ISO 639-1 language code of the subscriber. When lang is one the supported system language, all communication\nwill be in this language.\n",
          "type": "string"
        },
        "singleoptin": {
          "description": "If true, no email will be sent asking user subscription confirmation. In that case, you must provide\nthe confirmation date (confirmed) and origin ip (ip) manually.\n",
          "type": "boolean"
        }
      },
      "required": [
        "email"
      ]
    }
  }
}