Requesting Clickstream

Returns a list of latest raw clicks

The instruction below shows how to request clickstream.

This feature is available starting from Team plan.

  • Click "Create API key".
  • Add a Secret key.

2) Copy an ID of a domain you want to request clickstream.

  • Open domain settings.
  • Copy the domain ID.

3) Install prerequisites for requests.

pip install requests
npm install --save axios

Now everything is ready to run the following snippet. It will return a list of latest clicks.

4) Create a file: filename.py/ .js/ .rb. Use the code snippet below.

📘

Please, replace domainID, exclude parameters with appropriate values.

👍

You can include or exclude such options as countries, browsers, socials, browserVersions, statuses, paths, protos, methods, utmSources, utmMediums, utmCampaigns.

import requests

url = "https://api-v2.short.io/statistics/domain/domainID/last_clicks"

payload = {"limit":30, "include":{"human":True},"exclude":{"browsers":["Chrome"]}}
headers = {
    'accept': "*/*",
    'content-type': "application/json",
    'authorization': "<<apiKey>>"
    }

response = requests.request("POST", url, json=payload, headers=headers)

print(response.text)
const axios = require('axios');

const data = {
    "limit":30,
    "include":{"human":true},
    "exclude":{"browsers":["Chrome"]}
};

const options = {
  headers: {
    accept: '*/*',
    'content-type': 'application/json',
    authorization: '<<apiKey>>'
  }
};

axios.post('https://api-v2.short.io/statistics/domain/domainID/last_clicks', data, options)
.then(function (response) {
  console.log(response.data);
})
.catch(function (response) {
  console.log(response);
});
require 'uri'
require 'net/http'
require 'openssl'
require 'json'

url = URI("https://api-v2.short.io/statistics/domain/domainID/last_clicks")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Post.new(url)
request["accept"] = '*/*'
request["content-type"] = 'application/json'
request["authorization"] = '<<apiKey>>'
request.body = JSON.generate({"limit":30,"include":{"human":true},"exclude":{"browsers":["Chrome"]}})

response = http.request(request)
puts response.read_body

5) Launch the file.

python filename.py
node filename.js
ruby filename.rb

6) JSON Response.

Once you run the code, you will see the response.

It contains the list from the last 30 clicks. The example of one click.
{
    host: 'shortcm.xyz',
    path: '/login',
    method: 'GET',
    url: 'https://app.short.cm/login',
    dt: '2020-05-20T06:19:12.000Z',
    st: 302,
    ip: '202.83.57.227',
    proto: 'https',
    ref: 'https://blog-short-io.cdn.ampproject.org/v/s/blog.short.io/shortlinks-youtube/amp/?amp_js_v=a3&amp_gsa=1&usqp=mq331AQFKAGwASA%3D',
    ua: 'Mozilla/5.0 (Linux; Android 10; HD1901) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Mobile Safari/537.36',
    human: true,
    browser: 'Chrome Mobile',
    browser_version: '81',
    country: 'India',
    social: '',
    refhost: 'blog-short-io.cdn.ampproject.org',
    os: 'Android',
    utm_source: '',
    utm_medium: 'unknown',
    utm_campaign: '',
    goal_completed: null,
    ab_path: null,
    lcpath: '/login'
  },