DMDS API REST v1.5 Documentation using CURL
In all examples, replace dmdsid with the name of the dedicated DMDS, and APIKEY with the secret hash.
Changes from v1.4 to v1.5: number of events and paginated events
The method cantidad_eventos
is added to obtain the number of events between two specific dates.
Number of Events between Dates
Example:
curl -X GET "https://api-dmds-dmdsid.planisys.net/v1/cantidad_eventos"
-H "accept: application/json"
-H "Authorization: APIKEYxxxx"
-H "Content-Type: application/json"
-d '{
"fechahora_desde": "2023-07-30_00:00:00",
"fechahora_hasta": "2023-07-31_23:59:00"
}'
The response returned by this endpoint is categorized by types of events, e.g.:
{
"status": "ok",
"eventos": [
{
"count": 6329,
"event": "envio"
},
{
"count": 5053,
"event": "vista"
},
{
"count": 796,
"event": "click"
},
{
"count": 55,
"event": "rebote_hard"
},
{
"count": 18,
"event": "desuscripcion"
},
{
"count": 11,
"event": "conversion"
},
{
"count": 18,
"event": "invalidacion"
}
]
}
Paginated Events between Dates
This method ver_eventos
allows paginating with a variable page length of 10 or more and selecting from a page the events that occurred between two specific date-times. It takes four parameters:
Example:
curl -X GET "https://api-dmds-dmdsid.planisys.net/v1/ver_eventos"
-H "accept: application/json"
-H "Authorization: APIKEYxxxx"
-H "Content-Type: application/json"
-d '{
"fechahora_desde": "2023-07-30_00:00:00",
"fechahora_hasta": "2023-07-31_23:59:00"
"pagina":4,
"cantidad":100
}'
Warning
The parameters pagina and cantidad within the JSON must be numeric.
Changes from v1.3 to v1.4: archiving of sent emails (requires archiving license)
The flag archive
is added in send_many_inline and send_one_inline, with the goal of saving a record of what was sent within an Effective Send (also referred to as Batch).
In this way, by setting “archive”:”true” in the parameter list of the methods mentioned above, more information can be retrieved with the method eeid_info
(see below), and the EML formats sent to each recipient can be recovered.
Additionally, for archived emails, the method eeid_eml
is added, which allows returning the text of the email sent in an Effective Send to one of the recipients.
This way, a copy of the EML effectively instantiated for each particular recipient can be obtained, containing, e.g., receipts, notifications, or invoices for Audit purposes. This functionality requires an Archiving License for the DMDS in question.
Changes from v1.2 to v1.3 - Whitelisting
The method whitelist
is added, which allows checking if a contact is on the whitelist, adding or removing it.
The whitelist is used to immunize a contact so that it is not invalidated by a possible bounce due to failure or confusing message from the receiving MTA.
It also protects against a possible unsubscribe/invalid process that could be done based on bounce processing.
Changes from v1.1 to v1.2 - API version
The method version
is added, which returns the API version number, e.g.
Get API Version
With this call to the version
method, you can obtain the API version being used and look for changes in the documentation.
curl -X GET "https://api-dmds-dmdsid.planisys.net/v1/version"
-H "accept: application/json"
-H "Authorization: APIKEYxxxx"
-H "Content-Type: application/json"
returns a JSON with the version number.
{"version":"1.2"}
Changes from v1.0 to v1.1 - Revalidate and Invalidate
The methods revalidate
and invalidate
are added, and Revalidation and Invalidation events are stored to track changes in contact status.
The Not-Sent event is also added for cases where an email is attempted to be sent to an invalid contact. This event appears as unknown in the API and as Not-Sent in the Mtmail web interface.
The event visualization is compatible with the application https://mtmail.planisys.net, which will soon replace the dmds-dmdsid.planisys.net applications.
GET Contact Example
Here we will show calls related to Contacts, that is, email addresses of subscribed contacts, with their associated Fields and Events.
curl -X GET "https://api-dmds-dmdsid.planisys.net/v1/contacto/usuario@dominio"
-H "accept: application/json"
-H "Authorization: APIKEYxxxx"
-H "Content-Type: application/json"
Warning
Important: remember that the hostname and authorization are unique to each DMDS. Therefore, replace APIKEYxxxx and host or dmdsid with the appropriate value.
Curl on Microsoft Windows
You can download curl here:
http://www.paehl.com/open_source/?CURL_7.72.0
Contact Whitelist
The whitelist
method can be used to check if an email is on the whitelist using GET, remove it from the whitelist using DELETE, and add it to the whitelist using POST or PUT.
Check if on the whitelist with GET:
curl -X GET "https://api-dmds-dmdsid.planisys.net/v1/whitelist/usuario@dominio.com"
-H "accept: application/json"
-H "Authorization: APIKEYxxxx"
-H "Content-Type: application/json"
returns if not on the whitelist:
{"status":"ok","msg":"usuario@dominio.com not whitelisted"}
and returns if on the whitelist:
{"status":"ok","msg":"usuario@dominio.com whitelisted"}
Add to the whitelist with POST or PUT:
curl -X POST "https://api-dmds-dmdsid.planisys.net/v1/whitelist/usuario@dominio.com"
-H "accept: application/json"
-H "Authorization: APIKEYxxxx"
-H "Content-Type: application/json"
returns
{"status":"ok","msg":"usuario@dominio.com added to whitelist"}
Remove from whitelist with DELETE
curl -X DELETE "https://api-dmds-dmdsid.planisys.net/v1/whitelist/usuario@dominio.com"
-H "accept: application/json"
-H "Authorization: APIKEYxxxx"
-H "Content-Type: application/json"
returns
{"status":"ok","msg":"usuario@dominio.com removed from whitelist"}
Returns contact information
In this example, you can see how to return the information of a specific contact. In the call, in the URL, you must specify the email of the user already existing in the API’s database. This way, all the contact’s information, such as their name, surname, which Base or group they belong to, their events, etc., will be presented to us.
curl -X GET "https://api-dmds-dmdsid.planisys.net/v1/contacto/fdkslafjkdsjafdjsakjfdsa@hotmail.com" -H "accept: application/json" -H "Authorization: xxxxxxxxxxx
The response comes in a JSON that contains the events, bases/groups the contact belongs to, fields, and static information. In this case, it shows an email account that has been invalidated after two “hard” bounces or non-existent account.
{
"status": "ok",
"contacto": {
"numid": 455895,
"email": "fdkslafjkdsjafdjsakjfdsa@hotmail.com",
"nombre": "Juan",
"apellido": "Pérez",
"edad": null,
"sexo": "M",
"profesion": "",
"localidad": "",
"operacion": "Modificacion",
"actualizado": "2020-10-15T08:25:32",
"origenes": "",
"codigo_pais": "",
"codigo_region": "",
"ciudad": "",
"dispositivo": "web",
"subtipo_dispositivo_id": null,
"grupo_de_dominio_id": 0,
"invalido": true,
"campos": [
{
"nombre": "XYZDNIXYZ",
"valor": "21232421"
},
{
"nombre": "XYZEMPLEADORXYZ",
"valor": "Planisys"
},
{
"nombre": "XYZEMPLEADOR2XYZ",
"valor": "AvasCloud"
},
{
"nombre": "XYZTELCELXYZ",
"valor": "+34999111333"
}
],
"eventos": [
{
"evento": "envio",
"timestamp": "2020-10-15T08:25:11",
"campania": "VIMS "
},
{
"evento": "envio",
"timestamp": "2020-10-15T08:25:16",
"campania": "VIMS "
},
{
"evento": "envio",
"timestamp": "2020-10-15T08:25:18",
"campania": "VIMS "
},
{
"evento": "envio",
"timestamp": "2020-10-15T08:25:29",
"campania": "VIMS "
},
{
"evento": "rebote_hard",
"timestamp": "2020-10-15T08:25:32",
"campania": "VIMS "
},
{
"evento": "rebote_hard",
"timestamp": "2020-10-15T08:30:08",
"campania": "VIMS "
}
],
"grupos": [
"Origen API"
],
"campanias": [],
"campanias_desusc": []
}
}
List invalid contacts
With this call, all contacts that are invalid (i.e., those that have been invalidated due to bounces or Spam Feedback loops) will be shown.
curl -X GET "https://api-dmds-host/v1/contactos/invalidos/" -H "accept: application/json" -H 'Authorization: xxxxxxxxxxxxxx'
Create or update a contact
With the following call, you can create a new contact or update an existing one.
The first variable defined is the email, which acts as a primary key in the database. When updating a contact, we will always rely on their email since it is unique.
In the data section, we define different attributes that can describe a contact. All these fields can be updated as the contact’s values change. To specify which user we want to modify, we will use their email.
curl -X POST "https://api-dmds-host1/v1/contacto/"
-H "accept: application/json"
-H "Content-Type: application/json"
-d '{
"email":"email@",
"nombre": "xxxxx",
"apellido": "xxxxx",
"edad": "xx", "sexo": "x",
"invalido": false,
"campos": [{"nombre": "xxxxxxx","valor": "+xxxx..xxx"}]
}'
Warning
When using the characters [ and ], it indicates that we have a list of values. In this last case, a list of JSONs where each JSON denotes a field.
Associate one or more bases with a new or existing contact
curl -X POST "https://api-dmds-cualquiera.planisys.net/v1/contacto/"
-H "accept: application/json"
-H "Authorization: mitoken"
-H "Content-Type: application/json"
-d '{
"email": "hjose4@planisys.com",
"sexo": "F",
"nombre":"Hernan",
"apellido":"Perez",
"grupos":["Testing Planisys","facturas de prueba"]
}'
Note
An origin or base is the same as a group. It is the name of a contact base
. A contact can be part of multiple bases (groups).
Set field values for a new or existing contact
curl -X POST "https://api-dmds-dmdsid.planisys.net/v1/contacto/" -H "accept: application/json" -H "Authorization: mitoken" -H "Content-Type: application/json" -d '{"email": "juan4@planisys.com", "campos": [ {"nombre":"XYZDNIXYZ","valor":"13111423"}] }'
Invalidate a contact (introduced in v1.1)
curl -X GET "https://api-dmds-dmdsid.planisys.net/v1/invalidar/usuario@mail" -H "accept: application/json" -H "Authorization: mitoken" -H "Content-Type: application/json"
An Invalidation event will be inserted with the timestamp of when the invalidation occurred. When the contact is marked as invalid, any attempt to send a direct or copied email will trigger a Not-Sent
event.
Note
This is a GET call
In v1.3, with the addition of whitelisting, the response to the call may change, indicating that it is not possible to invalidate a contact on the whitelist. The contact must first be removed from the whitelist, and the event will not be added:
{"status":"ok","msg":"whitelisted"}
Revalidate a contact (introduced in v1.1)
curl -X GET "https://api-dmds-dmdsid.planisys.net/v1/revalidar/usuario@mail" -H "accept: application/json" -H "Authorization: mitoken" -H "Content-Type: application/json"
A Revalidation event will be inserted with the timestamp of when the revalidation occurred. If the contact was valid, it remains valid. If it was invalidated, it will now be valid again.
Note
This is a GET call
Similarly to invalidate
, in revalidate
no Revalidation
event will be inserted if the email is on the whitelist, and it will return:
{"status":"ok","msg":"whitelisted"}
Invalidate a contact - deprecated (v1.0)
In the same update of a contact, it can be invalidated or revalidated. By default, the invalid
variable is always set to false. But if you want to unsubscribe or invalidate the contact, set this variable to true (invalid: true), without a Revalidation
event. This allows us to define that this contact is in the invalid list.
curl -X POST "https://api-dmds-dmdsid.planisys.net/v1/contacto/" -H 'Authorization: xxxxxxxx' -H "accept: application/json" -H "Content-Type: application/json" -d '{"email": "correo@dominio.com", "nombre": "xxxx", "apellido": "xxxx", "edad": "x","sexo":"x","invalido": true}'
Note
Use the /revalidate and /invalidate methods instead of this method, as it does not leave Events that can be tracked, and works at a low level. Only use it if you’re not interested in Invalidation and Revalidation Events.
Create a Campaign
With the /v1/campaign/ method in POST
mode, you can create an api or normal type campaign.
The creation always returns the id and numid, plus an apikey in the case of API, which can be used in subsequent calls, e.g., to send an email.
By obtaining an apikey, you can also use SMTP-API with a username dmdsid-campnumid and apikey as the password, for applications that require configuring SMTP with authentication, allowing you to assign a username/password pair to a specific campaign.
To create a normal one, you must then enter the web interface and complete the creation of the send.
curl -X POST "https://api-dmds-dmdsid.planisys.net/v1/campania/"
-H 'Authorization: xxxxxxxx' -H "accept: application/json" -H "Content-Type: application/json"
-d '{ "tipo":"normal", "nombre":"prueba campania"}'
The api type campaign requires more parameters, of which only replyto
is optional, creating a unique send and allowing emails to be sent under the returned numid, e.g.:
curl -X POST "https://api-dmds-dmdsid.planisys.net/v1/campania/"
-H 'Authorization: xxxxxxxx' -H "accept: application/json" -H "Content-Type: application/json"
-d '{ "tipo":"normal", "nombre":"prueba campania", "remitente":"ventas@dominio.com", "remitente_nombre": "Ventas", "asunto": "XYZTAG-CURLXYZ", "asunto_uri":"https://www.dominio.net/newsletter/asunto.txt", "replyto":"rt12@dominio.com", "url":"https://www.dominio.com/newsletter.html", "charset":"utf8", "desusc":"no"}'
For better visibility, we repeat the JSON:
{
"tipo":"api",
"nombre":"campania api",
"remitente":"ventas@dominio.com",
"remitente_nombre": "Ventas",
"asunto": "XYZTAG-CURLXYZ",
"asunto_uri":"https://www.dominio.net/newsletter/asunto.txt",
"replyto":"rt12@dominio.com",
"url":"https://www.dominio.com/newsletter.html",
"charset":"utf8",
"desusc":"no"
}
If XYZTAG-CURLXYZ
is in the subject, then the method requires the asunto_uri parameter because it will be a dynamic subject. If preferred, a static fixed subject can be used, and asunto_uri can be omitted.
Both the sender, the subject, and the URL of the email piece are defaults, meaning they can be overwritten when sending emails under the campaign’s numid.
The call returns a JSON containing a numid
for subsequent calls, e.g.
{"status":"ok","id":"66bfae5b-3b6f-4bc9-a563-f62d5a9812a3","numid":68235,"camp_apikey":"a62d247c345fe31d0cda39ba1c3d3501"}
Warning
It is currently not allowed to modify the created campaign, considering that methods like send_one_inline and send_one_uri overwrite the campaign’s defaults.
Send an email to a single recipient with HTML URI
To perform this send, it is necessary to define some fields, such as: theemail field must always be true, as this allows us to send the email.If this value is false, messages cannot be sent. Other values to define arethe campaign ID and the recipient’s email. Other values such as first name,last name, and subject are optional. If you want to send HTML via URI, itshould be added in the html_url field.
In the headers section, remember to define your authorization value.
curl -X POST https://api-dmds-dmdsid.planisys.net/v1/envio/send_one_uri/ -H "Accept:application/json" -H "Authorization:xxxxxxx" -H "Content-Type:application/json" -d '{"campana_id":2134,"email":true,"contacto":{"email":"correo@dominio.com","nombre":"xxxx","apellido":"xxxx"},"html_url":"http://xxxxxxx.html", "remitente": "sender@planisys.com", "remitente_nombre":"Nombre del Remitente"}'
This call will return an eeid (Effective Send ID), which can be used to query the events that occurred (see Event Query).
Note
When specifying a URL, the REST API follows 301 and 302 codes for redirection until it reaches a 200 code and obtains the page.
Warning
The HTML file is expected to be in UTF-8 encoding or charset, so if the HTML contains mixed characters from windows-1252 or iso-8859-1, for example, part of the content may not display correctly.
In case of doubts regarding the encoding of certain characters or multi-platform handling that mixes several encodings in the same HTML, we recommend using the standard international HTML character encodings on this page https://www.rapidtables.com/web/html/html-codes.html
Send an email to a recipient with HTML URL and attachments
In this case, instead of JSON, we will use a FORM, and attachments from the local filesystem will be sent.
curl -X POST "https://api-dmds-dmdsid.planisys.net/v1/envio/send_one_form/" -H "accept: application/json" -H "Authorization: AABBCC1234" -F 'campana_id=13' -F 'contacto=soporte@planisys.com' -F 'html_url=http://planisys.net/prueba.html' -F 'attach1=@/root/attach-example-1.pdf' -F 'attach2=@/root/attach-example-1.docx'
Note
Attachments are sent in base-64 format (Content-Transfer-Encoding).
Send an email to a single recipient with HTML URI
The difference from the previous call is how to define the HTML within the code.
curl -X POST https://api-dmds-dmdsid.planisys.net/v1/envio/send_one_inline/-H "Accept:application/json"-H "Authorization:xxxxxxx"-H "Content-Type:application/json" -d '{"campana_id":111,"email":true,"contacto":{"email":"correo@dominio.com","nombre":"xxxxx","apellido":"xxxx"}, "html":"<html><head><title>Page Title</title></head><body><h1>This is a Heading</h1><p>This is a paragraph.</p></body></html>", "remitente": "sender@planisys.com", "remitente_nombre":"Nombre del Remitente"}'
This call will return an eeid (Effective Send ID), which can be used to query the events that occurred (see Event Query).
Send an email to a single recipient with HTML URI
For this call, we will follow the same concept as for the others when sending a message. In this case, we want to send to many recipients, so we will define an array of contacts to whom we want to send and change contact to contacts. In the example shown below, we send an email to two people, but many more can be defined.
Warning
When sending to multiple recipients, contact (a JSON with email and optionally first and last name) is changed to contacts, which is a LIST of JSONs placed between square brackets [ and ].
curl -X POST https://api-dmds-host/v1/envio/send_many_uri/ \
-H "Accept:application/json" -H "Authorization:xxxxx" \
-H "Content-Type:application/json" \
-d '{ \
"campana_id":1111, \
"email":true, \
"contactos":[ \
{"email":"contacto1@dominio.com","nombre":"xxxx","apellido":"xxxxxx"}, \
{"email":"contacto2@doinio.com","nombre":"xxxxx","apellido":"xxxxx"} \
], \
"html_url":"https://www.planisys.net", \
"remitente": "sender@planisys.com", \
"remitente_nombre":"Nombre del Remitente" \
}'
This call will return an eeid (Effective Send ID), which can be used to query the events that occurred (see Event Query).
Warning
As some email addresses may be incorrect, the number of emails sent, shown in the JSON response under sent, may be less than the number of specified recipients.
Send an email to more than one recipient with HTML inline
curl -X POST https://api-dmds-host/v1/envio/send_many_inline/ -H "Accept:application/json" -H "Authorization:xxxxxxx" -H "Content-Type:application/json" -d '{"campana_id":1234 ,"email":true,"contactos":[{"email":"contacto1@dominio.com","nombre":"xxxxx","apellido":"xxxxxx"},{"email":"contacto2@dominio.com","nombre":"xxxx","apellido":"xxxxxx"}],"html":"<html><head><title>Page Title</title></head><body><h1>This is a Heading</h1><p>This is a paragraph.</p></body></html>"}'
This call will return an eeid (Effective Send ID), which can be used to query the events that occurred (see Event Query).
Campaign APIKEYs
With the campania_apikey
method, you can specify a numid with HTTP GET method, and obtain the campaign’s APIKEY if one has been assigned and it is of the API type.
Additionally, an apikey can be set using the POST method and the “apikey” argument.
In this way, an SMTP-API user can be used, e.g., dmdsid-12345, with the apikey value as the password.
List campaigns
With the same structure as listing invalid contacts or global variables, we can list all existing campaigns. For this, the GET method is used.
curl -X GET "https://api-dmds-host/v1/campania/" -H "accept: application/json" -H 'Authorization: xxxxxxxx'
It can also be filtered to list only api
, normal
, or bulk
type campaigns.
curl -X GET "https://api-dmds-host/v1/campania/" -H "accept: application/json" -H 'Authorization: xxxxxxxx' -d '{"tipo":"api"}'
Another filter that can be applied is to list only one campaign by its numid when you want to see a specific one:
curl -X GET "https://api-dmds-host/v1/campania/" -H "accept: application/json" -H 'Authorization: xxxxxxxx' -d '{"tipo":"api", "numid":1234}'
Warning
This call does not list campaign APIKEYs; for that, the campania_apikey
method is used.
Create a group or base
As we have seen before, when we create or modify a contact, we can assign them to a group (also known as a base). To assign a group, we need to see if this group exists. If it doesn’t, we can create it as follows.
curl -X POST "https://api-dmds-host/v1/grupo/" -H accept: application/json" -H 'Authorization: xxxxxxxx' -H "Content-Type: application/json" -d '{"nombre": "xxxxx"}'
or also
curl -X POST "https://api-dmds-host/v1/base/" -H accept: application/json" -H 'Authorization: xxxxxxxx' -H "Content-Type: application/json" -d '{"nombre": "xxxxx"}'
List filters
In the API system, different filters can be created to help specify the sends.
To see this list of existing filters, follow the code mentioned below.
curl -X GET "https://api-dmds-host/v1/filtros/" -H "accept: application/json" -H 'Authorization: xxxxxx' -H "Content-Type: application/json"
List global variables and their values
There are a series of global variables defined in the API. To see what these variables are and their values, we can look at the following code.
curl -X GET "https://api-dmds-host/v1/global/" -H "accept: application/json" -H 'Authorization: xxxxxxxx'
Create global variables
We can always create global variables. For the creation, we will use the POST method, where we pass a variable, which will indicate the name of the global variable.
curl -X POST "https://api-dmds-host/v1/global/"\
-H "accept: application/json" \
-H 'Authorization: xxxxxxx' \
-H "Content-Type: application/json" \
-d '{"nombre": "newglobal","valor": "hola"}'
Delete global variables
In the same way that we create global variables, we can delete them. However, in this case, we will use a method called DELETE
.
curl -X DELETE "https://api-dmds-host/v1/global/" -H "accept: application/json" -H 'Authorization: xxxxxx' -H "Content-Type: application/json" -d '{ "nombre": "newglobal", "valor": ""}'
Sent Mail Query
For emails saved with the archive
option, the text of the email sent to a recipient can be retrieved, e.g.
curl -X GET "https://api-dmds-dmdsid.planisys.net/v1/eeid_eml/3abc993d-8i88-45e8-a6c9-e879378abba5/usuario@dominio.com" -H "accept: application/json" -H "Authorization: xxxxx" -H "Content-Type: application/json"
As seen, it is a GET with two parameters: the UUID representing the Effective Send, and one of the recipients. If the recipient is not among the recipients of the email (whether as To:, Cc:, or Bcc:), this call returns a 400 error.
This returns a json, where the key “msg” has a value that is the sent text. Headers (Headers) are added to this text as it passes through different MTAs until it reaches the recipient, so this text is the original text that leaves the system towards the first available MTA (usually an available MX of the recipient’s domain).
Event Query
The response to the sending of emails may contain a 4xx code, for which the user must analyze the error (e.g., missing a parameter).
If a send works correctly, the response is generally a JSON with these 3 pairs:
{"status":"ok", "sent":4, "eeid":"3abc993d-8i88-45e8-a6c9-e879378abba5"}
The uuid returned as eeid (effective_send_id) can be queried later with a GET. The number following sent is the number of emails sent during the call, e.g., one recipient with 3 copies.
Warning
Important: if you want to group subsequent sends in the same batch, you can add the reuse_eeid: True option, and you must add eeid: …. to reuse a previous eeid and group sends in the same batch.
curl -X GET "https://api-dmds-dmdsid.planisys.net/v1/eeid_info/3abc993d-8i88-45e8-a6c9-e879378abba5" -H "accept: application/json" -H "Authorization: xxxxx" -H "Content-Type: application/json"
And the response is a JSON with events, e.g., of the send
{
"status": "ok",
"envio_efectivo": {
"envio_id": "36e7725c-041c-48b8-2f25-55890898004b",
"timestamp": "2020-10-15T07:40:36",
"estado": "enviado",
"modificado": "2020-10-15T07:40:36",
"campana_id": "f25e4695-3aa4-3bd0-072f-5999d9d9d9d3",
"cant_particiones": null,
"particiones_tomadas": null,
"particiones_finalizadas": null,
"salidas_con_error": null,
"creador_id": "",
"contactos": [
{
"email": "fdkslafjkdsjafdjsakjfdsa@planisys.com",
"eventos": [
{
"eventos": "envio",
"timestamp": "2020-10-15T07:40:37"
}
]
}
]
}
}
Other events such as soft-bounce, hard-bounce, click, or view may appear
Warning
From v1.4 onwards, if the effective send was made with archive:true, the JSON returns a section called archive
with the trace information of the effective send.
Use of Reply-To, Cc, and Bcc
In the send_one_inline and send_one_uri calls, the following can be added to the main JSON:
Reply-To:
{"reply-to": "usuario@dominio.com"}
Note
The reply-to is a single item, and a name that hides the email address is not used for security and transparency reasons.
Cc:
{ "copia":[{ "cc_email":"usuario1@gmail.com", "cc_nombre":"Usuario1", "cc_apellido": "Apellido1"}] }
Note
In the case of copy, a list of possible copy recipients goes between []. Only the cc_email is mandatory.
If you want to send a blind copy, you must add:
{ "copia_oculta": [ { "bcc_email":"usuario5@gmail.com"}, {"bcc_email:"usuario7@outlook.com"} ] }
JSON Response Messages
Although the response code is not visible at the CURL level, in programming languages when you want to check the response, you should check
HTTP Code 200 - OK
HTTP Code 403 - Forbidden (usually incorrect APIKEY)
HTTP Code 4xx - Data errors, such as missing a parameter in the input JSON, or incorrect addresses
It should be noted that in send_one_inline and send_one_uri calls, as well as in the introduction of a new contact, a check is made on the validity of the email address.
Examples:
In this case, the validity of the syntax of an Internet domain is checked
curl -X POST 'https://api-dmds-dmdsid.planisys.net/v1/contacto/' --header 'accept: application/json' --header 'Authorization: 11111111111113243433' --header 'Content-Type: application/json' --data '{"email": "ifdjsahfjdsaf@gmail"}'
Returns
{"status":"err","on":"invalid email The domain name gmail is not valid. It should have a period."}
In this case, it checks that there is only one @ in each email address
curl -X POST 'https://api-dmds-dmdsid.planisys.net/v1/contacto/' --header 'accept: application/json' --header 'Authorization: 11111111111113243433' --header 'Content-Type: application/json' --data '{"email": "@-@gmail"}'
Returns
{"status":"err","on":"invalid email The email address is not valid. It must have exactly one @-sign."}
This is a case of international characters not allowed in email addresses
curl -X POST 'https://api-dmds-dmdsid.planisys.net/v1/contacto/' --header 'accept: application/json' --header 'Authorization: 11111111111113243433' --header 'Content-Type: application/json' --data '{"email": "josépérez@gmail.com"}'
Returns
{"status":"err","on":"invalid email Internationalized characters before the @-sign are not supported."}
This is a case of a non-existent domain
curl -X POST 'https://api-dmds-dmdsid.planisys.net/v1/contacto/' --header 'accept: application/json' --header 'Authorization: 11111111111113243433' --header 'Content-Type: application/json' --data '{"email": "juanperez@gmail.com", "remitente":"jose@escuelaxyz.com", "remitente_nombre":"PLANICóRP"}'
Returns
{"status":"err","on":"remitente invalido The domain name escuelaxyz.com does not exist."}
In this case, the sender domain is not declared on the DMDS web, meaning it is not an allowed domain for this particular DMDS:
curl -X POST 'https://api-dmds-dmdsid.planisys.net/v1/contacto/' --header 'accept: application/json' --header 'Authorization: 11111111111113243433' --header 'Content-Type: application/json' --data '{"email": "juanperez@gmail.com", "remitente":"jose@gmail.com", "remitente_nombre":"PLANICóRP"}'
Returns
{"status":"err","on":"dominio remitente no permitido"}
Use of Sender and Return-Path
On the DMDS web, the allowed domains to be used as senders are listed.
In the previous example, it was shown that the REST API v1 rejects the sender as not allowed because the domain to the right of the @ is not listed.
What should be taken into account is that on the DMDS Web, for each allowed domain, an appropriate return-path for reading bounces is listed. For example, if the sender domain is dom1.com, we will probably have dmds-dom1@nl.dom1.com as a Return-Path address different from the From: header, which would be e.g. user@dom1.com.
This data is registered during the provisioning of the DMDS and can be changed as domains are added or removed.
The purpose of the Return-Path being a subdomain of the main domain is to have a valid Return-Path via the DMARC record, which serves to direct bounces to a mailbox that the DMDS can process automatically.
Sending Inline Attachments
Attachments can be added to any of the send_one_inline or send_many_inline calls.
Here we show an example of JSON files sent inline encoded in base64, via send_one_inline:
What is sent as an attachment is a list of JSONs, where each JSON has two parts:
a name
a list of strings that, when concatenated, form the base64 encoding of the file
{
"campana_id":27,
"email":"true",
"contacto":
{
"email":"juanlopez@planisys.com",
"nombre":"Juan",
"apellido":"López"
},
"asunto":"Envio de Adjuntos via API DMDS Planisys",
"remitente":"contacto@planisys.com",
"remitente_nombre":"Servicio Envio Archivos",
"html": "<html><head><title>Page Title</title></head><body><h1>Heading</h1><p>paragraph.</p></body></html>",
"adjuntos":
[
{
"filename": "docejemplo.docx",
"content":
[
"UEsDBBQABgAIAAAAIQDfpNJsWgEAACAFAAATAAgCW0NvbnRlbnRfVHlwZXNdLnhtbCCiBAIooAAC",
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0",
"lMtuwjAQRfeV+g+Rt1Vi6KKqKgKLPpYtUukHGHsCVv2Sx7z+vhMCUVUBkQpsIiUz994zVsaD0dqa",
"bAkRtXcl6xc9loGTXmk3K9nX5C1/ZBkm4ZQw3kHJNoBsNLy9GUw2ATAjtcOSzVMKT5yjnIMVWPgA",
"jiqVj1Ykeo0zHoT8FjPg973eA5feJXApT7UHGw5eoBILk7LXNX1uSCIYZNlz01hnlUyEYLQUiep8",
"6dSflHyXUJBy24NzHfCOGhg/mFBXjgfsdB90NFEryMYipndhqYuvfFRcebmwpCxO2xzg9FWlJbT6",
"2i1ELwGRztyaoq1Yod2e/ygHpo0BvDxF49sdDymR4BoAO+dOhBVMP69G8cu8E6Si3ImYGrg8Rmvd",
"CZFoA6F59s/m2NqciqTOcfQBaaPjP8ber2ytzmngADHp039dm0jWZ88H9W2gQB3I5tv7bfgDAAD/",
"/wMAUEsDBBQABgAIAAAAIQAekRq37wAAAE4CAAALAAgCX3JlbHMvLnJlbHMgogQCKKAAAgAAAAAA",
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArJLBasMw",
"DEDvg/2D0b1R2sEYo04vY9DbGNkHCFtJTBPb2GrX/v082NgCXelhR8vS05PQenOcRnXglF3wGpZV",
"DYq9Cdb5XsNb+7x4AJWFvKUxeNZw4gyb5vZm/cojSSnKg4tZFYrPGgaR+IiYzcAT5SpE9uWnC2ki",
"Kc/UYySzo55xVdf3mH4zoJkx1dZqSFt7B6o9Rb6GHbrOGX4KZj+xlzMtkI/C3rJdxFTqk7gyjWop",
"9SwabDAvJZyRYqwKGvC80ep6o7+nxYmFLAmhCYkv+3xmXBJa/ueK5hk/Nu8hWbRf4W8bnF1B8wEA",
"AP//AwBQSwMEFAAGAAgAAAAhANZks1H0AAAAMQMAABwACAF3b3JkL19yZWxzL2RvY3VtZW50Lnht",
"bC5yZWxzIKIEASigAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"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",
"BgAAAAALAAsAwQIAAOIsAAAAAA=="
]
},
{
"filename": "docejemplo2.pdf",
"content":
[
"JVBERi0xLjMKJcTl8uXrp/Og0MTGCjQgMCBvYmoKPDwgL0xlbmd0aCA1IDAgUiAvRmlsdGVyIC9G",
"bGF0ZURlY29kZSA+PgpzdHJlYW0KeAGNj7kOwjAQRHt/xXBvOBw7dkzSgmjoIm1HqCJRIKWI8v8S",
"PrBokYudHe8+eyZ0mFBeZ41hhopnHrylZGVTH0QrjUPdWulaDCMujDrN+mK0k0opC9c4wSNK5goa",
"/MIDtChw8ijQMgoDWhWerUHraFjQJhh+Yhuq73fpQlD/W+qLaPq1PLXPvGxkzCFzj1HU4WnxBN9x",
"4xj2/2Rno2VTqXNIhm8yEZNR+BC/E7L7AMbOPkUKZW5kc3RyZWFtCmVuZG9iago1IDAgb2JqCjE3",
"OQplbmRvYmoKMiAwIG9iago8PCAvVHlwZSAvUGFnZSAvUGFyZW50IDMgMCBSIC9SZXNvdXJjZXMg",
"NiAwIFIgL0NvbnRlbnRzIDQgMCBSIC9NZWRpYUJveCBbMCAwIDU5NS4yOSA4NDEuODldCj4+CmVu",
"ZG9iago2IDAgb2JqCjw8IC9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIC9Db2xvclNwYWNlIDw8IC9D",
"czEgNyAwIFIgPj4gL0ZvbnQgPDwgL1RUMiA5IDAgUgo+PiA+PgplbmRvYmoKMTAgMCBvYmoKPDwg",
"L0xlbmd0aCAxMSAwIFIgL04gMyAvQWx0ZXJuYXRlIC9EZXZpY2VSR0IgL0ZpbHRlciAvRmxhdGVE",
"ZWNvZGUgPj4Kc3RyZWFtCngBnZZ3VFPZFofPvTe90BIiICX0GnoJINI7SBUEUYlJgFAChoQmdkQF",
"RhQRKVZkVMABR4ciY0UUC4OCYtcJ8hBQxsFRREXl3YxrCe+tNfPemv3HWd/Z57fX2Wfvfde6AFD8",
"ggTCdFgBgDShWBTu68FcEhPLxPcCGBABDlgBwOFmZgRH+EQC1Py9PZmZqEjGs/buLoBku9ssv1Am",
"c9b/f5EiN0MkBgAKRdU2PH4mF+UClFOzxRky/wTK9JUpMoYxMhahCaKsIuPEr2z2p+Yru8mYlybk",
"oRpZzhm8NJ6Mu1DemiXho4wEoVyYJeBno3wHZb1USZoA5fco09P4nEwAMBSZX8znJqFsiTJFFBnu",
"ifICAAiUxDm8cg6L+TlongB4pmfkigSJSWKmEdeYaeXoyGb68bNT+WIxK5TDTeGIeEzP9LQMjjAX",
"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",
"7L5WYVtxYA9pj2SPtDKosr1Kr2pH1afqpOqBGo+a5r3qe7ftndrH29e/321/0wGNA8UHPh4UHLx/",
"yPdQa61BbcVh3OGsw8/rouq6v2d/X39E7Ujxkc9HhUelx8KPddU71Nc3qDeUNsKNksax43HHb/3g",
"9UN7E6vpUDOjufgEOCE58eLH+B/vngw82XmKfarpJ/2f9rbQWopaodbc1om2pDZpe0x73+mA050d",
"zh0tP5v/fPSM9pmas8pnS8+RzhWcmzmfd37yQsaF8YuJF4c6V3Q+urTk0p2usK7ey4GXr17xuXKp",
"2737/FWXq2euOV07fZ19ve2G/Y3WHruell/sfmnpte9tvelws/2W462OvgV95/pd+y/e9rp95Y7/",
"nRsDiwb67i6+e/9e3D3pfd790QepD14/zHo4/Wj9Y+zjoicKTyqeqj+t/dX412apvfTsoNdgz7OI",
"Z4+GuEMv/5X5r0/DBc+pzytGtEbqR61Hz4z5jN16sfTF8MuMl9Pjhb8p/rb3ldGrn353+71nYsnE",
"8GvR65k/St6ovjn61vZt52To5NN3ae+mp4req74/9oH9oftj9MeR6exP+E+Vn40/d3wJ/PJ4Jm1m",
"5t/3hPP7CmVuZHN0cmVhbQplbmRvYmoKMTEgMCBvYmoKMjYxMgplbmRvYmoKNyAwIG9iagpbIC9J",
"Q0NCYXNlZCAxMCAwIFIgXQplbmRvYmoKMyAwIG9iago8PCAvVHlwZSAvUGFnZXMgL01lZGlhQm94",
"IFswIDAgNTk1LjI5IDg0MS44OV0gL0NvdW50IDEgL0tpZHMgWyAyIDAgUiBdID4+CmVuZG9iagox",
"MiAwIG9iago8PCAvVHlwZSAvQ2F0YWxvZyAvUGFnZXMgMyAwIFIgPj4KZW5kb2JqCjkgMCBvYmoK",
"PDwgL1R5cGUgL0ZvbnQgL1N1YnR5cGUgL1RydWVUeXBlIC9CYXNlRm9udCAvQlRYV0pDK0NhbGli",
"cmkgL0ZvbnREZXNjcmlwdG9yCjEzIDAgUiAvVG9Vbmljb2RlIDE0IDAgUiAvRmlyc3RDaGFyIDMz",
"IC9MYXN0Q2hhciA0NCAvV2lkdGhzIFsgNjE1IDUyNyA0MjMKNTI1IDc5OSA0OTggNTI1IDMzNSAy",
"MjYgMjM5IDUyNSAyMjkgXSA+PgplbmRvYmoKMTQgMCBvYmoKPDwgL0xlbmd0aCAxNSAwIFIgL0Zp",
"bHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngBXZHLasMwEEX3+got00Ww7LxaMIaSEvCiD+r2",
"A2RpHAS1LGRl4b/vHTVNoYuzOLoz9mhUHNun1rski7c4mY6SHJy3kebpEg3Jns7Oi7KS1pl0tXxm",
"Rh1EgeZumRONrR8mWddCyuIdLXOKi1w92qmnOz57jZai82e5+jx2+aS7hPBFI/kklWgaaWnA5551",
"eNEjySK3rluL3KVlja6/io8lkMRE6Ch/RjKTpTloQ1H7M4laqaY+nRpB3v6LcJM8fj9cS6uyqRml",
"tttG1FUFBUrtB9YNFEA3rFsoUOqwY91BAVLLuocCaE4PUAAlTu+hAL35Rw9QoFSlONVQgGLN2kMB",
"inNqoACpybf6HZ8vyA9xW5y5xIid5dfK6+Q1OU+3Bw1T4LVkvgHTQZP3CmVuZHN0cmVhbQplbmRv",
"YmoKMTUgMCBvYmoKMjk5CmVuZG9iagoxMyAwIG9iago8PCAvVHlwZSAvRm9udERlc2NyaXB0b3Ig",
"L0ZvbnROYW1lIC9CVFhXSkMrQ2FsaWJyaSAvRmxhZ3MgNCAvRm9udEJCb3ggWy01MDMgLTMxMyAx",
"MjQwIDEwMjZdCi9JdGFsaWNBbmdsZSAwIC9Bc2NlbnQgOTUyIC9EZXNjZW50IC0yNjkgL0NhcEhl",
"aWdodCA2MzIgL1N0ZW1WIDAgL1hIZWlnaHQKNDY0IC9BdmdXaWR0aCA1MjEgL01heFdpZHRoIDEz",
"MjggL0ZvbnRGaWxlMiAxNiAwIFIgPj4KZW5kb2JqCjE2IDAgb2JqCjw8IC9MZW5ndGggMTcgMCBS",
"IC9MZW5ndGgxIDE4NzI4IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4AdV7eVhTZ/r2",
"e04SEgiBhB0iJBgBNSCuCGohssmiAko0oCirosUNxF1LtSutbae7Xe3eKV0OUSt2b6fTbbqvM92m",
"nelMV7tN2+m0Vb77PU8eqp1f5/vju77rml/Ife77ed7lvO/zbocENnb3dgir6BMGMbFtTct6ob8K",
"mkET2zZtdOumyCwVwvTAivUr15CdDbJ5V3ZtXUF2wZ1CRC/t7GhpJ1v8BM7rhINsZSp4TOeajVvI",
"LpAVTO1a1xZKL7gI9qg1LVtC9xdvw3avbVnTQfkrLdJe390RSlcCqO7TWZQohkMvaSohn07SsBln",
"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",
"1lIXBoKG/ftTixuqtT6pfT5dD0stkKXBu6ynt8cb8J0iHO85vnQY4h+2v2BXo6OV6OjhaNUXjcZH",
"R7miVHkZjjL4oiZNL4+2uWyqvAzbDAk+GzwylFmRtfXl0VaXVfUXWWusqs9aVFLus+ZMLP+3fh6Q",
"/aQ7ezcu6/FCbvTqb1gNSq808UIK3j0bYcsfEGwhU379RdmQb3kPXno1VP2vF/lfkKL8L2jjf3kT",
"BwWWSGD2sHoGvsvcA+wGTgf6gNOAXcBOYAewHdgGbAW2AJuBTUAvsBHoATYA64F1wFpgDdAFnAqs",
"BlYBncBKYAXQAbQDbUAr0AI0A8uBZUATsBRYAjQCDUAAWAwsAvxAPbAQWADUAbVADTAfmAfMBaqB",
"KqASqADmAOVAGVAKlADFwGzABxQBhcApwCxgJjADKADygelAHjANmApMASYDk4CJQC4wAcgBsgEv",
"MB4YB4wFsoBMIAMYA3iA0UA64AZcQBqQCowCnEAKkAwkAYlAAhAPxAGxQAzgAOxANBAF2IBIwApE",
"AOGABTADYYAJMM4extUAqIACCNGuwKccB44BPwE/Aj8A/wK+B/4JfAd8C3wD/AP4GvgK+BL4Avgc",
"OAp8BnwKfAJ8DHwEfAj8Hfgb8AHwV+AvwPvAe8CfgXeBd4C3gbeAN4E/AX8E3gBeB14DXgVeAV4G",
"XgJeBF4AngeeA54F/gA8AzwNPAU8CTwB/B54HPgd8BjwKPAI8DDwEPAg8ABwP3AfcAQYAg4D9wKH",
"gIPAASAIDAIacA9wN3AXcCcwANwB/Ba4HbgNuBW4BbgZuAm4EbgB2A9cD1wHXAtcA1wNXAXsA64E",
"rgAuBy4DLgUuAS4GfgNcBFwIXADsBc4HzgP6gXOBc4CzgbOAM0X77D7lDKg9wG7gdKAPOA3YBewE",
"dgDbgW3AVmALsBnYBPQCG4EeoBvYAKwH1gFrgTVAF3AqsBpYBXQCK4EVQAfQDrQBrUAL0AwsB5YB",
"TcBSYAnQCDQAAWAxsAjwA/XAQmABUAvUAPOBuUA1UAVUAhXAHKAcKANKgRLR/l++Tf+3N6/hv72B",
"/+XtE/KxbOTBTDY2afky/LmT+Tohjl9CfxwVutaK1aJH9OHnLLFXXCIeFm+JVrEHap/YL24VvxWa",
"eFQ8Ld44qdT/o3F8q2mNiDQcFmEiVojhH4aPHr8VGDJFneC5BFas0f2zZ9g+/PkvfJ8fv2TYfnwo",
"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",
"T1wwMDBTXDAwMCBcMDAwVlwwMDBlXDAwMHJcMDAwc1wwMDBpXDAwMPNcMDAwblwwMDAgXDAwMDFc",
"MDAwMFwwMDAuXDAwMDFcMDAwNVwwMDAuXDAwMDZcMDAwIFwwMDBcKFwwMDBDXDAwMG9cMDAwbVww",
"MDBwXDAwMGlcMDAwbFwwMDBhXDAwMGNcMDAwaVwwMDDzXDAwMG5cMDAwIFwwMDAxXDAwMDlcMDAw",
"R1wwMDAyXDAwMDBcMDAwMlwwMDAxXDAwMFwpXDAwMCBcMDAwUVwwMDB1XDAwMGFcMDAwclwwMDB0",
"XDAwMHpcMDAwIFwwMDBQXDAwMERcMDAwRlwwMDBDXDAwMG9cMDAwblwwMDB0XDAwMGVcMDAweFww",
"MDB0KQovQ3JlYXRvciAoV29yZCkgL0NyZWF0aW9uRGF0ZSAoRDoyMDIwMDgyODE4NTkwNVowMCcw",
"MCcpIC9Nb2REYXRlIChEOjIwMjAwODI4MTg1OTA1WjAwJzAwJykKPj4KZW5kb2JqCnhyZWYKMCAx",
"OAowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMTM1OTUgMDAwMDAgbiAKMDAwMDAwMDI5NCAwMDAw",
"MCBuIAowMDAwMDAzMjczIDAwMDAwIG4gCjAwMDAwMDAwMjIgMDAwMDAgbiAKMDAwMDAwMDI3NSAw",
"MDAwMCBuIAowMDAwMDAwNDA0IDAwMDAwIG4gCjAwMDAwMDMyMzcgMDAwMDAgbiAKMDAwMDAwMDAw",
"MCAwMDAwMCBuIAowMDAwMDAzNDEyIDAwMDAwIG4gCjAwMDAwMDA1MDEgMDAwMDAgbiAKMDAwMDAw",
"MzIxNiAwMDAwMCBuIAowMDAwMDAzMzYyIDAwMDAwIG4gCjAwMDAwMDQwMTMgMDAwMDAgbiAKMDAw",
"MDAwMzYxOCAwMDAwMCBuIAowMDAwMDAzOTkzIDAwMDAwIG4gCjAwMDAwMDQyNDkgMDAwMDAgbiAK",
"MDAwMDAxMzU3NCAwMDAwMCBuIAp0cmFpbGVyCjw8IC9TaXplIDE4IC9Sb290IDEyIDAgUiAvSW5m",
"byAxIDAgUiAvSUQgWyA8NzQ5NjZmZTA0ZDA3YWZhZDA3NmQ4MDRiODY1OTI3OGM+Cjw3NDk2NmZl",
"MDRkMDdhZmFkMDc2ZDgwNGI4NjU5Mjc4Yz4gXSA+PgpzdGFydHhyZWYKMTQwNzEKJSVFT0YK"
]
}
]
}
Updated on 2024-08-21