Landing pages API

This is the part of the API that regards the Landing Pages service.

Remember to provide the authentication HTTP headers as described in the Authenticate using a session key and the Authenticate using a user tokeny sections.
All the query string parameters in URL must be UTF-8 URL Encoded.

List the published landing pages

Returns the list of published landing pages of the user.

HTTP Headers

user_key / Session_key

HTTP Method

GET

HTTP Request

https://app.gateway.smsend.it/API/v1.0/REST/landings

Returns

Code Description
200 A list of landing pages of the user
401 [Unauthorized] User_key, Token or Session_key are invalid or not provided
404 [Not found] The User_key was not found
Copy code
# Session Key example
curl -XGET 'https://app.gateway.smsend.it/API/v1.0/REST/landings' -H 'Content-Type: application/json' \
-H 'user_key: USER_KEY' -H 'Session_key: SESSION_KEY' 

# Access token example
curl -XGET 'https://app.gateway.smsend.it/API/v1.0/REST/landings' -H 'Content-Type: application/json' \
 -H 'user_key: USER_KEY' -H 'Access_token: ACCESS_TOKEN'  
'
On success, the above command returns the following response:
{
  "result": "OK",
  "landings": [
    {
      "id_landing": 18,
      "name": "agoodpage",
      "description": "Test page",
      "long_description": null,
      "created": 1513066300000,
      "modified": 1513067151000,
      "html_title": null
    },
    {
      "id_landing": 19,
      "name": "anicepage",
      "description": "A nice page",
      "long_description": null,
      "created": 1513067137000,
      "modified": 1513067563000,
      "html_title": null
    }
  ]
}
Copy code
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.io.OutputStream;
import java.net.URL;

public class Main {
    public static void main(String[] args) {
        try {
            URL url = new URL("https://app.gateway.smsend.it/API/v1.0/REST/landings");
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();

            conn.setRequestProperty("user_key", "USER_KEY");

            // Use this when using Session Key authentication
            conn.setRequestProperty("Session_key", "SESSION_KEY");
            // When using Access Token authentication, use this instead:
            // conn.setRequestProperty("Access_token", "UserParam{access_token}");

            conn.setRequestMethod("GET");

            if (conn.getResponseCode() != 200) {
                // Print the possible error contained in body response
                String error = "";
                String output;
                BufferedReader errorbuffer = new BufferedReader(new InputStreamReader(conn.getErrorStream(), "UTF-8"));
                while ((output = errorbuffer.readLine()) != null) {
                    error += output;
                }
                System.out.println("Error! HTTP error code : " + conn.getResponseCode() +
                                   ", Body message : " + error);
                throw new RuntimeException("Failed : HTTP error code : " + conn.getResponseCode());
            }
            BufferedReader br =
                new BufferedReader(new InputStreamReader(conn.getInputStream()));

            String response = "";
            String output;
            while ((output = br.readLine()) != null) {
                response += output;
            }
            // You can parse the response using Google GSON or similar.
            // MyObject should be a class that reflect the JSON
            // structure of the response

            GsonBuilder builder = new GsonBuilder();
            Gson gson = builder.create();
            MyObject responseObj = gson.fromJson(response, MyObject.class);
            conn.disconnect();
        }
        catch (Exception e) {
            e.printStackTrace();
        }
    }
}
On success, the above command returns the following response:
{
  "result": "OK",
  "landings": [
    {
      "id_landing": 18,
      "name": "agoodpage",
      "description": "Test page",
      "long_description": null,
      "created": 1513066300000,
      "modified": 1513067151000,
      "html_title": null
    },
    {
      "id_landing": 19,
      "name": "anicepage",
      "description": "A nice page",
      "long_description": null,
      "created": 1513067137000,
      "modified": 1513067563000,
      "html_title": null
    }
  ]
}
Copy code
<?php

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://app.gateway.smsend.it/API/v1.0/REST/landings');
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content-type: application/json',
    'user_key: USER_KEY',
    // Use this when using session key authentication
    'Session_key: SESSION_KEY',
    // When using Access Token authentication, use this instead:
    // 'Access_token: UserParam{access_token}'
));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);


