API documentatie |
Vragen of opmerkingen horen we graag! Mail naar api@laposta.nl. De in de voorbeelden gebruikte API-key is beschikbaar om mee te testen. |
||||||||||||||||||||||||||||||||||||||||||||
De Laposta API is opgezet volgens het REST principe. Alle antwoorden van de API, inclusief de foutmeldingen, zijn in JSON formaat. In de API staat het toevoegen en uitlezen van relaties centraal. Hiermee is het onder andere mogelijk Laposta te synchroniseren met een ander systeem, zoals een CMS of een CRM. Een andere veelgebruikte toepassing is het automatisch toevoegen van relaties aan Laposta, bijvoorbeeld bij het doen van een bestelling in een webshop. Voor partners is het ook mogelijk accounts aan te maken via de API, zodat de opzet van accounts voor klanten geheel zonder onze tussenkomst kan verlopen. Om het programmeren met de API makkelijker te maken, zijn er bibliotheken in php en .NET (C#) beschikbaar. |
API basis URLDe API is beschikbaar via http en https. Vanuit het oogpunt van veiligheid adviseren we u om met https te werken.
Beschikbare URL patronen
|
||||||||||||||||||||||||||||||||||||||||||||
AuthenticatieBij elke aanvraag moet de API-key van het account worden opgegeven. Deze kunt u vinden door in te loggen en dan naar rechtsboven op 'Toegang & Abonnement' te klikken, en dan naar 'Koppelingen - API' te gaan. Authenticatie gaat via Basic Authentication. De API-key wordt gebruikt als username; een wachtwoord is niet nodig. |
Voorbeeld aanvraagLaposta::setApiKey('JdMtbsMq2jqJdQZD9AHC'); $member = new Laposta_Member('BaImMu3JZA'); $result = $member->all(); |
||||||||||||||||||||||||||||||||||||||||||||
RatelimitingOm onze systemen te beschermen wordt het aantal aanvragen per tijdseenheid beperkt. Als u een limiet bereikt dan krijgt u hiervan een melding van onze server. Bij deze melding wordt ook aangegeven na hoeveel seconden een volgende aanvraag weer mogelijk is. Voor gratis accounts geldt een limiet van 30 aanvragen per minuut. Voor betaalde accounts is de limiet 120 aanvragen per minuut. Probeer zoveel mogelijk informatie te cachen! Het is bijvoorbeeld niet handig/nodig om een aanmeldformulier te maken, en dan bij elke pageview de informatie over de velden op te halen. |
Als de limiet bereikt wordtBereikt u de limiet, dan zal de server reageren met een statuscode 429 (Too Many Requests). De server zal ook een Retry-After header meesturen, met daarin het aantal seconden dat gewacht moet worden tot de volgende aanvraag weer mogelijk is. |
||||||||||||||||||||||||||||||||||||||||||||
FoutmeldingenOnze API gebruikt zoveel mogelijk standaard HTTP statuscodes om aan te geven hoe een aanvraag is verlopen. Codes in de 2xx reeks betekenen dat een aanvraag succesvol is verlopen, codes in de 4xx reeks dat er een fout was in de aanlevering van informatie (bijvoorbeeld een missende parameter). Codes in de 5xx reeks tenslotte betekenen dat er aan onze kant iets mis ging. Alle foutmeldingen zijn in JSON formaat en bevatten een aanduiding van het type fout, een melding in gewone taal, en eventueel een code en een parameter (om aan te geven waar de fout zat). |
Overzicht gebruikte HTTP statuscodes
Overzicht attributen in foutmelding
Overzicht codes in foutmelding
Voorbeeld Error object{ "error": { "type": "invalid_input", "message": "Email: invalid address", "code": 208, "parameter": "email" } } |
||||||||||||||||||||||||||||||||||||||||||||
LijstenMet dit onderdeel kunt u lijsten opvragen, toevoegen, wijzigen, verwijderen en leegmaken. |
URL patronen
|
||||||||||||||||||||||||||||||||||||||||||||
Het list objectVelden
|
Voorbeeld list object{ "list": { "list_id": "BaImMu3JZA", "created": "2012-02-18 11:42:38", "modified": "2012-06-02 14:07:20", "state": "active", "name": "Testlijst", "remarks": "Een lijst om mee te testen.", "subscribe_notification_email": "aanmeldingen@example.net", "unsubscribe_notification_email": "afmeldingen@example.net", "members": { "active": 1232, "unsubscribed": 113, "cleaned": 14 } } } |
||||||||||||||||||||||||||||||||||||||||||||
Lijst toevoegenAls er iets niet klopt aan de meegegeven parameters dan wordt bij de foutmelding een code weergegeven. Deze kunt u in combinatie met de variabele 'parameter' gebruiken om een melding aan de gebruiker te tonen. Zie hierboven bij Foutmeldingen wat de codes betekenen. Parameters
|
DefinitiePOST https://api.laposta.nl/v2/list Voorbeeld aanvraagrequire_once('./lib/Laposta.php'); Laposta::setApiKey('JdMtbsMq2jqJdQZD9AHC'); $list = new Laposta_List(); $result = $list->create(array( 'name' => 'Testlijst', 'remarks' => 'Een lijst om mee te testen', 'subscribe_notification_email' => 'aanmeldingen@example.net', 'unsubscribe_notification_email' => 'afmeldingen@example.net' ) ); Voorbeeld antwoord{ "list": { "list_id": "BaImMu3JZA", "created": "2012-02-18 11:42:38", "modified": "2012-06-02 14:07:20", "state": "active", "name": "Testlijst", "remarks": "Een lijst om mee te testen.", "subscribe_notification_email": "aanmeldingen@example.net", "unsubscribe_notification_email": "afmeldingen@example.net", "members": { "active": 0, "unsubscribed": 0, "cleaned": 0 } } } |
||||||||||||||||||||||||||||||||||||||||||||
Lijst opvragenAlle informatie over een lijst. Parameters
|
DefinitieGET https://api.laposta.nl/v2/list/{list_id} Voorbeeld aanvraagrequire_once('./lib/Laposta.php'); Laposta::setApiKey('JdMtbsMq2jqJdQZD9AHC'); $list = new Laposta_List(); $result = $list->get('BaImMu3JZA'); |
||||||||||||||||||||||||||||||||||||||||||||
Lijst wijzigenU hoeft alleen de velden die gewijzigd moeten worden in de aanvraag mee te sturen. Velden die niet worden genoemd houden hun huidige waarde. Zodra een veld wordt genoemd wordt het wel gecontroleerd, en kan dus voor een foutmelding zorgen. Bij deze foutmelding wordt een code weergegeven. Deze kunt u in combinatie met de variabele 'parameter' gebruiken om een melding aan de gebruiker te tonen. Zie hierboven bij Foutmeldingen wat de codes betekenen. Parameters
|
DefinitiePOST https://api.laposta.nl/v2/list/{list_id} Voorbeeld aanvraagDit voorbeeld wijzigt de naam. require_once('./lib/Laposta.php'); Laposta::setApiKey('JdMtbsMq2jqJdQZD9AHC'); $list = new Laposta_List(); $result = $list->update('BaImMu3JZA', array( 'name' => 'Klanten' ) ); Voorbeeld antwoord{ "list": { "list_id": "BaImMu3JZA", "created": "2012-02-18 11:42:38", "modified": "2012-06-02 14:07:20", "state": "active", "name": "Klanten", "remarks": "Een lijst om mee te testen.", "subscribe_notification_email": "aanmeldingen@example.net", "unsubscribe_notification_email": "afmeldingen@example.net", "members": { "active": 1232, "unsubscribed": 113, "cleaned": 14 } } } |
||||||||||||||||||||||||||||||||||||||||||||
Lijst verwijderenHiermee verwijdert u een lijst definitief. Als de lijst niet bestaat wordt een foutmelding gegeven. Als antwoord krijgt u weer een list object, maar nu met state 'deleted'. Hierna is deze lijst niet nogmaals op te vragen. Parameters
|
DefinitieDELETE https://api.laposta.nl/v2/list/{list_id} Voorbeeld aanvraagrequire_once('./lib/Laposta.php'); Laposta::setApiKey('JdMtbsMq2jqJdQZD9AHC'); $list = new Laposta_List(); $result = $list->delete('BaImMu3JZA'); Voorbeeld antwoord{ "list": { "list_id": "BaImMu3JZA", "created": "2012-02-18 11:42:38", "modified": "2012-06-02 14:07:20", "state": "deleted", "name": "Klanten", "remarks": "Een lijst om mee te testen.", "subscribe_notification_email": "aanmeldingen@example.net", "unsubscribe_notification_email": "afmeldingen@example.net", "members": { "active": 1232, "unsubscribed": 113, "cleaned": 14 } } } |
||||||||||||||||||||||||||||||||||||||||||||
Alle lijsten opvragenAlle lijsten in een array van list objecten. De list objecten zijn opgenomen in een array met de naam 'data'. ParametersEr hoeven geen parameters te worden meegegeven. |
DefinitieGET https://api.laposta.nl/v2/list Voorbeeld aanvraagrequire_once('./lib/Laposta.php'); Laposta::setApiKey('JdMtbsMq2jqJdQZD9AHC'); $list = new Laposta_List(); $result = $list->all(); Voorbeeld antwoord{ "data": [ { "list": { "list_id": "BaImMu3JZA", "created": "2012-02-18 11:42:38", "modified": "2012-06-02 14:07:20", "state": "active", "name": "Testlijst", "remarks": "Een lijst om mee te testen.", "subscribe_notification_email": "aanmeldingen@example.net", "unsubscribe_notification_email": "afmeldingen@example.net" "members": { "active": 1232, "unsubscribed": 113, "cleaned": 14 } } }, { "list": { "list_id": "Z87Jajj9Ak", "created": "2012-03-30 12:23:46", "modified": "2012-04-10 13:33:21", "state": "active", "name": "Een andere lijst", "remarks": "Klanten", "subscribe_notification_email": "aanmeldingen@example.net", "unsubscribe_notification_email": "afmeldingen@example.net" "members": { "active": 8182, "unsubscribed": 205, "cleaned": 56 } } } ] } |
||||||||||||||||||||||||||||||||||||||||||||
Lijst leegmakenHiermee verwijdert u alle actieve relaties uit een lijst definitief, maar niet de lijst zelf. Als de lijst niet bestaat wordt een foutmelding gegeven. Als antwoord krijgt u weer een list object. Parameters
|
DefinitieDELETE https://api.laposta.nl/v2/list/{list_id}/members Voorbeeld aanvraagrequire_once('./lib/Laposta.php'); Laposta::setApiKey('JdMtbsMq2jqJdQZD9AHC'); $list = new Laposta_List(); $result = $list->delete('BaImMu3JZA', 'members'); Voorbeeld antwoord{ "list": { "list_id": "BaImMu3JZA", "created": "2012-02-18 11:42:38", "modified": "2012-06-02 14:07:20", "state": "active", "name": "Klanten", "remarks": "Een lijst om mee te testen.", "subscribe_notification_email": "aanmeldingen@example.net", "unsubscribe_notification_email": "afmeldingen@example.net", "members": { "active": 0, "unsubscribed": 0, "cleaned": 0 } } } |
||||||||||||||||||||||||||||||||||||||||||||
Lijst vullen / aanpassen (bulk)Deze functie is niet beschikbaar voor gratis accounts. Hiermee kunt u meerdere relaties gelijktijdig wijzigen en/of toevoegen aan een bestaande lijst. Als de lijst niet bestaat of wanneer verplichte parameters ontbreken krijgt u een foutmelding. Let op: het aanleveren van de data gebeurt middels JSON. Parameters
JSON Object
Member Object
|
DefinitiePOST https://api.laposta.nl/v2/list/{list_id}/members Voorbeeld aanvraagrequire_once('./lib/Laposta.php'); Laposta::setApiKey('JdMtbsMq2jqJdQZD9AHC'); $data = [ 'mode' => 'add', 'members' => [ [ 'email' => 'member1@example.org', ], [ 'member_id' => '9978ydioiZ', 'email' => 'member2@example.org', ], [ 'email' => 'member3@example.org', 'custom_fields' => [ 'my_required_field' => 'My required field value', 'my_optional_field' => 'My optional value', ] ], ], ]; $list = new Laposta_List(); $result = $list->bulk('BaImMu3JZA', $data, 'members'); Voorbeeld antwoordAllereerst kan er een foutmelding teruggestuurd worden zoals omschreven onder foutmeldingen. Dit gebeurt wanneer het verzoek wordt afgekeurd op basis van de niet of verkeerd meegestuurde list_id, of wanneer de meegestuurde JSON data niet correct is. Als er geen sprake is van een foutmelding zoals hierboven omschreven sturen wij altijd een succesvolle response volgens het volgende voorbeeld van mode add: { "report": { "provided_count": 3, "errors_count": 1, "skipped_count": 1, "edited_count": 0, "added_count": 1 }, "errors": [ { "provided_data": { "email": "member1@example.org" }, "error": { "message": "Field my_required_field: cannot be empty", "code": 201, "parameter": "my_required_field", "id": "lRZBQFQdBk", "type": "invalid_input" } } ], "skipped": [ { "provided_data": { "member_id": "9978ydioiZ", "email": "member2@example.org", "custom_fields": { "my_optional_field": "My optional value" } }, "member": { "member_id": "9978ydioiZ", "list_id": "BaImMu3JZA", "email": "member2@example.org", "state": "active", "signup_date": "2023-01-01 11:58:16", "modified": null, "confirm_date": null, "ip": "198.51.100.10", "source_url": "", "custom_fields": { "my_required_field": "My required field value", "my_optional_field": "" } } } ], "edited": [], "added": [ { "provided_data": { "email": "member3@example.org", "custom_fields": { "my_required_field": "My required field value", "my_optional_field": "My optional value" } }, "member": { "member_id": "vnvj2cfQ3a", "list_id": "BaImMu3JZA", "email": "member3@example.org", "state": "active", "signup_date": "2023-02-07 17:29:33", "modified": null, "confirm_date": null, "ip": "198.51.100.10", "source_url": null, "custom_fields": { "my_required_field": "My required field value", "my_optional_field": "My optional value" } } } ] } Zoals u in bovenstaand voorbeeld kunt zien delen ontvangt u een report en delen wij de aangeleverde member objected op in errors, skipped, edited en added. Deze gegevens ontvangt u altijd van ons, ook als er geen data in zit. Van elke member die wij verwerken, ontvangt u de provided_data en waar mogelijk ook een member object zoals de member op dat moment bij ons in het systeem bekend is. Op deze manier kunt u eenvoudig de toegestuurde lijst vergelijken met de status bij Laposta. Members komen in skipped terecht wanneer deze volgens de opgegeven mode niet verwerkt mogen worden, maar toch meegeleverd zijn. |
||||||||||||||||||||||||||||||||||||||||||||
VeldenMet dit onderdeel kunt u velden van lijsten opvragen, toevoegen en wijzigen. |
URL patronen
|
||||||||||||||||||||||||||||||||||||||||||||
Het field objectVelden
|
Voorbeeld field object{ "field": { "field_id": "Z87ysHha9A", "list_id": "BaImMu3JZA", "created": "2012-02-18 11:42:38", "modified": "2012-06-02 14:07:20", "state": "active", "name": "Naam", "tag": "{{naam}}", "custom_name": "naam", "defaultvalue": "", "datatype": "text", "datatype_display": null, "required": true, "in_form": true, "in_list": true, "autocomplete": "on" } } |
||||||||||||||||||||||||||||||||||||||||||||
Veld toevoegenAls er iets niet klopt aan de meegegeven parameters dan wordt bij de foutmelding een code en een melding weergegeven. Zie hierboven bij Foutmeldingen wat de codes betekenen. Parameters
|
DefinitiePOST https://api.laposta.nl/v2/field Voorbeeld aanvraagrequire_once('./lib/Laposta.php'); Laposta::setApiKey('JdMtbsMq2jqJdQZD9AHC'); $field = new Laposta_Field('srbhotdwob'); $result = $field->create(array( 'name' => 'Kleur', 'defaultvalue' => 'Groen', 'datatype' => 'select_single', 'options' => array('Rood', 'Groen', 'Blauw'), 'required' => 'true', 'in_form' => 'true', 'in_list' => 'true' ) ); Voorbeeld antwoord{ "field": { "field_id": "GeVKetES6z", "list_id": "srbhotdwob", "created": "2016-06-06 22:24:38", "modified": null, "state": "active", "name": "Kleur", "tag": "{{kleur}}", "defaultvalue": "Groen", "datatype": "select_single", "datatype_display": "radio", "required": true, "in_form": true, "in_list": true, "is_email": false, "autocomplete": "on", "options": [ "Rood", "Groen", "Blauw" ], "options_full": [ { "id": 1, "value": "Rood" }, { "id": 2, "value": "Groen" }, { "id": 3, "value": "Blauw" } ] } } |
||||||||||||||||||||||||||||||||||||||||||||
Veld opvragenAlle informatie over een veld. Parameters
|
DefinitieGET https://api.laposta.nl/v2/field/{field_id} Voorbeeld aanvraagrequire_once('./lib/Laposta.php'); Laposta::setApiKey('JdMtbsMq2jqJdQZD9AHC'); $field = new Laposta_Field('BaImMu3JZA'); $result = $field->get('gt2Em8vJwi'); |
||||||||||||||||||||||||||||||||||||||||||||
Veld wijzigenU hoeft alleen de onderdelen die gewijzigd moeten worden in de aanvraag mee te sturen. Onderdelen die niet worden genoemd houden hun huidige waarde. Zodra een onderdeel wordt genoemd wordt het wel gecontroleerd, en kan dus voor een foutmelding zorgen. Bij deze foutmelding wordt een code weergegeven met een melding. Zie hierboven bij Foutmeldingen wat de codes betekenen. Let op: het wijzigen van het datatype verwijdert alle gegevens van dat veld voor relaties. Parameters
|
DefinitiePOST https://api.laposta.nl/v2/field/{field_id} Voorbeeld aanvraagDit voorbeeld maakt het veld niet meer verplicht. require_once('./lib/Laposta.php'); Laposta::setApiKey('JdMtbsMq2jqJdQZD9AHC'); $field = new Laposta_Field('BaImMu3JZA'); $result = $field->update('hsJ5zbDfzJ", array( 'required' => 'false' ) ); Voorbeeld antwoord{ "field": { "field_id": "hsJ5zbDfzJ", "list_id": "BaImMu3JZA", "created": "2012-10-31 11:55:50", "modified": "2012-10-31 12:05:44", "state": "active", "name": "Leeftijd", "tag": "{{leeftijd}}", "custom_name": "leeftijd", "defaultvalue": "", "datatype": "text", "datatype_display": null, "required": false, "in_form": true, "in_list": true, "autocomplete": "on" } } |
||||||||||||||||||||||||||||||||||||||||||||
Veld verwijderenHiermee verwijdert u een veld definitief. Als het veld niet bestaat wordt een foutmelding gegeven. Als antwoord krijgt u weer een veld object, maar nu met state 'deleted'. Hierna is dit veld niet nogmaals op te vragen. Parameters
|
DefinitieDELETE https://api.laposta.nl/v2/field/{field_id} Voorbeeld aanvraagrequire_once('./lib/Laposta.php'); Laposta::setApiKey('JdMtbsMq2jqJdQZD9AHC'); $field = new Laposta_Field('BaImMu3JZA'); $result = $field->delete('lxwc8OyD3a'); Voorbeeld antwoord{ "field": { "field_id": "lxwc8OyD3a", "list_id": "BaImMu3JZA", "created": "2012-10-30 21:44:40", "modified": null, "state": "deleted", "name": "Lievelingskleur", "tag": "{{lievelingskleur}}", "custom_name": "lievelingskleur", "defaultvalue": "", "datatype": "text", "datatype_display": null, "required": false, "in_form": true, "in_list": true, "autocomplete": "on" } } |
||||||||||||||||||||||||||||||||||||||||||||
Alle velden van een lijst opvragenAlle velden van een lijst in een array van field objecten. De field objecten zijn opgenomen in een array met de naam 'data'. Parameters
|
DefinitieGET https://api.laposta.nl/v2/field Voorbeeld aanvraagrequire_once('../../lib/Laposta.php'); Laposta::setApiKey('JdMtbsMq2jqJdQZD9AHC'); $field = new Laposta_Field('BaImMu3JZA'); $result = $field->all(); Voorbeeld antwoord{ "data": [ { "field": { "field_id": "Z87ysHha9A", "list_id": "BaImMu3JZA", "created": "2012-02-18 11:42:38", "modified": "2012-06-02 14:07:20", "state": "active", "name": "Naam", "tag": "{{naam}}", "custom_name": "naam", "defaultvalue": "lezer", "datatype": "text", "required": true, "in_form": true, "in_list": true, "autocomplete": "on" } }, { "field": { "field_id": "9hj8HA_8A2", "list_id": "BaImMu3JZA", "created": "2012-03-28 20:12:02", "modified": "2012-03-28 20:13:10", "state": "active", "name": "Leeftijd", "tag": "{{leeftijd}}", "custom_name": "leeftijd", "defaultvalue": "onbekend", "datatype": "date", "required": true, "in_form": true, "in_list": true, "autocomplete": "on" } } ] } |
||||||||||||||||||||||||||||||||||||||||||||
RelatiesMet dit onderdeel kunt u relaties opvragen, toevoegen en wijzigen. Als parameter heeft u steeds een list_id nodig. Deze kunt u vinden door in te loggen, en dan naar de betreffende lijst te gaan onder 'Relaties'. Vervolgens klikt u op de tab 'Kenmerken lijst'. Aan de rechterzijde ziet u daar het ID staan. |
URL patronen
|
||||||||||||||||||||||||||||||||||||||||||||
Het member objectVelden
|
Voorbeeld member object{ "member": { "member_id": "9978ydioiZ", "list_id": "BaImMu3JZA", "email": "maartje@example.net", "state": "active", "signup_date": "2012-08-13 16:13:07", "modified": "2012-08-13 16:14:27", "ip": "198.51.100.10", "source_url": "http://example.com", "custom_fields": { "name": "Maartje de Vries", "dateofbirth": "1973-05-10 00:00:00", "children": 2, "prefs": [ "optionA", "optionB" ] } } } |
||||||||||||||||||||||||||||||||||||||||||||
Relatie toevoegenAls er iets niet klopt aan de meegegeven parameters dan wordt bij de foutmelding een code weergegeven. Deze kunt u in combinatie met de variabele 'parameter' gebruiken om een melding aan de gebruiker te tonen. Zie hierboven bij Foutmeldingen wat de codes betekenen. Parameters
Als het een double-optin lijst betreft dan wordt bij elke aanmelding een bevestigingsmail verstuurd, tenzij de optie 'ignore_doubleoptin' wordt meegegeven (zie hierboven). Als er custom_fields zijn die verplicht zijn gesteld, is het vullen van deze velden via de API ook verplicht. |
DefinitiePOST https://api.laposta.nl/v2/member Voorbeeld aanvraagrequire_once('./lib/Laposta.php'); Laposta::setApiKey('JdMtbsMq2jqJdQZD9AHC'); $member = new Laposta_Member('BaImMu3JZA'); $result = $member->create(array( 'ip' => '198.51.100.0', 'email' => 'maartje@example.net', 'source_url' => 'http://example.com', 'custom_fields' => array( 'name' => 'Maartje de Vries', 'dateofbirth' => '1973-05-10', 'children' => 2, 'prefs' => array('optionA', 'optionB') ) ) ); Meerkeuze custom fields kunnen gevuld worden met de op dat moment voor dat veld gedefinieerde opties. U kunt dus gewoon de waarde van het veld meegeven. Als er meerdere keuzes gemaakt kunnen worden, dan kunt u deze in een array meegeven; zie het voorbeeld hierboven. Voorbeeld antwoord{ "member": { "member_id": "9978ydioiZ", "list_id": "BaImMu3JZA", "email": "maartje@example.net", "state": "active", "signup_date": "2012-08-13 16:13:07", "ip": "198.51.100.10", "source_url": "http://example.com", "custom_fields": { "name": "Maartje de Vries", "dateofbirth": "1973-05-10 00:00:00", "children": 2, "prefs": [ "optionA", "optionB" ] } } } |
||||||||||||||||||||||||||||||||||||||||||||
Relatie opvragenAlle informatie over een relatie in een member object. Parameters
|
DefinitieGET https://api.laposta.nl/v2/member/{member_id}?list_id={list_id} Voorbeeld aanvraagrequire_once('./lib/Laposta.php'); Laposta::setApiKey('JdMtbsMq2jqJdQZD9AHC'); $member = new Laposta_Member('BaImMu3JZA'); $result = $member->get('Du83Hyjhj8'); |
||||||||||||||||||||||||||||||||||||||||||||
Relatie wijzigenU hoeft alleen de velden die gewijzigd moeten worden in de aanvraag mee te sturen. Velden die niet worden genoemd houden hun huidige waarde. Zodra een veld wordt genoemd wordt het wel gecontroleerd, en kan dus voor een foutmelding zorgen. Bij deze foutmelding wordt een code weergegeven. Deze kunt u in combinatie met de variabele 'parameter' gebruiken om een melding aan de gebruiker te tonen. Zie hierboven bij Foutmeldingen wat de codes betekenen. Parameters
|
DefinitiePOST https://api.laposta.nl/v2/member/{member_id} Voorbeeld aanvraagDit voorbeeld wijzigt de naam en het aantal kinderen. require_once('./lib/Laposta.php'); Laposta::setApiKey('JdMtbsMq2jqJdQZD9AHC'); $member = new Laposta_Member('BaImMu3JZA'); $result = $member->update('9978ydioiZ', array( 'custom_fields' => array( 'name' => 'Maartje de Vries - Abbink', 'children' => 3 ) ) ); U kunt hier in plaats van het member_id ook het e-mailadres gebruiken. Meerkeuze custom fields die niet verplicht zijn kunnen leeggemaakt worden door de variabele wel op te nemen in de aanvraag voor de wijziging, maar zonder waarde. Voorbeeld antwoord{ "member": { "member_id": "9978ydioiZ", "list_id": "BaImMu3JZA", "email": "maartje@example.net", "state": "active", "signup_date": "2012-08-13 16:13:07", "ip": "198.51.100.10", "source_url": "http://example.com", "custom_fields": { "name": "Maartje de Vries - Abbink", "dateofbirth": "1973-05-10 00:00:00", "children": 3, "prefs": [ "optionA", "optionB" ] } } } |
||||||||||||||||||||||||||||||||||||||||||||
Relatie verwijderenHiermee verwijdert u een relatie definitief. Als de relatie niet bestaat wordt een foutmelding gegeven. Als antwoord krijgt u weer een member object, maar nu met state 'deleted'. Hierna is deze relatie niet nogmaals op te vragen. Parameters
|
DefinitieDELETE https://api.laposta.nl/v2/member/{member_id} Voorbeeld aanvraagrequire_once('./lib/Laposta.php'); Laposta::setApiKey('JdMtbsMq2jqJdQZD9AHC'); $member = new Laposta_Member('BaImMu3JZA'); $result = $member->delete('9978ydioiZ'); U kunt hier in plaats van het member_id ook het e-mailadres gebruiken. Voorbeeld antwoord{ "member": { "member_id": "9978ydioiZ", "list_id": "BaImMu3JZA", "email": "maartje@example.net", "state": "deleted", "signup_date": "2012-08-13 16:13:07", "ip": "198.51.100.10", "source_url": "http://example.com", "custom_fields": { "name": "Maartje de Vries - Abbink", "dateofbirth": "1973-05-10 00:00:00", "children": 3, "prefs": [ "optionA", "optionB" ] } } } |
||||||||||||||||||||||||||||||||||||||||||||
Alle relaties van een lijst opvragenAlle relaties in een array van member objecten. De member objecten zijn opgenomen in een array met de naam 'data'. Parameters
|
DefinitieGET https://api.laposta.nl/v2/member Voorbeeld aanvraagrequire_once('../../lib/Laposta.php'); Laposta::setApiKey('JdMtbsMq2jqJdQZD9AHC'); $member = new Laposta_Member('BaImMu3JZA'); $result = $member->all(); Voorbeeld antwoord{ "data": [ { "member": { "member_id": "9978ydioiZ", "list_id": "BaImMu3JZA", "email": "maartje@example.net", "state": "active", "signup_date": "2012-08-13 16:13:07", "ip": "198.51.100.10", "source_url": "http://example.com", "custom_fields": { "name": "Maartje de Vries - Abbink", "dateofbirth": "1973-05-10 00:00:00", "children": 3, "prefs": [ "optionA", "optionB" ] } } }, { "member": { "member_id": "Hy8RA178HB", "list_id": "BaImMu3JZA", "email": "stefan@example.net", "state": "active", "signup_date": "2012-06-24 11:54:12", "ip": "198.51.100.10", "source_url": "http://example.com", "custom_fields": { "name": "Stefan van Aalst", "dateofbirth": null, "children": 0, "prefs": [ "optionA" ] } } } ] } |
||||||||||||||||||||||||||||||||||||||||||||
WebhooksWebhooks vormen een apart onderdeel van de API. Bij de normale API gaat het opvragen van informatie steeds van de ontwikkelaar uit. Bij webhooks is het andersom, en neem Laposta het initiatief om de ontwikkelaar van iets op de hoogte te stellen. Een webhook doet dat door het aanroepen van een URL die door u is opgegeven; in de vorm van een POST met een JSON object met informatie. U kunt URL's opgeven voor het toevoegen, wijzigen of verwijderen van relaties. Stel dat u een webhook aanmaakt voor toevoegingen, en iemand meld zich aan via een aanmeldformulier van Laposta, dan krijgt u vrijwel meteen na deze nieuwe aanmelding een POST op de door u opgegeven URL. Toepassing: synchronisatie met andere systemenOnze API wordt het meest gebruikt om het relatiebestand in Laposta te synchroniseren met een andere applicatie, bijvoorbeeld een CMS of een CRM. Het toevoegen aan en wijzigen van relaties aan Laposta wordt dan via de API gedaan (zoals hierboven beschreven). Webhooks stellen uw applicatie op de hoogte van veranderingen in het relatiebestand die binnen Laposta plaats vinden (aan- of afmeldingen, of wijzigingen). Met de combinatie van deze twee functies kunt u de twee bestanden synchroon houden. Het verwerken van webhooksBij een webhook wordt er een URL aangeroepen op uw server. De meegegeven json data staat in de body van de aanvraag. U bent helemaal vrij in de manier waarop de informatie verwerkt wordt. Om aan te geven dat u een webhook correct ontvangen hebt, moet de server een 200 HTTP statuscode teruggeven. (Dit zal meestal standaard het geval zijn). Na bewerkingen via de APIStandaard worden de webhooks niet aangeroepen als u relaties toevoegt of wijzigt via de API. De gedachte hierbij is dat u al op de hoogte bent van de wijzigingen, en het ontvangen van deze informatie via een webhook dubbelop zou zijn. Het kan echter voorkomen dat dit toch gewenst is (bijvoorbeeld als de API wordt aangeroepen vanuit een extern formulier). Dat is mogelijk; als u ons hierover een mailtje stuurt dan kunnen we dit activeren. |
Webhooks registrerenU kunt webhooks per lijst registreren. Dit doet u door naar de betreffende lijst te gaan (onder Relaties), en dan naar Kenmerken lijst. Daar vindt u het tabblad Webhooks. Voor elke webhook kunt u aangeven voor welke event deze moet worden aangeroepen: het toevoegen van een relatie, het wijzigen van een relatie, of het verwijderen van een relatie. Daarbij geeft u de URL op waarnaar de informatie gePOST moet worden. Het is ook mogelijk de webhooks via deze API te beheren; zie daarvoor de informatie hieronder. TimingHet kan zijn dat het aanroepen van een webhook niet lukt, bijvoorbeeld omdat uw server niet bereikbaar is of een foutmelding geeft. Laposta blijft de webhook dan nog een aantal keer (7 om precies te zijn) aanbieden. Eerst na 5 minuten, en dan in oplopende intervallen tot ongeveer 14 dagen. Als er dan nog geen contact mogelijk wordt de webhook verwijderd. Bundeling eventsElke 5 seconden worden de op dat moment aanwezige webhooks aangeroepen. Als het er meerdere zijn, dan worden ze gebundeld, tot maximaal 1000 events per aanvraag. Zo wordt voorkomen dat uw server overspoeld wordt met aanvragen, bijvoorbeeld bij het importeren van grotere hoeveelheden relaties in Laposta. |
||||||||||||||||||||||||||||||||||||||||||||
Opbouw webhookOp de door u opgegeven URL ontvangt u een object in JSON formaat. Dit object bestaat uit een array met de naam data, waarin de verschillende events worden opgenomen. Er kunnen dus meerdere events in een enkele aanvraag zijn opgenomen (zie hierboven onder 'Bundeling events'). Velden
Velden info object
|
Voorbeeld webhook response{ "data": [ { "type": "member", "event": "deactivated", "data": { "member_id": "9978ydioiZ", "list_id": "BaImMu3JZA", "email": "maartje@example.net", "state": "deleted", "signup_date": "2012-08-13 16:13:07", "ip": "198.51.100.10", "source_url": "http://example.com", "custom_fields": { "name": "Maartje de Vries - Abbink", "dateofbirth": "1973-05-10 00:00:00", "children": 3, "prefs": [ "optionA", "optionB" ] } }, "info": { "source": "app", "action": "deleted", "date_event": "2012-08-17 20:56:31 } } ], "date_requested": "2012-08-17 20:56:34 } |
||||||||||||||||||||||||||||||||||||||||||||
Webhooks beherenU kunt de webhooks ook met de API beheren. Hieronder staat uitgelegd hoe u webhooks kunt opvragen, toevoegen en wijzigen. |
URL patronen
|
||||||||||||||||||||||||||||||||||||||||||||
Het webhook objectVelden
|
Voorbeeld webhook object{ "webhook": { "webhook_id": "cW5ls8IVJl", "list_id": "BaImMu3JZA", "created": "2012-10-31 17:03:21", "modified": "2012-10-31 17:12:08", "state": "active", "event": "subscribed", "url": "http://example.net/webhook.asp", "blocked": false } } |
||||||||||||||||||||||||||||||||||||||||||||
Webhook toevoegenAls er iets niet klopt aan de meegegeven parameters dan wordt bij de foutmelding een code en een melding weergegeven. Zie hierboven bij Foutmeldingen wat de codes betekenen. Parameters
|
DefinitiePOST https://api.laposta.nl/v2/webhook Voorbeeld aanvraagrequire_once('./lib/Laposta.php'); Laposta::setApiKey('JdMtbsMq2jqJdQZD9AHC'); $webhook = new Laposta_Webhook('BaImMu3JZA'); $result = $webhook->create(array( 'event' => 'modified', 'url' => 'http://example.com/webhook.pl', 'blocked' => false ) ); Voorbeeld antwoord{ "webhook": { "webhook_id": "JH_y9dEsfH", "list_id": "BaImMu3JZA", "created": "2012-10-31 21:08:58", "modified": null, "state": "active", "event": "modified", "url": "http://example.com/webhook.pl", "blocked": false } } |
||||||||||||||||||||||||||||||||||||||||||||
Webhook opvragenAlle informatie over een webhook. Parameters
|
DefinitieGET https://api.laposta.nl/v2/webhook/{webhook_id} Voorbeeld aanvraagrequire_once('./lib/Laposta.php'); Laposta::setApiKey('JdMtbsMq2jqJdQZD9AHC'); $webhook = new Laposta_Webhook('BaImMu3JZA'); $result = $webhook->get('cW5ls8IVJl'); |
||||||||||||||||||||||||||||||||||||||||||||
Webhook wijzigenU hoeft alleen de velden die gewijzigd moeten worden in de aanvraag mee te sturen. Velden die niet worden genoemd houden hun huidige waarde. Zodra een veld wordt genoemd wordt het wel gecontroleerd, en kan dus voor een foutmelding zorgen. Bij deze foutmelding wordt een code weergegeven met een melding. Zie hierboven bij Foutmeldingen wat de codes betekenen. Parameters
|
DefinitiePOST https://api.laposta.nl/v2/webhook/{webhook_id} Voorbeeld aanvraagDit voorbeeld wijzigt de url. require_once('./lib/Laposta.php'); Laposta::setApiKey('JdMtbsMq2jqJdQZD9AHC'); $webhook = new Laposta_Webhook('BaImMu3JZA'); $result = $webhook->update('iH52rJwguo", array( 'url' => 'http://example.com/dir/webhook.pl', ) ); Voorbeeld antwoord{ "webhook": { "webhook_id": "iH52rJwguo", "list_id": "BaImMu3JZA", "created": "2012-10-31 21:08:58", "modified": "2012-10-31 21:32:21", "state": "active", "event": "modified", "url": "http://example.com/dir/webhook.pl", "blocked": false } } |
||||||||||||||||||||||||||||||||||||||||||||
Webhook verwijderenHiermee verwijdert u een webhook definitief. Eventuele uitstaande aanvragen van de webhook worden nog wel afgerond. Als een veld niet bestaat wordt een foutmelding gegeven. Als antwoord krijgt u weer een webhook object, maar nu met state 'deleted'. Hierna is de webhook niet nogmaals op te vragen. Parameters
|
DefinitieDELETE https://api.laposta.nl/v2/webhook/{webhook_id} Voorbeeld aanvraagrequire_once('./lib/Laposta.php'); Laposta::setApiKey('JdMtbsMq2jqJdQZD9AHC'); $webhook = new Laposta_Webhook('BaImMu3JZA'); $result = $webhook->delete('8HdlEGtlml'); Voorbeeld antwoord{ "webhook": { "webhook_id": "8HdlEGtlml", "list_id": "BaImMu3JZA", "created": "2012-10-31 17:11:15", "modified": null, "state": "deleted", "event": "modified", "url": "http://example.com/laposta.php", "blocked": true } } |
||||||||||||||||||||||||||||||||||||||||||||
Alle webhooks van een lijst opvragenAlle webhooks van een lijst in een array van webhook objecten. De webhook objecten zijn opgenomen in een array met de naam 'data'. Parameters
|
DefinitieGET https://api.laposta.nl/v2/webhook Voorbeeld aanvraagrequire_once('./lib/Laposta.php'); Laposta::setApiKey('JdMtbsMq2jqJdQZD9AHC'); $webhook = new Laposta_Webhook('BaImMu3JZA'); $result = $webhook->all(); Voorbeeld antwoord{ "data": [ { "webhook": { "webhook_id": "8HdlEGtlml", "list_id": "BaImMu3JZA", "created": "2012-10-31 17:11:15", "modified": null, "state": "active", "event": "modified", "url": "http://example.com/laposta.php", "blocked": false } }, { "webhook": { "webhook_id": "mh7Qao0_lR", "list_id": "BaImMu3JZA", "created": "2012-09-20 14:20:14", "modified": null, "state": "active", "event": "subscibed", "url": "http://example.com/laposta.php", "blocked": false } } ] } |
||||||||||||||||||||||||||||||||||||||||||||
CampagnesCampagnes opvragen, aanmaken, vullen en versturen. |
URL patronen
|
||||||||||||||||||||||||||||||||||||||||||||
Het objectVelden
|
Voorbeeld campaign object{ "campaign": { "account_id": "wFiUS4HL4e", "campaign_id": "njhgaf61ye", "created": "2014-12-11 11:26:19", "modified": "2014-12-11 11:27:31", "type": "regular", "delivery_requested": null, "delivery_started": "2014-12-11 11:27:29", "delivery_ended": "2014-12-11 11:27:31", "name": "Mijn eerste campagne", "subject": "Mijn eerste campagne", "from": { "name": "Laposta API", "email": "api@laposta.nl" }, "reply_to": "api@laposta.nl", "list_ids": { "kxhysrt26s": [ "2noVadDLbd" ], "t1jmacge9a": [ "GJn80BiYxo" ], "shb5vujyxj": [], "eiwhvx595g": [ "PtIXMx2sG0" ] }, "stats": { "ga": "true", "mtrack": "false" }, "web": "https://laposta-api.email-provider.nl/web/wFiUS4HL4e/njhgaf61ye", "screenshot": { "113x134": "https://app.laposta.nl/clients/images/screenshots/9dknAdbAXm.2.png" "226x268": "https://app.laposta.nl/clients/images/screenshots/9dknAdbAXm.2.png" } } } |
||||||||||||||||||||||||||||||||||||||||||||
Campagne aanmakenParameters
De campagne is na de aanvraag nog niet gevuld of ingepland. Gebruik hiervoor de |
DefinitiePOST https://api.laposta.nl/v2/campaign Voorbeeld aanvraagrequire_once('./lib/Laposta.php'); Laposta::setApiKey('JdMtbsMq2jqJdQZD9AHC'); $campaign = new Laposta_Campaign(); $result = $campaign->create(array( 'type' => 'regular', 'name' => 'Test API ' . date('d-m-Y H:i:s'), 'subject' => 'This is the subject', 'from' => array( 'name' => 'Max de Vries', 'email' => 'max@example.net' ), 'reply_to' => 'reply@example.net', 'list_ids' => array( 'kxhysrt26s' => array('2noVadDLbd'), 't1jmacge9a' => array('GJn80BiYxo'), 'shb5vujyxj', 'eiwhvx595g' => array('PtIXMx2sG0') ), 'stats' => array( 'ga' => true ) )); Voorbeeld antwoord{ "campaign": { "account_id": "wFiUS4HL4e", "campaign_id": "pbrqulw2tc", "created": "2016-05-16 21:24:12", "modified": null, "type": "regular", "delivery_requested": null, "delivery_started": null, "delivery_ended": null, "name": "Test via API", "subject": "Hello from us", "from": { "name": "Max de Vries", "email": "max@example.net" }, "reply_to": "reply@example.net", "list_ids": { "kxhysrt26s": [ "2noVadDLbd" ], "t1jmacge9a": [ "GJn80BiYxo" ], "shb5vujyxj": [], "eiwhvx595g": [ "PtIXMx2sG0" ] }, "stats": { "ga": "true", "mtrack": "false" }, "web": "https://laposta-api.email-provider.nl/web/wFiUS4HL4e/pbrqulw2tc", "screenshot": { "113x134": "https://app.laposta.nl/clients/images/screenshots/default/113x134_nl.png", "226x268": "https://app.laposta.nl/clients/images/screenshots/default/113x134_nl.png" } } } |
||||||||||||||||||||||||||||||||||||||||||||
Campagne opvragenAlle informatie over een campagne. Parameters
|
DefinitieGET https://api.laposta.nl/v2/campaign/{campaign_id} Voorbeeld aanvraagrequire_once('./lib/Laposta.php'); Laposta::setApiKey('JdMtbsMq2jqJdQZD9AHC'); $campaign = new Laposta_Campaign(); $result = $campaign->get('njhgaf61ye'); |
||||||||||||||||||||||||||||||||||||||||||||
Campagne wijzigenU hoeft alleen de velden die gewijzigd moeten worden in de aanvraag mee te sturen. Velden die niet worden genoemd houden hun huidige waarde. Zodra een veld wordt genoemd wordt het wel gecontroleerd, en kan dus voor een foutmelding zorgen. Bij deze foutmelding wordt een code weergegeven met een melding. Zie hierboven bij Foutmeldingen wat de codes betekenen. Parameters
|
DefinitiePOST https://api.laposta.nl/v2/campaign/{campaign_id} Voorbeeld aanvraagDit voorbeeld wijzigt de onderwerpregel. require_once('./lib/Laposta.php'); Laposta::setApiKey('JdMtbsMq2jqJdQZD9AHC'); $result = $campaign->update('pbrqulw2tc', array( 'subject' => 'Hello from us, modified' )); Voorbeeld antwoord{ "campaign": { "account_id": "wFiUS4HL4e", "campaign_id": "pbrqulw2tc", "created": "2016-05-16 21:24:12", "modified": "2016-05-16 21:51:27", "type": "regular", "delivery_requested": null, "delivery_started": null, "delivery_ended": null, "name": "Test via API", "subject": "Hello from us, modified", "from": { "name": "Max de Vries", "email": "max@example.net" }, "reply_to": "reply@example.net", "list_ids": { "kxhysrt26s": [ "2noVadDLbd" ], "t1jmacge9a": [ "GJn80BiYxo" ], "shb5vujyxj": [], "eiwhvx595g": [ "PtIXMx2sG0" ] }, "stats": { "ga": "true", "mtrack": "false" }, "web": "https://laposta-api.email-provider.nl/web/wFiUS4HL4e/pbrqulw2tc", "screenshot": { "113x134": "https://app.laposta.nl/clients/images/screenshots/default/113x134_nl.png", "226x268": "https://app.laposta.nl/clients/images/screenshots/default/113x134_nl.png" } } } |
||||||||||||||||||||||||||||||||||||||||||||
Campagne verwijderenHiermee verwijdert u een campagne. Campagnes die nog niet verzonden zijn worden definitief verwijderd. Campagnes die verzonden zijn worden pas na 180 dagen definitief verwijderd. In de tussentijd zijn ze te herstellen in het overzicht van campagnes in ons programma. Als antwoord krijgt u het campaign object, maar nu met state 'deleted'. Hierna is de campagne niet nogmaals op te vragen. Parameters
|
DefinitieDELETE https://api.laposta.nl/v2/campaign/{campaign_id} Voorbeeld aanvraagrequire_once('./lib/Laposta.php'); Laposta::setApiKey('JdMtbsMq2jqJdQZD9AHC'); $campaign = new Laposta_Campaign(); $result = $campaign->delete('az0ndh7akc'); Voorbeeld antwoord{ "campaign": { "account_id": "wFiUS4HL4e", "campaign_id": "az0ndh7akc", "created": "2016-05-16 22:44:49", "modified": "2016-05-16 22:44:49", "type": "regular", "delivery_requested": null, "delivery_started": null, "delivery_ended": null, "name": "Test API 16-05-2016 22:44:49", "subject": "This is the subject", "from": { "name": "Max de Vries", "email": "max@example.net" }, "reply_to": "reply@example.net", "list_ids": { "kxhysrt26s": [ "2noVadDLbd" ], "t1jmacge9a": [ "GJn80BiYxo" ], "shb5vujyxj": [], "eiwhvx595g": [ "PtIXMx2sG0" ] }, "stats": { "ga": "true", "mtrack": "false" }, "web": "https://laposta-api.email-provider.nl/web/wFiUS4HL4e/az0ndh7akc", "screenshot": { "113x134": "https://app.laposta.nl/clients/images/screenshots/default/113x134_nl.png", "226x268": "https://app.laposta.nl/clients/images/screenshots/default/113x134_nl.png" }, "state": "deleted" } } |
||||||||||||||||||||||||||||||||||||||||||||
Alle campagnes van een account opvragenAlle campagnes in een array van campaign objecten. De campaign objecten zijn opgenomen in een array met de naam 'data'. Parameters
|
DefinitieGET https://api.laposta.nl/v2/campaign Voorbeeld aanvraagrequire_once('./lib/Laposta.php'); Laposta::setApiKey('JdMtbsMq2jqJdQZD9AHC'); $campaign = new Laposta_Campaign(); $result = $campaign->all(); Voorbeeld antwoord{ "data": [ { "campaign": { "account_id": "wFiUS4HL4e", "campaign_id": "njhgaf61ye", "created": "2014-12-11 11:26:19", "modified": "2014-12-11 11:27:31", "type": "regular", "delivery_requested": null, "delivery_started": "2014-12-11 11:27:29", "delivery_ended": "2014-12-11 11:27:31", "name": "Mijn eerste campagne", "subject": "Mijn eerste campagne", "from": { "name": "Laposta API", "email": "api@laposta.nl" }, "reply_to": "api@laposta.nl", "list_ids": { "kxhysrt26s": [ "2noVadDLbd" ], "t1jmacge9a": [ "GJn80BiYxo" ], "shb5vujyxj": [], "eiwhvx595g": [ "PtIXMx2sG0" ] }, "stats": { "ga": "true", "mtrack": "false" }, "web": "https://laposta-api.email-provider.nl/web/wFiUS4HL4e/njhgaf61ye", "screenshot": { "113x134": "https://app.laposta.nl/clients/images/screenshots/9dknAdbAXm.2.png" } } }, { "campaign": { "account_id": "wFiUS4HL4e", "campaign_id": "qzgllqculd", "created": "2014-12-11 11:27:45", "modified": "2014-12-11 11:27:56", "type": "regular", "delivery_requested": null, "delivery_started": null, "delivery_ended": null, "name": "Mijn tweede campagne", "subject": "Mijn tweede campagne", "from": { "name": "Laposta API", "email": "api@laposta.nl" }, "reply_to": "api@laposta.nl", "list_ids": { "kxhysrt26s": [ "2noVadDLbd" ], "t1jmacge9a": [ "GJn80BiYxo" ], "shb5vujyxj": [], "eiwhvx595g": [ "PtIXMx2sG0" ] }, "stats": { "ga": "true", "mtrack": "false" }, "web": "https://laposta-api.email-provider.nl/web/wFiUS4HL4e/qzgllqculd", "screenshot": { "113x134": "https://app.laposta.nl/clients/images/screenshots/ClCvez9GXQ.2.png" } } } ] } |
||||||||||||||||||||||||||||||||||||||||||||
Campagne content opvragenDe inhoud van een campagne opvragen. Let op: dit kan alleen als het een campagne betreft die geïmporteerd is, en niet bij een campagne die binnen de applicatie is gemaakt met de drag & drop-editor. Parameters
|
DefinitieGET https://api.laposta.nl/v2/campaign/{campaign_id}/content Voorbeeld aanvraagrequire_once('./lib/Laposta.php'); Laposta::setApiKey('JdMtbsMq2jqJdQZD9AHC'); $campaign = new Laposta_Campaign(); $result = $campaign->get('pbrqulw2tc', 'content'); |
||||||||||||||||||||||||||||||||||||||||||||
Campagne content vullenDe inhoud van een campagne vullen. ParametersDe campagne kan ofwel direct gevuld worden met html, ofwel via een url, waarbij Laposta de html importeert die op de opgegeven url te vinden is. Een van beide moet gekozen worden. Als beide parameters worden meegegeven dan wordt de html genomen.
Rapportage resultaatAls het importeren niet lukt volgt er een 400-foutmelding van de api. Als het wel lukt om de html te importeren, maar er zijn tijdens de import problemen gevonden, dan worden die in de variabele
Het is voor het versturen niet noodzakelijk deze problemen op te lossen, maar wel geadviseerd. Reclame en afmeldinkBij een gratis account wordt aan de onderkant van de nieuwsbrief onze reclame toegevoegd. Als de aangeboden html geen afmeldlink bevat, dan wordt ook deze door ons programma toegevoegd. |
DefinitiePOST https://api.laposta.nl/v2/campaign/{campaign_id}/content Voorbeeld aanvraagrequire_once('./lib/Laposta.php'); Laposta::setApiKey('JdMtbsMq2jqJdQZD9AHC'); $campaign = new Laposta_Campaign(); $result = $campaign->update('pbrqulw2tc', array( 'import_url' => 'http://google.com' ), 'content'); |
||||||||||||||||||||||||||||||||||||||||||||
Campagne verzendenEen campagne direct versturen. Parameters
Ter info: een campagne die al eerder verzonden werd, kan ook opnieuw verzonden worden. De campagne wordt dan alleen gestuurd naar de adressen die er sinds de laatste verzending zijn bijgekomen. |
DefinitiePOST https://api.laposta.nl/v2/campaign/{campaign_id}/action/send Voorbeeld aanvraagrequire_once('./lib/Laposta.php'); Laposta::setApiKey('JdMtbsMq2jqJdQZD9AHC'); $campaign = new Laposta_Campaign(); $result = $campaign->update('pbrqulw2tc', array(), 'action', 'send'); |
||||||||||||||||||||||||||||||||||||||||||||
Campagne inplannenEen campagne inplannen voor een later moment. Parameters
Ter info: een campagne die al eerder verzonden werd, kan ook opnieuw ingepland worden. De campagne wordt dan alleen verzonden naar de adressen die er sinds de laatste verzending zijn bijgekomen. |
DefinitiePOST https://api.laposta.nl/v2/campaign/{campaign_id}/action/schedule Voorbeeld aanvraagrequire_once('./lib/Laposta.php'); Laposta::setApiKey('JdMtbsMq2jqJdQZD9AHC'); $campaign = new Laposta_Campaign(); $result = $campaign->update('pbrqulw2tc', array( 'delivery_requested' => '2016-05-20 12:00' ), 'action', 'schedule'); |
||||||||||||||||||||||||||||||||||||||||||||
Campagne testenEen testmail versturen. Parameters
Ter info: alleen bij een campagne waarvoor al wel inhoud is, maar die nog niet verzonden is, kan een testmail verstuurd worden. |
DefinitiePOST https://api.laposta.nl/v2/campaign/{campaign_id}/action/testmail Voorbeeld aanvraagrequire_once('./lib/Laposta.php'); Laposta::setApiKey('JdMtbsMq2jqJdQZD9AHC'); $campaign = new Laposta_Campaign(); $result = $campaign->update('pbrqulw2tc', array( 'email' => 'test@example.net' ), 'action', 'testmail'); |
||||||||||||||||||||||||||||||||||||||||||||
ResultatenDe cijfers van de resultaten van campagnes opvragen. |
URL patronen
|
||||||||||||||||||||||||||||||||||||||||||||
Het objectVelden
|
Voorbeeld report object{ "report": { "account_id": "wFiUS4HL4e", "campaign_id": "njhgaf61ye", "sent": 20882, "accepted": 20139, "cleaned": 744, "complained": 1, "hardbounced": 743, "unsubscribed": 184, "opened_unique": 5711, "clicked_unique": 1348, "webversion_unique": 64, "accepted_ratio": 0.96, "opened_ratio": 0.28, "clicked_ratio": 0.07 } } |
||||||||||||||||||||||||||||||||||||||||||||
Resultaten van campagne opvragenDe resultaten van een campagne. Parameters
|
DefinitieGET https://api.laposta.nl/v2/report/{campaign_id} Voorbeeld aanvraagrequire_once('./lib/Laposta.php'); Laposta::setApiKey('JdMtbsMq2jqJdQZD9AHC'); $report = new Laposta_Report(); $result = $report->get('njhgaf61ye'); |
||||||||||||||||||||||||||||||||||||||||||||
De resultaten van alle campagnes van een account opvragenDe resultaten van alle campagnes in een array van result objecten. De report objecten zijn opgenomen in een array met de naam 'data'. Parameters
|
DefinitieGET https://api.laposta.nl/v2/report Voorbeeld aanvraagrequire_once('./lib/Laposta.php'); Laposta::setApiKey('JdMtbsMq2jqJdQZD9AHC'); $report = new Laposta_Report(); $result = $report->all(); Voorbeeld antwoord{ "data": [ { "report": { "account_id": "wFiUS4HL4e", "campaign_id": "njhgaf61ye", "sent": 20882, "accepted": 20139, "cleaned": 744, "complained": 1, "hardbounced": 743, "unsubscribed": 184, "opened_unique": 5711, "clicked_unique": 1348, "webversion_unique": 64, "accepted_ratio": 0.96, "opened_ratio": 0.28, "clicked_ratio": 0.07 } }, { "report": { "account_id": "wFiUS4HL4e", "campaign_id": "keim8js77f", "sent": 6989, "accepted": 6863, "cleaned": 126, "complained": 0, "hardbounced": 126, "unsubscribed": 260, "opened_unique": 3385, "clicked_unique": 1013, "webversion_unique": 120, "accepted_ratio": 0.98, "opened_ratio": 0.49, "clicked_ratio": 0.15 } } ] } |