{"id":29156,"date":"2022-05-19T15:48:14","date_gmt":"2022-05-19T13:48:14","guid":{"rendered":"https:\/\/pi3g.com\/?p=29156"},"modified":"2022-05-19T15:49:04","modified_gmt":"2022-05-19T13:49:04","slug":"mailerlite-api-error-code-422-for-subscribers-endpoint","status":"publish","type":"post","link":"https:\/\/pi3g.com\/de\/mailerlite-api-error-code-422-for-subscribers-endpoint\/","title":{"rendered":"mailerlite API-Fehlercode 422 f\u00fcr den Endpunkt subscribers"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Today, I was implementing the interfacing between <a href=\"https:\/\/picockpit.com\">PiCockpit.com<\/a> and the Mailerlite API (which we use aus our newsletter software). <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/api.mailerlite.com\/api\/v2\/subscribers\">https:\/\/api.mailerlite.com\/api\/v2\/subscribers<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I got the following error message:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\"error\":{\"code\":422,\"message\":\"Unprocessable entity\"}}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The POST request was returning 422 as status code. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Unfortunately there is little documentation about that on Mailerlite. My implementation was correct (this is Crystal Lang by the way):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\tget \"\/test\" do |env|\n\t  body = \"{\\\"email\\\": \\\"support@example.com\\\"}\"\n\t  puts body\n      response = HTTP::Client.post(\"https:\/\/api.mailerlite.com\/api\/v2\/subscribers\", \n      \t\theaders: HTTP::Headers{\n      \t\t\t\"X-MailerLite-ApiKey\" => \"MAILERLITE_APIKEY\",\n      \t\t\t\"Content-Type\": \"application\/json\"\n      \t\t\t}, \n      \t\tbody: body)\n  \t  if response.status_code != 201 \n  \t  \tputs \"newsletter_subscription :: error code #{response.status_code}\"\n  \t  \tputs response.body\n  \t  else\n  \t  \tputs \"newsletter_subscription :: OK\"\n  \t  \tputs response.body\n  \t  end\n\tend\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">where MAILERLITE_APIKEY is the API key which you create in the backend:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/dashboard.mailerlite.com\/integrations\/api\">https:\/\/dashboard.mailerlite.com\/integrations\/api<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">(Click on &#8220;Generate new token&#8221;, it is displayed only once to you).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How to fix 422 when calling the subscribers endpoint of the Mailerlite API<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The mailerlite support gave me the solution: <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">certain email addresses are rejected &#8211; e.g. email addresses which are support@&lt;domain&gt;. This is due to the bounce rate being higher on them.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How does a successful response look like?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">With a different e-mail address, the response looks like this:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">{&#8220;id&#8221;:2348923942342834,&#8221;name&#8221;:&#8221;&#8221;,&#8221;email&#8221;:&#8221;differentuser@example.com&#8221;,&#8221;sent&#8221;:0,&#8221;opened&#8221;:0,&#8221;opened_rate&#8221;:0,&#8221;clicked&#8221;:0,&#8221;clicked_rate&#8221;:0,&#8221;type&#8221;:&#8221;unconfirmed&#8221;,&#8221;country_id&#8221;:&#8221;&#8221;,&#8221;signup_ip&#8221;:null,&#8221;signup_timestamp&#8221;:null,&#8221;confirmation_ip&#8221;:null,&#8221;confirmation_timestamp&#8221;:null,&#8221;fields&#8221;:[{&#8220;key&#8221;:&#8221;last_name&#8221;,&#8221;value&#8221;:&#8221;&#8221;,&#8221;type&#8221;:&#8221;TEXT&#8221;},{&#8220;key&#8221;:&#8221;company&#8221;,&#8221;value&#8221;:&#8221;&#8221;,&#8221;type&#8221;:&#8221;TEXT&#8221;},{&#8220;key&#8221;:&#8221;country&#8221;,&#8221;value&#8221;:&#8221;&#8221;,&#8221;type&#8221;:&#8221;TEXT&#8221;},{&#8220;key&#8221;:&#8221;city&#8221;,&#8221;value&#8221;:&#8221;&#8221;,&#8221;type&#8221;:&#8221;TEXT&#8221;},{&#8220;key&#8221;:&#8221;phone&#8221;,&#8221;value&#8221;:&#8221;&#8221;,&#8221;type&#8221;:&#8221;TEXT&#8221;},{&#8220;key&#8221;:&#8221;state&#8221;,&#8221;value&#8221;:&#8221;&#8221;,&#8221;type&#8221;:&#8221;TEXT&#8221;},{&#8220;key&#8221;:&#8221;z_i_p&#8221;,&#8221;value&#8221;:&#8221;&#8221;,&#8221;type&#8221;:&#8221;TEXT&#8221;}],&#8221;date_subscribe&#8221;:&#8221;2022-05-19 12:09:24&#8243;,&#8221;date_unsubscribe&#8221;:null,&#8221;date_created&#8221;:&#8221;2022-05-19 12:09:24&#8243;,&#8221;date_updated&#8221;:&#8221;2022-05-19 12:09:24&#8243;}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The response code is <strong>201<\/strong>, &#8220;created&#8221;.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Hire us<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">If you need support for your backend or frontend development, you can hire us. <a href=\"https:\/\/pi3g.com\/kontakt\">Get in touch for more information<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"> <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Heute habe ich die Schnittstelle zwischen PiCockpit.com und der Mailerlite API (die wir f\u00fcr unsere Newsletter-Software verwenden) implementiert. https:\/\/api.mailerlite.com\/api\/v2\/subscribers Ich bekam folgende Fehlermeldung: Die POST-Anfrage gab 422 als Statuscode zur\u00fcck. Leider gibt es nur wenig Dokumentation zu diesem Thema bei Mailerlite. Meine Implementierung war korrekt (dies ist \u00fcbrigens Crystal Lang):...<\/p>","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_links_to":"","_links_to_target":""},"categories":[416],"tags":[],"class_list":["post-29156","post","type-post","status-publish","format-standard","hentry","category-crystal-language"],"_links":{"self":[{"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/posts\/29156","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/comments?post=29156"}],"version-history":[{"count":2,"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/posts\/29156\/revisions"}],"predecessor-version":[{"id":29158,"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/posts\/29156\/revisions\/29158"}],"wp:attachment":[{"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/media?parent=29156"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/categories?post=29156"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/tags?post=29156"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}