$response = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);

if ($info['http_code'] != 200) {
    echo('Error! http code: ' . $info['http_code'] . ', body message: ' . $response);
}
else {

    $obj = json_decode($response);
    print_r($obj);
}
?>
On success, the above command returns the following response:
{
  "result": "OK",
  "landings": [
    {
      "id_landing": 18,
      "name": "agoodpage",
      "description": "Test page",
      "long_description": null,
      "created": 1513066300000,
      "modified": 1513067151000,
      "html_title": null
    },
    {
      "id_landing": 19,
      "name": "anicepage",
      "description": "A nice page",
      "long_description": null,
      "created": 1513067137000,
      "modified": 1513067563000,
      "html_title": null
    }
  ]
}
Copy code
# pip install requests
import requests
import json
# Use this when using Session Key authentication
headers = { 'user_key': 'USER_KEY', 'Session_key' : 'SESSION_KEY', 'Content-type' : 'application/json' }
# When using Access Token authentication, use this instead:
# headers = { 'user_key': 'UserParam{user_key}', 'Access_token' : 'UserParam{access_token}', 'Content-type' : 'application/json' }

r = requests.get("https://app.gateway.smsend.it/API/v1.0/REST/landings", headers=headers)

if r.status_code != 200:
    print("Error! http code: " + str(r.status_code) + ", body message: " + str(r.content))
else:
    response = r.text

    obj = json.loads(response)
    print(unicode(obj))
On success, the above command returns the following response:
{
  "result": "OK",
  "landings": [
    {
      "id_landing": 18,
      "name": "agoodpage",
      "description": "Test page",
      "long_description": null,
      "created": 1513066300000,
      "modified": 1513067151000,
      "html_title": null
    },
    {
      "id_landing": 19,
      "name": "anicepage",
      "description": "A nice page",
      "long_description": null,
      "created": 1513067137000,
      "modified": 1513067563000,
      "html_title": null
    }
  ]
}
Copy code
// Uses https://github.com/request/request
// npm install [-g] request

var request = require('request');

request({
    url: 'https://app.gateway.smsend.it/API/v1.0/REST/landings',
    method: 'GET',
    headers: { 'user_key' : 'USER_KEY', 'Session_key' : 'SESSION_KEY' },

    callback: function (error, responseMeta, response) {
        if (!error && responseMeta.statusCode == 200) {

        }
        else {
            console.log('Error! http code: ' + responseMeta.statusCode + ', body message: ' + response)
        }
    }
});
On success, the above command returns the following response:
{
  "result": "OK",
  "landings": [
    {
      "id_landing": 18,
      "name": "agoodpage",
      "description": "Test page",
      "long_description": null,
      "created": 1513066300000,
      "modified": 1513067151000,
      "html_title": null
    },
    {
      "id_landing": 19,
      "name": "anicepage",
      "description": "A nice page",
      "long_description": null,
      "created": 1513067137000,
      "modified": 1513067563000,
      "html_title": null
    }
  ]
}
Copy code
require 'net/http'
require 'uri'
require 'json'

uri = URI.parse("https://app.gateway.smsend.it/API/v1.0/REST/landings")

# Create the HTTP objects
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true

request = Net::HTTP::Get.new(uri.request_uri)
request['Content-type'] = 'application/json'
request['user_key'] = 'USER_KEY'
request['Session_key'] = 'SESSION_KEY'

# Send the request
responseData = http.request(request)
if responseData.code == "200"
  response = responseData.body

  obj = JSON.parse(response)
  puts obj
else
  puts "Error! http code: " + responseData.code + ", body message: " + responseData.body
