Envois

GET /api/v1/mailings

Liste des envois existants

Query Parameters:
 
  • list – filtre les résultats par identifiant unique de liste
Response JSON Array of Objects:
 
  • id (int) – l’identifiant unique de l’envoi
  • name (string) – le nom unique de l’envoi
  • campaign (int) – l’identifiant unique de la campagne de cet envoi

Requête:

GET /api/v1/mailings HTTP/1.1
Host: account.emailicious.com
Accept: application/json

Réponse:

HTTP/1.1 200 OK
Vary: Accept
Allow: GET, POST, HEAD, OPTIONS
Content-Type: application/json

{
    "count": 3,
    "next": null,
    "previous": null,
    "results": [
        {
            "id": 1,
            "name": "First mailing",
            "campaign": null
        },
        {
            "id": 2,
            "name": "Mailing with campaign",
            "campaign": 1
        },
        {
            "id": 3,
            "name": "Third mailing",
            "campaign": null
        }
    ]
}
POST /api/v1/mailings

Crée un envoi avec possiblité de variantes et livraisons multiples.

Request JSON Object:
 
  • list (int) – l’identifiant unique de la liste
  • name (string) – le nom unique de l’envoi
  • campaign (int) – l’identifiant unique de la campagne
  • segments (array) – identifiants uniques des segments
  • variants (array) – variantes
  • variants.language (array) – code de langue de la variante
  • variants.from_name (string) – nom de l’expéditeur de la variante (prend la valeur default_from_name de la liste si définit)
  • variants.from_email (string) – nom de l’expéditeur de la variante (prend la valeur default_from_email de la liste si définit)
  • variants.replyto_email (string) – nom de l’expéditeur de la variante (prend la valeur default_replyto_email de la liste si définit)
  • variants.subject (string) – object de la variante
  • variants.layout.text (string) – contenu texte de la variante
  • variants.layout.zip_file (string) – fichier Zip sous forme de data URI représentant le contenu HTML de la variante
  • variants.deliveries (array) – livraisons
  • variants.deliveries.scheduled_datetime (string) – date et temps de la livraison

Note

Afin de permettre la soumission de fichiers lors des requêtes dont le Content-Type est application/json leur contenu doit être sous forme de data URI.

Les champs variants.layout.zip_file doivent être des fichiers Zip contenant l’aborescence suivante.

  1. Un fichier index.html représentant la mise en page HTML du gabarit.

  2. Et optionnelement des fichiers images (.jpg, .png, .gif) placéesdans un dossier images accessible depuis la racine de l’archive. Ces images devront être référencées de manière relative depuis le fichier index.html afin d’être considérées lors de l’importation du gabarit.

Voici un exemple Python démontrant comment générer une archive de valide compatible:

import StringIO
import zipfile

html = """<!DOCTYPE html>
<html>
    <body>
        Hello World!
        <img src="images/planet.png" />
    </body>
</html>"""

buffer = StringIO.StringIO()
with zipfile.ZipFile(buffer, mode='w') as archive:
    archive.writestr('index.html', html)
    archive.write('/path/to/planet.png', 'images/planet.png')

# URI encode the Zip file.
layout = 'data:application/zip;charset=utf-8;base64,%s' % (
    buffer.getvalue().encode('base64'),
)

Requête:

POST /api/v1/mailings HTTP/1.1
Host: account.emailicious.com
Accept: application/json
Content-Type: application/json

{
    "list": 1,
    "name": "Mailing",
    "variants": [
        {
            "subject": "Hello World!",
            "layout": {
                "zip_file": "data:application/zip;charset=utf-8;base64,..."
            },
            "deliveries": [
                {
                    "scheduled_datetime": "2017-05-15T19:30:33Z"
                }
            ]
        }
    ]
}

Réponse:

HTTP/1.1 201 Created
Allow: GET, POST, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 1,
    "name": "Mailing",
    "list": 1,
    "campaign": null,
    "segments": [],
    "variants": [
        {
            "from_name": "List default from name",
            "from_email": "list@default.from.email",
            "replyto_email": "",
            "subject": "Hello World!",
            "deliveries": [
                {
                    "exclusions": [],
                    "limit": null,
                    "scheduled_datetime": "2017-05-15T19:30:33Z"
                }
            ],
            "language": null,
            "layout": {
                "id": 1,
                "source": "<!DOCTYPE html>\n<html>\n<body>...</body>\n</html>"
            }
        }
    ]
}