{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"a42ba6ed-7802-419d-949c-270008879309","name":"BoltMail API","description":"This page contains developer API documentation for BoltMail.\n\nBoltMail is a SASS email marketing software platform available from [www.boltmail.nz](https://www.boltmail.nz/).\n\nHelp with using BoltMail can be found in our knowlegebase at [https://www.christopherbolt.com/support/knowledgebase](https://www.christopherbolt.com/support/knowledgebaseDeveloper)\n\nDeveloper specific articles not related to the API can be found at  \n[https://www.christopherbolt.com/support/knowledgebase/19/Web-and-email-developers](https://www.christopherbolt.com/support/knowledgebase/19/Web-and-email-developers)\n\nSome third party libraries and wrappers are available for this API, see below, however we recommend using the API directly. You can change the language of our code examples using the language menu at the top of this page.\n\n### 3rd Party Laravel API Libraries\n\n[https://github.com/alexthekiwi/boltmail-laravel-sdk](https://github.com/alexthekiwi/boltmail-laravel-sdk)\n\n### 3rd Party MailWizz API Libraries\n\nBoltMail is compatible with the MailWizz Email Marketing API.\n\nNote that the BoltMail API includes additional features not supported by the standard MailWizz API, to harness the full power of BoltMail you may need to roll your own implimentation. Our API documentation can help you to do that.\n\nWhen using a third party SDK the API URL must be set to `https://app.boltmail.nz/api` and if the library expects a private key this should be left blank.\n\n[https://github.com/ems-api/php-client](https://github.com/ems-api/php-client) - PHP SDK\n\n[https://github.com/twisted1919/mailwizz-python-sdk](https://github.com/twisted1919/mailwizz-python-sdk) - Python SDK.\n\n[https://github.com/twisted1919/mailwizz-ruby-sdk](https://github.com/twisted1919/mailwizz-ruby-sdk) - Ruby SDK.\n\n[https://github.com/thangtx/mailwizzphpapi-wrap](https://github.com/thangtx/mailwizzphpapi-wrap) - A small rest app that acts as a proxy between mailwizz and any other software.\n\n[https://www.npmjs.com/package/node-mailwizz](https://www.npmjs.com/package/node-mailwizz) - Node.js implementations\n\n## Introduction\n\nOur REST API interface is used to integrate BoltMail, the API is designed for developers and is accompanied with a detailed documentation.\n\nThe BoltMail API opens up a world of feasibility for integrating our platform with your favorite CMS, Framework, or other third party software\n\nWe are constantly working to improve this documentation. If you have questions, please contact the support at [support@boltmail.nz](mailto:support@boltmail.nz)\n\n## Base URL\n\n``` plaintext\nhttps://app.boltmail.nz/api/\n\n```\n\n## Acceptable Requests\n\nAll requests must be a valid HTTP 1.1 request including the `host` header as per the HTTP 1.1 specifications. Fortunatly common HTTP 1.1 compliant clients such as cURL will send these headers for you.\n\nFor `POST` or `PUT` methods data can be sent as either `application/x-www-form-urlencoded` or `application/json`. You must send the correct `Content-Type` header for your data format, either `application/x-www-form-urlencoded` or `application/json`. Failure to send in a supported data format with the correct Content-Type header will result in an error.\n\n## Authentication\n\nBoltMail API uses HTTP Authentication through an API key.\n\nYou can choose to generate multiple keys as per your development needs.\n\nYou can generate API key's from [API keys tab](https://app.boltmail.nz/customer/api-keys/index) in your BoltMail panel.\n\nWe recommend setting an IP address whitelist for each key, this will restrict access to only the IP addresses listed.\n\nTo authenticate you will need to send one custom authentication header:\n\nX-API-KEY: your API key\n\nFor example, if your API Key is: **dc95f6772bd9c09e12dc88f8683144c665bf0c26** authentication header should look like:\n\n```\nX-API-KEY: dc95f6772bd9c09e12dc88f8683144c665bf0c26\n\n```\n\ncURL example:\n\n### cURL request example\n\n``` bash\ncurl -v GET \\\n  'https://app.boltmail.nz/api/' \\\n  -H 'X-API-KEY: {replace-it-with-your-public-key}'\n\n```\n\n## Response\n\nAPI response is JSON formatted. The response object will include a \"status\" attribute at the top level with a value of \"success\" for a successful request or \"error\" for a failed request.\n\n### Successful response\n\nA successful response will include an attribute of \"status\" with a value of \"success\".\n\nIf the response includes data this will be contained within an object named \"data\".\n\n#### Single record response\n\nIf the endpoint returns single record responses then this will be contained inside a sub-object named \"record\"\n\nExample of a single record response:\n\n``` json\n{\n    \"status\": \"success\",\n    \"data\": {\n        \"record\": {\n            \"subscriber_uid\": \"zz828zm50m3fb\",\n            \"status\": \"unconfirmed\",\n            \"source\": \"api\",\n            \"ip_address\": \"127.0.0.1\",\n            \"EMAIL\": \"john.doe@doe.com\",\n            \"FNAME\": \"John\",\n            \"LNAME\": \"Doe\",\n        }\n    }\n}\n\n```\n\n#### Multiple record response\n\nIf the endpoint returns multiple records then these will be contained inside a sub-object named \"records\".\n\nEndpoints that return a large number of records, such as the subscribers endpoint, will be paged. If this is the case there will be additional paramaters named \"count\", \"total_pages\" and \"current_page\".\n\nYou can move between pages by added a page query paramater to the endpoint. e.g. `?page=4`. You can also specify the length of a page using the per_page parameter, e.g. `?page=4&per_page=50`. Note that a large per_page may result in poor performance. Each endpoint has a minimum per_page of 10, specifying a page length smaller than this will still return 10 per page. The maximum per_page varies between endpoints but is usually 1000, specifying a page length larger than the maximum will still return the endpoint's maximum per page. Most endpoints also support a sort_by parameter to sort by a specific field, the fields available for sorting varies between endpoints. There is also a sort_dir parameter that can be set to `desc` to sort descending or `asc` to sort ascending. By default endpoints are sorted newest first.\n\nExample of a multiple record response with paging:\n\n``` json\n{\n    \"status\": \"success\",\n    \"data\": {\n        \"count\": \"2\",\n        \"total_pages\": 1,\n        \"current_page\": 1,\n        \"next_page\": null,\n        \"prev_page\": null,\n        \"records\": [\n            {\n                \"subscriber_uid\": \"sm8665teg9aa9\",\n                \"EMAIL\": \"john.doe@doe.com\",\n                \"APITEST\": \"\",\n                \"FNAME\": \"John\",\n                \"LNAME\": \"Doe\",\n                \"status\": \"confirmed\",\n                \"source\": \"import\",\n                \"ip_address\": null,\n                \"date_added\": \"2019-06-11 20:50:48\"\n            },\n            {\n                \"subscriber_uid\": \"3hf82237hfew\",\n                \"EMAIL\": \"john.smith@smith.com\",\n                \"APITEST\": \"\",\n                \"FNAME\": \"John\",\n                \"LNAME\": \"Smith\",\n                \"status\": \"confirmed\",\n                \"source\": \"import\",\n                \"ip_address\": null,\n                \"date_added\": \"2019-06-11 20:50:48\"\n            },\n        ]\n    }\n}\n\n```\n\n### Unsuccessful response\n\nA failed response will include an attribute of \"status\" with a value of \"error\". It will also include an attribute of \"error\" containing explanations as to why the request failed. If there are multiple errors then this value may be a list.\n\nExample failed response with a single error:\n\n``` json\n{\n    \"status\": \"error\",\n    \"error\": \"The subscriber already exists in this list.\"\n}\n\n```\n\nExample failed response with multiple errors:\n\n``` json\n{\n    \"status\": \"error\",\n    \"error\": {\n        \"name\": \"Campaign name cannot be blank.\",\n        \"from_name\": \"From name cannot be blank.\",\n        \"from_email\": \"From email cannot be blank.\",\n        \"subject\": \"Subject cannot be blank.\",\n        \"reply_to\": \"Reply to cannot be blank.\"\n    }\n}\n\n```\n\n### HTTP Response codes\n\nBoltMail uses standard HTTP response codes.\n\n| http status codes | Description |\n| --- | --- |\n| 100 | Continue |\n| 101 | Switching Protocols |\n| 102 | Processing |\n| 200 | OK |\n| 201 | Created |\n| 202 | Accepted |\n| 203 | Non-Authoritative Info |\n| 204 | No Content |\n| 205 | Reset Content |\n| 206 | Partial Content |\n| 207 | Multi-Status |\n| 208 | Already Reported |\n| 226 | IM Used |\n| 300 | Multiple Choices |\n| 301 | Moved Permanently |\n| 302 | Found |\n| 303 | See Other |\n| 304 | Not Modified |\n| 305 | Use Proxy |\n| 306 | Reserved |\n| 307 | Temporary Redirect |\n| 308 | Permanent Redirect |\n| 400 | Bad Request |\n| 401 | Unauthorized |\n| 402 | Payment Required |\n| 403 | Forbidden |\n| 404 | Not Found |\n| 405 | Method Not Allowed |\n| 406 | Not Acceptable |\n| 407 | Proxy Authentication R |\n| 408 | Request Timeout |\n| 409 | Conflict |\n| 410 | Gone |\n| 411 | Length Required |\n| 412 | Precondition Failed |\n| 413 | 'Request Entity Too Lar |\n| 414 | Request-URI Too Long |\n| 415 | Unsupported Media Type |\n| 416 | Requested Range Not Satisfiable |\n| 417 | Expectation Failed |\n| 418 | I'm a teapot |\n| 422 | Unprocessable Entity |\n| 423 | Locked |\n| 424 | Failed Dependency |\n| 425 | Reserved for WebDAV advanced collections expired proposal |\n| 426 | Upgrade Required |\n| 428 | Precondition Required |\n| 429 | Too Many Requests |\n| 431 | Request Header Fields Too Large |\n| 500 | Internal Server Error |\n| 501 | Not Implemented |\n| 502 | Bad Gateway |\n| 503 | Service Unavailable |\n| 504 | Gateway Timeout |\n| 505 | HTTP Version Not Supported |\n| 506 | Variant Also Negotiates (Experimental) |\n| 507 | Insufficient Storage |\n| 508 | Loop Detected |\n| 510 | Not Extended |\n| 511 | Network Authentication Required |","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"11925542","collectionId":"a42ba6ed-7802-419d-949c-270008879309","publishedId":"2s93m1aQ4Y","public":true,"publicUrl":"https://documenter-api.postman.tech/view/11925542/2s93m1aQ4Y","privateUrl":"https://go.postman.co/documentation/11925542-a42ba6ed-7802-419d-949c-270008879309","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"00334e"},"documentationLayout":"classic-double-column","customisation":{"metaTags":[{"name":"description","value":""},{"name":"title","value":""}],"appearance":{"default":"system_default","themes":[{"name":"dark","logo":"https://content.pstmn.io/5206175b-ea89-431c-abc7-b920ccaa053c/Ym9sdG1haWwtbG9nby1ibHVlYmcucG5n","colors":{"top-bar":"00334e","right-sidebar":"303030","highlight":"9fc3da"}},{"name":"light","logo":"https://content.pstmn.io/93b9e322-bce0-482c-b504-094ef411488c/Ym9sdG1haWwtbG9nby13aGl0ZWJnLnBuZw==","colors":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"00334e"}}]}},"version":"8.10.0","publishDate":"2023-05-22T06:04:05.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"","description":""},"logos":{"logoLight":"https://content.pstmn.io/93b9e322-bce0-482c-b504-094ef411488c/Ym9sdG1haWwtbG9nby13aGl0ZWJnLnBuZw==","logoDark":"https://content.pstmn.io/5206175b-ea89-431c-abc7-b920ccaa053c/Ym9sdG1haWwtbG9nby1ibHVlYmcucG5n"}},"statusCode":200},"environments":[{"name":"BoltMail Documentation","id":"eeb75f0f-6fea-4ebd-b699-1b8b31761046","owner":"11925542","values":[{"key":"API-URL","value":"https://app.boltmail.nz/api","enabled":true,"type":"default"}],"published":true}],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/768118b36f06c94b0306958b980558e6915839447e859fe16906e29d683976f0","favicon":""},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"},{"label":"BoltMail Documentation","value":"11925542-eeb75f0f-6fea-4ebd-b699-1b8b31761046"}],"canonicalUrl":"https://documenter.gw.postman.com/view/metadata/2s93m1aQ4Y"}