end
On success, the above command returns the following response:
{
  "result": "OK",
  "landings": [
    {
      "id_landing": 18,
      "name": "agoodpage",
      "description": "Test page",
      "long_description": null,
      "created": 1513066300000,
      "modified": 1513067151000,
      "html_title": null
    },
    {
      "id_landing": 19,
      "name": "anicepage",
      "description": "A nice page",
      "long_description": null,
      "created": 1513067137000,
      "modified": 1513067563000,
      "html_title": null
    }
  ]
}
Copy code
using System;
using System.IO;
using System.Text;
using System.Net;
using System.Collections.Specialized;

// We are using JSON.NET (http://www.newtonsoft.com/json)
using Newtonsoft.Json;

/*
 * The following code has been compiled and tested using the MONO
 * project.
 *
 * To compile using MONO:
 * mcs -r:Newtonsoft.Json.dll example.cs
 */
namespace RestApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            using (var wb = new WebClient())
            {
                // Setting the encoding is required when sending UTF8 characters!
                wb.Encoding = System.Text.Encoding.UTF8;

                try {
                    wb.Headers.Set(HttpRequestHeader.ContentType, "application/json");
                    wb.Headers.Add("user_key", "USER_KEY");
                    wb.Headers.Add("Session_key", "SESSION_KEY");

                    String response = wb.DownloadString("https://app.gateway.smsend.it/API/v1.0/REST/landings");

                    dynamic obj = JsonConvert.DeserializeObject(response);
                    Console.WriteLine(obj);
                } catch (WebException ex) {
                    var statusCode = ((HttpWebResponse)ex.Response).StatusCode;
                    var errorResponse = new StreamReader(ex.Response.GetResponseStream()).ReadToEnd();
                    Console.WriteLine("Error!, http code: " + statusCode + ", body message: ");
                    Console.WriteLine(errorResponse);
                }
            }
        }
    }
}
On success, the above command returns the following response:
{
  "result": "OK",
  "landings": [
    {
      "id_landing": 18,
      "name": "agoodpage",
      "description": "Test page",
      "long_description": null,
      "created": 1513066300000,
      "modified": 1513067151000,
      "html_title": null
    },
    {
      "id_landing": 19,
      "name": "anicepage",
      "description": "A nice page",
      "long_description": null,
      "created": 1513067137000,
      "modified": 1513067563000,
      "html_title": null
    }
  ]
}
Copy code
#!/usr/bin/env perl

use warnings;
use strict;
use LWP::UserAgent;

# Install using Cpan: "cpan JSON URI"
use JSON;
use URI::Escape;

my $ua = LWP::UserAgent->new;

my $server_endpoint = "https://app.gateway.smsend.it/API/v1.0/REST/landings";

my $req = HTTP::Request->new(GET => $server_endpoint);

$req->header('Content_type' => 'application/json');

# IMPORTANT: Not adding the ':' before 'user_key' and
# 'Session_key' will result in perl to automatically rewrite the
# headers as 'User-Key' and 'Session-Key', which is not supported
# by our API.
$req->header(':user_key' => $auth->[0],
             ':Session_key' => $auth->[1]);
my $resp = $ua->request($req);
if ($resp->is_success && $resp->code == 200) {
  my $response = $resp->decoded_content;
  my $obj = from_json($response);

} else {
    my $error = $resp->decoded_content;
    my $code = $resp->code;
    print "Error!, http code: $code, body message: $error ";
}
On success, the above command returns the following response:
{
  "result": "OK",
  "landings": [
    {
      "id_landing": 18,
      "name": "agoodpage",
      "description": "Test page",
      "long_description": null,
      "created": 1513066300000,
      "modified": 1513067151000,
      "html_title": null
    },
    {
      "id_landing": 19,
      "name": "anicepage",
      "description": "A nice page",
      "long_description": null,
      "created": 1513067137000,
      "modified": 1513067563000,
      "html_title": null
    }
  ]
}