NAV

Introduction

Welcome to the JotUrl API Version i1! This is the right place to find information on how to programmatically interact with the JotUrl interface.

Authentication

Session token

Step 1: acquiring a token

Example

  {PUBLIC_KEY} = "ae7b4635320411fe"

 {PRIVATE_KEY} = "9283c835ef5e21d3"

{GMT_DATETIME} = "2018-11-30T20:04Z"

    {PASSWORD} = HMAC_SHA256({PRIVATE_KEY}, {PUBLIC_KEY} + ':' + {GMT_DATETIME}) =
               = HMAC_SHA256("9283c835ef5e21d3", "ae7b4635320411fe:2018-11-30T20:04Z") =
               = "e78a507e8e031a02c5c81a2eacb5bd6c1f846a99af7c5d0f339f006dc44384aa"

Request

https://joturl.com/a/i1/users/login?username=test@example.com&password=e78a507e8e031a02c5c81a2eacb5bd6c1f846a99af7c5d0f339f006dc44384aa

The above request returns a JSON structured like this:

{
    "status": {
        "code": 200,
        "text": "OK",
        "error": "",
        "rate": 0
    },
    "result": {
        "session_id": "93bed02bf74e191294e22da6272a18a8",
        "datetime": "2018-11-30T20:04Z"
    }
}

Session authentication needs the generation of a session token session_id that is used to sign all other request to the API endpoints.

To generate the session_id you have to make a request (GET or POST) to the API endpoint:

https://joturl.com/a/i1/users/login?username={EMAIL}&password={PASSWORD}

where {EMAIL} is the email you use to login the JotUrl dashaboard and {PASSWORD} is obtained by using an HMAC_SHA256 hash function:

{PASSWORD} = HMAC_SHA256({PRIVATE_KEY}, {PUBLIC_KEY} + ':' + {GMT_DATETIME})

{PUBLIC_KEY} and {PRIVATE_KEY} are your public and private API keys, respectively (API Keys).

Parameter {GMT_DATETIME} is the the GMT date/time in the format YYYY-MM-ddThh:mmZ where:

Parameter {GMT_DATETIME} must be generated on a device as synchronized as possible with the GMT date/time (each request requires a new {GMT_DATETIME}).

Step 2: sign API calls

Example

_sid = {session_id} =
     = "93bed02bf74e191294e22da6272a18a8"

  _h = HMAC_SHA256({PRIVATE_KEY}, {session_id} + ':' + {GMT_DATETIME}) =
     = HMAC_SHA256("9283c835ef5e21d3", "93bed02bf74e191294e22da6272a18a8:2018-11-30T20:04Z") =
     = "c9afd295a66bdfd68b2ee5a6c1031ff343d17691d56af17504127cf22d5a9d5b"

Request

https://joturl.com/a/i1/users/info?_sid=93bed02bf74e191294e22da6272a18a8&_h=c9afd295a66bdfd68b2ee5a6c1031ff343d17691d56af17504127cf22d5a9d5b

Response

{
    "status": {
        "code": 500,
        "text": "INVALID session",
        "error": "",
        "rate": 0
    },
    "result": []
}

Every request to API endpoints have to be signed with the parameters _sid and _h. Where _sid is the session token {session_id} obtained in step 1 and _h is generated with the same method used for the {PASSWORD} parameter in step 1:

_h = HMAC_SHA256({PRIVATE_KEY}, {session_id} + ':' + {GMT_DATETIME})

Parameter {GMT_DATETIME} is obtained in the same way and follows the same rules as in step 1.

The session token

The session token session_id expires approximately every 30 days, but may expire sooner due to various factors and if you call the API method users/logout.

As a best practice, we suggest you to continue to use it until you get an "INVALID session" error response from the API endpoint. In this case, you have to restart the authentication procedure from the beginning.

Examples

The examples in this section return the expected values for the HMAC_SHA256 hash, these values can be used to test the implementation of the HMAC_SHA256 hash you are using. You can find SDKs and examples here.

PHP

PHP example.

<?php

function HMAC_SHA256( $private_key, $message, $time = null ) {
    return hash_hmac(
        'sha256',
        $message . ':' . ( $time ?: gmdate( "Y-m-d\TH:i\Z", time() ) ), 
        $private_key 
    );
}

$public_key = "ae7b4635320411fe";
$private_key = "9283c835ef5e21d3";
$gmt_datetime = "2018-11-30T20:04Z";

// e78a507e8e031a02c5c81a2eacb5bd6c1f846a99af7c5d0f339f006dc44384aa
echo HMAC_SHA256( $private_key, $public_key, $gmt_datetime );

Python

Python example.

# coding: utf8
import sys
import hmac
import hashlib

try:
    def HMAC_SHA256(private_key="", message="", time=""):
        message += ":"

        if time:
            message += str(time)
        else:
            message += str(datetime.datetime.utcnow().strftime('%Y-%m-%dT%H:%MZ'))

        return hmac.new(str.encode(private_key), str.encode(message), hashlib.sha256).hexdigest()

    public_key = "ae7b4635320411fe"
    private_key = "9283c835ef5e21d3"
    gmt_datetime = "2018-11-30T20:04Z"

    # e78a507e8e031a02c5c81a2eacb5bd6c1f846a99af7c5d0f339f006dc44384aa
    print(HMAC_SHA256(private_key, public_key, gmt_datetime))

except Exception as t:
    print(t)
    sys.exit(0)
# end try

NodeJS

NodeJS example.

const crypto = require('crypto');

try {
    function gmdate() {
        var iso = (new Date()).toISOString();

        return iso.substr(0, iso.length - 8) + 'Z';
    }

    function create_sha256(key, message) {
        var hmac = crypto.createHmac('sha256', key);
        hmac.update(message);

        return hmac.digest('hex');
    }

    function HMAC_SHA256(private_key, message, time) {
        var msg = message + ":" + (time ? time : gmdate());

        return create_sha256(private_key, msg);
    }

    var public_key = "ae7b4635320411fe";
    var private_key = "9283c835ef5e21d3";
    var gmt_datetime = "2018-11-30T20:04Z";

    // e78a507e8e031a02c5c81a2eacb5bd6c1f846a99af7c5d0f339f006dc44384aa
    console.log(HMAC_SHA256(private_key, public_key, gmt_datetime));

} catch (e) {
    console.log(e.message);
}

Java

Java example.

import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import java.security.NoSuchAlgorithmException;
import java.security.InvalidKeyException;
import java.text.SimpleDateFormat;
import java.util.Locale;
import java.util.Date;
import java.util.TimeZone;

public class HMAC_SHA256_EXAMPLE {

  public static String gmdate() {
    String pattern = "yyy-MM-dd'T'HH:mm'Z'";
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
    simpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));

    return simpleDateFormat.format(new Date());
  }

  public static String hex(byte[] bytes) {
    StringBuilder result = new StringBuilder();
    for (byte aByte: bytes) {
      result.append(String.format("%02x", aByte));
    }

    return result.toString();
  }

  public static String HMAC_SHA256(String private_key, String message, String date_time)
        throws NoSuchAlgorithmException, InvalidKeyException {
    Mac sha256_HMAC = Mac.getInstanceNumber("HmacSHA256");
    SecretKeySpec secret_key = new SecretKeySpec(private_key.getBytes(), "HmacSHA256");
    sha256_HMAC.initClient(secret_key);

    return hex(sha256_HMAC.doFinal((message + ":" + date_time).getBytes()));
  }

  public static String HMAC_SHA256(String private_key, String message)
        throws NoSuchAlgorithmException, InvalidKeyException {
    return HMAC_SHA256(private_key, message, gmdate());
  }

  public static void main(String[] args) {
    try {
      String public_key = "ae7b4635320411fe";
      String private_key = "9283c835ef5e21d3";
      String date_time = "2018-11-30T20:04Z";

      // e78a507e8e031a02c5c81a2eacb5bd6c1f846a99af7c5d0f339f006dc44384aa
      System.out.println(HMAC_SHA256(private_key, public_key, date_time));
    }
    catch(Exception e) {
      System.out.println("Error");
    }
  }
}

C#

C# example.

using System;
using System.Security.Cryptography;
using System.Text;

namespace HMAC_SHA256_EXAMPLE
{
    class Program
    {
        public static string gmdate()
        {
            return DateTime.UtcNow.ToString("yyyy-MM-ddTHH:mmZ");
        }

        public static string hex(byte[] ba)
        {
            StringBuilder hex = new StringBuilder(ba.Length * 2);

            foreach (byte b in ba)
            {
                hex.AppendFormat("{0:x2}", b);
            }

            return hex.ToString();
        }

        private static string HMAC_SHA256(string private_key, string message, string time = "")
        {
            var hash = new HMACSHA256(Encoding.ASCII.GetBytes(private_key));

            return hex(hash.ComputeHash(Encoding.ASCII.GetBytes(message + ":" + (time ?? gmdate()))));
        }

        static void Main(string[] args)
        {
            var public_key = "ae7b4635320411fe";
            var private_key = "9283c835ef5e21d3";
            var gmt_datetime = "2018-11-30T20:04Z";

            // e78a507e8e031a02c5c81a2eacb5bd6c1f846a99af7c5d0f339f006dc44384aa
            Console.WriteLine(HMAC_SHA256(private_key, public_key, gmt_datetime));
        }
    }
}

Flutter (Dart)

Flutter (Dart) example.

import 'dart:convert';
import 'package:crypto/crypto.dart';

void main() {
  String public_key = 'ae7b4635320411fe';
  String private_key = '9283c835ef5e21d3';
  String gmt_datetime = '2018-11-30T20:04Z';

  // e78a507e8e031a02c5c81a2eacb5bd6c1f846a99af7c5d0f339f006dc44384aa
  print(HMAC_SHA256(private_key, public_key, gmt_datetime));
}

String gmdate() {
  String iso = DateTime.now().toUtc().toIso8601String();

  return iso.substring(0, 16) + 'Z';
}

String create_sha256(String key, String message) {
  var hmacSha256 = new Hmac(sha256, utf8.encode(key));
  var digest = hmacSha256.convert(utf8.encode(message));

  return digest.toString();
}

String HMAC_SHA256(String private_key, String message, [String time = '']) {
  String msg = message + ":" + (!time.isEmpty ? time : gmdate());

  return create_sha256(private_key, msg);
}

Token authentication

Token authentication (also called bearer authentication) is an HTTP authentication scheme that involves security tokens called bearer tokens.

Step 1: acquiring a token

Request

https://joturl.com/a/i1/apis/tokens

The above request returns a JSON structured like this:

{
    "status": {
        "code": 200,
        "text": "OK",
        "error": "",
        "rate": 0
    },
    "result": {
        "read_write_token": "tok_RWxtd74zqlcv18d6qiau75kr1bwpagqbq5",
        "read_only_token": "tok_RO064cmpvzcsxc5ufg0xzx58ms3q15bn10"
    }
}

API tokens authentication needs a read-only or read/write token that is used to sign all other request to the API endpoints. API tokens do not expire and can be reset using the endpoint apis/tokens.

To get API tokens you have to make a request (GET or POST) to the endpoint:

https://joturl.com/a/i1/users/tokens

you must already be logged in using the session token.

Step 2: sign API calls

Every request to API endpoints have to be signed with the Authorization HTTP header:

Authorization: Bearer {token}

where {token} is one of the API tokens obtained in step 1.

With the read-only token you can only call endpoints with access [read].

You can find the required access of each endpoint immediately below the endpoint itself in this documentation.

Input requests

Example

https://joturl.com/a/i1/urls/shorten?long_url=https%3A%2F%2Fwww.joturl.com%2F&alias=jot

Parameters to each JotUrl API can be passed both with the GET and POST methods.

Output formats

Query

format=json

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 87
  },
  "result": {DATA}
}

Query

format=jsonp&callback=clbfunc

Response

clbfunc({
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 87
  },
  "result": {DATA}
})

Query

format=jsonp

Response

{
  "status": {
    "code": 500,
    "text": "MISSING callback",
    "error": "",
    "rate": 21
  },
  "result": []
}

Query

format=xml

Response

<?xml version="1.0" encoding="UTF-8"?>
<response>
  <status>
    <code>200</code>  
    <text>OK</text>  
    <error></error>  
    <rate>87</rate>  
  </status>  
  <result>{DATA}</result>  
</response>

Query

format=txt

Response

status_code=200
status_text=OK
status_error=
status_rate=87
result={DATA}

Query

format=plain

Response

{DATA}

The JotUrl API supports Cross Origin Resource Sharing (CORS) requests from any domain.

All JotUrl APIs support five return formats: json, jsonp, xml, txt, plain. Note that the formats txt and plain may return only limited information.

The default output format is format = json that is also used when the parameter format is invalid (e.g., format = jsonp but no callback parameter is specified).

Rate limits

If the rate limits are exceeded, the call fails and returns a 403 status code, with a LIMIT EXCEEDED status text (see Output formats for details).

Typical response

{
    "status": {
        "code": <STATUS CODE>,
        "text": "<STATUS TEXT>",
        "error": "<STATUS ERROR>",
        "rate": <REQUESTS PER SECOND>
    },
    "result": <DATA>
}

If you send requests too quickly, make sure that the rate parameter in the status response is below the rate limits set for your account. The rate parameter is always expressed in requests per second. If you exceed the limits set for your account, our engine may block your requests for a time directly proportional to the speed with which you are sending the requests: the greater the gap with your rate limits, the greater the blocking time. Finally, if you do not fall within your rate limits for a long time, our engine could permanently block any further requests.

QR-Codes

A QR-Code is provided for each shorten URL. To generate it append .qrcode or .qr to the end of any shortened link. For example: http://jo.my/jotvideo.qrcode, http://jo.my/jotvideo.qr

Errors

For each request the status code is equal to the HTTP response status that can be:

code text error explanation
200 OK successful request
403 LIMIT EXCEEDED details on the error if available rate limit exceeded
404 NOT FOUND details on the error if available the query is well-formed but there is no available response
405 METHOD NOT ALLOWED details on the error if available the endpoint is not available to the calling user
414 Request-URI Too Large details on the error if available GET request contains long query information, use a POST request instead
500 INVALID [PARAMETER] details on the error if available invalid parameter [PARAMETER] in the request
INVALID METHOD [METHOD] details on the error if available invalid method [METHOD]
MISSING [ARGUMENT] details on the error if available the required argument [ARGUMENT] is missing in the request
503 GENERIC ERROR details on the error if available a generic error occurred and/or the service is temporarily unavailable 1

1 A GENERIC ERROR (503) is also issued in all those cases where a parameter has passed all validation checks, but for some reason our engine cannot use it to complete the request. For example, if you try to create a tracking link with the alias $alias you will see the error INVALID alias (500), since the alias $alias contains the forbidden character $, but if you try to create a tracking link with the alias alias and it is already have been used, you will see the error GENERIC ERROR (503) and the error field of the output status will be "The chosen alias is not available".

Parameters types

API endpoints require some parameters to be sent as part of the request. Most parameters are simple strings, but some endpoints require other types to be provided.

type description example
string sequence of alphanumeric text or other symbols hamburger
id variable length string obtained as a result of an API call 62613864764b3762725a343966673d3d
array comma separated list of type string, a maximum of 100 items are allowed hamburger, test
array_of_ids comma separated list of type id, a maximum of 100 items are allowed 62613864764b375a343966673d3d, 86590152f1891e680, 5952b26623c9b47ad9e
integer integer 12
float float with . (point) as a decimal separator 12.34
boolean boolean parameter, accepted values are true, false, on, off, 1, 0 1
date date in the format yyyy-mm-dd (UTC) 2019-06-04
datetime date/time in the format yyyy-mm-dd hh:mm:ss (UTC) 2019-06-04 19:21:34
json stringified JSON object or associative array {"test":"check"}, param[test]=check
enum is a string with a value chosen from a list of allowed values remarketing

JotUrl SDKs

JotUrl SDKs help you develop apps, websites and plugins that relies on all the functionality of our APIs. We currently support PHP, Python, Java and NodeJS, but you can easily integrate our APIs with all development technologies.

PHP SDK

Click here to download the SDK for PHP with an example included.

PHP example

<?php

// replace [your login] with the email you use to login into JotUrl
define( 'SDK_USER_NAME', '[your login]' );
// replace [public key] with your public key: https://www.joturl.com/reserved/settings.html#tools-api
define( 'SDK_PUBLIC_API_KEY', '[public key]' );
// replace [private key] with your private key: https://www.joturl.com/reserved/settings.html#tools-api
define( 'SDK_PRIVATE_API_KEY', '[private key]' );

require_once 'sdk/JotUrlSDK.php';

try {
    // create an instance of JotUrlSDK
    $joturl = new JotUrlSDK( SDK_USER_NAME, SDK_PUBLIC_API_KEY, SDK_PRIVATE_API_KEY );

    $joturl->wrapper( function ( $sdk ) {
        // get logged user information
        $url = $sdk->buildURL( 'users/info' );
        echo "Getting user info" . PHP_EOL;
        $result = $sdk->call( $url );
        echo "====== USER INFO ======" . PHP_EOL;
        print_r( $result );
    } );

    $joturl->wrapper( function ( $sdk ) {
        // get first 5 projects
        $url = $sdk->buildURL( 'projects/list', array( "fields" => "id,name", "length" => 5 ) );
        echo "Getting first 5 projects (if available)" . PHP_EOL;
        $result = $sdk->call( $url );
        echo "====== PROJECTS ======" . PHP_EOL;
        print_r( $result );
    } );
} catch ( Throwable $t ) {
    die( $t->getMessage() );
}

Documentation

<?php

/**
 * Creates an instance of the JotUrl SDK.
 *
 * @param string $username    the username used to login into JotURL dashboard
 * @param string $public_key  public api key, you can find it on https://www.joturl.com/reserved/settings.html#tools-api
 * @param string $private_key private api key, you can find it on https://www.joturl.com/reserved/settings.html#tools-api
 */
new JotUrlSDK( $username, $public_key, $private_key );

/**
 * Automatically try to access the JotURL API, the callback is called if the access is successful.
 *
 * @param mixed $callback callback to be called on success
 *
 * @return mixed value returned by the $callback function, an exception is thrown on error
 */
function wrapper( $callback );

/**
 * Given an endpoint and parameters (optional) returns the URL to be called.
 *
 * @param string $endpoint   endpoint to be called
 * @param array  $parameters associative array [param => value]
 *
 * @return string the URL to be called
 */
function buildURL( $endpoint, $parameters = array() );

/**
 * Call and get results from the API endpoint.
 *
 * @param string $url            URL to be called
 * @param array  $postParameters [OPTIONAL] array containing post parameters
 *
 * @return bool|array associative array containing the result of the call
 */
function call( $url, $postParameters = array() );

Python SDK

Click here to download the SDK for Python 3+ with an example included.

Python example

# coding: utf8
import sys
from sdk.JotUrlSDK import JotUrlSDK

# replace [your login] with the email you use to login into JotUrl
SDK_USER_NAME = "[your login]"
# replace [public key] with your public key: https://www.joturl.com/reserved/settings.html#tools-api
SDK_PUBLIC_API_KEY = "[public key]"
# replace [private key] with your private key: https://www.joturl.com/reserved/settings.html#tools-api
SDK_PRIVATE_API_KEY = "[private key]"

try:
    # create an instance of JotUrlSDK
    joturl = JotUrlSDK(SDK_USER_NAME, SDK_PUBLIC_API_KEY, SDK_PRIVATE_API_KEY)

    def getUserInfo(sdk):
        # get logged user information
        url = sdk.buildURL("users/info")
        print("Getting user info")
        result = sdk.call(url)
        print("====== USER INFO ======")
        print(result)


    joturl.wrapper(getUserInfo)


    def getProjectsList(sdk):
        # get first 5 projects
        url = sdk.buildURL("projects/list", {"fields": "id,name", "length": 5})
        print("Getting first 5 projects (if available)")
        result = sdk.call(url)
        print("====== PROJECTS ======")
        print(result)


    joturl.wrapper(getProjectsList)


    def getProjectsListWithPOSTRequest(sdk):
        # get first 5 projects
        url = sdk.buildURL("projects/list")
        print("Getting first 5 projects (if available) with a POST request")
        result = sdk.call(url, {"fields": "id,name", "length": 5})
        print("====== PROJECTS ======")
        print(result)


    joturl.wrapper(getProjectsListWithPOSTRequest)
except Exception as t:
    print(t)
    sys.exit(0)
# end try

Documentation

""" 
Creates an instance of the JotUrl SDK.

@param username    the username used to login into JotURL dashboard
@param public_key  public api key, you can find it on https://www.joturl.com/reserved/settings.html#tools-api
@param private_key private api key, you can find it on https://www.joturl.com/reserved/settings.html#tools-api
"""
def __init__(self, username="", public_key="", private_key=""):

"""
Automatically try to access the JotURL API, the callback is called if the access is successful.

@param callback callback to be called on success

returns True on success, raises an exception on error
"""
def wrapper(self, callback=None):

"""
Given an endpoint and parameters (optional) returns the URL to be called.

@param endpoint   endpoint to be called
@param parameters associative array [param => value]

returns the URL to be called
"""
def buildURL(self, endpoint="", parameters={}):

"""
Call and get results from the API endpoint.

@param url            URL to be called
@param postParameters [OPTIONAL] array containing post parameters

returns bool|array JSON containing the result of the call, false on failure, raises an exception on error 
"""
def call(self, url="", postParameters={}):

NodeJS SDK

Click here to download the SDK for NodeJS with an example included.

NodeJS example

// replace [your login] with the email you use to login into JotUrl
const SDK_USER_NAME = '[your login]';

// replace [public key] with your public key: https://www.joturl.com/reserved/settings.html#tools-api
const SDK_PUBLIC_API_KEY = '[public key]';

// replace [private key] with your private key: https://www.joturl.com/reserved/settings.html#tools-api
const SDK_PRIVATE_API_KEY = '[private key]';

try {
    // create an instance of JotUrlSDK
    let joturl = require('./sdk/JotUrlSDK.js')(SDK_USER_NAME, SDK_PUBLIC_API_KEY, SDK_PRIVATE_API_KEY);

    // get logged user information
    console.log("Getting user info");
    joturl.call('users/info').then(result => {
        console.log(result);

        /* get first 5 projects */
        console.log("Getting first 5 projects (if available)");
        joturl.call('projects/list', {"fields": "id,name", "length": 5}).then(result => {
            console.log(result);
        }).catch(e => {
            console.log(e.message);
        });
    }).catch(e => {
        console.log(e.message);
    });
} catch (e) {
    console.log(e.message);
}

Documentation

/**
 * Creates an instance of the JotUrl SDK.
 *
 * @param _username the username used to login into JotURL dashboard
 * @param _public_key public api key, you can find it on https://www.joturl.com/reserved/settings.html#tools-api
 * @param _private_key private api key, you can find it on https://www.joturl.com/reserved/settings.html#tools-api
 * @param base_url the base URL to be use to call API endpoints, defaults to https://joturl.com/a/i1/
 *
 * @returns {JotUrlSDK}
 */
require('JotUrlSDK')(_username, _public_key, _private_key, base_url);

/**
 * Call and get results from the API endpoint.
 *
 * @param endpoint API endpoint to be called
 * @param parameters [OPTIONAL] parameters to be passed to the call
 * @param postParameters [OPTIONAL] post parameters to be passed to the call
 *
 * @returns {Promise}
 */
function call(endpoint, parameters = {}, postParameters = {});

Java SDK

Click here to download the SDK for Java with an example included.

Java example

import joturlsdk.JotUrlRunnable;
import joturlsdk.JotUrlSDK;

public class JotUrlExample {

    public static void main(String[] args) {
        try {
            JotUrlSDK sdk = new JotUrlSDK("[username]", "[public_key]", "[private_key]");

            sdk.call("users/info", new JotUrlRunnable() {
                public void run() {
                    System.out.println(this.result);
                }
            });
        } catch (Exception e) {
            System.out.println("Error: " + e.getMessage());
        }
    }
}

Documentation

/**
 * Creates an instance of the JotUrl SDK.
 *
 * @param _username the username used to login into JotURL dashboard
 * @param _public_key public api key, you can find it on https://www.joturl.com/reserved/settings.html#tools-api
 * @param _private_key private api key, you can find it on https://www.joturl.com/reserved/settings.html#tools-api
 *
 * @returns {JotUrlSDK}
 */
JotUrlSDK sdk = new JotUrlSDK(_username, _public_key, _private_key);

/**
 * Call and get results from the API endpoint.
 *
 * @param endpoint API endpoint to be called
 * @param parameters parameters to be passed to the call (null to ignore)
 * @param postParameters post parametersto be passed to the call (null to ignore)
 *
 */
JotUrlSDK.call(String endpoint, JotUrlRunnable callback, Map<String, String> parameters, Map<String, String> postParameters);
JotUrlSDK.call(String endpoint, JotUrlRunnable callback);
JotUrlSDK.callGET(String endpoint, Map<String, String> parameters, JotUrlRunnable callback);
JotUrlSDK.callPOST(String endpoint, Map<String, String> postParameters, JotUrlRunnable callback);

Flutter SDK

Click here to download the SDK for Flutter with an example included.

Dart example

import 'package:joturlsdk/joturlsdk.dart';

void main() async {
  final String username = '[username]';
  final String public_key = '[public_key]';
  final String private_key = '[private_key]';

  try {
    JotUrlSDK sdk = new JotUrlSDK(username, public_key, private_key);

    dynamic result = await sdk.call("users/info");

    print('result: ' + result.toString());
  } catch (e) {
    print("Error: " + e.toString());
  }
}

Documentation

/**
 * Creates an instance of the JotUrl SDK.
 *
 * @param _username the username used to login into JotURL dashboard
 * @param _public_key public api key, you can find it on https://www.joturl.com/reserved/settings.html#tools-api
 * @param _private_key private api key, you can find it on https://www.joturl.com/reserved/settings.html#tools-api
 * @param base_url the base URL to be use to call API endpoints, defaults to https://joturl.com/a/i1/
 *
 * @returns JotUrlSDK
 * @constructor
 */
JotUrlSDK sdk = new JotUrlSDK(_username, _public_key, _private_key);

/**
 * Call and get results from the API endpoint.
 *
 * @param endpoint API endpoint to be called
 * @param getParameters query parameters to be passed to the call (null to ignore)
 * @param postParameters post parametersto be passed to the call (null to ignore)
 *
 */
sdk.call(endpoint, {Map<String, dynamic> getParameters = null, Map<String, dynamic> postParameters = null});

API reference

/decode

access: [READ]

This method converts API error codes into a friendly text message (in the current user language).

Example 1 (json)

Request

https://joturl.com/a/i1/decode?code=10

Query parameters

code = 10

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "message": "An error occurred while deleting the QR codes of a URL"
  }
}
Required parameters
parameter description
codeSTRING numeric code representing the error message
Return values
parameter description
lang language in which the message is
message decoded text message

/timestamp

access: [READ]

This method returns the current server timestamp (UTC) with microseconds as float.

Example 1 (json)

Request

https://joturl.com/a/i1/timestamp

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "timestamp": 1737311492.082
  }
}
Return values
parameter description
timestamp the current Unix timestamp with microseconds

/translate

access: [READ]

This method translates an error codes into a friendly text message.

Example 1 (json)

Request

https://joturl.com/a/i1/translate?code=sample_message&lang=en

Query parameters

code = sample_message
lang = en

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "text": "This is a sample error message",
    "lang": "en"
  }
}
Required parameters
parameter description
codeSTRING string code representing the error message
Optional parameters
parameter description
langSTRING language in which you want to translate the message
Return values
parameter description
lang language in which the message is
text text message corresponding to code

/apis

/apis/accepted

access: [WRITE]

This method returns the actual result from an accepted (202) API endpoint.

Example 1 (json)

Request

https://joturl.com/a/i1/apis/accepted

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": []
}
Optional parameters
parameter description
_accepted_idID ID returned by the accepted (202) API endpoint
stop_taskBOOLEAN 1 to stop the background task, _accepted_id is mandatory if stop_task is 1
Return values
parameter description
_accepted_count [OPTIONAL] completed subtasks (e.g., the number of imported tracking links)
_accepted_dt [OPTIONAL] starting date/time of the task
_accepted_errors [OPTIONAL] total number of subtasks not completed correctly (e.g., the number of tracking links for which the import has failed)
_accepted_id [OPTIONAL] ID of the task started by the accepted (202) API endpoint
_accepted_key [OPTIONAL] key that uniquely identifies the accepted (202) API endpoint that started the task
_accepted_perc [OPTIONAL] percentage of completition of the task
_accepted_total [OPTIONAL] total number of subtasks (e.g., the total number of tracking links to be imported)
data [OPTIONAL] data returned at the end of the task from the accepted (202) API endpoint
stopped [OPTIONAL] 1 if the task has been stopped, 0 otherwise, returned only if stop_task is 1

/apis/has_access

access: [READ]

User permissions can remove access to this version of the API. This method returns 1 only if the user has access to this version of the API.

Example 1 (json)

Request

https://joturl.com/a/i1/apis/has_access

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "has_access": 0
  }
}
Return values
parameter description
has_access 1 if the user has access to this API version, 0 otherwise

/apis/keys

access: [WRITE]

This method returns the API keys associated to the logged in user.

Example 1 (json)

Request

https://joturl.com/a/i1/apis/keys

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "public": "ddac90b80bc320078a211dd8d46ce3c8",
    "private": "9519bf7bac451b4049efe767aea735d9"
  }
}
Optional parameters
parameter description
passwordSTRING current account password, to be sent if reset = 1
resetBOOLEAN 1 to reset API keys, if this parameter is 1 the POST method is required (because the password is sent)
Return values
parameter description
private the user private API key
public the user public API key

/apis/lab

/apis/lab/add

access: [WRITE]

This method adds a new LAB script.

Example 1 (json)

Request

https://joturl.com/a/i1/apis/lab/add?name=test+script&script=LogManager.log%28%27script%27%29%3B

Query parameters

  name = test script
script = LogManager.log('script');

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "name": "test script",
    "script": "LogManager.log('script');",
    "id": "4f54cd183e547e3b276de09b9257c3db",
    "creation": "2025-01-19 18:31:31"
  }
}
Required parameters
parameter description
nameSTRING LAB script name
scriptHTML LAB script content
Return values
parameter description
creation creation date/time of the LAB script
id ID of the LAB script
name LAB script name (max length: 100000 bytes)

/apis/lab/count

access: [READ]

This method returns the number of LAB scripts.

Example 1 (json)

Request

https://joturl.com/a/i1/apis/lab/count?search=a

Query parameters

search = a

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "count": 1
  }
}
Optional parameters
parameter description
searchSTRING filter LAB scripts by searching them
Return values
parameter description
count total number of LAB scripts, filtered by search: if passed

/apis/lab/delete

access: [WRITE]

This method deletes LAB scripts by using the parameter ids.

Example 1 (json)

Request

https://joturl.com/a/i1/apis/lab/delete?ids=7f6ffaa6bb0b408017b62254211691b5,bff030594cd09ce531297feac0327b3f

Query parameters

ids = 7f6ffaa6bb0b408017b62254211691b5,bff030594cd09ce531297feac0327b3f

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "deleted": 2
  }
}
Required parameters
parameter description
idsARRAY_OF_IDS comma-separated list of LAB script IDs to be deleted, max number of IDs in the list: 100
Return values
parameter description
deleted number of deleted scripts

/apis/lab/edit

access: [WRITE]

This method edits a LAB script.

Example 1 (json)

Request

https://joturl.com/a/i1/apis/lab/edit?id=d7858f992333e201d12b81dae5c93ff3&name=test+script

Query parameters

  id = d7858f992333e201d12b81dae5c93ff3
name = test script

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "id": "d7858f992333e201d12b81dae5c93ff3",
    "name": "test script",
    "updated": 1
  }
}
Required parameters
parameter description
idID ID of the LAB script to edit
Optional parameters
parameter description
nameSTRING LAB script name
scriptHTML content of the LAB script
Return values
parameter description
updated 1 on success, 0 otherwise

/apis/lab/info

access: [READ]

This method returns info about a LAB script.

Example 1 (json)

Request

https://joturl.com/a/i1/apis/lab/info

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": [
    {
      "id": "827dd3604798500a552e723b6c8654a5",
      "name": "script name 0",
      "creation": "2025-01-19 18:43:51",
      "script": "LogManager.log('script 0');"
    },
    {
      "id": "9c87daaaba099e52e61414424ee82235",
      "name": "script name 1",
      "creation": "2025-01-19 18:46:59",
      "script": "LogManager.log('script 1');"
    },
    {
      "id": "29417f7108f9e2b7c3d0fd99b1fe5a5d",
      "name": "script name 2",
      "creation": "2025-01-19 18:58:59",
      "script": "LogManager.log('script 2');"
    },
    {
      "id": "7c7043ea328b0182e4f5e43f265bc210",
      "name": "script name 3",
      "creation": "2025-01-19 21:17:14",
      "script": "LogManager.log('script 3');"
    },
    {
      "id": "369e52829b4f147a629f7f9633d7eb76",
      "name": "script name 4",
      "creation": "2025-01-19 22:27:30",
      "script": "LogManager.log('script 4');"
    }
  ]
}
Required parameters
parameter description
idID ID of the LAB script
Return values
parameter description
creation creation date/time of the LAB script
id ID of the LAB script
name name of the LAB script
script content of the LAB script

/apis/lab/list

access: [READ]

This method returns a list of available custom scripts for the current user.

Example 1 (json)

Request

https://joturl.com/a/i1/apis/lab/list

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": [
    {
      "id": "84fbf6dbbeceb747375b3af1f726818f",
      "name": "script name 0",
      "creation": "2025-01-19 18:57:10"
    },
    {
      "id": "4490aa291fe80062338b2828f7ea45ea",
      "name": "script name 1",
      "creation": "2025-01-19 19:43:44"
    },
    {
      "id": "136e96fba9cf20d03a626e11dc05ecf8",
      "name": "script name 2",
      "creation": "2025-01-19 20:43:46"
    },
    {
      "id": "abab24c1e5c9358b7a1b8ee9d75a89c1",
      "name": "script name 3",
      "creation": "2025-01-19 22:53:25"
    },
    {
      "id": "07562aafebc44ad7342883b7a34e799c",
      "name": "script name 4",
      "creation": "2025-01-20 01:36:01"
    }
  ]
}
Optional parameters
parameter description
searchSTRING filters items to be extracted by searching them
Return values
parameter description
count total number of LAB scripts
data list of available/filtered LAB scripts for the current user

/apis/limits

access: [READ]

This method returns the API limits for the logged user.

Example 1 (json)

Request

https://joturl.com/a/i1/apis/limits

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "primary": {
      "limit": 500,
      "unit": "HOUR"
    },
    "secondary": {
      "limit": 50000,
      "unit": "DAY"
    }
  }
}
Return values
parameter description
primary object containing the primary rate limit: an integer limit and the unit in which the limit is expressed. unit is one of the following [MINUTE,HOUR,DAY,3_DAY]. 3_DAY is equivalent to 3 days
secondary object containing the secondary rate limit: an integer limit and the unit in which the limit is expressed. unit is one of the following [MINUTE,HOUR,DAY,3_DAY]. 3_DAY is equivalent to 3 days

/apis/list

access: [READ]

This method returns the list of available versions of the API.

Example 1 (json)

Request

https://joturl.com/a/i1/apis/list

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "count": 2,
    "data": [
      {
        "id": "v1",
        "name": "Version v1"
      },
      {
        "id": "i1",
        "name": "Version i1"
      }
    ]
  }
}
Optional parameters
parameter description
lengthINTEGER extracts this number of items (maxmimum allowed: 100)
orderbyARRAY orders items by field
searchSTRING filters items to be extracted by searching them
sortSTRING sorts items in ascending (ASC) or descending (DESC) order
startINTEGER starts to extract items from this position
Return values
parameter description
count total number of versions
data array containing required information on API versions the user has access to

/apis/tokens

access: [WRITE]

This method returns the API tokens associated to the logged in user.

Example 1 (json)

Request

https://joturl.com/a/i1/apis/tokens

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "read_write_token": "tok_RW760c5a06080be447b1916b973e6f10b7",
    "read_only_token": "tok_ROd430631742eed8803784c1b2261b9254"
  }
}
Optional parameters
parameter description
passwordSTRING current account password, to be sent if reset = 1
resetBOOLEAN 1 to reset the API tokens, if this parameter is 1 the POST method is required (because the password is sent)
Return values
parameter description
read_only_token the read-only API access token
read_write_token the read/write API access token

/cdns

/cdns/add

access: [WRITE]

This method allows to upload a resource to the CDN.

Example 1 (json)

Request

https://joturl.com/a/i1/cdns/add?type=image&info=%7B%22name%22%3A%22this+is+my+resource%22%7D

Query parameters

type = image
info = {"name":"this is my resource"}

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "id": "63eeeb6154e937efe50652e2d632113f",
    "name": "this is my resource",
    "creation": "2025-01-19 18:31:31",
    "url": "https:\/\/cdn.endpoint\/path\/to\/resource",
    "width": 533,
    "height": 400,
    "size": 20903,
    "mime_type": "image\/png"
  }
}
Required parameters
parameter description
typeSTRING CDN type, see i1/cdns/property for details
Optional parameters
parameter description max length
external_urlURL URL to an external resource (not managed by the CDN), this URL must be with HTTPS 4000
infoJSON JSON containing additional info on the resource
inputSTRING name of the HTML form field that contains data for the resource, if not passed the default value input will be used (i.e., input = input)

NOTES: The parameter input contains the name of the field of the HTML form that is used to send resource data to this method. Form must have enctype = "multipart/form-data" and method = "post".

<form 
    action="/a/i1/cdns/add" 
    method="post" 
    enctype="multipart/form-data">

    <input name="input" value="resource_field" type="hidden"/>

    [other form fields]

    <input name="resource_field" type="file"/>    

</form>
Return values
parameter description
creation date/time when the CDN resource was created
height height in pixels of the CDN resource, if available
id ID of the CDN resource
mime_type MIME type of the resource, or 'external_url' for external URLs
name name of the CDN resource
size size in bytes of the CDN resource, if available
url URL of the CDN resource
width width in pixels of the CDN resource, if available

/cdns/count

access: [READ]

This method returns the number of resources on the CDN.

Example 1 (json)

Request

https://joturl.com/a/i1/cdns/count

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "count": 2
  }
}
Required parameters
parameter description
typeSTRING CDN resource type, for available types see i1/cdns/list
Optional parameters
parameter description
filtersJSON filters to be used to count media, for available filters see i1/cdns/list
searchSTRING filters CDN resources to be extracted by searching them
Return values
parameter description
count number of (filtered) CDN resources

/cdns/delete

access: [WRITE]

This method deletes a resource from the CDN.

Example 1 (json)

Request

https://joturl.com/a/i1/cdns/delete?id=1d36ceeeb85491ac76ba4dcb28ffd23c

Query parameters

id = 1d36ceeeb85491ac76ba4dcb28ffd23c

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "id": "1d36ceeeb85491ac76ba4dcb28ffd23c",
    "deleted": 1
  }
}
Required parameters
parameter description
idID ID of the CDN resource to delete
Optional parameters
parameter description
confirmBOOLEAN If 1 this method deletes the CDN resource even if it is linked to a tracking link
Return values
parameter description
deleted 1 if successful, otherwise a generic error message is issued
id echo back of the id input parameter

/cdns/edit

access: [WRITE]

This method allows to modify a CDN resource.

Example 1 (json)

Request

https://joturl.com/a/i1/cdns/edit?type=image&info=%7B%22name%22%3A%22this+is+my+resource%22%7D&id=5cd6db510de5c18e5a100c8e30cc0750

Query parameters

type = image
info = {"name":"this is my resource"}
  id = 5cd6db510de5c18e5a100c8e30cc0750

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "id": "5cd6db510de5c18e5a100c8e30cc0750",
    "name": "this is my resource",
    "creation": "2025-01-19 18:31:31",
    "url": "https:\/\/cdn.endpoint\/path\/to\/resource",
    "width": 533,
    "height": 400,
    "size": 20903,
    "mime_type": "image\/png"
  }
}
Required parameters
parameter description
idID ID of the CDN resource
typeSTRING CDN type, see i1/cdns/property for details
Optional parameters
parameter description max length
external_urlURL URL to an external resource (not managed by the CDN), this URL must be with HTTPS 4000
infoJSON JSON containing additional info on the resource
inputSTRING name of the HTML form field that contains data for the resource, if not passed the default value input will be used (i.e., input = input)

NOTES: The parameter input contains the name of the field of the HTML form that is used to send resource data to this method. Form must have enctype = "multipart/form-data" and method = "post".

<form 
    action="/a/i1/cdns/edit" 
    method="post" 
    enctype="multipart/form-data">

    <input name="input" value="resource_field" type="hidden"/>

    [other form fields]

    <input name="resource_field" type="file"/>    

</form>
Return values
parameter description
creation date/time when the CDN resource was created
height height in pixels of the CDN resource, if available
id ID of the CDN resource
mime_type MIME type of the resource, or 'external_url' for external URLs
name name of the CDN resource
size size in bytes of the CDN resource, if available
url URL of the CDN resource
width width in pixels of the CDN resource, if available

/cdns/info

access: [READ]

This method returns information about a resource on the CDN.

Example 1 (json)

Request

https://joturl.com/a/i1/cdns/info?id=31ddacd40e5b645adecb7ec308225113

Query parameters

id = 31ddacd40e5b645adecb7ec308225113

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "data": {
      "id": "31ddacd40e5b645adecb7ec308225113",
      "name": "this is my resource",
      "creation": "2019-06-25 13:01:23",
      "url": "https:\/\/cdn.endpoint\/path\/to\/resource",
      "width": 533,
      "height": 400,
      "size": 20903,
      "mime_type": "image\/png"
    }
  }
}
Required parameters
parameter description
idID ID of the CDN resource
Return values
parameter description
data array containing required information on CDN resources

access: [WRITE]

This method allows to add an association between a CDN resource and a key and/or a tracking link. This method allows multiple instances for the combination (CDN resource,key).

Example 1 (json)

Request

https://joturl.com/a/i1/cdns/links/add?key=my_custom_config_key&cdn_id=0be03f3a17b48558138099f95b668b7b&value=%7B%22position%22%3A%22top_left%22%7D

Query parameters

   key = my_custom_config_key
cdn_id = 0be03f3a17b48558138099f95b668b7b
 value = {"position":"top_left"}

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "added": 1
  }
}
Required parameters
parameter description max length
cdn_idID ID of the CDN resource
keySTRING key that identifies the CDN resource/tracking link association, available values: reports_config, instaurl, instaurl_bg, instaurl_images, preview_image 50
Optional parameters
parameter description
url_idID ID of the tracking link
valueJSON value for the association, it must be a stringified JSON
Return values
parameter description
added 1 on success, 0 otherwise

access: [WRITE]

This method deletes all the associations between a CDN resource and a key and/or a tracking link. If the resource ID is not passed, it deletes all associations by using the key.

Example 1 (json)

Request

https://joturl.com/a/i1/cdns/links/delete?key=my_custom_config_key&cdn_id=534cc892ae10b5930dc66172abb14d9e

Query parameters

   key = my_custom_config_key
cdn_id = 534cc892ae10b5930dc66172abb14d9e

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "deleted": 1
  }
}
Required parameters
parameter description max length
keySTRING key that identifies the CDN resource/tracking link association, available values: reports_config, instaurl, instaurl_bg, instaurl_images, preview_image 50
Optional parameters
parameter description
cdn_idID if passed, only the associations with the CDN resource identified by this ID will be deleted
url_idID if passed, only the associations with the tracking link identified by this ID will be deleted
Return values
parameter description
deleted number of deleted associations

access: [READ]

This method returns all the associations between a CDN resource and a key and/or a tracking link.

Example 1 (json)

Request

https://joturl.com/a/i1/cdns/links/get?key=my_custom_config_key&cdn_id=6153de78431af7aa46bfdf0bf1b0bc92

Query parameters

   key = my_custom_config_key
cdn_id = 6153de78431af7aa46bfdf0bf1b0bc92

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "data": {
      "id": "4d17c56552a98348f22796d6e5264fa1",
      "key": "my_custom_config_key",
      "value": {
        "position": "top_left"
      },
      "cdn_id": "6153de78431af7aa46bfdf0bf1b0bc92",
      "url_id": "53b21071f7485089c0793147c6c66dd8",
      "name": "this is my resource",
      "creation": "2019-06-25 13:01:23",
      "url": "https:\/\/cdn.endpoint\/path\/to\/resource",
      "width": 533,
      "height": 400,
      "size": 20903,
      "mime_type": "image\/png"
    }
  }
}
Required parameters
parameter description max length
keySTRING key that identifies the CDN resource/tracking link association, available values: reports_config, instaurl, instaurl_bg, instaurl_images, preview_image 50
Optional parameters
parameter description
cdn_idID if passed, only the associations with the CDN resource identified by this ID will be returned
url_idID if passed, only the associations with the tracking link identified by this ID will be returned
Return values
parameter description
data array containing information on the association and the linked CDN resource

access: [WRITE]

This method allows to set the association between a CDN resource and a key and/or a tracking link. This method allows only one instance for the combination (CDN resource,key).

Example 1 (json)

Request

https://joturl.com/a/i1/cdns/links/set?key=my_custom_config_key&cdn_id=65d714f1f8b93687fe9b917dcb0d7a5a&value=%7B%22position%22%3A%22top_left%22%7D

Query parameters

   key = my_custom_config_key
cdn_id = 65d714f1f8b93687fe9b917dcb0d7a5a
 value = {"position":"top_left"}

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "set": 1
  }
}
Required parameters
parameter description max length
cdn_idID ID of the CDN resource
keySTRING key that identifies the CDN resource/tracking link association, available values: reports_config, instaurl, instaurl_bg, instaurl_images, preview_image 50
Optional parameters
parameter description
url_idID ID of the tracking link
valueJSON value for the association, it must be a stringified JSON
Return values
parameter description
set 1 on success, 0 otherwise

/cdns/list

access: [READ]

This method returns a list of resource on the CDN linked with the current user.

Example 1 (json)

Request

https://joturl.com/a/i1/cdns/list?type=image

Query parameters

type = image

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "count": 1,
    "data": {
      "id": "1234567890abcdef",
      "name": "this is my resource",
      "creation": "2019-06-25 13:01:23",
      "url": "https:\/\/cdn.endpoint\/path\/to\/resource",
      "width": 533,
      "height": 400,
      "size": 20903,
      "mime_type": "image\/png"
    }
  }
}
Required parameters
parameter description
typeSTRING CDN type, see i1/cdns/property for details
Optional parameters
parameter description
filtersJSON filters to be used extracing media
lengthINTEGER extracts this number of CDN resources (maxmimum allowed: 100)
searchSTRING filters CDN resources to be extracted by searching them
startINTEGER starts to extract CDN resources from this position
Return values
parameter description
count total number of (filtered) CDN resources
data array containing required information on CDN resources

/cdns/property

access: [READ]

This method return limits for uploading a resource on the CDN.

Example 1 (json)

Request

https://joturl.com/a/i1/cdns/property

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "image": {
      "max_size": 5242880,
      "allowed_types": [
        "gif",
        "jpg",
        "png",
        "svg",
        "webp"
      ],
      "allowed_mimes": [
        "image\/gif",
        "image\/jpeg",
        "image\/jpg",
        "image\/pjpeg",
        "image\/x-png",
        "image\/png",
        "image\/svg+xml",
        "application\/svg+xml",
        "image\/webp"
      ]
    }
  }
}
Optional parameters
parameter description
typeSTRING CDN resource type, available types: image
Return values
parameter description
[ARRAY] it is an object (type,(max_size,allowed_types,allowed_mimes)), see parameters max_size, allowed_types, allowed_mimes for details
allowed_mimes array containing the allowed mimes for the resource
allowed_types array containing the allowed types for the resource
max_size it is the maximum size in bytes the resource can have

/conversions

/conversions/affiliates

/conversions/affiliates/count

access: [READ]

This method returns the number of affiliates.

Example 1 (json)

Request

https://joturl.com/a/i1/conversions/affiliates/count

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "count": 16
  }
}
Optional parameters
parameter description
idID ID of the affiliate network
Return values
parameter description
count number of affiliate networks

/conversions/affiliates/list

access: [READ]

This method lists all affiliates network.

Example 1 (json)

Request

https://joturl.com/a/i1/conversions/affiliates/list

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "data": {
      "id": "644a4b356f74446f62613864764b3762725a343966673d3d",
      "name": "Network name",
      "actual_url_params": "id={:CLICK_ID:}",
      "postback_url_params": "clickid={id}&comm={comm}",
      "integration_link": ""
    }
  }
}
Optional parameters
parameter description
idID ID of the affiliate network
lengthINTEGER number of items to return (default: 1000, max value: 1000)
searchSTRING filter items by searching them
startINTEGER index of the starting item to retrieve (default: 0)
Return values
parameter description
count number of affiliate networks
data array containing affiliate networks

/conversions/codes

/conversions/codes/add

access: [WRITE]

Create a conversion code for the logged user.

Example 1 (json)

Request

https://joturl.com/a/i1/conversions/codes/add?name=name+of+the+new+conversion+code¬es=this+is+a+note+for+the+conversion+code

Query parameters

 name = name of the new conversion code
notes = this is a note for the conversion code

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "name": "name of the new conversion code",
    "notes": "this is a note for the conversion code",
    "id": "f6dedb4ed20b61fae639b1df09675538",
    "enable_postback_url": 0,
    "affiliate_network_id": ""
  }
}
Required parameters
parameter description max length
nameSTRING conversion name 100
Optional parameters
parameter description max length
affiliate_network_idID ID of the linked affiliate network, see i1/conversions/affliates/list for details
enable_postback_urlBOOLEAN 1 to enable postback URLs for the conversion
notesSTRING notes for the conversion 255
Return values
parameter description
affiliate_network_id echo back of the affiliate_network_id input parameter
enable_postback_url echo back of the enable_postback_url input parameter
id ID of the conversion code
name echo back of the name input parameter
notes echo back of the notes input parameter

/conversions/codes/count

access: [READ]

This method returns the number of defined conversion codes.

Example 1 (json)

Request

https://joturl.com/a/i1/conversions/codes/count

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "count": 4321
  }
}
Optional parameters
parameter description
searchSTRING filters conversion codes to be extracted by searching them
Return values
parameter description
count number of (filtered) conversion codes

/conversions/codes/delete

access: [WRITE]

This method deletes a set of conversion codes using their IDs.

Example 1 (json)

Request

https://joturl.com/a/i1/conversions/codes/delete?ids=23e9e17d4a70211afd2a85eff1e2e383,4cb4f7a7f112eddd6df612efd5028ea0,76a9df1c9315c8597b66cf28f25ba97c

Query parameters

ids = 23e9e17d4a70211afd2a85eff1e2e383,4cb4f7a7f112eddd6df612efd5028ea0,76a9df1c9315c8597b66cf28f25ba97c

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "deleted": 3
  }
}
Required parameters
parameter description
idsARRAY_OF_IDS comma-separated list of conversion code IDs to be deleted
Return values
parameter description
deleted number of deleted conversion codes
ids [OPTIONAL] list of conversion code IDs whose delete has failed, this parameter is returned only when at least one delete error has occurred

/conversions/codes/edit

access: [WRITE]

Edit fields of a conversion.

Example 1 (json)

Request

https://joturl.com/a/i1/conversions/codes/edit?id=c244e10e9c8b33f458b7635e48b2a9fb¬es=new+notes+for+the+conversion+code

Query parameters

   id = c244e10e9c8b33f458b7635e48b2a9fb
notes = new notes for the conversion code

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "id": "c244e10e9c8b33f458b7635e48b2a9fb",
    "notes": "new notes for the conversion code"
  }
}
Required parameters
parameter description
idID ID of the conversion code
Optional parameters
parameter description max length
affiliate_network_idID ID of the affiliate network linked to the conversion code, it is ignored if enable_postback_url = 0
enable_postback_urlBOOLEAN 1 to enabled postback URLs for the conversion code, 0 to disable it
nameSTRING name of the conversion code 100
notesSTRING notes for the conversion code 255
Return values
parameter description
affiliate_network_id [OPTIONAL] echo back of the affiliate_network_id input parameter
enable_postback_url [OPTIONAL] echo back of the enable_postback_url input parameter
id echo back of the id input parameter
name [OPTIONAL] echo back of the name input parameter
notes [OPTIONAL] echo back of the notes input parameter

/conversions/codes/info

access: [READ]

This method returns information about conversion code.

Example 1 (json)

Request

https://joturl.com/a/i1/conversions/codes/info?id=457a9e97a650ccb6e4a423702176a668&fields=id,name,notes

Query parameters

    id = 457a9e97a650ccb6e4a423702176a668
fields = id,name,notes

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "id": "457a9e97a650ccb6e4a423702176a668",
    "name": "name",
    "notes": "notes"
  }
}
Required parameters
parameter description
fieldsARRAY comma separated list of fields to return, available fields: id, ext_id, ext_postback_id, name, notes, enable_postback_url, affiliate_network_id, creation, clicks, last_click, value, performance
idID NA
Return values
parameter description
[ARRAY] see i1/conversions/codes/list for details on returned fields

/conversions/codes/list

access: [READ]

This method returns a list of user's conversions, specified in a comma separated input called fields.

Example 1 (json)

Request

https://joturl.com/a/i1/conversions/codes/list?fields=count,id,name

Query parameters

fields = count,id,name

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "count": 5,
    "data": [
      {
        "id": "7ae043bc93dcafe994fcc10a5c4fb9eb",
        "name": "conversion code 1"
      },
      {
        "id": "456bae3ff32efffd739133297d79f2dd",
        "name": "conversion code 2"
      },
      {
        "id": "e9b4977027f85a9f4df0697237fec4ec",
        "name": "conversion code 3"
      },
      {
        "id": "b906c9b81feab3e08dfe35e26139f5e9",
        "name": "conversion code 4"
      },
      {
        "id": "7d81a0d9f5b7d686aae0c5faca891442",
        "name": "conversion code 5"
      }
    ]
  }
}
Required parameters
parameter description
fieldsARRAY comma separated list of fields to return, available fields: count, id, ext_id, ext_postback_id, name, notes, enable_postback_url, affiliate_network_id, creation, clicks, last_click, value, performance
Optional parameters
parameter description
lengthINTEGER extracts this number of coversion codes (maxmimum allowed: 100)
orderbyARRAY orders coversion codes by field, available fields: count, id, ext_id, ext_postback_id, name, notes, enable_postback_url, affiliate_network_id, creation, clicks, last_click, value, performance
searchSTRING filters coversion codes to be extracted by searching them
sortSTRING sorts coversion codes in ascending (ASC) or descending (DESC) order
startINTEGER starts to extract coversion codes from this position
Return values
parameter description
count [OPTIONAL] total number of (filtered) coversion codes, returned only if count is passed in fields
data array containing required information on coversion codes

/conversions/codes/params

/conversions/codes/params/count

access: [READ]

This method returns the number of parameters linked to a conversion code.

Example 1 (json)

Request

https://joturl.com/a/i1/conversions/codes/params/count

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "count": 1
  }
}
Required parameters
parameter description
idID ID of the conversion code
Optional parameters
parameter description
param_numSTRING filter conversion parameters by parameter number, see i1/conversions/codes/params/list for details
searchSTRING filters conversion parameters to be extracted by searching them
Return values
parameter description
count number of (filtered) conversion parameters
/conversions/codes/params/has_params

access: [READ]

This method returns the number of parameters related to a conversion code.

Example 1 (json)

Request

https://joturl.com/a/i1/conversions/codes/params/has_params?id=a8ba504f7c76d9d1208c711637457d34

Query parameters

id = a8ba504f7c76d9d1208c711637457d34

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "has_params": 1,
    "param": 1,
    "ep00": 1,
    "ep01": 0,
    "ep02": 0,
    "ep03": 0,
    "ep04": 0,
    "ep05": 0,
    "ep06": 0,
    "ep07": 0,
    "ep08": 0,
    "ep09": 0,
    "ep10": 0,
    "ep11": 0,
    "ep12": 0,
    "ep13": 0,
    "ep14": 0
  }
}
Required parameters
parameter description
idID ID of the conversion code
Return values
parameter description
ep00 1 if the extended parameter ep00 is associated to the conversion code
ep01 1 if the extended parameter ep01 is associated to the conversion code
ep02 1 if the extended parameter ep02 is associated to the conversion code
ep03 1 if the extended parameter ep03 is associated to the conversion code
ep04 1 if the extended parameter ep04 is associated to the conversion code
ep05 1 if the extended parameter ep05 is associated to the conversion code
ep06 1 if the extended parameter ep06 is associated to the conversion code
ep07 1 if the extended parameter ep07 is associated to the conversion code
ep08 1 if the extended parameter ep08 is associated to the conversion code
ep09 1 if the extended parameter ep09 is associated to the conversion code
ep10 1 if the extended parameter ep10 is associated to the conversion code
ep11 1 if the extended parameter ep11 is associated to the conversion code
ep12 1 if the extended parameter ep12 is associated to the conversion code
ep13 1 if the extended parameter ep13 is associated to the conversion code
ep14 1 if the extended parameter ep14 is associated to the conversion code
has_params 1 if at least one extended parameter is associated to the conversion code
param 1 if param is associated to the conversion code
/conversions/codes/params/list

access: [READ]

This method returns a list of parameters related to a conversion code.

Example 1 (json)

Request

https://joturl.com/a/i1/conversions/codes/params/list?id=d75fe45566b45e2bcf15ca869326aea6

Query parameters

id = d75fe45566b45e2bcf15ca869326aea6

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "count": 2,
    "data": [
      {
        "param_id": "75402268e178e8a8594d60dc9a4392c7",
        "param": "this is the value #1 of parameter 'param'"
      },
      {
        "param_id": "bf254e85b60aa26407d93223c55554c5",
        "param": "this is the value #2 of parameter 'param'"
      }
    ]
  }
}
Required parameters
parameter description
idID ID of the conversion code
Optional parameters
parameter description
lengthINTEGER extracts this number of coversion parameters (maxmimum allowed: 100)
param_numSTRING if not passed or param_num = 255 it returns the parameter param, if param_num = 0 it returns the extended paarameter ep00, ..., if param_num = 7 it returns the extended paarameter ep07, ..., if param_num = 14 it returns the extended paarameter ep14,
searchSTRING filters coversion parameters to be extracted by searching them
startINTEGER starts to extract coversion parameters from this position
Return values
parameter description
count number of available parameter with the specified param_num
data array containing required information on coversion code parameters

/conversions/codes/urls

/conversions/codes/urls/count

access: [READ]

This method returns the number of tracking links liked to a conversion code.

Example 1 (json)

Request

https://joturl.com/a/i1/conversions/codes/urls/count

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "count": 5
  }
}
Required parameters
parameter description
idID ID of the conversion code
Optional parameters
parameter description
searchSTRING filters tracking pixels to be extracted by searching them
Return values
parameter description
count number of (filtered) tracking pixels
/conversions/codes/urls/list

access: [READ]

This method returns a list of tracking links related to a conversion code.

Example 1 (json)

Request

https://joturl.com/a/i1/conversions/codes/urls/list?id=025345de6ccc18c4709921e73e67a709&fields=count,url_id,alias

Query parameters

    id = 025345de6ccc18c4709921e73e67a709
fields = count,url_id,alias

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "count": 2,
    "data": [
      {
        "url_id": "73e30d783b51e33bd82a158122734963",
        "alias": "64e496b8"
      },
      {
        "url_id": "04db30adb93ba38e7ec0df87504b0cd3",
        "alias": "580cd3ef"
      }
    ]
  }
}
Required parameters
parameter description
fieldsARRAY comma-separated list of fields to return, available fields: count, url_id, alias, short_url, creation, long_url, domain_host, domain_id, project_name, project_id
idID ID of the conversion code
Optional parameters
parameter description
lengthINTEGER extracts this number of tracking links (maxmimum allowed: 100)
orderbyARRAY orders tracking links by field, available fields: url_id, alias, short_url, creation, long_url, domain_host, domain_id, project_name, project_id
searchSTRING filters tracking links to be extracted by searching them
sortSTRING sorts tracking links in ascending (ASC) or descending (DESC) order
startINTEGER starts to extract tracking links from this position
Return values
parameter description
count [OPTIONAL] total number of tracking links, returned only if count is passed in fields
data array containing information on the tracking links, the returned information depends on the fields parameter.

/conversions/count

access: [READ]

This method is actually an interface to i1/conversions/codes/count and/or to i1/conversions/pixels/count according to types.

Example 1 (json)

Request

https://joturl.com/a/i1/conversions/count?types=code,pixel

Query parameters

types = code,pixel

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "count": 32
  }
}
Required parameters
parameter description
typesARRAY comma separated list of types; available types are [code, pixel]
Return values
parameter description
count number of conversion, if both types are passed, it contains the sum of number of conversion codes and conversion pixels

/conversions/list

access: [READ]

This method is actually an interface to i1/conversions/codes/list and/or to i1/conversions/pixels/list according to types.

Example 1 (json)

Request

https://joturl.com/a/i1/conversions/list?types=code,pixel&fields=name,id,short_url

Query parameters

 types = code,pixel
fields = name,id,short_url

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "data": [
      {
        "name": "conversion code 1 (postback enabled)",
        "id": "97be71796437a197e70519aabb95e1a3",
        "ext_id": "c96ccfc8819203f86e1f2a6427a09dac",
        "ext_postback_id": "bac6996492588c694a4a7c7686057052",
        "type": "code"
      },
      {
        "name": "conversion code 2",
        "id": "e5ff7baf60c674f84b52994351084ffc",
        "ext_id": "c7c64e17d70098f96804d63acf76eb22",
        "type": "code"
      },
      {
        "id": "ecab168a84ea69d8e178529507f5dca0",
        "short_url": "https:\/\/domain.ext\/tracking_pixel_alias",
        "type": "pixel"
      }
    ]
  }
}
Required parameters
parameter description
typesARRAY comma separated list of types; available types are [code, pixel]
Return values
parameter description
count [OPTIONAL] number of conversion, if both types are passed, it contains the sum of number of conversion codes and conversion pixels
data array containing information on conversions

/conversions/pixels

/conversions/pixels/add

access: [WRITE]

Add a tracking pixel for the logged user.

Example 1 (json)

Request

https://joturl.com/a/i1/conversions/pixels/add?alias=jot&domain_id=16ec02ddd5d6a48ec72ac03c17518798&url_project_id=58db99a42ef655015aeffbcea0917e51¬es=

Query parameters

         alias = jot
     domain_id = 16ec02ddd5d6a48ec72ac03c17518798
url_project_id = 58db99a42ef655015aeffbcea0917e51
         notes = 

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "id": "9633d958b3346c0598b13148eae7f4d1",
    "alias": "jot",
    "domain_id": "16ec02ddd5d6a48ec72ac03c17518798",
    "domain_host": "jo.my",
    "domain_nickname": "",
    "url_project_id": "58db99a42ef655015aeffbcea0917e51",
    "project_name": "project name",
    "short_url": "\/\/jo.my\/jot",
    "template_type": 2,
    "notes": ""
  }
}
Required parameters
parameter description max length
aliasSTRING alias for the tracking pixel, see i1/urls/shorten for details of available characters in alias 510
Optional parameters
parameter description
conversion_idsARRAY_OF_IDS ID of the associated conversion codes
domain_idID ID of the domain for the tracking pixel, if not set the default domain for the user will be used
notesSTRING notes for the tracking pixel
tagsARRAY comma-separated list of tags for the tracking pixel
url_project_idID ID of the project where the tracking pixel will be put in, if not specified the default: project is used
Return values
parameter description
alias see i1/urls/shorten for details on returnd fields
domain_host see i1/urls/shorten for details on returnd fields
domain_id see i1/urls/shorten for details on returnd fields
domain_nickname see i1/urls/shorten for details on returnd fields
id ID of the created tracking pixel
notes see i1/urls/shorten for details on returnd fields
project_id see i1/urls/shorten for details on returnd fields
project_name see i1/urls/shorten for details on returnd fields
short_url see i1/urls/shorten for details on returnd fields
tags see i1/urls/shorten for details on returnd fields
tags see i1/urls/shorten for details on returnd fields
url_conversions_number number of associated conversion codes

/conversions/pixels/count

access: [READ]

This method returns the number of defined conversion pixels.

Example 1 (json)

Request

https://joturl.com/a/i1/conversions/pixels/count

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "count": 3
  }
}
Optional parameters
parameter description
searchSTRING filters conversion pixels to be extracted by searching them
Return values
parameter description
count number of (filtered) conversion pixels

/conversions/pixels/delete

access: [WRITE]

This method deletes a set of conversion pixel using their IDs.

Example 1 (json)

Request

https://joturl.com/a/i1/conversions/pixels/delete?ids=da22d3e6a257275a71f933e2c3d296c7,33898be40e2ae1128ddfcfebb1532798,57c036d4a1d6bc1d98ec546b10440198

Query parameters

ids = da22d3e6a257275a71f933e2c3d296c7,33898be40e2ae1128ddfcfebb1532798,57c036d4a1d6bc1d98ec546b10440198

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "deleted": 3
  }
}
Required parameters
parameter description
idsARRAY_OF_IDS comma-separated list of tracking pixel IDs to be deleted
Return values
parameter description
deleted number of deleted tracking pixels
tracking_pixel_ids [OPTIONAL] list of tracking pixel IDs whose delete has failed, this parameter is returned only when at least one delete error has occurred

/conversions/pixels/edit

access: [WRITE]

Edit fields of a Tracking Pixel.

Example 1 (json)

Request

https://joturl.com/a/i1/conversions/pixels/edit?id=61f9f16fb35e9c4e85d4e687a1c294bf&alias=jot&domain_id=d0cb585eaef137198df8cb5519828d2a&url_project_id=aa85155c49ad6176a030a8e09c77a085¬es=new+notes

Query parameters

            id = 61f9f16fb35e9c4e85d4e687a1c294bf
         alias = jot
     domain_id = d0cb585eaef137198df8cb5519828d2a
url_project_id = aa85155c49ad6176a030a8e09c77a085
         notes = new notes

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "id": "61f9f16fb35e9c4e85d4e687a1c294bf",
    "alias": "jot",
    "domain_id": "d0cb585eaef137198df8cb5519828d2a",
    "domain_host": "jo.my",
    "domain_nickname": "",
    "url_project_id": "aa85155c49ad6176a030a8e09c77a085",
    "project_name": "project name",
    "short_url": "\/\/jo.my\/jot",
    "template_type": 2,
    "notes": "new notes"
  }
}
Required parameters
parameter description
idID ID of the tracking pixel
Optional parameters
parameter description
conversion_idsARRAY_OF_IDS ID of the associated conversion codes
notesSTRING notes for the tracking pixel
tagsARRAY comma-separated list of tags for the tracking pixel
Return values
parameter description
alias see i1/urls/shorten for details on returnd fields
domain_host see i1/urls/shorten for details on returnd fields
domain_id see i1/urls/shorten for details on returnd fields
id ID of the created tracking pixel
long_url see i1/urls/shorten for details on returnd fields
notes see i1/urls/shorten for details on returnd fields
project_id see i1/urls/shorten for details on returnd fields
project_name see i1/urls/shorten for details on returnd fields
short_url see i1/urls/shorten for details on returnd fields
tags see i1/urls/shorten for details on returnd fields
url_conversions_number number of associated conversion codes

/conversions/pixels/info

access: [READ]

This method returns information specified in a comma separated input called fields about a conversion.

Example 1 (json)

Request

https://joturl.com/a/i1/conversions/pixels/info?fields=id,short_url&id=3b043773eae9b64f4c8ff118a489637d

Query parameters

fields = id,short_url
    id = 3b043773eae9b64f4c8ff118a489637d

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "data": [
      {
        "id": "3b043773eae9b64f4c8ff118a489637d",
        "short_url": "http:\/\/jo.my\/c7fbd523"
      }
    ]
  }
}
Required parameters
parameter description
fieldsARRAY comma separated list of fields to return, see method i1/conversions/pixels/list for reference
idID ID of the tracking pixel whose information is required
Return values
parameter description
data array containing 1 item on success, the returned information depends on the fields parameter.

/conversions/pixels/list

access: [READ]

This method returns a list of tracking pixels.

Example 1 (json)

Request

https://joturl.com/a/i1/conversions/pixels/list?fields=id,short_url&url_project_id=9093b3e56fc344007f11373410497714

Query parameters

        fields = id,short_url
url_project_id = 9093b3e56fc344007f11373410497714

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "data": [
      {
        "id": "3c79d7479c0c00bedc280be5da7fe240",
        "short_url": "http:\/\/jo.my\/3ea91252"
      }
    ]
  }
}
Required parameters
parameter description
fieldsARRAY comma separated list of fields to return, available fields: count, id, short_url, creation, url_tags, clicks, unique_visits, qrcodes_visits, conversions_visits, notes, alias
Optional parameters
parameter description
idID ID of the tracking pixel
lengthINTEGER extracts this number of items (maxmimum allowed: 100)
orderbyARRAY orders items by field, available fields: count, id, short_url, creation, url_tags, clicks, unique_visits, qrcodes_visits, conversions_visits, notes, alias
searchSTRING filters items to be extracted by searching them
sortSTRING sorts items in ascending (ASC) or descending (DESC) order
startINTEGER starts to extract items from this position
Return values
parameter description
data array containing information on the tracking pixels, the returned information depends on the fields parameter.

/conversions/settings

/conversions/settings/get

access: [READ]

This method returns global setting for conversions.

Example 1 (json)

Request

https://joturl.com/a/i1/conversions/settings/get

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "last_or_first_click": "last",
    "expiration_cookie": "30",
    "currency_id": "88dee24fd2bd783a4d48cf469c7b2b17"
  }
}
Return values
parameter description
currency_id ID of the currency to apply to conversions, see i1/currencies/list for details
expiration_cookie expiration period (in days) for conversion cookies
last_or_first_click the click is assigned to the first or last click

/conversions/settings/property

access: [READ]

This method returns default values and properties for conversion settings.

Example 1 (json)

Request

https://joturl.com/a/i1/conversions/settings/property

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "default_last_or_first_click": "last",
    "default_expiration_cookie": "30",
    "default_currency_id": "644a4b356f74446f62613864764b3762725a343966673d3d",
    "default_clickbank_secret_key": "",
    "expiration_cookie_days": [
      1,
      7,
      30,
      60,
      90
    ]
  }
}
Return values
parameter description
default_clickbank_secret_key default ClickBank secret key
default_currency_id default currency ID for the conversion, see i1/currencies/list for details
default_expiration_cookie default expiration (in days) for the conversion cookie
default_last_or_first_click default behavior for the click assignment
expiration_cookie_days list of allowed expiration days

/conversions/settings/set

access: [WRITE]

This method sets global setting for conversions.

Example 1 (json)

Request

https://joturl.com/a/i1/conversions/settings/set?last_or_first_click=last&expiration_cookie=30¤cy_id=a67e9590ad4c6e2223fbbbccf171fa0e&clickbank_secret_key=51D40E862650A3ED

Query parameters

 last_or_first_click = last
   expiration_cookie = 30
         currency_id = a67e9590ad4c6e2223fbbbccf171fa0e
clickbank_secret_key = 51D40E862650A3ED

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "updated": 1
  }
}
Required parameters
parameter description
clickbank_secret_keySTRING ClickBank secret key
currency_idID ID of the currency to apply to conversions, see i1/currencies/list for details
expiration_cookieINTEGER expiration period (in days) for conversion cookies, available values: 1, 7, 30, 60, 90
last_or_first_clickSTRING assign a conversion to the first or last click made by the user on the tracking link/pixel
Return values
parameter description
updated 1 on success, 0 otherwise

/ctas

/ctas/count

access: [READ]

This method returns the number of defined call to actions.

Example 1 (json)

Request

https://joturl.com/a/i1/ctas/count

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "count": 3
  }
}
Optional parameters
parameter description
searchSTRING filters CTAs to be extracted by searching them
typesSTRING comma-separated list of types to filter CTAs, for available types see i1/ctas/property
Return values
parameter description
count number of (filtered) CTAs

/ctas/delete

access: [WRITE]

This method deletes a set of CTAs by using their IDs.

Example 1 (json)

Request

https://joturl.com/a/i1/ctas/delete?ids=ff64cabb0fdcfab3b3b7721a1ddda932,c0738059600a0f2a75080e61f9d02c1e,95586fe2ef12bdd5c2a38add5b572ac0

Query parameters

ids = ff64cabb0fdcfab3b3b7721a1ddda932,c0738059600a0f2a75080e61f9d02c1e,95586fe2ef12bdd5c2a38add5b572ac0

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "deleted": 3
  }
}
Required parameters
parameter description
idsARRAY_OF_IDS comma separated list of CTA IDs to be deleted
Return values
parameter description
deleted number of deleted CTAs
ids [OPTIONAL] list of CTA IDs whose delete has failed, this parameter is returned only when at least one delete error has occurred

/ctas/download

access: [READ]

This method returns data that is collected for a specific CTA. Only data collected in the last 90 days can be returned.

Example 1 (json)

Request

https://joturl.com/a/i1/ctas/download?id=20c6932fe769e3ac4d60cf888e58299c

Query parameters

id = 20c6932fe769e3ac4d60cf888e58299c

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "headers": [
      "name",
      "age",
      "email"
    ],
    "lines": [
      [
        "John",
        "27",
        "john@example.com"
      ],
      [
        "Doo",
        "31",
        "doo@example.com"
      ]
    ],
    "extracted": 2,
    "skipped": 3,
    "count": 5,
    "next": ""
  }
}
Required parameters
parameter description
idID ID of the call to action
Optional parameters
parameter description
from_dateDATE date (inclusive) from which to start the export (default: 90 days before today)
lengthINTEGER number of items to return (default: 1000, max value: 1000)
return_jsonBOOLEAN if 1 this method returns a JSON data fields instead of headers and lines fields (default: 0)
sampleBOOLEAN 1 to return sample data, 0 otherwise (default: 0)
startINTEGER index of the starting item to retrieve (default: 0)
to_dateDATE date (inclusive) to finish the export (default: today)
Return values
parameter description
count maximum number of items
data [OPTIONAL] alternative to headers and lines, returned if return_json=1
extracted number of extracted items
headers [OPTIONAL] names of the corresponding information returned in lines, returned if return_json=0
lines [OPTIONAL] array containing information of the CTA data, returned if return_json=0
next URL to be called in order to fetch the next page of the list
skipped number of skipped items

/ctas/socialapps

/ctas/socialapps/add

access: [WRITE]

Add a new social app.

Example 1 (json)

Request

https://joturl.com/a/i1/ctas/socialapps/add?provider=facebook&name=my+custom+social+app&appid=99fba987a33e4da256b9098f2f74a94c&secret=f4f70b6b7341f1831750196dc9be5036

Query parameters

provider = facebook
    name = my custom social app
   appid = 99fba987a33e4da256b9098f2f74a94c
  secret = f4f70b6b7341f1831750196dc9be5036

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "provider": "facebook",
    "id": "d954fa8418743a9a60d0bab7c59bb7a0",
    "name": "my custom social app",
    "appid": "99fba987a33e4da256b9098f2f74a94c"
  }
}
Required parameters
parameter description max length
appidSTRING social app ID/Key/Client ID 255
nameSTRING name of the social app 255
providerSTRING name of the provider of the app, available providers: google, facebook, twitter, linkedin, amazon, microsoftgraph 50
secretSTRING social app secret 255
Return values
parameter description
appid social app ID/Key/Client ID
id ID of the social app
name name of the social app
provider name of the provider of the app, available providers: google, facebook, twitter, linkedin, amazon, microsoftgraph

/ctas/socialapps/count

access: [READ]

This method returns the number of defined social apps.

Example 1 (json)

Request

https://joturl.com/a/i1/ctas/socialapps/count

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "count": 5
  }
}
Optional parameters
parameter description max length
providerSTRING name of the provider of the app, available providers: google, facebook, twitter, linkedin, amazon, microsoftgraph 50
searchSTRING count items by searching them
Return values
parameter description
count number of social apps the user has access to (filtered by search if passed)

/ctas/socialapps/delete

access: [WRITE]

Delete a social app.

Example 1 (json)

Request

https://joturl.com/a/i1/ctas/socialapps/delete?ids=bdaa56525cdd1b68ac2b9a58e7669354,c43725ed4304dc1ad63fac25715057b4

Query parameters

ids = bdaa56525cdd1b68ac2b9a58e7669354,c43725ed4304dc1ad63fac25715057b4

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "deleted": 2
  }
}
Required parameters
parameter description
idsARRAY_OF_IDS comma separated list of social app IDs to be deleted
Optional parameters
parameter description
confirmBOOLEAN 1 to force the cancellation of social apps even if in use (default: 0)
Return values
parameter description
deleted number of deleted social apps
ids [OPTIONAL] list of social app IDs whose delete has failed, this parameter is returned only when at least one delete error has occurred

/ctas/socialapps/edit

access: [WRITE]

Edit a social app.

Example 1 (json)

Request

https://joturl.com/a/i1/ctas/socialapps/edit?provider=facebook&name=social+app+name&appid=7e79d2240890887eee874f660a8f21c6

Query parameters

provider = facebook
    name = social app name
   appid = 7e79d2240890887eee874f660a8f21c6

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "id": "880f8b55ef0aa9d386f1b3f43e582055",
    "provider": "facebook",
    "name": "social app name",
    "appid": "7e79d2240890887eee874f660a8f21c6"
  }
}
Required parameters
parameter description
idID ID of the social app
Optional parameters
parameter description max length
appidSTRING social app ID/Key/Client ID 255
nameSTRING name of the social app 255
providerSTRING name of the provider of the app, available providers: google, facebook, twitter, linkedin, amazon, microsoftgraph 50
secretSTRING social app secret 255
Return values
parameter description
appid social app ID/Key/Client ID
id ID of the social app
name name of the social app
provider name of the provider of the app, available providers: google, facebook, twitter, linkedin, amazon, microsoftgraph

/ctas/socialapps/info

access: [READ]

This method returns information on a social app.

Example 1 (json)

Request

https://joturl.com/a/i1/ctas/socialapps/info?id=50d4b7ea244e2817842ce42e8fb18ac8

Query parameters

id = 50d4b7ea244e2817842ce42e8fb18ac8

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "id": "50d4b7ea244e2817842ce42e8fb18ac8",
    "provider": "facebook",
    "name": "this is my app name",
    "appid": "d4f2313471d8c23b4238b29c15160b98"
  }
}
Required parameters
parameter description
idID ID of the social app
Return values
parameter description
appid social app ID/Key/Client ID
id ID of the social app
name name of the social app
provider name of the provider of the app, available providers: google, facebook, twitter, linkedin, amazon, microsoftgraph

/ctas/socialapps/list

access: [READ]

This method returns a list of social apps.

Example 1 (json)

Request

https://joturl.com/a/i1/ctas/socialapps/list

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "count": 1,
    "data": {
      "id": "c0ede36990dcad8c35c83cfa1ef3773f",
      "provider": "facebook",
      "name": "this is my app name",
      "appid": "309f3b887e862ef55c6585a6051e55b0"
    }
  }
}
Optional parameters
parameter description max length
lengthINTEGER extracts this number of items (maxmimum allowed: 100)
orderbyARRAY orders items by field, available fields: start, length, search, orderby, sort, provider, format, callback
providerSTRING filter social apps by provider, available providers: google, facebook, twitter, linkedin, amazon, microsoftgraph 50
searchSTRING filters items to be extracted by searching them
sortSTRING sorts items in ascending (ASC) or descending (DESC) order
startINTEGER starts to extract items from this position
Return values
parameter description
count total number of social apps
data array containing information on social apps the user has access to

/ctas/socialapps/property

access: [READ]

Returns the supported social app providers.

Example 1 (json)

Request

https://joturl.com/a/i1/ctas/socialapps/property

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "data": {
      "providers": [
        "amazon",
        "facebook",
        "google",
        "linkedin",
        "microsoftgraph",
        "twitter"
      ]
    }
  }
}
Return values
parameter description
data list of supported social apps

/ctas/urls

/ctas/urls/count

access: [READ]

This method returns the number of user's urls related to a call to action.

Example 1 (json)

Request

https://joturl.com/a/i1/ctas/urls/count

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "count": 2
  }
}
Required parameters
parameter description
cta_idID ID of the CTA
Optional parameters
parameter description
searchSTRING filters tracking pixels to be extracted by searching them
Return values
parameter description
count number of (filtered) tracking pixels

/ctas/urls/list

access: [READ]

This method returns a list of user's urls data related to a call to action.

Example 1 (json)

Request

https://joturl.com/a/i1/ctas/urls/list?id=a740037998d0cec73182677b66a44094&fields=count,id,url_url

Query parameters

    id = a740037998d0cec73182677b66a44094
fields = count,id,url_url

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "count": 1,
    "data": [
      {
        "id": "c17d3c4a132a2542a1eee096dc91d8b0",
        "url_url": "d2e898e5"
      }
    ]
  }
}
Required parameters
parameter description
cta_idID ID of the CTA
fieldsARRAY comma-separated list of fields to return, available fields: count, id, url_url, short_url, url_creation, url, has_preview, domain_extended_name, domain_id, project_name, project_is_default, project_id
Optional parameters
parameter description
lengthINTEGER extracts this number of tracking links (maxmimum allowed: 100)
orderbyARRAY orders tracking links by field, available fields: id, url_url, short_url, url_creation, url, has_preview, domain_extended_name, domain_id, project_name, project_is_default, project_id
searchSTRING filters tracking links to be extracted by searching them
sortSTRING sorts tracking links in ascending (ASC) or descending (DESC) order
startINTEGER starts to extract tracking links from this position
Return values
parameter description
count [OPTIONAL] total number of tracking links, returned only if count is passed in fields
data array containing information on the tracking links, the returned information depends on the fields parameter.

/ctas/webhooks

/ctas/webhooks/info

access: [READ]

This method return information on a webhook.

Example 1 (json)

Request

https://joturl.com/a/i1/ctas/webhooks/info?id=90c46bbf6da6158863cecc2287d8d7d4

Query parameters

id = 90c46bbf6da6158863cecc2287d8d7d4

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "id": "90c46bbf6da6158863cecc2287d8d7d4",
    "url": "https:\/\/my.custom.webhook\/",
    "type": "custom",
    "info": [],
    "notes": ""
  }
}
Required parameters
parameter description
idID ID of the CTA from which to remove the webhook
Return values
parameter description
id echo back of the id input parameter
info extended info of the webhook
notes notes for the webhook
type webhook type, see i1/ctas/webhooks/property for details
url URL of the webhook

/ctas/webhooks/property

access: [READ]

Return available webhook types and their parameters.

Example 1 (json)

Request

https://joturl.com/a/i1/ctas/webhooks/property?types=custom,zapier,mailerlite

Query parameters

types = custom,zapier,mailerlite

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "data": {
      "custom": {
        "name": "Custom webhook",
        "private": 0,
        "url_required": 1,
        "info": {
          "home": "https:\/\/joturl.zendesk.com\/hc\/en-us\/articles\/360012882199",
          "logo": "data:image\/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBkPSJtMjU2IDcuMzZjLTY1LjI1OSAwLTExOC40IDUzLjE0MS0xMTguNCAxMTguNCAwIDM4Ljk0MyAxOS4zMzMgNzMuMTIxIDQ4LjQ3IDk0LjcybC01OC40NiA5Ni41N2MtMC40NjItMC4xMzktMC45NzEtMC4yMzEtMS40OC0wLjM3LTEyLjIxLTMuMjg0LTI0LjkyOS0xLjQ4LTM1Ljg5IDQuODEtMjIuNjE2IDEzLjA4OS0zMC40MzIgNDIuMTM0LTE3LjM5IDY0Ljc1IDguNzQxIDE1LjE3IDI0LjY5NyAyMy42OCA0MS4wNyAyMy42OCA4LjA0NyAwIDE2LjIzNC0xLjk4OSAyMy42OC02LjI5IDEwLjk2MS02LjMzNiAxOC45MTYtMTYuNjUgMjIuMi0yOC44NnMxLjUyNi0yNC45MjktNC44MS0zNS44OWMtMS45ODktMy40MjItNC43MTgtNi40NzUtNy40LTkuMjVsNzAuNjctMTE2LjE4LTEwLjM2LTUuOTJjLTI3Ljg4OS0xNi40NjUtNDYuNjItNDYuOTQ0LTQ2LjYyLTgxLjc3IDAtNTIuNDQ4IDQyLjI3My05NC43MiA5NC43Mi05NC43MnM5NC43MiA0Mi4yNzIgOTQuNzIgOTQuNzJjMCA5Ljc1OS0xLjM0MSAxOC45MTYtNC4wNyAyNy43NWwyMi41NyA3LjAzYzMuNDIyLTExLjA1NCA1LjE4LTIyLjY2MiA1LjE4LTM0Ljc4IDAtNjUuMjU5LTUzLjE0MS0xMTguNC0xMTguNC0xMTguNHptMCA3MS4wNGMtMjYuMTMxIDAtNDcuMzYgMjEuMjI5LTQ3LjM2IDQ3LjM2czIxLjIyOSA0Ny4zNiA0Ny4zNiA0Ny4zNmMzLjkzMSAwIDcuODE2LTAuNTU1IDExLjQ3LTEuNDhsNTYuOTggMTAzLjIzIDUuNTUgMTAuMzYgMTAuNzMtNS41NWMxMy41NTEtNy40OTMgMjguOTA2LTExLjg0IDQ1LjUxLTExLjg0IDUyLjQ0OCAwIDk0LjcyIDQyLjI3MiA5NC43MiA5NC43MnMtNDIuMjczIDk0LjcyLTk0LjcyIDk0LjcyYy0yNS41NzYgMC00OC43OTQtMTAuMjIxLTY1Ljg2LTI2LjY0bC0xNi4yOCAxNy4wMmMyMS4yNzUgMjAuNDg5IDUwLjMyIDMzLjMgODIuMTQgMzMuMyA2NS4yNTkgMCAxMTguNC01My4xNDEgMTE4LjQtMTE4LjRzLTUzLjE0MS0xMTguNC0xMTguNC0xMTguNGMtMTYuNDE5IDAtMzEuNjM1IDQuMzAxLTQ1Ljg4IDEwLjM2bC01Mi4xNy05NC4zNWM5LjI1LTguNjQ5IDE1LjE3LTIwLjc2NiAxNS4xNy0zNC40MSAwLTI2LjEzMS0yMS4yMjktNDcuMzYtNDcuMzYtNDcuMzZ6bS0xNzAuOTQgMTY5LjA5Yy01MS41NjkgMTIuODU3LTg5LjU0IDU5LjcwOS04OS41NCAxMTUuMDcgMCA2NS4yNTkgNTMuMTQxIDExOC40IDExOC40IDExOC40IDYxLjA1IDAgMTA5Ljk0LTQ3LjEyOSAxMTYuMTgtMTA2LjU2aDExMC42M2M1LjI3MiAyMC4zOTYgMjMuNDk1IDM1LjUyIDQ1LjUxIDM1LjUyIDI2LjEzMSAwIDQ3LjM2LTIxLjIyOSA0Ny4zNi00Ny4zNnMtMjEuMjI5LTQ3LjM2LTQ3LjM2LTQ3LjM2Yy0yMi4wMTUgMC00MC4yMzggMTUuMTI0LTQ1LjUxIDM1LjUyaC0xMzIuMDl2MTEuODRjMCA1Mi40NDgtNDIuMjczIDk0LjcyLTk0LjcyIDk0Ljcycy05NC43Mi00Mi4yNzItOTQuNzItOTQuNzJjMC00NC40OTIgMzAuNjE4LTgxLjQ5MiA3MS43OC05MS43NnoiLz4KPC9zdmc+Cg=="
        },
        "parameters": [
          {
            "name": "fields",
            "type": "json",
            "maxlength": 2000,
            "description": "couples key\/values",
            "mandatory": 0,
            "example": "{\"source\":\"joturl\",\"test\":1}"
          }
        ]
      },
      "mailerlite": {
        "name": "MailerLite",
        "private": 0,
        "url_required": 0,
        "info": {
          "home": "https:\/\/www.mailerlite.com\/",
          "logo": "https:\/\/www.mailerlite.com\/assets\/logo-color.png"
        },
        "parameters": [
          {
            "name": "apikey",
            "type": "string",
            "maxlength": 500,
            "description": "MailerLite API key",
            "documentation": "https:\/\/help.mailerlite.com\/article\/show\/35040-where-can-i-find-the-api-key",
            "mandatory": 1,
            "example": "613d01b8670662bc638f4c9bed2cfdf4"
          },
          {
            "name": "group",
            "type": "string",
            "maxlength": 500,
            "description": "GroupID of the MailerLite group",
            "documentation": "https:\/\/app.mailerlite.com\/subscribe\/api",
            "mandatory": 1,
            "example": "985114017"
          },
          {
            "name": "fields",
            "type": "json",
            "maxlength": 2000,
            "description": "couples key\/values",
            "mandatory": 0,
            "example": "{\"source\":\"joturl\",\"test\":1}"
          }
        ]
      },
      "zapier": {
        "name": "Zapier",
        "private": 1,
        "url_required": 0,
        "info": {
          "home": "https:\/\/zapier.com\/",
          "logo": "https:\/\/cdn.zapier.com\/zapier\/images\/logos\/zapier-logo.png"
        },
        "parameters": []
      }
    }
  }
}
Optional parameters
parameter description
typesSTRING comma-separated list of webhook types to be returned, if empty all types are returned, available types: activecampaign, custom, drift, getresponse, hubspot, mailchimp, mailerlite, mailjet, mautic, moosend, sendinblue, zapier
Return values
parameter description
data array containing information on webhook parameters by type

/ctas/webhooks/subscribe

access: [WRITE]

This method add a webhook subscription to a CTA.

Example 1 (json)

Request

https://joturl.com/a/i1/ctas/webhooks/subscribe?id=e26b2544d77d53f78f78befe7f11b0b8&url=https%3A%2F%2Fjoturl.com%2F

Query parameters

 id = e26b2544d77d53f78f78befe7f11b0b8
url = https://joturl.com/

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "added": 1
  }
}
Required parameters
parameter description
idID ID of the CTA to which to add the webhook
typeSTRING webhook type, allowed types: activecampaign, custom, drift, getresponse, hubspot, mailchimp, mailerlite, mailjet, mautic, moosend, sendinblue, zapier
Optional parameters
parameter description max length
infoJSON info to be used with the webhook (e.g., an API key), see below for details
notesSTRING notes for the webhook 4000
unsubscribeBOOLEAN 1 to unsubscribe from the current webhook (if any) and subscribe to the new one
urlSTRING URL of the webhook, required for types: custom, zapier 4000
Return values
parameter description
added 1 on success, 0 otherwise

/ctas/webhooks/test

access: [WRITE]

This endpoint sends test data to a CTA webhook.

Example 1 (json)

Request

https://joturl.com/a/i1/ctas/webhooks/test?id=676e540271687344971e8130577dc6d6

Query parameters

id = 676e540271687344971e8130577dc6d6

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "ok": 1
  }
}
Required parameters
parameter description
idID ID of the CTA associated with the webhook
Return values
parameter description
ok 1 on success, otherwise an error is returned

/ctas/webhooks/unsubscribe

access: [WRITE]

This method removes a webhook subscription to a CTA.

Example 1 (json)

Request

https://joturl.com/a/i1/ctas/webhooks/unsubscribe?id=8915c3253d0bdef4e2d44da326644ca3

Query parameters

id = 8915c3253d0bdef4e2d44da326644ca3

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "removed": 1
  }
}
Required parameters
parameter description
idID ID of the CTA from which to remove the webhook
Return values
parameter description
removed 1 on success, 0 otherwise

/currencies

/currencies/info

access: [READ]

This method returns a list of available currencies.

Example 1 (json)

Request

https://joturl.com/a/i1/currencies/info?id=1abbbaabad50f1a8d77de11e3af3d1b6

Query parameters

id = 1abbbaabad50f1a8d77de11e3af3d1b6

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "data": [
      {
        "id": "1abbbaabad50f1a8d77de11e3af3d1b6",
        "code": "EUR",
        "sign": "€"
      }
    ]
  }
}
Required parameters
parameter description
idID ID of the currency
Return values
parameter description
data information on the specified currency

/currencies/list

access: [READ]

This method returns a list of available currencies.

Example 1 (json)

Request

https://joturl.com/a/i1/currencies/list

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "data": [
      {
        "id": "a9266bd59c50637c90450deb24b48edc",
        "code": "EUR",
        "sign": "€"
      },
      {
        "id": "64025b899db40dbdcbb0ce85535094ed",
        "code": "USD",
        "sign": "$"
      },
      {
        "id": "f39d1e6872eb93f3d8f0486a38b780b5",
        "code": "GBP",
        "sign": "£"
      }
    ]
  }
}
Return values
parameter description
data information on the specified currency

/domains

/domains/add

access: [WRITE]

Add a domain for the logged user.

Example 1 (json)

Request

https://joturl.com/a/i1/domains/add?id=1234567890abcdef&force_https=0&host=domain.ext&nickname=my+domain+nickname&redirect_url=https%3A%2F%2Fredirect.users.to%2F&favicon_url=https%3A%2F%2Fpath.to%2Ffav%2Ficon&deeplink_id=&domain_domains_deeplink_name=&input=name_of_the_form_field_that_contains_image_data

Query parameters

                          id = 1234567890abcdef
                 force_https = 0
                        host = domain.ext
                    nickname = my domain nickname
                redirect_url = https://redirect.users.to/
                 favicon_url = https://path.to/fav/icon
                 deeplink_id = 
domain_domains_deeplink_name = 
                       input = name_of_the_form_field_that_contains_image_data

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "id": "1234567890abcdef",
    "force_https": "0",
    "host": "domain.ext",
    "nickname": "my domain nickname",
    "redirect_url": "https:\/\/redirect.users.to\/",
    "favicon_url": "https:\/\/path.to\/fav\/icon",
    "logo": "data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",
    "deeplink_id": "",
    "domain_domains_deeplink_name": ""
  }
}
Required parameters
parameter description max length
hostSTRING domain to add (e.g., domain.ext) 850
Optional parameters
parameter description max length
deeplink_idID ID of the deep link configuration
favicon_urlSTRING the default favicon URL for the branded domain (to avoid securiy issues it must be HTTPS) 4000
forceBOOLEAN 1 to disable security checks, 0 otherwise. This parameter is ignored if force_https = 1
force_httpsBOOLEAN 1 to force HTTPS on HTTP requests, 0 otherwise (this flag takes effect only if a valid SSL certificate is associated with the domain)
inputSTRING name of the HTML form field that contains image data for the logo (max dimensions 120px x 50px, max size 150kB), see notes for details 255
nicknameSTRING the domain nickname 50
redirect_urlSTRING the default destination URL where to redirect when a user types the domain without any alias (or an invalid alias) 4000
robots_txtSTRING the robots.txt content to serve for the domain, when robots_txt = :NONE: requests to robots.txt will return a 404 error, if empty the following robots.txt will be served:
user-agent: *
disallow: /
4000

NOTES: The parameter input contains the name of the field of the HTML form that is used to send logo data to this method. Form must have enctype = "multipart/form-data" and method = "post".

<form 
    action="/a/i1/domains/add" 
    method="post" 
    enctype="multipart/form-data">

    <input name="input" value="logo" type="hidden"/>

    [other form fields]

    <input name="logo" type="file"/>    

</form>
Return values
parameter description
deeplink_id ID of the deep link configuration
deeplink_name NA
favicon_url default favicon URL
force_https 1 if the HTTPS is forced for the domain, 0 otherwise (this flag takes effect only if a valid SSL certificate is associated with the domain)
host the domain that was just added
id ID of the added domain
logo default logo for the domain (base64 encoded)
nickname the domain nickname
redirect_url default redirect URL
robots_txt the robots.txt content to serve for the domain

/domains/certificates

/domains/certificates/acmes

/domains/certificates/acmes/domains/cert

access: [WRITE]

This method creates or renews an SSL certificate for a domain.

Example 1 (json)

Request

https://joturl.com/a/i1/domains/certificates/acmes/domains/cert?domain_id=b2aa1c9e31b2446231313999d25da397

Query parameters

domain_id = b2aa1c9e31b2446231313999d25da397

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "created": 1,
    "private_key": "-----BEGIN PRIVATE KEY-----[BASE64-ENCODED INFO]-----END PRIVATE KEY-----",
    "csr": "-----BEGIN CERTIFICATE REQUEST-----[BASE64-ENCODED INFO]-----END CERTIFICATE REQUEST-----",
    "cert": "-----BEGIN CERTIFICATE-----[BASE64-ENCODED INFO]-----END CERTIFICATE-----",
    "cert_fingerprint": "9B5BDE73B0B3604B66688BB1092B0BB0DE2FD264",
    "cert_valid_from": "2025-01-19T18:31:31",
    "cert_valid_to": "2025-04-19T18:31:31",
    "intermediate": "-----BEGIN CERTIFICATE-----[BASE64-ENCODED INFO]-----END CERTIFICATE-----"
  }
}
Required parameters
parameter description
domain_idID ID of the domain for which the SSL certificate is asked
Return values
parameter description
cert domain SSL certificate (PEM format)
cert_fingerprint fingerprint of the SSL certificate
cert_valid_from SSL certificate is valid from this date
cert_valid_to SSL certificate is valid up to this date, usually the certificate expires 90 days after the cert_valid_from date; see <a href="https://letsencrypt.org/docs/faq/">the Let's Encrypt FAQ</a> for details
created 1 on success, 0 otherwise
csr certificate signing request (CSR) for the doamin (PEM format)
intermediate domain intermediate certificate(s) (PEM format)
private_key domain private key (PEM format)
/domains/certificates/acmes/domains/install

access: [WRITE]

This method installs an SSL certificate for a domain.

Example 1 (json)

Request

https://joturl.com/a/i1/domains/certificates/acmes/domains/install?domain_id=e7684cafce9129e02ab88450817a60d9

Query parameters

domain_id = e7684cafce9129e02ab88450817a60d9

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "installed": 1,
    "host": "jo.my",
    "cn": "jo.my",
    "certificate_domain_id": "6e666877484257716e798888484252472b645a4a49518d8d",
    "domains": "jo.my, www.jo.my",
    "fingerprint": "6A5ACE78B0B5604B66688AA5092B0BA0CE2FD265",
    "id": "69785a4b2f7676744c5a4759642f67524561584b58778d8d",
    "valid_from": "2018-01-23 14:58:37",
    "valid_to": "2018-04-23 14:58:37",
    "issuer": "JotUrl S.r.l."
  }
}
Required parameters
parameter description
domain_idID ID of the domain for which the SSL certificate has to be installed
Return values
parameter description
certificate_domain_id ID of the domain the certificate belongs to
cn common name of the certificate
domains comma separated list of domains covered by the certificate (e.g., "domain.ext, www.domain.ext")
fingerprint fingerprint of the certificate
host domain the certificate belongs to
id ID of the certificate
installed 1 on success, 0 otherwise
issuer the certificate issuer
valid_from the certificate is valid from this dat, can be in the future (e.g., 2018-05-30 13:38:04)
valid_to the certificate is valid up to this date, can be in the past (e.g., 2020-05-29 13:38:04)
/domains/certificates/acmes/domains/revoke

access: [WRITE]

This method revokes an SSL certificate for a domain.

Example 1 (json)

Request

https://joturl.com/a/i1/domains/certificates/acmes/domains/revoke?domain_id=edc71c457da72edc9af0817918d8170b

Query parameters

domain_id = edc71c457da72edc9af0817918d8170b

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "revoked": 1
  }
}
Required parameters
parameter description
domain_idID ID of the domain for which the SSL certificate should be revoked
Return values
parameter description
revoked 1 on success, 0 otherwise
/domains/certificates/acmes/domains/validate

access: [WRITE]

This method validates a domain. You have to validate a domain before creating an SSL certificate.

Example 1 (json)

Request

https://joturl.com/a/i1/domains/certificates/acmes/domains/validate?domain_id=7172e3448e95e9e15ec4ccaaaafafdde

Query parameters

domain_id = 7172e3448e95e9e15ec4ccaaaafafdde

Response

{
  "status": "pending"
}
Required parameters
parameter description
domain_idID ID of the domain to validate
Optional parameters
parameter description
include_www_subdomainBOOLEAN 1 if the WWW subdomain should be asked, 0 otherwise
Return values
parameter description
domains list of available domains in the certificate
status status of the validation request; call this method until a valid status is returned or a timeout of 30 seconds occurs. If the validation fails, you have to wait at least 30 minutes before retrying [unknown|pending|valid]
/domains/certificates/acmes/users/deactivate

access: [WRITE]

This method deactivates a user on the Let's Encrypt ACME server.

Example 1 (json)

Request

https://joturl.com/a/i1/domains/certificates/acmes/users/deactivate

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "deactivated": 0
  }
}
Return values
parameter description
deactivated 1 on success, 0 otherwise
/domains/certificates/acmes/users/generatekey

access: [WRITE]

This method generates an RSA key for the user, this key have to be used with all operations on the Let's Encrypt ACME server.

Example 1 (json)

Request

https://joturl.com/a/i1/domains/certificates/acmes/users/generatekey

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "generated": 1
  }
}
Return values
parameter description
generated 1 on success, 0 otherwise
/domains/certificates/acmes/users/register

access: [WRITE]

This method registers a user on the Let's Encrypt ACME server.

Example 1 (json)

Request

https://joturl.com/a/i1/domains/certificates/acmes/users/register

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "registered": 1
  }
}
Optional parameters
parameter description
agreementSTRING links to the Let's Encrypt agreement. Registration on Let's Encrypt ACME server requires two steps; in the first one you have to call this method without parameters, it will return an agreement link and the security parameter nonce, that the user must explicitely approve the agreement; in the second step, you have to call this method with parameters agreement and nonce set to the values returned by the previous call
forceBOOLEAN 1 if the registration process have to be forced (overwriting old values), 0 otherwise
nonceID a random security string to be used during the registration process
Return values
parameter description
agreement [OPTIONAL] returned only if agreement is needed (agreement is only in English)
nonce [OPTIONAL] returned only if agreement is needed
registered 1 on success, 0 otherwise

/domains/certificates/add

access: [WRITE]

This method allows to upload a certificate for a specific domain.

Example 1 (json)

Request

https://joturl.com/a/i1/domains/certificates/add?domain_id=6e666877484257716e798888484252472b645a4a49518d8d&cert_files_type=pfx&input_pfx_archive=%5Bpfx_file%5D

Query parameters

        domain_id = 6e666877484257716e798888484252472b645a4a49518d8d
  cert_files_type = pfx
input_pfx_archive = [pfx_file]

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "host": "jo.my",
    "id": "69785a4b2f7676744c5a4759642f67524561584b58778d8d",
    "fingerprint": "6A5ACE78B0B5604B66688AA5092B0BA0CE2FD265",
    "valid_from": "2018-01-23 14:58:37",
    "valid_to": "2018-04-23 14:58:37",
    "cn": "jo.my",
    "domains": "jo.my, www.jo.my"
  }
}
Required parameters
parameter description
cert_files_typeSTRING this parameter must be pfx or cert_files, according to the certificate files
domain_idID ID of the domain the certificate belongs to
Optional parameters
parameter description
input_ca_certificate1STRING name of the HTML form field that is used to transfer the ca certificate #1 data, see notes for details
input_ca_certificate2STRING name of the HTML form field that is used to transfer the ca certificate #2 data, see notes for details
input_ca_certificate3STRING name of the HTML form field that is used to transfer the ca certificate #2 data, see notes for details
input_certificateSTRING name of the HTML form field that is used to transfer the certificate data, mandatory if cert_files_type = cert_files , see notes for details
input_pfx_archiveSTRING name of the HTML form field that is used to transfer the PFX data, mandatory if cert_files_type = pfx , see notes for details
input_private_keySTRING name of the HTML form field that is used to transfer the private key data, mandatory if cert_files_type = cert_files , see notes for details
pfx_passwordHTML password of the PFX archive, mandatory if cert_files_type = pfx and the PFX archive is protected by a password

NOTES: Parameters starting with input_ are the names of the field of the HTML form used to send data to this method. Form must have enctype = "multipart/form-data" and method = "post".

<form 
    action="/a/i1/domains/certificates/add" 
    method="post" 
    enctype="multipart/form-data">

    <input name="input_pfx_archive" value="pfx_file" type="hidden"/>
    <input name="input_private_key" value="private_key_file" type="hidden"/>
    <input name="input_certificate" value="certificate_file" type="hidden"/>

    <input name="input_ca_certificate1" value="certificate1_file" type="hidden"/>
    <input name="input_ca_certificate2" value="certificate2_file" type="hidden"/>
    <input name="input_ca_certificate3" value="certificate3_file" type="hidden"/>

    [other form fields]

    <input name="pfx_file" type="file"/>
    <input name="private_key_file" type="file"/>    
    <input name="certificate_file" type="file"/> 

    <input name="certificate1_file" type="file"/>
    <input name="certificate2_file" type="file"/>    
    <input name="certificate3_file" type="file"/>     

</form>
Return values
parameter description
cn common name of the certificate
domain_id ID of the domain the certificate belongs to
domains comma separated list of domains covered by the certificate (e.g., "domain.ext, www.domain.ext")
fingerprint fingerprint of the certificate
host domain the certificate belongs to
id ID of the certificate
valid_from the certificate is valid from this dat, can be in the future (e.g., 2018-05-30 13:38:04)
valid_to the certificate is valid up to this date, can be in the past (e.g., 2020-05-29 13:38:04)

/domains/certificates/count

access: [READ]

This method returns number of certificates associated to a specific domain.

Example 1 (json)

Request

https://joturl.com/a/i1/domains/certificates/count

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "count": 3
  }
}
Optional parameters
parameter description
domain_idID filters certificates for this domain ID
searchSTRING count items by searching them
Return values
parameter description
count number of (filtered) certificates

/domains/certificates/csr

/domains/certificates/csr/create

access: [WRITE]

This method allows to create a Certificate Signing Request (CSR).

Example 1 (json)

Request

https://joturl.com/a/i1/domains/certificates/csr/create?commonName=domain.ext&organizationName=My+Company&organizationalUnitName=accounting&localityName=Los+Angeles&stateOrProvinceName=California&countryName=US

Query parameters

            commonName = domain.ext
      organizationName = My Company
organizationalUnitName = accounting
          localityName = Los Angeles
   stateOrProvinceName = California
           countryName = US

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "private_key": "-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDb8gTFlUVgqoPq
0\/vm\/oUo0k9wW2vBpUp3chITNgjMXki05yGMNYCJR7uHCfd0XzVWOi4D7DJMIMml
HMOCVgjnei8FgniH82QCCh7LxHEAscCts32XWjQ9d4datLOrMGwDopj7W62vE+rh
nZNOCM2+NeKvZxN0ZUXTRn2Ed\/CT6tGDUuCsXIBoRwz8p47phewY4ge3xWmoaykE
PP2yVpd1oe5dlliGPT9kY3WuQYHiZ+TakmcC\/TyDZT2J8Q+w5SEMVylehHNd\/8b5
l3f7NhIW50eIZsmY0xgfpV1wsHUp\/oRvyNgRog+B6CnmRuAb96zmXf8HrmnzKQEV
TqdTl05\/AgMBAAECggEBAIF2g7iJlLzBocSn4q6lQlw07u2D4nmpgZutWVZVh\/hD
xyg0pFqTY4Vq48co5q9pG0wWEt\/cN\/73jbnSpIIjgjo+gU8M7UWYzlUk\/9uRVbLC
7ldQP6zHO9iycsnBc8BgUDQTkVjjLejQIIGM7xgPtosvzK7STXFF60PhSiCfOMzX
ZAJguRmHXWeXHhRLNdXknKrPdRwRz6ra8+K0DHwVjTvqHugO2QYZIZQ7fxaf+RGL
AGjkfMdErAHGK2k\/3KZKipXqMCrGgCNn1X4sonfQH1Bjx9PyTL+VD6OAeMUw1HDZ
sGo6MI4oH7GsIf0LkDXPqI0NjwYO93PR7qTzpAcqBwECgYEA7fPrDzrh8V01xEOm
YPhI5RZiXgQ7l2BR1zFOzlxhNbrJZrheX6pgP9otPk4DTDtHJP4DGkC1D3x62b3Q
4sbPq4qDPp3pdlyNNXNbOSjPtFTxKrZB5e8ShVIj9ZfVBgJ1j3N2u97ru1tRGD3y
tbfUo4bIGXgJDDmBSerwi9vw5LcCgYEA7KB4F\/wlkZk2aNHKATu1GZhYKhpGUbhC
vPmiKlgsvvI5FPTeWVf5MO5b41+ctjoN1iIubRDYc+mYcAMNV6oCcmzFwTP6lYVF
K6hpQu7x8hZ1yuehpW3azhm98\/eV7bW48SMcvHl6CGEffGnpQrJ\/ou52mYMhS3Ga
UglUmQGybHkCgYEAm5OsL1P\/YBDiU4UrpiEPgADnpbK8x5dpSvppHRFXWYrbnXaT
9ZZuwbDDfgYBr\/jd5jjSDHscJpjrtauehHcaVn0EnI8gkoumo7jdfvzI+I3E9Hkf
kteB03tGGZAA7qHy\/SywB9uTYvcsiV4Pb3JW6+f2snhB6iU6+\/pI9hiCYvcCgYBf
9V9eUqmllt1iupjR0TXK8GXohQk5QKEH47AoveM\/eBk\/72FwF+X9OtxWo8J4f6h2
yxvKrQcqUnO4EPTLNS2S25uCkyKumgIIB17Qfvfs9cDFDRQXcypFZFkM472QTZ53
Y4bWw+iCF2jeWlD29E4gc9XywSOyZZpwZEpDVlXV+QKBgAqhOA5YI3WpVJga\/hpw
qGoJ8bl5gab0U\/1u9sXdbMKqeyyaFjXo\/RaLdSOG9y4UFJP\/2JMeTh1FRCWaN7rK
6xTT2rrdExqjIXZTtXXFqo9A6wYQ3EWxVBWfmyG7JY08Lwuoc\/zK1OZfUZmOLV+3
yZDE4U3\/Zkgx7gSM\/Ffxw\/62
-----END PRIVATE KEY-----
"
, "csr": "-----BEGIN CERTIFICATE REQUEST-----
MIICvDCCAaQCAQAwdzELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWEx
FDASBgNVBAcMC0xvcyBBbmdlbGVzMRMwEQYDVQQKDApNeSBDb21wYW55MRMwEQYD
VQQLDAphY2NvdW50aW5nMRMwEQYDVQQDDApkb21haW4uZXh0MIIBIjANBgkqhkiG
9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2\/IExZVFYKqD6tP75v6FKNJPcFtrwaVKd3IS
EzYIzF5ItOchjDWAiUe7hwn3dF81VjouA+wyTCDJpRzDglYI53ovBYJ4h\/NkAgoe
y8RxALHArbN9l1o0PXeHWrSzqzBsA6KY+1utrxPq4Z2TTgjNvjXir2cTdGVF00Z9
hHfwk+rRg1LgrFyAaEcM\/KeO6YXsGOIHt8VpqGspBDz9slaXdaHuXZZYhj0\/ZGN1
rkGB4mfk2pJnAv08g2U9ifEPsOUhDFcpXoRzXf\/G+Zd3+zYSFudHiGbJmNMYH6Vd
cLB1Kf6Eb8jYEaIPgegp5kbgG\/es5l3\/B65p8ykBFU6nU5dOfwIDAQABoAAwDQYJ
KoZIhvcNAQELBQADggEBACTnkScHIA5aZ4vgrIFsrETfT5\/Qa+kCFzsVDpEaJOuc
2GujOYydNTwFpsQCcVdW\/LR1mbsiS2CVTMTP+VrppiC\/XIJ0btlXeRNzLZdQ9UaX
xBgj46J79oYxXkIpnskcms3SsrKGnK\/Q1bnus0jpvTlji9DnZglQt9QvzePF15As
QCERgitEUTRKzxvYjozq\/LChtBbNsg5R3uXZyAVGSgn3X+ZF4P4FCd1cEfLfnHq7
XM9eWSo8pWz0VPd9rF4D9kbZ4A9gGHGoZ+abghqFULmJ3iLcQkp+NkmMTncsCvW9
S+WspMDNbVzLxWeBZQ5gMHDgSBdBLFlnHhCT0kYes+s=
-----END CERTIFICATE REQUEST-----
"
} }
Required parameters
parameter description
commonNameSTRING the Fully Qualified Domain Name (FQDN) for which you are requesting the SSL Certificate, it must contain domain you are requesting a certifacate for (e.g., domain.ext, *.domain.ext)
countryNameSTRING 2-digit code of the country (ISO Alpha-2) the company is based on (e.g., US)
localityNameSTRING the full name of the locality the company is based on (e.g., Los Angeles)
organizationNameSTRING the full legal company or personal name, as legally registered, that is requesting the certificate (e.g., My Company)
organizationalUnitNameSTRING whichever branch of the company is ordering the certificate (e.g., accounting, marketing)
stateOrProvinceNameSTRING the full name of the state or province the company is based on (e.g., California)
Return values
parameter description
csr Certificate request (CSR)
private_key Private key

/domains/certificates/delete

access: [WRITE]

This method deletes a certificate.

Example 1 (json)

Request

https://joturl.com/a/i1/domains/certificates/delete?id=3000

Query parameters

id = 3000

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "deleted": 1
  }
}
Required parameters
parameter description
idID ID of the certificate to delete
Return values
parameter description
deleted 1 if the delete successes, 0 otherwise

/domains/certificates/info

access: [READ]

This method returns information about a certificate. Required information can be passed by using fields.

Example 1 (json)

Request

https://joturl.com/a/i1/domains/certificates/info?id=6e666877484257716e798888484252472b645a4a49518d8d&fields=deeplink_id,host,for_trials,force_https,domain_domain_id,aliases,nickname,logo,redirect_url,favicon_url,robots_txt,cn,domain_id,domains,fingerprint,id,valid_from,valid_to,deeplink_name,installed

Query parameters

    id = 6e666877484257716e798888484252472b645a4a49518d8d
fields = deeplink_id,host,for_trials,force_https,domain_domain_id,aliases,nickname,logo,redirect_url,favicon_url,robots_txt,cn,domain_id,domains,fingerprint,id,valid_from,valid_to,deeplink_name,installed

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "host": "jo.my",
    "cn": "jo.my",
    "domain_id": "6e666877484257716e798888484252472b645a4a49518d8d",
    "domains": "jo.my, www.jo.my",
    "fingerprint": "6A5ACE78B0B5604B66688AA5092B0BA0CE2FD265",
    "id": "69785a4b2f7676744c5a4759642f67524561584b58778d8d",
    "valid_from": "2018-01-23 14:58:37",
    "valid_to": "2018-04-23 14:58:37",
    "installed": 0
  }
}
Required parameters
parameter description
fieldsARRAY comma separated list of fields to return, available fields: deeplink_id, host, for_trials, force_https, domain_domain_id, aliases, nickname, logo, redirect_url, favicon_url, robots_txt, cn, domain_id, domains, fingerprint, id, valid_from, valid_to, deeplink_name, installed
idID ID of the certificate
Return values
parameter description
cn common name of the certificate
domain_id ID of the domain the certificate belongs to
domains comma separated list of domains covered by the certificate (e.g., "domain.ext, www.domain.ext")
fingerprint fingerprint of the certificate
host domain the certificate belongs to
id ID of the certificate
installed propagation percentage of the certificate installation (e.g. 12.34%, 100%)
valid_from the certificate is valid from this dat, can be in the future (e.g., 2018-05-30 13:38:04)
valid_to the certificate is valid up to this date, can be in the past (e.g., 2020-05-29 13:38:04)

/domains/certificates/list

access: [READ]

This method returns the certificates associated to the logged users.

Example 1 (json)

Request

https://joturl.com/a/i1/domains/certificates/list?fields=deeplink_id,host,for_trials,force_https,domain_domain_id,aliases,nickname,logo,redirect_url,favicon_url,robots_txt,cn,domain_id,domains,fingerprint,id,valid_from,valid_to,deeplink_name,installed,count,issuer

Query parameters

fields = deeplink_id,host,for_trials,force_https,domain_domain_id,aliases,nickname,logo,redirect_url,favicon_url,robots_txt,cn,domain_id,domains,fingerprint,id,valid_from,valid_to,deeplink_name,installed,count,issuer

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "count": 2,
    "data": [
      {
        "host": "jo.my",
        "cn": "jo.my",
        "domain_id": "6e666877484257716e798888484252472b645a4a49518d8d",
        "domains": "jo.my, www.jo.my",
        "fingerprint": "6A5ACE78B0B5604B66688AA5092B0BA0CE2FD265",
        "id": "69785a4b2f7676744c5a4759642f67524561584b58778d8d",
        "valid_from": "2018-01-23 14:58:37",
        "valid_to": "2018-04-23 14:58:37",
        "issuer": "JotUrl S.r.l.",
        "installed": 0
      },
      {
        "host": "joturl.com",
        "cn": "*.joturl.com",
        "domain_id": "544a5451745446616542676449497450686f425446414d4d",
        "domains": "*.joturl.com, joturl.com",
        "fingerprint": "51D012A79F7B9FAB1DE55015CDE19E448CBD7EDB",
        "id": "54576e66564a74412b70596c577175424968715464414d4d",
        "valid_from": "2017-04-06 00:00:00",
        "valid_to": "2028-04-20 23:59:59",
        "issuer": "JotUrl S.r.l.",
        "installed": 100
      }
    ]
  }
}
Required parameters
parameter description
fieldsARRAY comma separated list of fields to return, available fields: deeplink_id, host, for_trials, force_https, domain_domain_id, aliases, nickname, logo, redirect_url, favicon_url, robots_txt, cn, domain_id, domains, fingerprint, id, valid_from, valid_to, deeplink_name, installed, count, issuer
Optional parameters
parameter description
domain_idID filters certificates for this domain ID
lengthINTEGER extracts this number of items (maxmimum allowed: 100)
orderbyARRAY orders items by field, available fields: deeplink_id, host, for_trials, force_https, domain_domain_id, aliases, nickname, logo, redirect_url, favicon_url, robots_txt, cn, domain_id, domains, fingerprint, id, valid_from, valid_to, deeplink_name, installed, count, issuer
searchSTRING filters items to be extracted by searching them
sortSTRING sorts items in ascending (ASC) or descending (DESC) order
startINTEGER starts to extract items from this position
Return values
parameter description
count [OPTIONAL] total number of (filtered) certificates, returned only if count is passed in fields
data array containing required information on certificates

/domains/count

access: [READ]

This method returns the number of user's domains.

Example 1 (json)

Request

https://joturl.com/a/i1/domains/count

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "count": 5
  }
}
Optional parameters
parameter description
is_defaultBOOLEAN if 1 this method counts only the default domain
is_ownerBOOLEAN if 1 this method counts only domains owned by the logged user, if 0 it returns only shared domains
searchSTRING count items by searching them
Return values
parameter description
count number of domains the user has access to (filtered by search if passed)

access: [WRITE]

Add a deep link configuration for the logged user.

Example 1 (json)

Request

https://joturl.com/a/i1/domains/deeplinks/add?name=deep+configuration+domain_name&android=%5B%0A++++%7B%0A++++++++%22relation%22%3A+%5B%0A++++++++++++%22delegate_permission%2Fcommon.handle_all_urls%22%0A++++++++%5D,%0A++++++++%22target%22%3A+%7B%0A++++++++++++%22namespace%22%3A+%22android_app%22,%0A++++++++++++%22package_name%22%3A+%22com.example.app%22,%0A++++++++++++%22sha256_cert_fingerprints%22%3A+%5B%0A++++++++++++++++%22hash_of_app_certificate%22%0A++++++++++++%5D%0A++++++++%7D%0A++++%7D%0A%5D&ios=%7B%0A++++%22applinks%22%3A+%7B%0A++++++++%22apps%22%3A+%5B%5D,%0A++++++++%22details%22%3A+%5B%0A++++++++++++%7B%0A++++++++++++++++%22appID%22%3A+%22D3KQX62K1A.com.example.photoapp%22,%0A++++++++++++++++%22paths%22%3A+%5B%0A++++++++++++++++++++%22%2Falbums%22%0A++++++++++++++++%5D%0A++++++++++++%7D,%0A++++++++++++%7B%0A++++++++++++++++%22appID%22%3A+%22D3KQX62K1A.com.example.videoapp%22,%0A++++++++++++++++%22paths%22%3A+%5B%0A++++++++++++++++++++%22%2Fvideos%22%0A++++++++++++++++%5D%0A++++++++++++%7D%0A++++++++%5D%0A++++%7D%0A%7D

Query parameters

   name = deep configuration domain_name
android = [
    {
        "relation": [
            "delegate_permission/common.handle_all_urls"
        ],
        "target": {
            "namespace": "android_app",
            "package_name": "com.example.app",
            "sha256_cert_fingerprints": [
                "hash_of_app_certificate"
            ]
        }
    }
]
    ios = {
    "applinks": {
        "apps": [],
        "details": [
            {
                "appID": "D3KQX62K1A.com.example.photoapp",
                "paths": [
                    "/albums"
                ]
            },
            {
                "appID": "D3KQX62K1A.com.example.videoapp",
                "paths": [
                    "/videos"
                ]
            }
        ]
    }
}

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "id": "1234567890abcdef",
    "name": "deep configuration domain_name",
    "android": "[
{
\"relation\": [
\"delegate_permission\/common.handle_all_urls\"
],
\"target\": {
\"namespace\": \"android_app\",
\"package_name\": \"com.example.app\",
\"sha256_cert_fingerprints\": [
\"hash_of_app_certificate\"
]
}
}
]"
, "ios": "{
\"applinks\": {
\"apps\": [],
\"details\": [
{
\"appID\": \"D3KQX62K1A.com.example.photoapp\",
\"paths\": [
\"\/albums\"
]
},
{
\"appID\": \"D3KQX62K1A.com.example.videoapp\",
\"paths\": [
\"\/videos\"
]
}
]
}
}"
} }
Required parameters
parameter description
nameSTRING domain_name of the deep link configuration
Optional parameters
parameter description max length
androidSTRING JSON configuration for Android (assetlinks.json) 4000
iosSTRING JSON configuration for iOS (apple-app-site-association) 4000
Return values
parameter description
android JSON configuration for Android (assetlinks.json)
id ID of the deep link configuration
ios JSON configuration for iOS (apple-app-site-association)
name domain_name of the deep link configuration

access: [READ]

This method returns the number of user's deep link configurations.

Example 1 (json)

Request

https://joturl.com/a/i1/domains/deeplinks/count

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "count": 5
  }
}
Optional parameters
parameter description
searchSTRING count items by searching them
Return values
parameter description
count number of deep link configurations the user has access to (filtered by search if passed)

access: [WRITE]

Delete a deep link configuration for the user logged in.

Example 1 (json)

Request

https://joturl.com/a/i1/domains/deeplinks/delete?ids=10,200,3000

Query parameters

ids = 10,200,3000

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "deleted": 3
  }
}
Required parameters
parameter description
idsARRAY_OF_IDS comma separated list of domain IDs to be deleted
Return values
parameter description
deleted number of deleted domains
ids [OPTIONAL] list of domain IDs whose delete has failed, this parameter is returned only when at least one delete error has occurred

access: [WRITE]

Edit a deep link configuration for the logged user.

Example 1 (json)

Request

https://joturl.com/a/i1/domains/deeplinks/edit?name=deep+configuration+domain_name&android=%5B%0A++++%7B%0A++++++++%22relation%22%3A+%5B%0A++++++++++++%22delegate_permission%2Fcommon.handle_all_urls%22%0A++++++++%5D,%0A++++++++%22target%22%3A+%7B%0A++++++++++++%22namespace%22%3A+%22android_app%22,%0A++++++++++++%22package_name%22%3A+%22com.example.app%22,%0A++++++++++++%22sha256_cert_fingerprints%22%3A+%5B%0A++++++++++++++++%22hash_of_app_certificate%22%0A++++++++++++%5D%0A++++++++%7D%0A++++%7D%0A%5D&ios=%7B%0A++++%22applinks%22%3A+%7B%0A++++++++%22apps%22%3A+%5B%5D,%0A++++++++%22details%22%3A+%5B%0A++++++++++++%7B%0A++++++++++++++++%22appID%22%3A+%22D3KQX62K1A.com.example.photoapp%22,%0A++++++++++++++++%22paths%22%3A+%5B%0A++++++++++++++++++++%22%2Falbums%22%0A++++++++++++++++%5D%0A++++++++++++%7D,%0A++++++++++++%7B%0A++++++++++++++++%22appID%22%3A+%22D3KQX62K1A.com.example.videoapp%22,%0A++++++++++++++++%22paths%22%3A+%5B%0A++++++++++++++++++++%22%2Fvideos%22%0A++++++++++++++++%5D%0A++++++++++++%7D%0A++++++++%5D%0A++++%7D%0A%7D

Query parameters

   name = deep configuration domain_name
android = [
    {
        "relation": [
            "delegate_permission/common.handle_all_urls"
        ],
        "target": {
            "namespace": "android_app",
            "package_name": "com.example.app",
            "sha256_cert_fingerprints": [
                "hash_of_app_certificate"
            ]
        }
    }
]
    ios = {
    "applinks": {
        "apps": [],
        "details": [
            {
                "appID": "D3KQX62K1A.com.example.photoapp",
                "paths": [
                    "/albums"
                ]
            },
            {
                "appID": "D3KQX62K1A.com.example.videoapp",
                "paths": [
                    "/videos"
                ]
            }
        ]
    }
}

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "id": "1234567890abcdef",
    "name": "deep configuration domain_name",
    "android": "[
{
\"relation\": [
\"delegate_permission\/common.handle_all_urls\"
],
\"target\": {
\"namespace\": \"android_app\",
\"package_name\": \"com.example.app\",
\"sha256_cert_fingerprints\": [
\"hash_of_app_certificate\"
]
}
}
]"
, "ios": "{
\"applinks\": {
\"apps\": [],
\"details\": [
{
\"appID\": \"D3KQX62K1A.com.example.photoapp\",
\"paths\": [
\"\/albums\"
]
},
{
\"appID\": \"D3KQX62K1A.com.example.videoapp\",
\"paths\": [
\"\/videos\"
]
}
]
}
}"
} }
Required parameters
parameter description
idID ID of the deep link configuration
Optional parameters
parameter description max length
androidSTRING JSON configuration for Android (assetlinks.json) 4000
iosSTRING JSON configuration for iOS (apple-app-site-association) 4000
nameSTRING domain_name of the deep link configuration
Return values
parameter description
android JSON configuration for Android (assetlinks.json)
id ID of the deep link configuration
ios JSON configuration for iOS (apple-app-site-association)
name domain_name of the deep link configuration

access: [READ]

This method returns information on a deep link configuration.

Example 1 (json)

Request

https://joturl.com/a/i1/domains/deeplinks/info?id=1234567890abcdef

Query parameters

id = 1234567890abcdef

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "id": "1234567890abcdef",
    "name": "this is my domain_name",
    "android": "[
{
\"relation\": [
\"delegate_permission\/common.handle_all_urls\"
],
\"target\": {
\"namespace\": \"android_app\",
\"package_name\": \"com.example.app\",
\"sha256_cert_fingerprints\": [
\"hash_of_app_certificate\"
]
}
}
]"
, "ios": "{
\"applinks\": {
\"apps\": [],
\"details\": [
{
\"appID\": \"D3KQX62K1A.com.example.photoapp\",
\"paths\": [
\"\/albums\"
]
},
{
\"appID\": \"D3KQX62K1A.com.example.videoapp\",
\"paths\": [
\"\/videos\"
]
}
]
}
}"
} }
Required parameters
parameter description
idID ID of the deep link configuration
Return values
parameter description
android JSON configuration for Android (assetlinks.json)
id ID of the deep link configuration
ios JSON configuration for iOS (apple-app-site-association)
name domain_name of the deep link configuration

access: [READ]

This method returns a list of deeplink configurations.

Example 1 (json)

Request

https://joturl.com/a/i1/domains/deeplinks/list

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "count": 1,
    "data": {
      "id": "1234567890abcdef",
      "name": "this is my domain_name",
      "android": "[{\"relation\":[\"delegate_permission\/common.handle_all_urls\"],\"target\":{\"namespace\":\"android_app\",\"package_name\":\"com.example.app\",\"sha256_cert_fingerprints\":[\"hash_of_app_certificate\"]}}]",
      "ios": "{\"applinks\":{\"apps\":[],\"details\":[{\"appID\":\"D3KQX62K1A.com.example.photoapp\",\"paths\":[\"\/albums\"]},{\"appID\":\"D3KQX62K1A.com.example.videoapp\",\"paths\":[\"\/videos\"]}]}}"
    },
    "android": "",
    "ios": ""
  }
}
Optional parameters
parameter description
lengthINTEGER extracts this number of items (maxmimum allowed: 100)
orderbyARRAY orders items by field, available fields: start, length, search, orderby, sort, format, callback
searchSTRING filters items to be extracted by searching them
sortSTRING sorts items in ascending (ASC) or descending (DESC) order
startINTEGER starts to extract items from this position
Return values
parameter description
count total number of deep link configurations
data array containing information on deep link configurations the user has access to

/domains/delete

access: [WRITE]

Delete a domain for the user logged in.

Example 1 (json)

Request

https://joturl.com/a/i1/domains/delete?ids=6512bd43d9caa6e02c990b0a82652dca,757b505cfd34c64c85ca5b5690ee5293,908c9a564a86426585b29f5335b619bc

Query parameters

ids = 6512bd43d9caa6e02c990b0a82652dca,757b505cfd34c64c85ca5b5690ee5293,908c9a564a86426585b29f5335b619bc

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "deleted": 3
  }
}
Required parameters
parameter description
idsARRAY_OF_IDS comma separated list of domain IDs to be deleted, max number of IDs in the list: 100
Return values
parameter description
deleted number of deleted domains
ids [OPTIONAL] list of domain IDs whose delete has failed, this parameter is returned only when at least one delete error has occurred

/domains/edit

access: [WRITE]

Edit a domain for logged user.

Example 1 (json)

Request

https://joturl.com/a/i1/domains/edit?id=1234567890abcdef&force_https=0&host=domain.ext&nickname=my+domain+nickname&redirect_url=https%3A%2F%2Fredirect.users.to%2F&deeplink_id=&domain_domains_deeplink_name=&input=name_of_the_form_field_that_contains_image_data

Query parameters

                          id = 1234567890abcdef
                 force_https = 0
                        host = domain.ext
                    nickname = my domain nickname
                redirect_url = https://redirect.users.to/
                 deeplink_id = 
domain_domains_deeplink_name = 
                       input = name_of_the_form_field_that_contains_image_data

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "id": "1234567890abcdef",
    "force_https": "0",
    "host": "domain.ext",
    "nickname": "my domain nickname",
    "redirect_url": "https:\/\/redirect.users.to\/",
    "logo": "data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",
    "deeplink_id": "",
    "domain_domains_deeplink_name": ""
  }
}
Required parameters
parameter description
idID ID of the domain to edit
Optional parameters
parameter description max length
confirm_host_changeBOOLEAN must be 1 if host is passed to confirm the intention to change the domain, its value is ignored if host is not passed
deeplink_idID ID of the deep link configuration
favicon_urlSTRING the default favicon URL for the branded domain (to avoid securiy issues it must be HTTPS) 4000
forceBOOLEAN 1 to disable security checks, 0 otherwise. This parameter is ignored if host is not passed
force_httpsBOOLEAN 1 to force HTTPS on HTTP requests, 0 otherwise (this flag takes effect only if a valid SSL certificate is associated with the domain)
hostSTRING the new domain (e.g., new.domain.ext), changing the domain impacts all tracking links to which it is associated, tracking links with the old domain will stop working; additionally, the change may take up to 24 hours before it actually takes effect and any SSL certificates associated with the old domain will be invalidated 850
inputSTRING name of the HTML form field that contains image data for the logo (max dimensions 120px x 50px, max size 150kB), see notes for details
nicknameSTRING the domain nickname 50
redirect_urlSTRING the default destination URL where to redirect when a user types the domain without any alias (or an invalid alias) 4000
robots_txtSTRING the robots.txt content to serve for the domain, when robots_txt = :NONE: requests to robots.txt will return a 404 error, if empty the following robots.txt will be served:
user-agent: *
disallow: /
4000

NOTES: The parameter input contains the name of the field of the HTML form that is used to send logo data to this method. Form must have enctype = "multipart/form-data" and method = "post".

<form 
    action="/a/i1/domains/edit" 
    method="post" 
    enctype="multipart/form-data">

    <input name="input" value="logo" type="hidden"/>

    [other form fields]

    <input name="logo" type="file"/>    

</form>
Return values
parameter description
deeplink_id ID of the deep link configuration
deeplink_name name of the associated deep link configuration
favicon_url default favicon URL
force_https 1 if the HTTPS is forced for the domain, 0 otherwise (this flag takes effect only if a valid SSL certificate is associated with the domain)
host the domain (e.g., domain.ext)
id ID of the domain
logo default logo for the domain (base64 encoded)
nickname the domain nickname
redirect_url default redirect URL
robots_txt the robots.txt content to serve for the domain

/domains/info

access: [READ]

This method returns information on a domain, the returned information are that passed in the fields param (a comma separated list).

Example 1 (json)

Request

https://joturl.com/a/i1/domains/info?id=123145155&fields=deeplink_id,host,for_trials,force_https,id,aliases,nickname,logo,redirect_url,favicon_url,robots_txt,deeplink_name,is_owner,is_default,is_shared

Query parameters

    id = 123145155
fields = deeplink_id,host,for_trials,force_https,id,aliases,nickname,logo,redirect_url,favicon_url,robots_txt,deeplink_name,is_owner,is_default,is_shared

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "host": "domain.ext",
    "id": "7155502b34434f6a4d52396464684d3874442b454b773d3d",
    "aliases": [
      "domainext"
    ],
    "logo": "",
    "redirect_url": "",
    "favicon_url": "",
    "is_owner": 1,
    "is_default": 1,
    "is_shared": 0,
    "for_trials": 0
  }
}
Required parameters
parameter description
fieldsARRAY comma separated list of fields to return, available fields: deeplink_id, host, for_trials, force_https, id, aliases, nickname, logo, redirect_url, favicon_url, robots_txt, deeplink_name, is_owner, is_default, is_shared
idID ID of the domain
Return values
parameter description
aliases [OPTIONAL] array containing aliases of the domain, i.e., equivalent domains, returned only if aliases is passed in fields
deeplink_id [OPTIONAL] ID of the deep link configuration, returned only if deeplink_id is passed in fields
deeplink_name [OPTIONAL] ID of the deep link configuration, returned only if deeplink_name is passed in fields
favicon_url [OPTIONAL] default favicon URL, returned only if favicon_url is passed in fields
for_trials [OPTIONAL] 1 if the domain is reserved to trial plans, 0 otherwise
force_https [OPTIONAL] 1 if the "force HTTPS" flag is enabled for the domain, 0 otherwise; returned only if force_https is passed in fields
has_https [OPTIONAL] 1 if the domain has a valid SSL certificate, 0 otherwise, returned only if has_https is passed in fields
host [OPTIONAL] domain (e.g., domain.ext), returned only if host is passed in fields
id [OPTIONAL] ID of the domain, returned only if id is passed in fields
is_default [OPTIONAL] 1 if the domain is the default domain set in user's settings, 0 otherwise, returned only if is_default is passed in fields
is_owner [OPTIONAL] 1 if the logged user is owner of the domain, 0 otherwise, returned only if is_owner is passed in fields
is_shared [OPTIONAL] 1 if the domain is shared among all users, 0 otherwise, returned only if is_shared is passed in fields
logo [OPTIONAL] default logo (base64 encoded), returned only if logo is passed in fields
nickname [OPTIONAL] the domain nickname
redirect_url [OPTIONAL] default redirect URL, returned only if redirect_url is passed in fields
robots_txt [OPTIONAL] robots.txt configuration, see i1/domains/add for details

/domains/list

access: [READ]

This method returns a list of domains's data, specified in a comma separated input called fields.

Example 1 (json)

Request

https://joturl.com/a/i1/domains/list?fields=deeplink_id,host,for_trials,force_https,id,aliases,nickname,logo,redirect_url,favicon_url,robots_txt,deeplink_name,is_owner,is_default,is_shared,has_https,count

Query parameters

fields = deeplink_id,host,for_trials,force_https,id,aliases,nickname,logo,redirect_url,favicon_url,robots_txt,deeplink_name,is_owner,is_default,is_shared,has_https,count

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "data": [
      {
        "host": "domain.ext",
        "id": "7155502b34434f6a4d52396464684d3874442b454b773d3d",
        "aliases": [
          "domainext"
        ],
        "logo": "",
        "redirect_url": "",
        "favicon_url": "",
        "is_owner": 1,
        "is_default": 1
      },
      {
        "host": "global.domain",
        "id": "15135ea",
        "aliases": [
          "globaldomain"
        ],
        "logo": "",
        "redirect_url": "https:\/\/www.redirect.to\/",
        "favicon_url": "",
        "is_owner": 0,
        "is_default": 0
      }
    ]
  }
}
Required parameters
parameter description
fieldsARRAY comma separated list of fields to return, available fields: deeplink_id, host, for_trials, force_https, id, aliases, nickname, logo, redirect_url, favicon_url, robots_txt, deeplink_name, is_owner, is_default, is_shared, has_https, count
Optional parameters
parameter description
is_defaultBOOLEAN if 1 this method returns the default domain and all shared domains, if 0 all domains are returned
is_ownerBOOLEAN if 1 this method returns only domains owned by the logged user, if 0 it returns only shared domains
lengthINTEGER extracts this number of items (maxmimum allowed: 100)
orderbyARRAY orders items by field, available fields: deeplink_id, host, for_trials, force_https, id, aliases, nickname, logo, redirect_url, favicon_url, robots_txt, deeplink_name, is_owner, is_default, is_shared, has_https, count
searchSTRING filters items to be extracted by searching them
sortSTRING sorts items in ascending (ASC) or descending (DESC) order
startINTEGER starts to extract items from this position
Return values
parameter description
count [OPTIONAL] total number of domains, returned only if count is passed in fields
data array containing required information on domains the user has access to

/domains/property

access: [READ]

This method returns the limits for a domain logo.

Example 1 (json)

Request

https://joturl.com/a/i1/domains/property

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "max_size": 153600,
    "max_width": 120,
    "max_height": 50,
    "allowed_types": [
      "image\/gif",
      "image\/jpeg",
      "image\/jpg",
      "image\/pjpeg",
      "image\/x-png",
      "image\/png"
    ]
  }
}
Return values
parameter description
allowed_types array of allowed image types (mime types)
max_height maximum allowed height for the logo (pixels)
max_size maximum allowed size for the logo (bytes)
max_width maximum allowed width for the logo (pixels)

/gdprs

/gdprs/add

access: [WRITE]

This method adds a new GDPR template.

Example 1 (json)

Request

https://joturl.com/a/i1/gdprs/add?company=JotUrl&home_link=https%3A%2F%2Fwww.joturl.com%2F&tos_link=https%3A%2F%2Fwww.joturl.com%2Fterms-of-service%2F

Query parameters

  company = JotUrl
home_link = https://www.joturl.com/
 tos_link = https://www.joturl.com/terms-of-service/

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "company": "JotUrl",
    "home_link": "https:\/\/www.joturl.com\/",
    "tos_link": "https:\/\/www.joturl.com\/terms-of-service\/",
    "id": "495eafac94fe8d73166c3b8bae340d5a",
    "notes": "",
    "is_default": 0,
    "show_refuse_button": 0,
    "custom_translations": null
  }
}
Required parameters
parameter description max length
companySTRING company name, it is also the name that identifies the template 255
home_linkURL complete URL to the home page of the company website 4000
tos_linkURL complete URL to the terms of service page of the company website 4000
Optional parameters
parameter description max length
custom_translationsJSON stringified JSON of the custom GDPR translations
notesSTRING template notes (not shown on the GDPR page) 255
show_refuse_buttonBOOLEAN 1 to show a "refuse all cookies" button on the consent window, 0 otherwise (only available on custom domains)
Return values
parameter description
company echo back of the company input parameter
custom_translations echo back of the notes input parameter
home_link echo back of the home_link input parameter
id ID of the GDPR template
is_default 1 if it is the default template, 0 otherwise
notes echo back of the notes input parameter
show_refuse_button 1 to show a "refuse all cookies" button, 0 otherwise
tos_link echo back of the tos_link input parameter

/gdprs/count

access: [READ]

This method returns the number of GDPR templates.

Example 1 (json)

Request

https://joturl.com/a/i1/gdprs/count?search=test

Query parameters

search = test

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "count": 1
  }
}
Optional parameters
parameter description
searchSTRING filters GDPR templates to be extracted by searching them
Return values
parameter description
count the number of GDPR templates

/gdprs/delete

access: [WRITE]

This method deletes one or more GDPR template(s).

Example 1 (json)

Request

https://joturl.com/a/i1/gdprs/delete?ids=db8d263edb5c80d290b39ccd2e9f1254,c1214dca08d6579530f496d62d049fca,c3a978892310484a82c8a37cf437b13f,77cf01f20e15ed8c2ebd15b1f9add19e,f36cfbf76f2a894b00a2eeec9874d236

Query parameters

ids = db8d263edb5c80d290b39ccd2e9f1254,c1214dca08d6579530f496d62d049fca,c3a978892310484a82c8a37cf437b13f,77cf01f20e15ed8c2ebd15b1f9add19e,f36cfbf76f2a894b00a2eeec9874d236

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "deleted": 5,
    "id": "8f72037921e296178755aa233cf8ba6e"
  }
}
Required parameters
parameter description
idsARRAY_OF_IDS comma-separated list of GDPR templates to remove, max number of IDs in the list: 100
Return values
parameter description
deleted number of deleted GDPR templates on success, 0 otherwise
id ID of the default GDPR template, if available

/gdprs/edit

access: [WRITE]

This method edits a GDPR template.

Example 1 (json)

Request

https://joturl.com/a/i1/gdprs/edit?id=1c2eeff3e2c77ff168f55fa273923777&company=JotUrl&home_link=https%3A%2F%2Fwww.joturl.com%2F&tos_link=https%3A%2F%2Fwww.joturl.com%2Fterms-of-service%2F

Query parameters

       id = 1c2eeff3e2c77ff168f55fa273923777
  company = JotUrl
home_link = https://www.joturl.com/
 tos_link = https://www.joturl.com/terms-of-service/

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "id": "1c2eeff3e2c77ff168f55fa273923777",
    "company": "JotUrl",
    "home_link": "https:\/\/www.joturl.com\/",
    "tos_link": "https:\/\/www.joturl.com\/terms-of-service\/",
    "updated": 1
  }
}
Required parameters
parameter description
idID ID of the GDPR template to edit
Optional parameters
parameter description max length
companySTRING company name, it is also the name that identifies the template 255
custom_translationsJSON stringified JSON of the custom GDPR translations, see i1/gdprs/add for details
home_linkURL complete URL to the home page of the company website 4000
is_defaultBOOLEAN 1 to set the GDPR template as the default, 0 to remove the default flag (the first available GDPR template will be set as default, including the template identified by id)
notesSTRING template notes (not shown on the GDPR page) 255
show_refuse_buttonBOOLEAN 1 to show a "refuse all cookies" button on the consent window, 0 otherwise (only available on custom domains)
tos_linkURL complete URL to the terms of service page of the company website 4000
Return values
parameter description
updated 1 on success, 0 otherwise

/gdprs/info

access: [READ]

This method returns info about a GDPR template.

Example 1 (json)

Request

https://joturl.com/a/i1/gdprs/info?fields=id,company,home_link,tos_link,notes,is_default,show_refuse_button,custom_translations&id=963c4056a92c1822ddebae64013f2d11

Query parameters

fields = id,company,home_link,tos_link,notes,is_default,show_refuse_button,custom_translations
    id = 963c4056a92c1822ddebae64013f2d11

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "data": [
      {
        "id": "963c4056a92c1822ddebae64013f2d11",
        "company": "JotUrl",
        "home_link": "https:\/\/www.joturl.com\/",
        "tos_link": "https:\/\/www.joturl.com\/terms-of-service\/",
        "notes": "",
        "is_default": 1,
        "show_refuse_button": 0,
        "custom_translations": null
      }
    ]
  }
}
Required parameters
parameter description
fieldsARRAY comma-separated list of fields to return, available fields: count, id, company, home_link, tos_link, notes, is_default, show_refuse_button, custom_translations
idID ID of the GDPR template
Return values
parameter description
data array containing information on the GDPR templates, returned information depends on the fields parameter.

/gdprs/list

access: [READ]

This method returns a list of GDPR templates.

Example 1 (json)

Request

https://joturl.com/a/i1/gdprs/list?fields=count,id,company,home_link,tos_link,notes,is_default,show_refuse_button,custom_translations

Query parameters

fields = count,id,company,home_link,tos_link,notes,is_default,show_refuse_button,custom_translations

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "count": 1,
    "data": [
      {
        "id": "ba00c401a9bae215d603b61715aaa03c",
        "company": "JotUrl",
        "home_link": "https:\/\/www.joturl.com\/",
        "tos_link": "https:\/\/www.joturl.com\/terms-of-service\/",
        "notes": "",
        "is_default": 1,
        "show_refuse_button": 0,
        "custom_translations": null
      }
    ]
  }
}
Required parameters
parameter description
fieldsARRAY comma-separated list of fields to return, available fields: count, id, company, home_link, tos_link, notes, is_default, show_refuse_button, custom_translations
Optional parameters
parameter description
lengthINTEGER extracts this number of GDPR templates (maxmimum allowed: 100)
orderbyARRAY orders GDPR templates by field, available fields: id, company, home_link, tos_link, notes, is_default, show_refuse_button, custom_translations
searchSTRING filters GDPR templates to be extracted by searching them
sortSTRING sorts GDPR templates in ascending (ASC) or descending (DESC) order
startINTEGER starts to extract GDPR templates from this position
Return values
parameter description
count [OPTIONAL] total number of GDPR templates, returned only if count is passed in fields
data array containing information on the GDPR templates, returned information depends on the fields parameter.

/gdprs/preview

access: [READ]

This method returns a preview for the GDPR consent page (HTML).

Example 1 (json)

Request

https://joturl.com/a/i1/gdprs/preview?id=9f56260e186dc540ef3fe2a9ab9668e3

Query parameters

id = 9f56260e186dc540ef3fe2a9ab9668e3

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "html": "<html lang=\"en\"> [GDPR consent HTML] <\/html>"
  }
}
Optional parameters
parameter description max length
companySTRING NA 255
custom_translationsJSON custom translations for the GDPR consent preview
home_linkURL NA 4000
idID ID of the GDPR template
show_refuse_buttonBOOLEAN NA
tos_linkURL NA 4000
Return values
parameter description
html GDPR consent HTML

/gdprs/property

access: [READ]

This method returns a list of property for a custom GDPR consent.

Example 1 (json)

Request

https://joturl.com/a/i1/gdprs/property

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "about_cookies": {
      "type": "text",
      "default": "About cookies",
      "notes": "label of the \"about cookies\" tab",
      "max-length": 50
    },
    "accept_button": {
      "type": "text",
      "default": "Accept cookies",
      "notes": "label of the accept button",
      "max-length": 50
    },
    "agreement": {
      "type": "markdown",
      "default": "By clicking \"Accept cookies,\" you agree to the sto [...]",
      "notes": "agreement text",
      "max-length": 1000
    },
    "caption": {
      "type": "text",
      "default": "Cookies",
      "notes": "title of the consent window",
      "max-length": 50
    },
    "consent": {
      "type": "markdown",
      "default": "%COMPANY_WITH_LINK% uses cookies to customise cont [...]",
      "notes": "consent text",
      "max-length": 1000
    },
    "cookie_control_label": {
      "type": "text",
      "default": "aboutcookies.org",
      "notes": "label of the aboutcookies.org link",
      "max-length": 100
    },
    "cookie_control_link": {
      "type": "url",
      "default": "https:\/\/www.aboutcookies.org\/",
      "notes": "URL of the aboutcookies.org page",
      "max-length": 2000
    },
    "cookies_enabled": {
      "type": "text",
      "default": "Enabled",
      "notes": "\"enabled\" header of the consent table",
      "max-length": 30
    },
    "cookies_settings": {
      "type": "text",
      "default": "Cookies settings",
      "notes": "title of the detailed cookie settings page",
      "max-length": 50
    },
    "cookies_used": {
      "type": "text",
      "default": "Cookie name",
      "notes": "\"cookie name\" header of the consent table",
      "max-length": 30
    },
    "description_control_cookies": {
      "type": "markdown",
      "default": "You can control and\/or delete cookies as you wish  [...]",
      "notes": "content of the \"How to control cookies\" section",
      "max-length": 1000
    },
    "description_cookies": {
      "type": "markdown",
      "default": "A cookie is a small text file that a website saves [...]",
      "notes": "content of the \"What are cookies?\" section",
      "max-length": 1000
    },
    "description_marketing_cookies": {
      "type": "markdown",
      "default": "Marketing cookies are used to track visitors acros [...]",
      "notes": "content of the \"What are marketing cookies?\" section",
      "max-length": 1000
    },
    "descriptions.adroll": {
      "type": "markdown",
      "default": "AdRoll is a retargeting and prospecting platform f [...]",
      "notes": "AdRoll consent details",
      "max-length": 1000
    },
    "descriptions.bing": {
      "type": "markdown",
      "default": "Bing Remarketing is a remarketing and behavioral t [...]",
      "notes": "Bing consent details",
      "max-length": 1000
    },
    "descriptions.custom": {
      "type": "markdown",
      "default": "Please refer to the terms of service and cookie po [...]",
      "notes": "Custom consent details",
      "max-length": 1000
    },
    "descriptions.facebook": {
      "type": "markdown",
      "default": "Facebook Remarketing is a remarketing and behavior [...]",
      "notes": "Facebook consent details",
      "max-length": 1000
    },
    "descriptions.google_adwords": {
      "type": "markdown",
      "default": "Google AdWords Remarketing is a remarketing and be [...]",
      "notes": "Google AdWords consent details",
      "max-length": 1000
    },
    "descriptions.google_analytics": {
      "type": "markdown",
      "default": "Google Analytics for Display Advertising is a rema [...]",
      "notes": "Google Analytics consent details",
      "max-length": 1000
    },
    "descriptions.google_tag_manager": {
      "type": "markdown",
      "default": "Google Tag Manager is a tag management service pro [...]",
      "notes": "Google Tag Manager consent details",
      "max-length": 1000
    },
    "descriptions.linkedin": {
      "type": "markdown",
      "default": "LinkedIn Website Retargeting is a remarketing and  [...]",
      "notes": "LinkedIn consent details",
      "max-length": 1000
    },
    "descriptions.manychat": {
      "type": "markdown",
      "default": "ManyChat is a leading Facebook Messenger marketing [...]",
      "notes": "ManyChat consent details",
      "max-length": 1000
    },
    "descriptions.pinterest": {
      "type": "markdown",
      "default": "Pinterest Remarketing is a remarketing and behavio [...]",
      "notes": "Pinterest consent details",
      "max-length": 1000
    },
    "descriptions.quora": {
      "type": "markdown",
      "default": "Quora is an American social question-and-answer we [...]",
      "notes": "Quora consent details",
      "max-length": 1000
    },
    "descriptions.snapchat": {
      "type": "markdown",
      "default": "Snapchat is a mobile app for Android and iOS devic [...]",
      "notes": "Snapchat consent details",
      "max-length": 1000
    },
    "descriptions.tiktok": {
      "type": "markdown",
      "default": "TikTok (Douyin) Remarketing is a remarketing and b [...]",
      "notes": "TikTok consent details",
      "max-length": 1000
    },
    "descriptions.twitter": {
      "type": "markdown",
      "default": "Twitter Remarketing is a remarketing and behaviora [...]",
      "notes": "Twitter consent details",
      "max-length": 1000
    },
    "here": {
      "type": "text",
      "default": "here",
      "notes": "text of the link that leads to the \"control and\/or delete cookies\" page",
      "max-length": 50
    },
    "marketing_cookies": {
      "type": "text",
      "default": "Marketing cookies",
      "notes": "label of the \"marketing cookies\" tab",
      "max-length": 50
    },
    "noscript": {
      "type": "text",
      "default": "You need to enable JavaScript to run this page.",
      "notes": "shown when the user's browser does not support JavaScript",
      "max-length": 100
    },
    "refuse_button": {
      "type": "text",
      "default": "I refuse cookies",
      "notes": "label of the refuse button",
      "max-length": 50
    },
    "save_button": {
      "type": "text",
      "default": "Save & continue",
      "notes": "label of the save button",
      "max-length": 50
    },
    "see_details": {
      "type": "text",
      "default": "See details",
      "notes": "text of the link that leads to the extended consent page (custom page)",
      "max-length": 50
    },
    "settings_button": {
      "type": "text",
      "default": "Cookies settings",
      "notes": "label of the settings button",
      "max-length": 50
    },
    "title": {
      "type": "text",
      "default": "%COMPANY% GDPR - Cookie consent form",
      "notes": "title of the HTML page consent",
      "max-length": 50
    },
    "title_control_cookies": {
      "type": "text",
      "default": "How to control cookies",
      "notes": "title of the \"How to control cookies\" section",
      "max-length": 50
    },
    "title_cookies": {
      "type": "text",
      "default": "What are cookies?",
      "notes": "title of the \"What are cookies?\" section",
      "max-length": 50
    },
    "title_marketing_cookies": {
      "type": "text",
      "default": "What are marketing cookies?",
      "notes": "title of the \"What are marketing cookies?\" section",
      "max-length": 50
    }
  }
}
Return values
parameter description
about_cookies label of the "about cookies" tab (type: text, max length: 50)
accept_button label of the accept button (type: text, max length: 50)
agreement agreement text (type: markdown, max length: 1000)
caption title of the consent window (type: text, max length: 50)
consent consent text (type: markdown, max length: 1000)
cookie_control_label label of the aboutcookies.org link (type: text, max length: 100)
cookie_control_link URL of the aboutcookies.org page (type: url, max length: 2000)
cookies_enabled "enabled" header of the consent table (type: text, max length: 30)
cookies_settings title of the detailed cookie settings page (type: text, max length: 50)
cookies_used "cookie name" header of the consent table (type: text, max length: 30)
description_control_cookies content of the "How to control cookies" section (type: markdown, max length: 1000)
description_cookies content of the "What are cookies?" section (type: markdown, max length: 1000)
description_marketing_cookies content of the "What are marketing cookies?" section (type: markdown, max length: 1000)
descriptions.adroll AdRoll consent details (type: markdown, max length: 1000)
descriptions.bing Bing consent details (type: markdown, max length: 1000)
descriptions.custom Custom consent details (type: markdown, max length: 1000)
descriptions.facebook Facebook consent details (type: markdown, max length: 1000)
descriptions.google_adwords Google AdWords consent details (type: markdown, max length: 1000)
descriptions.google_analytics Google Analytics consent details (type: markdown, max length: 1000)
descriptions.google_tag_manager Google Tag Manager consent details (type: markdown, max length: 1000)
descriptions.linkedin LinkedIn consent details (type: markdown, max length: 1000)
descriptions.manychat ManyChat consent details (type: markdown, max length: 1000)
descriptions.pinterest Pinterest consent details (type: markdown, max length: 1000)
descriptions.quora Quora consent details (type: markdown, max length: 1000)
descriptions.snapchat Snapchat consent details (type: markdown, max length: 1000)
descriptions.tiktok TikTok consent details (type: markdown, max length: 1000)
descriptions.twitter Twitter consent details (type: markdown, max length: 1000)
here text of the link that leads to the "control and/or delete cookies" page (type: text, max length: 50)
marketing_cookies label of the "marketing cookies" tab (type: text, max length: 50)
noscript shown when the user's browser does not support JavaScript (type: text, max length: 100)
refuse_button label of the refuse button (type: text, max length: 50)
save_button label of the save button (type: text, max length: 50)
see_details text of the link that leads to the extended consent page (custom page) (type: text, max length: 50)
settings_button label of the settings button (type: text, max length: 50)
title title of the HTML page consent (type: text, max length: 50)
title_control_cookies title of the "How to control cookies" section (type: text, max length: 50)
title_cookies title of the "What are cookies?" section (type: text, max length: 50)
title_marketing_cookies title of the "What are marketing cookies?" section (type: text, max length: 50)

/jotbars

/jotbars/property

access: [READ]

This method returns a list of property of a jotbar.

Example 1 (json)

Request

https://joturl.com/a/i1/jotbars/property?context=url

Query parameters

context = url

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "positions": "inherit,right,left,top,bottom,empty",
    "dimensions": "inherit,small,medium,big"
  }
}
Required parameters
parameter description
contextSTRING it can be url, project or user and specifies the context for which positions and dimensions are requested
Return values
parameter description
dimensions comma separated list of dimensions for the context, available dimensions: big, inherit, medium, small
positions comma separated list of positions for context, available positions: bottom, empty, inherit, left, right, top

/locations

/locations/list

access: [READ]

This method returns a list of available locations.

Example 1 (json)

Request

https://joturl.com/a/i1/locations/list

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "locations": [
      {
        "label": "Afghanistan (\u0627\u0641\u063a\u0627\u0646\u0633\u062a\u0627\u0646)",
        "code": "AF"
      },
      {
        "label": "Aland Islands",
        "code": "AX"
      },
      {
        "label": "Albania (Shqipëria)",
        "code": "AL"
      },
      {
        "label": "Algeria (\u0627\u0644\u062c\u0632\u0627\u0626\u0631)",
        "code": "DZ"
      },
      {
        "label": "American Samoa",
        "code": "AS"
      },
      {
        "label": "Andorra",
        "code": "AD"
      },
      {
        "label": "Angola",
        "code": "AO"
      },
      {
        "label": "Anguilla",
        "code": "AI"
      },
      {
        "label": "Antarctica",
        "code": "AQ"
      },
      {
        "label": "Antigua and Barbuda",
        "code": "AG"
      },
      {
        "label": "Argentina",
        "code": "AR"
      },
      {
        "label": "Armenia (\u0540\u0561\u0575\u0561\u057d\u057f\u0561\u0576)",
        "code": "AM"
      },
      {
        "label": "Aruba",
        "code": "AW"
      },
      {
        "label": "Australia",
        "code": "AU"
      },
      {
        "label": "Austria (Österreich)",
        "code": "AT"
      },
      {
        "label": "Azerbaijan (Az\u0259rbaycan)",
        "code": "AZ"
      }
    ]
  }
}
Return values
parameter description
locations list of available locations

/oauth

/oauth/access_token

access: [WRITE]

Get OAUTH 2.0 access token.

Example 1 (json)

Request

https://joturl.com/a/i1/oauth/access_token?grant_type=authorization_code&client_id=dbe483393e7d039b69550b2ca28256c2&client_secret=ddbaf11a79a6c511ac12898a6308800d&code=c42b12703867cab872c80a09abfe6219

Query parameters

   grant_type = authorization_code
    client_id = dbe483393e7d039b69550b2ca28256c2
client_secret = ddbaf11a79a6c511ac12898a6308800d
         code = c42b12703867cab872c80a09abfe6219

Response

{
  "token_type": "bearer",
  "expires_in": 864000,
  "access_token": "8ce53510f6d26e58a2837edd490405b5",
  "refresh_token": "1139b10a7ff4a9a2accef99a607261cd"
}
Required parameters
parameter description
client_idSTRING is the public identifier for the app
client_secretSTRING secret identifier for the app for mode = secret (see i1/oauth/authorize) or the nonce for mode = secretless (see i1/oauth/authorize)
grant_typeSTRING requested authorization type, supported grand types: authorization_code, refresh_token
Optional parameters
parameter description
codeSTRING the code returned from the authorization flow, this parameter is mandatory if grant_type = authorization_code
refresh_tokenSTRING refresh token returned by this method in the authorization flow, this parameter is mandatory if grant_type = refresh_token
std_errorsBOOLEAN 1 to return standard OAuth 2.0 errors, otherwise errors that respect this documentation will be returned (default: 0 for backward compatibility, this will be changed in the near future, so it is advisable to use std_errors = 1
Return values
parameter description
access_token the access token string as issued by the authorization flow
expires_in the duration of time (in seconds) the access token is granted for
nonce it is returned only if mode = secretless is passed in the request to i1/oauth/authorize and must be used to call all successive calls to JotUrl's APIs, its value is temporary and must be used within few minutes
refresh_token the refresh token can be used to obtain another access token after the issued one has expired, this token is empty if mode = secretless is passed to i1/oauth/authorize
token_type The type of token this is, it is just the string bearer

/oauth/authorize

access: [WRITE]

OAUTH 2.0 Authorization.

Example 1 (json)

Request

https://joturl.com/a/i1/oauth/authorize?response_type=code&client_id=f7755e436f9d7a9df8717b80f7e1ab67&redirect_uri=https%3A%2F%2Fwww.joturl.com%2F&scope=rw&state=ab9e41bb962e5e1493edc289640fd795

Query parameters

response_type = code
    client_id = f7755e436f9d7a9df8717b80f7e1ab67
 redirect_uri = https://www.joturl.com/
        scope = rw
        state = ab9e41bb962e5e1493edc289640fd795

Response

{
  "code": "671937d8a62d76afb6fd930bd9ed8b26",
  "state": "ab9e41bb962e5e1493edc289640fd795",
  "mode": "secret"
}
Required parameters
parameter description
client_idSTRING is the public identifier for the app
redirect_uriSTRING tells the authorization server where to send the user back to after they approve the request
response_typeSTRING have be set to code, indicating that the application expects to receive an authorization code if successful.
scopeSTRING one or more space-separated strings indicating which permissions the application is requesting, supported scopes are: rw = read/write access
stateSTRING this parameter is used to prevent CSRF attacks
Optional parameters
parameter description
modeSTRING can be secret to use the OAuth 2.0 flow that requires server-to-server communications or secretless for the flow that does not require the client secret (default: secret)
std_errorsBOOLEAN 1 to return standard OAuth 2.0 errors, otherwise errors that respect this documentation will be returned (default: 0 for backward compatibility, this will be changed in the near future, so it is advisable to use std_errors = 1
Return values
parameter description
[NODATA] this method does not return any data but redirects to the OAuth 2.0 server to complete the OAuth 2.0 flow

/oauth/check

access: [WRITE]

Checks if an OAuth 2.0 Authorization was requested.

Example 1 (json)

Request

https://joturl.com/a/i1/oauth/check

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "id": "7f85eb842abf075b422919a944e236f2",
    "app_name": "OAuth 2.0 App Name",
    "app_logo": "https:\/\/www.joturl.com\/reserved\/res\/ju2.0\/img\/header\/logo.svg",
    "redirect_url": "https:\/\/redirect.to\/?code=9ab41f4f5c0674ec8ee526ace94b30ee&state=7497763f09bd0f4cfba0701f6ec79b80&mode=secret"
  }
}
Return values
parameter description
app_logo the URL to the logo of the application, empty if no authorization request has been made
app_name the name of the OAuth 2.0 application, empty if no authorization request has been made
id the ID of the OAuth 2.0 application, empty if no authorization request has been made
nonce [OPTIONAL] it is returned only if mode = secretless is passed in the request to i1/oauth/authorize
redirect_url it has the same value passed in the request to i1/oauth/authorize with parameters code, state and mode appended, empty if no authorization request has been made

/oauth/granted

/oauth/granted/count

access: [READ]

This method returns the number of granted OAuth 2.0 clients.

Example 1 (json)

Request

https://joturl.com/a/i1/oauth/granted/count

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "count": 5
  }
}
Optional parameters
parameter description
searchSTRING count OAuth 2.0 clients by searching them
Return values
parameter description
count number of OAuth 2.0 clients the user has granted access to (filtered by search if passed)

/oauth/granted/list

access: [READ]

This method returns a list of granted OAuth 2.0 clients.

Example 1 (json)

Request

https://joturl.com/a/i1/oauth/granted/list

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "data": [
      {
        "app_name": "OAuth 2.0 Client Name",
        "app_logo": "https:\/\/oauth.client\/logo.png"
      }
    ]
  }
}
Optional parameters
parameter description
lengthINTEGER extracts this number of items (maxmimum allowed: 100)
orderbyARRAY orders items by field
searchSTRING filters items to be extracted by searching them
sortSTRING sorts items in ascending (ASC) or descending (DESC) order
startINTEGER starts to extract items from this position
Return values
parameter description
count total number of OAuth 2.0 clients
data array containing required information on clients the user has granted access to

/oauth/granted/revoke

access: [WRITE]

Revoke granted access to OAuth 2.0 clients.

Example 1 (json)

Request

https://joturl.com/a/i1/oauth/granted/revoke?ids=d3d9446802a44259755d38e6d163e820,3644a684f98ea8fe223c713b77189a77,e93028bdc1aacdfb3687181f2031765d

Query parameters

ids = d3d9446802a44259755d38e6d163e820,3644a684f98ea8fe223c713b77189a77,e93028bdc1aacdfb3687181f2031765d

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "deleted": 3
  }
}
Required parameters
parameter description
idsARRAY_OF_IDS comma separated list of OAuth 2.0 client IDs to be revoked
Return values
parameter description
deleted number of revoked OAuth 2.0 clients
ids [OPTIONAL] list of OAuth 2.0 client IDs whose revoke has failed, this parameter is returned only when at least one revoke error has occurred

/oauth/test

access: [WRITE]

Call this endpoint to test OAuth 2.0 authentication credentials.

Example 1 (json)

Request

https://joturl.com/a/i1/oauth/test

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "success": "1"
  }
}
Optional parameters
parameter description
std_errorsBOOLEAN 1 to return standard OAuth 2.0 errors, otherwise errors that respect this documentation will be returned (default: 0 for backward compatibility, this will be changed in the near future, so it is advisable to use std_errors = 1
Return values
parameter description
success 1 on success, otherwise an authentication error is returned

/permissions

/permissions/add

access: [WRITE]

Define a new permission.

Example 1 (json)

Request

https://joturl.com/a/i1/permissions/add?name=name+of+the+permission&info=%7B%22apis%22%3A%7B%22access_to%22%3A%7B%22all_except%22%3A%5B%5D%7D%7D,%22conversions%22%3A%7B%22can_add%22%3A1,%22can_edit%22%3A1,%22can_delete%22%3A1,%22can_link%22%3A1,%22can_unlink%22%3A1,%22access_to%22%3A%7B%22all_except%22%3A%5B%5D%7D%7D,%22ctas%22%3A%7B%22can_add%22%3A1,%22can_edit%22%3A1,%22can_delete%22%3A1,%22can_link%22%3A1,%22can_unlink%22%3A1,%22access_to%22%3A%7B%22all_except%22%3A%5B%5D%7D%7D,%22domains%22%3A%7B%22can_add%22%3A1,%22can_edit%22%3A1,%22can_delete%22%3A1,%22access_to%22%3A%7B%22all_except%22%3A%5B%5D%7D,%22all_except%22%3A%5B%22ccb2059e0f4334fc40dd17e90745270d%22,%22e91d5b9a2ea32d70947b7a2960b283dc%22,%22dae68cd3b66a0653a3487aa45280bee0%22%5D%7D,%22plans%22%3A%7B%22can_manage_plans%22%3A0,%22can_manage_billing%22%3A0%7D,%22projects%22%3A%7B%22can_add%22%3A1,%22can_edit%22%3A1,%22can_delete%22%3A1,%22access_to_default%22%3A1%7D,%22remarketings%22%3A%7B%22can_add%22%3A1,%22can_edit%22%3A1,%22can_delete%22%3A1,%22can_link%22%3A1,%22can_unlink%22%3A1,%22access_to%22%3A%7B%22all_except%22%3A%5B%5D%7D%7D,%22security%22%3A%7B%22inactivity_timeout%22%3A0,%22inactivity_timeout_value%22%3A15,%22force_change_password%22%3A0,%22force_change_password_interval%22%3A3,%22do_not_allow_old_passwords%22%3A0,%22do_not_allow_old_passwords_value%22%3A4,%22warning_on_anomalous_logins%22%3A0%7D,%22subusers%22%3A%7B%22can_add%22%3A1,%22can_edit%22%3A1,%22can_delete%22%3A1%7D%7D

Query parameters

name = name of the permission
info = {"apis":{"access_to":{"all_except":[]}},"conversions":{"can_add":1,"can_edit":1,"can_delete":1,"can_link":1,"can_unlink":1,"access_to":{"all_except":[]}},"ctas":{"can_add":1,"can_edit":1,"can_delete":1,"can_link":1,"can_unlink":1,"access_to":{"all_except":[]}},"domains":{"can_add":1,"can_edit":1,"can_delete":1,"access_to":{"all_except":[]},"all_except":["ccb2059e0f4334fc40dd17e90745270d","e91d5b9a2ea32d70947b7a2960b283dc","dae68cd3b66a0653a3487aa45280bee0"]},"plans":{"can_manage_plans":0,"can_manage_billing":0},"projects":{"can_add":1,"can_edit":1,"can_delete":1,"access_to_default":1},"remarketings":{"can_add":1,"can_edit":1,"can_delete":1,"can_link":1,"can_unlink":1,"access_to":{"all_except":[]}},"security":{"inactivity_timeout":0,"inactivity_timeout_value":15,"force_change_password":0,"force_change_password_interval":3,"do_not_allow_old_passwords":0,"do_not_allow_old_passwords_value":4,"warning_on_anomalous_logins":0},"subusers":{"can_add":1,"can_edit":1,"can_delete":1}}

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "id": "96d9478843a26b6bc531b4e4e68608a9",
    "name": "name of the permission",
    "notes": "",
    "info": {
      "apis": {
        "access_to": {
          "all_except": []
        }
      },
      "conversions": {
        "can_add": 1,
        "can_edit": 1,
        "can_delete": 1,
        "can_link": 1,
        "can_unlink": 1,
        "access_to": {
          "all_except": []
        }
      },
      "ctas": {
        "can_add": 1,
        "can_edit": 1,
        "can_delete": 1,
        "can_link": 1,
        "can_unlink": 1,
        "access_to": {
          "all_except": []
        }
      },
      "domains": {
        "can_add": 1,
        "can_edit": 1,
        "can_delete": 1,
        "access_to": {
          "all_except": []
        },
        "all_except": [
          {
            "id": "ccb2059e0f4334fc40dd17e90745270d",
            "name": "domain_0"
          },
          {
            "id": "e91d5b9a2ea32d70947b7a2960b283dc",
            "name": "domain_1"
          },
          {
            "id": "dae68cd3b66a0653a3487aa45280bee0",
            "name": "domain_2"
          }
        ]
      },
      "plans": {
        "can_manage_plans": 0,
        "can_manage_billing": 0
      },
      "projects": {
        "can_add": 1,
        "can_edit": 1,
        "can_delete": 1,
        "access_to_default": 1
      },
      "remarketings": {
        "can_add": 1,
        "can_edit": 1,
        "can_delete": 1,
        "can_link": 1,
        "can_unlink": 1,
        "access_to": {
          "all_except": []
        }
      },
      "security": {
        "inactivity_timeout": 0,
        "inactivity_timeout_value": 15,
        "force_change_password": 0,
        "force_change_password_interval": 3,
        "do_not_allow_old_passwords": 0,
        "do_not_allow_old_passwords_value": 4,
        "warning_on_anomalous_logins": 0
      },
      "subusers": {
        "can_add": 1,
        "can_edit": 1,
        "can_delete": 1
      }
    }
  }
}
Required parameters
parameter description max length
nameSTRING name of the permission 100
Optional parameters
parameter description max length
infoJSON information on access rights, see i1/permissions/property for details
notesSTRING notes for the permission 255
Return values
parameter description
id ID of the permission
info information on access rights
name echo back of the input parameter name
notes echo back of the input parameter notes

/permissions/count

access: [READ]

This method returns the number of user's permissions.

Example 1 (json)

Request

https://joturl.com/a/i1/permissions/count

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "count": 893
  }
}
Optional parameters
parameter description
searchSTRING count permissions by searching them
Return values
parameter description
count number of permissions (filtered by search if passed)

/permissions/delete

access: [WRITE]

Delete one or more permissions.

Example 1 (json)

Request

https://joturl.com/a/i1/permissions/delete?ids=37693cfc748049e45d87b8c7d8b9aacd,e92ea2e30768f2fda96f7e9eba39c6eb,f569c3d708a7558b3049d2896d2b6ce1

Query parameters

ids = 37693cfc748049e45d87b8c7d8b9aacd,e92ea2e30768f2fda96f7e9eba39c6eb,f569c3d708a7558b3049d2896d2b6ce1

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "deleted": 3
  }
}
Required parameters
parameter description
idsARRAY_OF_IDS comma separated list of permission IDs to be deleted
Return values
parameter description
deleted number of deleted permissions
ids [OPTIONAL] list of permission IDs whose delete has failed, this parameter is returned only when at least one delete error has occurred

/permissions/edit

access: [WRITE]

Edit a permission.

Example 1 (json)

Request

https://joturl.com/a/i1/permissions/edit?id=6839e6b9152f1908e4031e9e7d269564&name=name+of+the+permission&info=%7B%22apis%22%3A%7B%22access_to%22%3A%7B%22all_except%22%3A%5B%5D%7D%7D,%22conversions%22%3A%7B%22can_add%22%3A1,%22can_edit%22%3A1,%22can_delete%22%3A1,%22can_link%22%3A1,%22can_unlink%22%3A1,%22access_to%22%3A%7B%22all_except%22%3A%5B%5D%7D%7D,%22ctas%22%3A%7B%22can_add%22%3A1,%22can_edit%22%3A1,%22can_delete%22%3A1,%22can_link%22%3A1,%22can_unlink%22%3A1,%22access_to%22%3A%7B%22all_except%22%3A%5B%5D%7D%7D,%22domains%22%3A%7B%22can_add%22%3A1,%22can_edit%22%3A1,%22can_delete%22%3A1,%22access_to%22%3A%7B%22all_except%22%3A%5B%5D%7D,%22all_except%22%3A%5B%22959b699728cd2ac554b86d1a0f5cd3b9%22,%22bb8323d0001c9cc70b9088700285bf1e%22,%2242bc85caa7e01f5c1bfe4e882fc3538f%22,%22e992b87f288acada0ce448a4a495dee9%22%5D%7D,%22plans%22%3A%7B%22can_manage_plans%22%3A0,%22can_manage_billing%22%3A0%7D,%22projects%22%3A%7B%22can_add%22%3A1,%22can_edit%22%3A1,%22can_delete%22%3A1,%22access_to_default%22%3A1%7D,%22remarketings%22%3A%7B%22can_add%22%3A1,%22can_edit%22%3A1,%22can_delete%22%3A1,%22can_link%22%3A1,%22can_unlink%22%3A1,%22access_to%22%3A%7B%22all_except%22%3A%5B%5D%7D%7D,%22security%22%3A%7B%22inactivity_timeout%22%3A0,%22inactivity_timeout_value%22%3A15,%22force_change_password%22%3A0,%22force_change_password_interval%22%3A3,%22do_not_allow_old_passwords%22%3A0,%22do_not_allow_old_passwords_value%22%3A4,%22warning_on_anomalous_logins%22%3A0%7D,%22subusers%22%3A%7B%22can_add%22%3A1,%22can_edit%22%3A1,%22can_delete%22%3A1%7D%7D

Query parameters

  id = 6839e6b9152f1908e4031e9e7d269564
name = name of the permission
info = {"apis":{"access_to":{"all_except":[]}},"conversions":{"can_add":1,"can_edit":1,"can_delete":1,"can_link":1,"can_unlink":1,"access_to":{"all_except":[]}},"ctas":{"can_add":1,"can_edit":1,"can_delete":1,"can_link":1,"can_unlink":1,"access_to":{"all_except":[]}},"domains":{"can_add":1,"can_edit":1,"can_delete":1,"access_to":{"all_except":[]},"all_except":["959b699728cd2ac554b86d1a0f5cd3b9","bb8323d0001c9cc70b9088700285bf1e","42bc85caa7e01f5c1bfe4e882fc3538f","e992b87f288acada0ce448a4a495dee9"]},"plans":{"can_manage_plans":0,"can_manage_billing":0},"projects":{"can_add":1,"can_edit":1,"can_delete":1,"access_to_default":1},"remarketings":{"can_add":1,"can_edit":1,"can_delete":1,"can_link":1,"can_unlink":1,"access_to":{"all_except":[]}},"security":{"inactivity_timeout":0,"inactivity_timeout_value":15,"force_change_password":0,"force_change_password_interval":3,"do_not_allow_old_passwords":0,"do_not_allow_old_passwords_value":4,"warning_on_anomalous_logins":0},"subusers":{"can_add":1,"can_edit":1,"can_delete":1}}

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "id": "6839e6b9152f1908e4031e9e7d269564",
    "info": {
      "apis": {
        "access_to": {
          "all_except": []
        }
      },
      "conversions": {
        "can_add": 1,
        "can_edit": 1,
        "can_delete": 1,
        "can_link": 1,
        "can_unlink": 1,
        "access_to": {
          "all_except": []
        }
      },
      "ctas": {
        "can_add": 1,
        "can_edit": 1,
        "can_delete": 1,
        "can_link": 1,
        "can_unlink": 1,
        "access_to": {
          "all_except": []
        }
      },
      "domains": {
        "can_add": 1,
        "can_edit": 1,
        "can_delete": 1,
        "access_to": {
          "all_except": []
        },
        "all_except": [
          {
            "id": "959b699728cd2ac554b86d1a0f5cd3b9",
            "name": "domain_0"
          },
          {
            "id": "bb8323d0001c9cc70b9088700285bf1e",
            "name": "domain_1"
          },
          {
            "id": "42bc85caa7e01f5c1bfe4e882fc3538f",
            "name": "domain_2"
          },
          {
            "id": "e992b87f288acada0ce448a4a495dee9",
            "name": "domain_3"
          }
        ]
      },
      "plans": {
        "can_manage_plans": 0,
        "can_manage_billing": 0
      },
      "projects": {
        "can_add": 1,
        "can_edit": 1,
        "can_delete": 1,
        "access_to_default": 1
      },
      "remarketings": {
        "can_add": 1,
        "can_edit": 1,
        "can_delete": 1,
        "can_link": 1,
        "can_unlink": 1,
        "access_to": {
          "all_except": []
        }
      },
      "security": {
        "inactivity_timeout": 0,
        "inactivity_timeout_value": 15,
        "force_change_password": 0,
        "force_change_password_interval": 3,
        "do_not_allow_old_passwords": 0,
        "do_not_allow_old_passwords_value": 4,
        "warning_on_anomalous_logins": 0
      },
      "subusers": {
        "can_add": 1,
        "can_edit": 1,
        "can_delete": 1
      }
    }
  }
}
Required parameters
parameter description
idID ID of the permission
Optional parameters
parameter description max length
infoJSON information on access rights, see i1/permissions/property for details
nameSTRING name of the permission 100
notesSTRING notes of the permission 255
Return values
parameter description
id ID of the permission
info information on access rights
name name of the permission
notes notes of the permission

/permissions/info

access: [READ]

This method returns information on a permission.

Example 1 (json)

Request

https://joturl.com/a/i1/permissions/info?id=18a38a4104b5a6e0bf90c7626021e9ba

Query parameters

id = 18a38a4104b5a6e0bf90c7626021e9ba

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "data": {
      "id": "18a38a4104b5a6e0bf90c7626021e9ba",
      "name": "name of the permission",
      "notes": "notes for the permission",
      "info": {
        "apis": {
          "access_to": {
            "all_except": []
          }
        },
        "conversions": {
          "can_add": 1,
          "can_edit": 1,
          "can_delete": 1,
          "can_link": 1,
          "can_unlink": 1,
          "access_to": {
            "all_except": []
          }
        },
        "ctas": {
          "can_add": 1,
          "can_edit": 1,
          "can_delete": 1,
          "can_link": 1,
          "can_unlink": 1,
          "access_to": {
            "all_except": []
          }
        },
        "domains": {
          "can_add": 1,
          "can_edit": 1,
          "can_delete": 1,
          "access_to": {
            "all_except": []
          },
          "all_except": [
            {
              "id": "7a034263285abf2395a09a4d982a7348",
              "name": "domain_0"
            },
            {
              "id": "b3ddec29c2cf1a39f8213acd5510d093",
              "name": "domain_1"
            }
          ]
        },
        "plans": {
          "can_manage_plans": 0,
          "can_manage_billing": 0
        },
        "projects": {
          "can_add": 1,
          "can_edit": 1,
          "can_delete": 1,
          "access_to_default": 1
        },
        "remarketings": {
          "can_add": 1,
          "can_edit": 1,
          "can_delete": 1,
          "can_link": 1,
          "can_unlink": 1,
          "access_to": {
            "all_except": []
          }
        },
        "security": {
          "inactivity_timeout": 0,
          "inactivity_timeout_value": 15,
          "force_change_password": 0,
          "force_change_password_interval": 3,
          "do_not_allow_old_passwords": 0,
          "do_not_allow_old_passwords_value": 4,
          "warning_on_anomalous_logins": 0
        },
        "subusers": {
          "can_add": 1,
          "can_edit": 1,
          "can_delete": 1
        }
      }
    }
  }
}
Required parameters
parameter description
idID ID of the permission
Return values
parameter description
data array containing information on the permission, see i1/permissions/list and i1/permissions/property for details

/permissions/list

access: [READ]

This method returns a list of user-defined permissions.

Example 1 (json)

Request

https://joturl.com/a/i1/permissions/list

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "count": 1,
    "data": [
      {
        "id": "b839fcbbf904a21848c153e5ff1f12c3",
        "name": "name of the permission",
        "notes": "notes for the permission"
      }
    ]
  }
}
Optional parameters
parameter description
lengthINTEGER extracts this number of items (maxmimum allowed: 100)
orderbyARRAY orders items by field
searchSTRING filters items to be extracted by searching them
sortSTRING sorts items in ascending (ASC) or descending (DESC) order
startINTEGER starts to extract items from this position
Return values
parameter description
count total number of permissions
data array containing information on permissions

/permissions/property

access: [READ]

This method returns access rights you can use to create a permission. Each access right is grouped by contexts.

Example 1 (json)

Request

https://joturl.com/a/i1/permissions/property

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "apis": {
      "access_to": {
        "type": "complementary_ids",
        "default": {
          "all_except": []
        },
        "available": 1
      }
    },
    "conversions": {
      "can_add": {
        "type": "bool",
        "default": 1,
        "available": 1
      },
      "can_edit": {
        "type": "bool",
        "default": 1,
        "available": 1
      },
      "can_delete": {
        "type": "bool",
        "default": 1,
        "available": 1
      },
      "can_link": {
        "type": "bool",
        "default": 1,
        "available": 1
      },
      "can_unlink": {
        "type": "bool",
        "default": 1,
        "available": 1
      },
      "access_to": {
        "type": "complementary_ids",
        "default": {
          "all_except": []
        },
        "available": 1
      }
    },
    "ctas": {
      "can_add": {
        "type": "bool",
        "default": 1,
        "available": 1
      },
      "can_edit": {
        "type": "bool",
        "default": 1,
        "available": 1
      },
      "can_delete": {
        "type": "bool",
        "default": 1,
        "available": 1
      },
      "can_link": {
        "type": "bool",
        "default": 1,
        "available": 1
      },
      "can_unlink": {
        "type": "bool",
        "default": 1,
        "available": 1
      },
      "access_to": {
        "type": "complementary_ids",
        "default": {
          "all_except": []
        },
        "available": 1
      }
    },
    "domains": {
      "can_add": {
        "type": "bool",
        "default": 1,
        "available": 1
      },
      "can_edit": {
        "type": "bool",
        "default": 1,
        "available": 1
      },
      "can_delete": {
        "type": "bool",
        "default": 1,
        "available": 1
      },
      "access_to": {
        "type": "complementary_ids",
        "default": {
          "all_except": []
        },
        "available": 1
      }
    },
    "plans": {
      "can_manage_plans": {
        "type": "bool",
        "default": 0,
        "available": 1
      },
      "can_manage_billing": {
        "type": "bool",
        "default": 0,
        "available": 1
      }
    },
    "projects": {
      "can_add": {
        "type": "bool",
        "default": 1,
        "available": 1
      },
      "can_edit": {
        "type": "bool",
        "default": 1,
        "available": 1
      },
      "can_delete": {
        "type": "bool",
        "default": 1,
        "available": 1
      },
      "access_to_default": {
        "type": "bool",
        "default": 1,
        "available": 1
      }
    },
    "remarketings": {
      "can_add": {
        "type": "bool",
        "default": 1,
        "available": 1
      },
      "can_edit": {
        "type": "bool",
        "default": 1,
        "available": 1
      },
      "can_delete": {
        "type": "bool",
        "default": 1,
        "available": 1
      },
      "can_link": {
        "type": "bool",
        "default": 1,
        "available": 1
      },
      "can_unlink": {
        "type": "bool",
        "default": 1,
        "available": 1
      },
      "access_to": {
        "type": "complementary_ids",
        "default": {
          "all_except": []
        },
        "available": 1
      }
    },
    "security": {
      "inactivity_timeout": {
        "ref_value": "inactivity_timeout_value",
        "type": "bool_with_value",
        "default": 0,
        "available": 1
      },
      "inactivity_timeout_value": {
        "type": "int",
        "default": 15,
        "min": 15,
        "max": 43200,
        "available": 1
      },
      "force_change_password": {
        "ref_value": "force_change_password_interval",
        "type": "bool_with_value",
        "default": 0,
        "available": 1
      },
      "force_change_password_interval": {
        "type": "int",
        "default": 3,
        "min": 2,
        "max": 60,
        "available": 1
      },
      "do_not_allow_old_passwords": {
        "ref_value": "do_not_allow_old_passwords_value",
        "type": "bool_with_value",
        "default": 0,
        "available": 1
      },
      "do_not_allow_old_passwords_value": {
        "type": "int",
        "default": 4,
        "min": 2,
        "max": 10,
        "available": 1
      },
      "warning_on_anomalous_logins": {
        "type": "bool",
        "default": 0,
        "available": 1
      }
    },
    "subusers": {
      "can_add": {
        "type": "bool",
        "default": 1,
        "available": 1
      },
      "can_edit": {
        "type": "bool",
        "default": 1,
        "available": 1
      },
      "can_delete": {
        "type": "bool",
        "default": 1,
        "available": 1
      }
    }
  }
}
Return values
parameter description
data object containing available access permissions and their descriptions

/plans

/plans/addresses

/plans/addresses/add

access: [WRITE]

This method adds address information about the user.

Example 1 (json)

Request

https://joturl.com/a/i1/plans/addresses/add?is_business=1&name=John+Smith&address=72+Sussex+St.&postal_code=21122&city=Pasadena&country_code=US&responsibility_check=2025-01-19+18%3A31%3A31

Query parameters

         is_business = 1
                name = John Smith
             address = 72 Sussex St.
         postal_code = 21122
                city = Pasadena
        country_code = US
responsibility_check = 2025-01-19 18:31:31

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "added": 1
  }
}
Required parameters
parameter description max length
addressSTRING billing address 255
citySTRING billing city 255
country_codeSTRING billing country code 2
is_businessBOOLEAN 1 for business accounts, 0 for private
nameSTRING billing name 255
postal_codeSTRING billing postal code 50
responsibility_checkDATE_TIME date/time (UTC) in which the declaration of correctness of the address information was signed, the value passed is mandatory and must be a valid date/time, but it is always overwritten with the date/time of the call to this endpoint
Optional parameters
parameter description max length
cfSTRING fiscal code for private Italian users 16
pecSTRING certified email address for Italian users 255
provinceSTRING province for Italian users, see i1/provinces/list for details 2
recipient_codeSTRING recipient code for Italian users 15
vat_idSTRING VAT ID for business users 50
Return values
parameter description
added 1 on success, 0 otherwise

/plans/addresses/info

access: [READ]

This method returns address information about the user.

Example 1 (json)

Request

https://joturl.com/a/i1/plans/addresses/info

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "is_business": 1,
    "name": "John Smith",
    "address": "72 Sussex St.",
    "postal_code": "21122",
    "city": "Pasadena",
    "country_code": "US",
    "vat_treatment": "EXTRA_EU_BUSINESS",
    "vat_id": "",
    "cf": "",
    "pec": "",
    "recipient_code": "",
    "province": "",
    "responsibility_check": "2025-01-19 18:31:31"
  }
}
Return values
parameter description
address billing address
cf fiscal code for private Italian users
city billing city
country_code billing country code
is_business 1 for business accounts, 0 for private
name billing name
pec certified email address for private Italian users
postal_code billing postal code
province province for private Italian users
recipient_code recipient code for private Italian users
responsibility_check date/time (UTC) when the declaration of correctness of the address information was signed
vat_id VAT ID for business users
vat_treatment NA

/plans/addresses/locations

/plans/addresses/locations/list

access: [READ]

This method returns a list of available countries/localities for the user's billing addresses.

Example 1 (json)

Request

https://joturl.com/a/i1/plans/addresses/locations/list

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "locations": [
      {
        "label": "Afghanistan (\u0627\u0641\u063a\u0627\u0646\u0633\u062a\u0627\u0646)",
        "code": "AF",
        "other": 0
      },
      {
        "label": "Aland Islands",
        "code": "AX",
        "other": 0
      },
      {
        "label": "Albania (Shqipëria)",
        "code": "AL",
        "other": 0
      },
      {
        "label": "Algeria (\u0627\u0644\u062c\u0632\u0627\u0626\u0631)",
        "code": "DZ",
        "other": 0
      },
      {
        "label": "American Samoa",
        "code": "AS",
        "other": 0
      },
      {
        "label": "Andorra",
        "code": "AD",
        "other": 0
      },
      {
        "label": "Angola",
        "code": "AO",
        "other": 0
      },
      {
        "label": "Anguilla",
        "code": "AI",
        "other": 0
      },
      {
        "label": "Antarctica",
        "code": "AQ",
        "other": 0
      },
      {
        "label": "Antigua and Barbuda",
        "code": "AG",
        "other": 0
      },
      {
        "label": "Argentina",
        "code": "AR",
        "other": 0
      },
      {
        "label": "Armenia (\u0540\u0561\u0575\u0561\u057d\u057f\u0561\u0576)",
        "code": "AM",
        "other": 0
      },
      {
        "label": "Aruba",
        "code": "AW",
        "other": 0
      },
      {
        "label": "Australia",
        "code": "AU",
        "other": 0
      },
      {
        "label": "Austria (Österreich)",
        "code": "AT",
        "other": 0
      },
      {
        "label": "Azerbaijan (Az\u0259rbaycan)",
        "code": "AZ",
        "other": 0
      },
      {
        "label": "[....]",
        "code": "..",
        "other": 0
      },
      {
        "label": "Canary Islands",
        "code": "_C",
        "other": 1
      }
    ]
  }
}
Return values
parameter description
locations list of available countries/locations

/plans/addresses/property

access: [READ]

This method returns requirements for the user info.

Example 1 (json)

Request

https://joturl.com/a/i1/plans/addresses/property?is_business=0&country_code=US

Query parameters

 is_business = 0
country_code = US

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "vat_treatment": "EXTRA_EU_PRIVATE",
    "vat_id": {
      "mandatory": 0,
      "show": 0
    },
    "cf": {
      "mandatory": 0,
      "show": 0
    },
    "pec": {
      "mandatory": 0,
      "show": 0
    },
    "recipient_code": {
      "mandatory": 0,
      "show": 0
    },
    "province": {
      "mandatory": 0,
      "show": 0
    }
  }
}
Required parameters
parameter description max length
country_codeSTRING code of the country of the user 2
is_businessBOOLEAN 1 for business users, 0 from private
Return values
parameter description
cf array containing mandatory and show
pec array containing mandatory and show
province array containing mandatory and show
recipient_code array containing mandatory and show
vat_id array containing mandatory and show
vat_treatment VAT threatment type, see i1/plans/vats/property for details

/plans/coupons

/plans/coupons/attach

access: [READ]

This method allows to attach a coupon to the current customer.

Example 1 (json)

Request

https://joturl.com/a/i1/plans/coupons/attach?coupon=df0db97eb945b687e87ae3245ae9700c

Query parameters

coupon = df0db97eb945b687e87ae3245ae9700c

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "attached": 1
  }
}
Required parameters
parameter description
couponSTRING The coupon code to be attached
Optional parameters
parameter description
detach_existingBOOLEAN 1 to detach any coupons already present (default: 0)
Return values
parameter description
attached 1 on success, an error is emitted otherwise

/plans/coupons/check

access: [READ]

This method checks the validity of a coupon.

Example 1 (json)

Request

https://joturl.com/a/i1/plans/coupons/check?coupon=5fc4ff26eeebb563b7b1bde7d191f875&amount=100

Query parameters

coupon = 5fc4ff26eeebb563b7b1bde7d191f875
amount = 100

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "valid": 1,
    "description": "Test coupon for PayPal",
    "params": {
      "expiration": "2025-12-31T13:13:00+01:00",
      "en": "Test coupon for PayPal",
      "it": "Coupon di prova per PayPal",
      "plan": "pro, business",
      "charge_amount": "12",
      "public_plan": "Pro, Business"
    },
    "amount": 100,
    "amount1": 0,
    "discounted": 0,
    "discounted1": 0,
    "is_100p_discount": 1,
    "charge_amount": 12,
    "charge_amount_formatted": "12.00 €",
    "paypal": {
      "env": "production",
      "client": {
        "production": "acf0ce246d8e80bd6a3c98ac10e056f5-96f0ea77efa7554f1523a9b04cb6c0e3"
      }
    },
    "discounted_formatted": "0.00",
    "discounted1_formatted": "0.00"
  }
}
Required parameters
parameter description
couponSTRING Coupon code. This can be a comma separated list of coupons for stackable coupons.
Optional parameters
parameter description
amountSTRING if this parameter is passed, the method returns the amount requested after applying the coupon
amount1STRING if this parameter is passed, the method returns the amount requested after applying the coupon
Return values
parameter description
amount echo back of the input parameter amount
amount1 echo back of the input parameter amount1
charge_amount [OPTIONAL] returned only if the coupon requires an immediate charge
charge_amount_formatted [OPTIONAL] formatted version of charge_amount
description description of the coupon if available, empty otherwise
discounted the amount requested after applying the coupon to parameter amount
discounted1 the amount requested after applying the coupon to parameter amount1
discounted1_formatted formatted version of discounted1
discounted_formatted formatted version of discounted
is_100p_discount 1 if the coupon applies a 100% discount, 0 otherwise
params array containing extended parameters for the coupon
paypal [OPTIONAL] array containing information on the PayPal client to be used to precess payments, please see PayPal API documentation for details
valid 1 if the coupon is valid, 0 otherwise

/plans/customers

/plans/customers/add

access: [WRITE]

This method creates a customer on the payment gateaway.

Example 1 (json)

Request

https://joturl.com/a/i1/plans/customers/add

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "added": 1
  }
}
Return values
parameter description
added 1 on success, 0 otherwise

/plans/customers/balance_transactions

access: [READ]

This method returns the list of balance transactions for the current customer. Transactions are returned in reverse order (most recent first).

Example 1 (json)

Request

https://joturl.com/a/i1/plans/customers/balance_transactions

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "added": 1
  }
}
Optional parameters
parameter description
startingSTRING it is an ID (returned in data) that defines the point in the list from which to extract transactions, to be used in pagination
Return values
parameter description
data list of transactions

/plans/customers/info

access: [READ]

This method returns payment information about the user.

Example 1 (json)

Request

https://joturl.com/a/i1/plans/customers/info

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "id": "4efe3b9377a9739cbf6d08636090952e",
    "created": "2018-08-07T20:33:07+02:00",
    "updated": "2018-08-07T20:33:07+02:00",
    "payments": [
      {
        "token": "74694a767a6f455368766f6f38344962734d794851537857496a4f506c44784d39513150694a2f45353131723852365a716b33634c7a41793377777452566762",
        "country": "US",
        "created": "2018-12-06T23:31:24+01:00",
        "updated": "2018-12-06T23:31:24+01:00",
        "default": 1,
        "image": "",
        "subscriptions": 0,
        "brand": "Visa",
        "type": "visa",
        "last4": "4242",
        "expiration": {
          "month": 4,
          "year": 2024
        }
      }
    ]
  }
}
Return values
parameter description
created date on which the customer was created
id customer ID on the payment gateway
payments object containing payment information
updated date on which the customer was updated

/plans/info

access: [READ]

This method returns information about the user's plan.

Example 1 (json)

Request

https://joturl.com/a/i1/plans/info

Response

{
  "id": "ec9858ada6521092929b00c81b152826",
  "name": "business",
  "annually_cost": 135,
  "monthly_cost": 169,
  "events_per_month": 500000,
  "tracking_links": 100000,
  "stats_permanency_days": 730,
  "max_users": 30,
  "max_permissions": 6,
  "max_brands": 70,
  "has_smart_balancer": 1,
  "has_split_testing": 1,
  "has_smart_redirector": 1,
  "max_qrcode_templates": 100,
  "max_projects": "",
  "has_conversions": 1,
  "has_timed_urls": 1,
  "force_brand_on_ctas": 0,
  "has_watchdog_ping": 1,
  "has_watchdog_advanced": 1,
  "number_of_ctas": "",
  "max_banners": "",
  "custom_domains": 30,
  "email_support": 1,
  "priority_email_support": 1,
  "has_security_monitor": 1,
  "has_cfm": 1,
  "has_custom_aliases": 1,
  "has_masking": 1,
  "has_jotbar": 1,
  "has_custom_logo_in_reports": 1,
  "has_custom_css_cta": 1,
  "has_setup_assistance_and_training": 0,
  "has_custom_invoicing": 0,
  "has_enterprise_sla": 0,
  "has_customizations_and_integrations": 0,
  "has_digital_marketing_advice": 0,
  "has_minipages": 1,
  "has_deeplinks": 1,
  "has_easydeeplinks": 1,
  "has_preview": 1,
  "public_name": "Business",
  "has_utm_builder": 1,
  "max_utm_templates": 30,
  "has_remarketing": "",
  "has_whatsapp": 1,
  "has_instaurl": 0,
  "has_selfdestruction": 0,
  "has_cloaking": 1,
  "has_advanced_security": 0,
  "is_monthly": 1,
  "status": "green",
  "trial_left_days": 30,
  "events": "",
  "is_monitored": 1,
  "can_manage_plans": 1,
  "can_manage_billing": 1,
  "email_sent": 0,
  "subscription_status": "ACTIVE",
  "subscription_creation": "2018-08-13T23:16:14+02:00",
  "subscription_next_billing_date": "2018-12-27T11:58:57+01:00",
  "subscription_billing_end_date": "2018-12-27T11:58:57+01:00",
  "subscription_never_expires": 1,
  "subscription_trial_period": 0,
  "subscription_first_billing_date": "2018-12-27T11:58:57+01:00",
  "subscription_balance": 0,
  "max_gdpr_templates": 10,
  "has_gdpr_custom_consent": 1,
  "max_media": 100000,
  "max_media_size": 10000000,
  "cdnbytes_per_month": 100000000000,
  "api_rate_limits": {
    "primary": {
      "limit": 500,
      "unit": "HOUR"
    },
    "secondary": {
      "limit": 50000,
      "unit": "DAY"
    }
  }
}
Return values
parameter description
annually_cost cost if paid annually
api_rate_limits API rate limits, see i1/apis/limits for details
can_manage_billing 1 if the user can change the billing information and download invoices, 0 otherwise
can_manage_plans 1 if the user can change the current plan and subscription, 0 otherwise
cdnbytes_per_month available CDN bytes per month
custom_domains maximum number of custom domains
email_sent if an email was sent after a change of status, in any case emails are sent with a frequency of no less than 72 hours
email_support 1 if email support is available, 0 otherwise
events events used in the last 30 days
events_per_month available events per month
force_brand_on_ctas 1 if the JotUrl brand is forced to be shown on CTAs, 0 otherwise
has_advanced_security 1 if the advanced security (permissions) is available, 0 otherwise
has_cfm 1 if click fraud protection is available, 0 otherwise
has_cloaking 1 if the cloaking option is available, 0 otherwise
has_conversions 1 if conversions are available, 0 otherwise
has_custom_aliases 1 if custom aliases are available, 0 otherwise
has_custom_css_cta 1 if custom CSS on CTAs is available, 0 otherwise
has_custom_invoicing 1 if custom invoicing is available, 0 otherwise
has_custom_logo_in_reports 1 if custom logo in reports is available, 0 otherwise
has_customizations_and_integrations 1 if customizations and integrations is available, 0 otherwise
has_deeplinks 1 if deep links are available, 0 otherwise
has_digital_marketing_advice 1 if digital marketing advice is available, 0 otherwise
has_easydeeplinks 1 if the option easy deep links is available, 0 otherwise
has_enterprise_sla 1 if enterprise SLA is available, 0 otherwise
has_gdpr_custom_consent 1 if GDPR consent can be customized, 0 otherwise
has_instaurl 1 if JotBio (InstaUrl) is available, 0 otherwise
has_jotbar 1 if JotBar is available, 0 otherwise
has_masking 1 if masking is available, 0 otherwise
has_minipages 1 if minipages are available, 0 otherwise
has_preview 1 if link preview edit (Open Graph tags) is available, 0 otherwise
has_remarketing number of available remarketing pixels, empty means "unlimited", 0 means no remarketing pixel available
has_security_monitor 1 if security monitor is available, 0 otherwise
has_selfdestruction 1 if the self destruction option is available, 0 otherwise
has_setup_assistance_and_training 1 if setup assistance and training is available, 0 otherwise
has_smart_balancer 1 if smart balanger is available, 0 otherwise
has_smart_redirector 1 if smart redirector is available, 0 otherwise
has_split_testing 1 if split testing is available, 0 otherwise
has_timed_urls 1 if timed urls is available, 0 otherwise
has_utm_builder 1 if UTM builder is available, 0 otherwise
has_watchdog_advanced 1 if advanced Watchdog is available, 0 otherwise
has_watchdog_ping 1 if basic Watchdog is available, 0 otherwise
has_whatsapp 1 if WhatsUrl is available, 0 otherwise
id ID of the subscribed profile
is_monitored 1 if the user profile is automatically monitored, 0 otherwise
is_monthly 1 billing is made monthly, 0 for annually billing
max_brands maximum number of brands
max_gdpr_templates maximum available GDPR templates
max_media maximum number of media in the media library
max_media_size maximum size of the the media library (in bytes)
max_permissions maximum number of permissions for your team members
max_qrcode_templates maximum number of QR-Code templates
max_users maximum number of users (including the admin user)
max_utm_templates maximum number of UTM templates
monthly_cost cost per month if paid monthly
name name of the profile
priority_email_support 1 if priority email support is available, 0 otherwise
public_name user-friendly name of the profile
stats_permanency_days analytics are stored for this number of days
status status for the user, it can be: green if the user is using less than 80% of the available events, yellow if the user is using between the 80% (included) and 110% (excluded) of the available events, red if the user is using between the 110% (included) and 150% (excluded) of the available events, black if the user is using more than the 150% (included) of the available events or if the user is continuosly in the red status for at least 144 hours
subscription_balance [OPTIONAL] any remaining credit that will be used for future payments, available only for monitored and paid profile
subscription_billing_end_date [OPTIONAL] end of the current period that the subscription has been invoiced for; at the end of this period, a new invoice will be created, available only for monitored and paid profile
subscription_creation [OPTIONAL] time at which the subscription was created, available only for monitored and paid profile
subscription_first_billing_date [OPTIONAL] date at which a new invoice will be generated for the subscription (for trialing subscriptions), available only for monitored and paid profile
subscription_never_expires [OPTIONAL] 0 if the subscription is scheduled to be canceled at the end of the current billing period, 1 otherwise, available only for monitored and paid profile
subscription_next_billing_date [OPTIONAL] date at which a new invoice will be generated for the subscription, available only for monitored and paid profile
subscription_status [subscription status, it can be one of [TRIALING, INCOMPLETE, INCOMPLETE_EXPIRED, ACTIVE, PAST_DUE, CANCELED, UNPAID]
subscription_trial_period [OPTIONAL] 1 if the subscription is in its trial period, 0 otherwise, available only for monitored and paid profile
tracking_links maximum number of tracking links
trial_left_days available maximum trial days for the user

/plans/invoices

/plans/invoices/count

access: [READ]

This method returns the number of invoices issued to the logged user.

Example 1 (json)

Request

https://joturl.com/a/i1/plans/invoices/count

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "count": 766
  }
}
Optional parameters
parameter description
is_credit_noteSTRING count only credit notes
searchSTRING filters invoices to be extracted by searching them
vat_treatmentSTRING filter invoices by VAT treatment
yearINTEGER filter invoices by year
Return values
parameter description
count the total number of invoices issued to the logged user

/plans/invoices/get

access: [READ]

This method returns an invoice for the logged user.

Example 1 (json)

Request

https://joturl.com/a/i1/plans/invoices/get?id=f5bd6010c9d2652907703b621eb8d060&pdf=1

Query parameters

 id = f5bd6010c9d2652907703b621eb8d060
pdf = 1

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "id": "10C-CC\/2019",
    "pdf": "[PDF]"
  }
}
Required parameters
parameter description
idID internal ID of the invoice
Optional parameters
parameter description
pdfBOOLEAN 1 to generate a PDF (returned as binary string), 0 to generate the corresponding HTML (default value: 0)
Return values
parameter description
html HTML for the invoice if pdf = 0
id ID of the invoice
pdf PDF for the invoice if pdf = 1

/plans/invoices/list

access: [READ]

This method returns a list of invoices associated to the user.

Example 1 (json)

Request

https://joturl.com/a/i1/plans/invoices/list

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "count": 1,
    "data": [
      {
        "id": "a1fc2baa5a373911ac68a8eaf41a2975",
        "profile_id": "2799c1b466c22737ac44ee988535ca84",
        "profile_name": "planname",
        "public_name": "Plan Name",
        "amount": "9.00",
        "created": "2019-06-20 08:57:21",
        "invoice_datetime": "2019-06-20 09:57:38",
        "billing_period_start": "2019-06-20 08:57:21",
        "billing_period_end": "2019-07-20 08:57:21",
        "vat_treatment": "INTRA_EU_BUSINESS",
        "year": 2019,
        "sequence": 11,
        "address": {
          "is_business": 1,
          "name": "Company name",
          "address_address": "Company address",
          "postal_code": "DH8 6ZL",
          "city": "MEDOMSLEY",
          "country_code": "UK",
          "vat_id": "2380238238E123",
          "cf": "",
          "pec": "",
          "recipient_code": ""
        },
        "promo_code": "",
        "promo_amount": "",
        "invoice_template": "",
        "invoice_description": "",
        "refund_amount": "",
        "refund_invoice_id": "",
        "refund_vat_treatment": "",
        "refund_year": "",
        "refund_sequence": "",
        "refund_datetime": "",
        "invoice_id": "11B-EU\/2019",
        "is_credit_note": 0
      }
    ]
  }
}
Optional parameters
parameter description
idID filter invoice by ID
is_credit_noteSTRING show only credit notes
lengthINTEGER extracts this number of invoices (maxmimum allowed: 100)
searchSTRING filters invoices to be extracted by searching them
startINTEGER starts to extract invoices from this position
vat_treatmentSTRING filter invoices by VAT treatment
yearINTEGER filter invoices by year
Return values
parameter description
count [OPTIONAL] the total number of invoices available for the user, only returned if id is not passed
data
next [OPTIONAL] the URL to call to retrieve the next page of invoices when they are paged, returned only if at least one more invoice is available

/plans/invoices/next

access: [READ]

This method returns the next upcoming invoice for the logged user and, if available, information about discounts that will applied.

Example 1 (json)

Request

https://joturl.com/a/i1/plans/invoices/next

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "upcoming_amount_due": 9,
    "upcoming_invoice_date": "2025-02-19 18:31:31"
  }
}
Return values
parameter description
coupon_amount_off discount amout that will applied to the invoice, if available
coupon_description description for the coupon, if available
coupon_end the date/time that the coupon will end, if available
coupon_id coupon code that will applied to the invoice, if available
coupon_percent_off percentage discount that will applied to the invoice, if available
coupon_start date/time that the coupon was applied, if available
scheduled_amount_due the amount of the next scheduled invoice (in case of a recent payment waiting to be completed)
scheduled_invoice_date the date/time at which the scheduled invoice will be issued
upcoming_amount_due the amount of the upcoming invoice
upcoming_invoice_date the date/time at which the invoice will be issued

/plans/list

access: [READ]

This method returns a list of available plans for the current user.

Example 1 (json)

Request

https://joturl.com/a/i1/plans/list

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": [
    {
      "id": "395fea588f594ae612ceeb4e0f87a16b",
      "is_preferred": 0,
      "name": "free",
      "reference_name": "",
      "annually_cost": 0,
      "monthly_cost": 0,
      "events_per_month": 1000,
      "tracking_links": 200,
      "stats_permanency_days": 30,
      "max_users": 1,
      "max_brands": 1,
      "has_smart_balancer": 0,
      "has_split_testing": 0,
      "has_smart_redirector": 0,
      "max_qrcode_templates": 1,
      "max_projects": 5,
      "has_conversions": 0,
      "has_timed_urls": 0,
      "force_brand_on_ctas": 1,
      "has_watchdog_ping": 1,
      "has_watchdog_advanced": 0,
      "number_of_ctas": "",
      "max_banners": 0,
      "custom_domains": 0,
      "email_support": 1,
      "priority_email_support": 0,
      "has_security_monitor": 0,
      "has_cfm": 0,
      "has_custom_aliases": 1,
      "has_masking": 0,
      "has_jotbar": 0,
      "has_custom_logo_in_reports": 0,
      "has_custom_css_cta": 0,
      "has_setup_assistance_and_training": 0,
      "has_custom_invoicing": 0,
      "has_enterprise_sla": 0,
      "has_customizations_and_integrations": 0,
      "has_digital_marketing_advice": 0,
      "trial_days": 0,
      "has_minipages": 0,
      "has_deeplinks": 0,
      "has_easydeeplinks": 0,
      "has_preview": 0,
      "public_name": "Free",
      "has_utm_builder": 0,
      "has_remarketing": 1,
      "has_whatsapp": 0,
      "has_instaurl": 0,
      "has_selfdestruction": 0,
      "user_profile": 0,
      "reserved_for_user": 0,
      "max_media": 0,
      "max_media_size": 0,
      "cdnbytes_per_month": 0
    },
    {
      "id": "efb6d76844f63d2f4a676d1d3ecd2e68",
      "is_preferred": 0,
      "name": "growth",
      "reference_name": "",
      "annually_cost": 7,
      "monthly_cost": 9,
      "events_per_month": 5000,
      "tracking_links": 2000,
      "stats_permanency_days": 365,
      "max_users": 3,
      "max_brands": 5,
      "has_smart_balancer": 1,
      "has_split_testing": 1,
      "has_smart_redirector": 1,
      "max_qrcode_templates": 10,
      "max_projects": "",
      "has_conversions": 1,
      "has_timed_urls": 1,
      "force_brand_on_ctas": 0,
      "has_watchdog_ping": 1,
      "has_watchdog_advanced": 0,
      "number_of_ctas": "",
      "max_banners": "",
      "custom_domains": 3,
      "email_support": 1,
      "priority_email_support": 0,
      "has_security_monitor": 1,
      "has_cfm": 1,
      "has_custom_aliases": 1,
      "has_masking": 1,
      "has_jotbar": 1,
      "has_custom_logo_in_reports": 0,
      "has_custom_css_cta": 0,
      "has_setup_assistance_and_training": 0,
      "has_custom_invoicing": 0,
      "has_enterprise_sla": 0,
      "has_customizations_and_integrations": 0,
      "has_digital_marketing_advice": 0,
      "trial_days": 14,
      "has_minipages": 1,
      "has_deeplinks": 1,
      "has_easydeeplinks": 1,
      "has_preview": 1,
      "public_name": "Growth",
      "has_utm_builder": 1,
      "has_remarketing": 5,
      "has_whatsapp": 1,
      "has_instaurl": 0,
      "has_selfdestruction": 0,
      "user_profile": 0,
      "reserved_for_user": 0,
      "max_media": 100000,
      "max_media_size": 10000000,
      "cdnbytes_per_month": 100000000000
    }
  ]
}
Optional parameters
parameter description max length
idID filter by using the plan ID
is_preferredBOOLEAN 1 to return preferred plan(s)
nameSTRING filter by using the plan name 150
public_nameSTRING filter by using the plan user-friendly name 150
Return values
parameter description
data list of available plans for the current user

/plans/payments

/plans/payments/add

access: [WRITE]

This method add a payment method.

Example 1 (json)

Request

https://joturl.com/a/i1/plans/payments/add?nonce=10a30e6d82fa81a8337c6e512d512ef7

Query parameters

nonce = 10a30e6d82fa81a8337c6e512d512ef7

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "added": 1
  }
}
Required parameters
parameter description
nonceSTRING nonce that identifies the payment method, it comes from the payment gateway API
Optional parameters
parameter description
forceBOOLEAN force the attachment of the payment method
Return values
parameter description
added 1 on success, 0 otherwise

/plans/payments/authorization

access: [READ]

This method returns an authorization code for the payment gateway.

Example 1 (json)

Request

https://joturl.com/a/i1/plans/payments/authorization

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "secret": "935ca5aba199313f149f03847e422c37",
    "authorization": "97640f01da2ad235b42d13e69bdbe307"
  }
}
Return values
parameter description
authorization public API key of the payment gateway
secret secret key for the Strong Customer Authentication (SCA)

/plans/payments/default

access: [WRITE]

This method make a payment method the default one.

Example 1 (json)

Request

https://joturl.com/a/i1/plans/payments/default?token=856ce964be5ba7f6c6ebd87d8740c28a

Query parameters

token = 856ce964be5ba7f6c6ebd87d8740c28a

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "default": 1
  }
}
Required parameters
parameter description
tokenSTRING token that uniquely identifies the payment method
Return values
parameter description
default 1 on success, 0 otherwise

/plans/payments/delete

access: [WRITE]

This method deletes a payment method.

Example 1 (json)

Request

https://joturl.com/a/i1/plans/payments/delete?token=86329d3193f5aebeb1e07e8a7f5a3a19

Query parameters

token = 86329d3193f5aebeb1e07e8a7f5a3a19

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "deleted": 1
  }
}
Required parameters
parameter description
tokenSTRING token that uniquely identifies the payment method
Return values
parameter description
deleted 1 on success, 0 otherwise

/plans/payments/paypals

/plans/payments/paypals/check

access: [WRITE]

This method checks a PayPal payment.

Example 1 (json)

Request

https://joturl.com/a/i1/plans/payments/paypals/check?id=c415db03cda1dbe26b0be2ad9ae06588

Query parameters

id = c415db03cda1dbe26b0be2ad9ae06588

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "id": "c415db03cda1dbe26b0be2ad9ae06588",
    "valid": 1,
    "total": 12.34,
    "currency": "EUR",
    "email": "this.is.your.email@pay.pal.com",
    "transaction_id": "a2af6234bca82c2e17"
  }
}
Required parameters
parameter description
idSTRING ID of the PayPal payment to check
Return values
parameter description
currency currency of the payment, see https://developer.paypal.com/docs/api/reference/currency-codes/ for a list of payment codes
id echo back of the id input parameter
total amount of the payment
valid 1 if the PayPal payment is valid, 0 otherwise

/plans/subscriptions

/plans/subscriptions/delete

access: [WRITE]

This method cancels the plan (main) subscription associated with the current user.

Example 1 (json)

Request

https://joturl.com/a/i1/plans/subscriptions/delete

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "canceled": 1
  }
}
Return values
parameter description
canceled 1 on success (i.e., the subscription was canceled), 0 otherwise

/plans/subscriptions/estimate

access: [READ]

This method returns an estimate of the upcoming invoice for the logged user and, if available, information about discounts that will applied.

Example 1 (json)

Request

https://joturl.com/a/i1/plans/subscriptions/estimate?start_datetime=2025-02-19+18%3A31%3A31

Query parameters

start_datetime = 2025-02-19 18:31:31

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "estimate_amount_due": 9,
    "estimate_invoice_date": "2025-02-19 18:31:31",
    "estimate_coupon": "",
    "estimate_balance": 0
  }
}
Required parameters
parameter description
idID ID of the plan to switch to in the estimate
periodSTRING the subscription billing period to be used in the estimate, it can be monthly or annually
Optional parameters
parameter description
couponSTRING coupon ID to be applied to calculate the estimate
start_datetimeDATE_TIME the estimate will be calculated as though the update was done at the specified date/time, if not specified, it will be equal to 3 minutes from the request
Return values
parameter description
estimate_amount_due the amount of the estimate
estimate_balance estimate user balance after the plan switch (negative means a credit, positive a debit)
estimate_coupon coupon code applied to the estimate, if available
estimate_invoice_date the date/time at which the estimate was calculated

/plans/subscriptions/info

access: [READ]

This method returns information about the user's subscription.

Example 1 (json)

Request

https://joturl.com/a/i1/plans/subscriptions/info

Response

{
  "status": "ACTIVE",
  "balance": 0,
  "createdAt": "2018-08-13T23:16:14+02:00",
  "updatedAt": "2018-08-13T23:16:14+02:00",
  "nextBillingDate": "2018-12-27T11:58:57+01:00",
  "firstBillingDate": "2018-12-27T11:58:57+01:00",
  "billingPeriodEndDate": "2018-12-27T11:58:57+01:00",
  "trialPeriod": 0,
  "neverExpires": 1
}
Optional parameters
parameter description
idSTRING NA
Return values
parameter description
balance any remaining credit that will be used for future payments
billingPeriodEndDate end of the current period that the subscription has been invoiced for; at the end of this period, a new invoice will be created
createdAt time at which the subscription was created
firstBillingDate date at which a new invoice will be generated for the subscription (for trialing subscriptions)
neverExpires 0 if the subscription is scheduled to be canceled at the end of the current billing period, 1 otherwise
nextBillingDate date at which a new invoice will be generated for the subscription
status subscription status, see notes for details
trialPeriod 1 if the subscription is in its trial period, 0 otherwise
updatedAt time at which the subscription was updated

/plans/subscriptions/set

access: [WRITE]

This method sets the primary subscription (plan) for the current user.

Example 1 (json)

Request

https://joturl.com/a/i1/plans/subscriptions/set?paypal=0&nonce=72d2ed6e70869f634de3d9282efac948&type=buy&period=monthly&id=113724cbc4d8721fcb3ebd1149ae9f80&coupon=603BFBC2CD3430E8A4D112FC1345BA04

Query parameters

paypal = 0
 nonce = 72d2ed6e70869f634de3d9282efac948
  type = buy
period = monthly
    id = 113724cbc4d8721fcb3ebd1149ae9f80
coupon = 603BFBC2CD3430E8A4D112FC1345BA04

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "added": 1,
    "nonce": "52bdb10a709a32265fac2ed428b05b0b159a60a04c90d456ec6707dfe8fd4f5f",
    "ref": "94416d1d691262dff81e19a1e5a7cc5d6b9d2c5ee6210f412e6dc2c884deb2547420d442ab6b91dcb9d441af7025704f"
  }
}
Required parameters
parameter description
idID ID of the plan to subscribe to
periodSTRING the subscription billing period, it can be monthly or annually
typeSTRING it can be try if you want to activate a trial period or buy if you want to buy a subscriptionn
Optional parameters
parameter description
couponSTRING coupon ID to be applied to the subscription
nonceSTRING a unique disposable identifier used to identify the payment methods, this parameter is mandatory if a coupon code with 100% discount is not specified
paypalBOOLEAN 1 if PayPal was used to pay the subscription, 0 otherwise
Return values
parameter description
added 1 if the subscription has been activated, 0 otherwise
nonce unique identifier to be used where requested
ref unique reference for the transaction to be used where requested

/plans/suggest

access: [READ]

This method suggests a plan suitable for the number of events generated by the logged user.

Example 1 (json)

Request

https://joturl.com/a/i1/plans/suggest

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "estimated_events_per_month": 350000,
    "suggested_plan": {
      "id": "59a266c96e1c3b2f1cadfb42530f8eec",
      "name": "business",
      "annually_cost": 135,
      "monthly_cost": 169,
      "events_per_month": 500000,
      "tracking_links": 100000,
      "stats_permanency_days": 730,
      "max_users": 30,
      "max_brands": 70,
      "has_smart_balancer": 1,
      "has_split_testing": 1,
      "has_smart_redirector": 1,
      "max_qrcode_templates": 100,
      "max_projects": "",
      "has_conversions": 1,
      "has_timed_urls": 1,
      "force_brand_on_ctas": 0,
      "has_watchdog_ping": 1,
      "has_watchdog_advanced": 1,
      "number_of_ctas": "",
      "max_banners": "",
      "custom_domains": 30,
      "email_support": 1,
      "priority_email_support": 1,
      "has_security_monitor": 1,
      "has_cfm": 1,
      "has_custom_aliases": 1,
      "has_masking": 1,
      "has_jotbar": 1,
      "has_custom_logo_in_reports": 1,
      "has_custom_css_cta": 1,
      "has_setup_assistance_and_training": 0,
      "has_custom_invoicing": 0,
      "has_enterprise_sla": 0,
      "has_customizations_and_integrations": 0,
      "has_digital_marketing_advice": 0,
      "has_minipages": 1,
      "has_deeplinks": 1,
      "has_easydeeplinks": 1,
      "has_preview": 1,
      "public_name": "Business",
      "has_utm_builder": 1,
      "max_utm_templates": 30,
      "has_remarketing": "",
      "has_whatsapp": 1,
      "has_instaurl": 0,
      "has_selfdestruction": 0,
      "is_monthly": 1,
      "status": "green",
      "trial_left_days": 30,
      "events": "",
      "is_monitored": 1,
      "email_sent": 0,
      "subscription_status": "ACTIVE",
      "subscription_creation": "2018-08-13T23:16:14+02:00",
      "subscription_next_billing_date": "2018-12-27T11:58:57+01:00",
      "subscription_billing_end_date": "2018-12-27T11:58:57+01:00",
      "subscription_never_expires": 1,
      "subscription_trial_period": 0,
      "subscription_first_billing_date": "2018-12-27T11:58:57+01:00",
      "subscription_balance": 0,
      "max_gdpr_templates": 10
    }
  }
}
Return values
parameter description
estimated_events_per_month estimated events per month
suggested_plan [OPTIONAL] array containing info for the suggested plan, it is returned only if this method can find a suitable plan for the user

/plans/update

access: [READ]

This method updates information about the user's plan. It should be called after a change of the user plan.

Example 1 (json)

Request

https://joturl.com/a/i1/plans/update

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "new_plan": "Basic",
    "old_plan": "Basic"
  }
}
Return values
parameter description
new_plan the new plan name for the user, it can be the equal to old_plan if no change takes place
old_plan the old plan name for the user

/plans/vats

/plans/vats/property

access: [READ]

This method returns the list of available VAT treatments.

Example 1 (json)

Request

https://joturl.com/a/i1/plans/vats/property

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": [
    "ITALY_PRIVATE",
    "ITALY_BUSINESS",
    "INTRA_EU_PRIVATE",
    "INTRA_EU_BUSINESS",
    "EXTRA_EU_PRIVATE",
    "EXTRA_EU_BUSINESS"
  ]
}
Return values
parameter description
[ARRAY] array of available VAT treatment

/projects

/projects/add

access: [WRITE]

Add a project with a specified name.

Example 1 (json)

Request

https://joturl.com/a/i1/projects/add?name=name+for+the+project+name&client=this+is+a+sample+note&has_utm_parameters=1

Query parameters

              name = name for the project name
            client = this is a sample note
has_utm_parameters = 1

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "id": "f3d84b12b0def6e681bb9586864e5268",
    "name": "name for the project name",
    "client": "this is a sample note",
    "has_utm_parameters": 1
  }
}
Required parameters
parameter description max length
nameSTRING project name 255
Optional parameters
parameter description max length
clientSTRING name of the client to whom the project is dedicated and/or the notes for the project 255
has_utm_parametersBOOLEAN 1 to enable the UTM view, 0 otherwise
Return values
parameter description
client echo back of the client parameter
id ID of the project
name echo back of the name parameter

/projects/count

access: [READ]

This method returns the number of user's projects.

Example 1 (json)

Request

https://joturl.com/a/i1/projects/count

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "count": 97
  }
}
Optional parameters
parameter description
accountSTRING if 1 this methods returns the total number of projects (other parameters are ignored)
end_dateSTRING filter projects created up to this date (inclusive)
searchSTRING filter projects by searching them
start_dateSTRING filter projects created from this date (inclusive)
with_alertsBOOLEAN filter projects with security alerts
Return values
parameter description
count number of projects

/projects/defaults

/projects/defaults/get

access: [READ]

Get a default setting for the project.

Example 1 (json)

Request

https://joturl.com/a/i1/projects/defaults/get?project_id=e4d11cb693a9c080b7e008cbd5c124bb&setting=default_tl

Query parameters

project_id = e4d11cb693a9c080b7e008cbd5c124bb
   setting = default_tl

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "value": "78006e884fc264dd6ed675b7e88e79e7"
  }
}
Required parameters
parameter description max length
project_idID ID of the project
settingSTRING setting to obtain, see i1/projects/defaults/set for details 50
Return values
parameter description
value the value of the required setting

/projects/defaults/set

access: [WRITE]

Set/unset a default setting for the project.

Example 1 (json)

Request

https://joturl.com/a/i1/projects/defaults/set?project_id=7fb01be2649e435ae21ac7000b85f83f&setting=default_tl&value=a7cccda62063ab800a45c56904121c77

Query parameters

project_id = 7fb01be2649e435ae21ac7000b85f83f
   setting = default_tl
     value = a7cccda62063ab800a45c56904121c77

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "set": 1
  }
}
Required parameters
parameter description max length
project_idID ID of the project
settingSTRING setting to be set/unset, settings available: default_tl, default_domain 50
Optional parameters
parameter description max length
valueID the value to be setted, empty to unset 50
Return values
parameter description
set 1 on set, 0 otherwise

/projects/delete

access: [WRITE]

This method deletes a set of projects using the ids. Return 1 if the operation succeeds or 0 otherwise.

Example 1 (json)

Request

https://joturl.com/a/i1/projects/delete?ids=d0960c82159e694696c6518c5862be4c,ad7f941f991ad6ccd8d433fed457fb63,5c7235f2087b181736e9b9c198c7cfd4

Query parameters

ids = d0960c82159e694696c6518c5862be4c,ad7f941f991ad6ccd8d433fed457fb63,5c7235f2087b181736e9b9c198c7cfd4

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "deleted": 3
  }
}
Required parameters
parameter description
idsARRAY_OF_IDS comma separated list of project IDs to be deleted
Return values
parameter description
deleted number of deleted projects
ids [OPTIONAL] list of project IDs whose delete has failed, this parameter is returned only when at least one delete error has occurred

/projects/edit

access: [WRITE]

Edit a project data for the user logged in.

Example 1 (json)

Request

https://joturl.com/a/i1/projects/edit?id=b0269314d86071bccdeb80e2bb800756&name=new+name+for+the+project&client=new+notes+for+the+project

Query parameters

    id = b0269314d86071bccdeb80e2bb800756
  name = new name for the project
client = new notes for the project

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "id": "b0269314d86071bccdeb80e2bb800756",
    "name": "new name for the project",
    "client": "new notes for the project"
  }
}
Required parameters
parameter description
idID ID of the project
Optional parameters
parameter description max length
clientSTRING new name of the client to whom the project is dedicated and/or new notes for the project 255
has_utm_parametersBOOLEAN 1 to enable the UTM view, 0 otherwise
nameSTRING new name for the project 255
Return values
parameter description
client [OPTIONAL] echo back of the name of the client to whom the project is dedicated and/or the notes for the project
has_utm_parameters [OPTIONAL] echo back of has_utm_parameters parameter
id ID of the project
name [OPTIONAL] echo back of the name of the project

/projects/info

access: [READ]

This method returns information on a project, the returned information depends on input parameter fields.

Example 1 (json)

Request

https://joturl.com/a/i1/projects/info?id=bd1342eb5e69419dd939487febfc9599&fields=name,id

Query parameters

    id = bd1342eb5e69419dd939487febfc9599
fields = name,id

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "name": "project 1",
    "id": "bd1342eb5e69419dd939487febfc9599"
  }
}
Required parameters
parameter description
fieldsARRAY comma separated list of fields to return, available fields: name, client, id, creation, urls_count, conversions_visits, remarketings_visits, ctas_visits, qrcodes_visits, unique_visits, visits, has_utm_parameters, is_default
idID ID of the project
Return values
parameter description
client [OPTIONAL] name of the client to whom the project is dedicated and/or the notes for the project
conversions_visits [OPTIONAL] number of conversions clicks on tracking links in the project
creation [OPTIONAL] date of creation of the project
ctas_visits [OPTIONAL] number of CTA clicks on tracking links in the project
has_utm_parameters [OPTIONAL] 1 if the project has UTM view enabled, 0 otherwise
id [OPTIONAL] ID of the project
is_default [OPTIONAL] 1 if it is the default project, 0 otherwise
name [OPTIONAL] name of the project
qrcodes_visits [OPTIONAL] number of visits on tracking links in the project coming from QR codes
remarketings_visits [OPTIONAL] number of remarketings clicks on tracking links in the project
unique_visits [OPTIONAL] number of unique visits on tracking links in the project
urls_count [OPTIONAL] number of tracking links in the project
visits [OPTIONAL] number of visits on tracking links in the project

/projects/jotbars

/projects/jotbars/edit

access: [WRITE]

Set a jotbar option for a tracking link.

Example 1 (json)

Request

https://joturl.com/a/i1/projects/jotbars/edit?id=e96bfc554c9da9a808fac29f7495fa2c&logo=https%3A%2F%2Fjoturl.com%2Flogo.svg&logo_url=https%3A%2F%2Fjoturl.com%2F&template=right&template_size=big&languages=en,it&default_language=&user_default_language=en&info=%7B%22en%22%3A%7B%22page_title%22%3A%22English+page+title%22,%22description_title%22%3Anull,%22description%22%3A%22%3Cp%3E%5BEN%5D+HTML+description%3C%5C%2Fp%3E%22,%22questions_title%22%3Anull,%22questions%22%3A%22%3Cp%3E%5BEN%5D+HTML+questions%3C%5C%2Fp%3E%22%7D,%22it%22%3A%7B%22page_title%22%3A%22Titolo+pagina+in+italiano%22,%22description_title%22%3Anull,%22description%22%3A%22%3Cp%3E%5BIT%5D+HTML+description%3C%5C%2Fp%3E%22,%22questions_title%22%3Anull,%22questions%22%3A%22%3Cp%3E%5BIT%5D+HTML+questions%3C%5C%2Fp%3E%22%7D%7D

Query parameters

                   id = e96bfc554c9da9a808fac29f7495fa2c
                 logo = https://joturl.com/logo.svg
             logo_url = https://joturl.com/
             template = right
        template_size = big
            languages = en,it
     default_language = 
user_default_language = en
                 info = {"en":{"page_title":"English page title","description_title":null,"description":"<p>[EN] HTML description<\/p>","questions_title":null,"questions":"<p>[EN] HTML questions<\/p>"},"it":{"page_title":"Titolo pagina in italiano","description_title":null,"description":"<p>[IT] HTML description<\/p>","questions_title":null,"questions":"<p>[IT] HTML questions<\/p>"}}

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "updated": 1
  }
}
Required parameters
parameter description
idID ID of the project
languagesARRAY comma-separated list of the languages selected for the jotbar, the jotbar will be shown to the user in the language the user has chosen in his/hers browser, if the user has an unsupported language the default language will be used (i.e., default_language if not empty, user_default_language otherwise)
Optional parameters
parameter description
default_languageSTRING default language within languages, empty or null to inherit the configuration from the account-level settings
infoJSON JSON containing page_title, description_title, description, questions_title, questions for each language in languages, see i1/projects/jotbars/info for details on info
logoSTRING it can be:
Return values
parameter description
updated 1 on success, 0 otherwise

/projects/jotbars/info

access: [READ]

Get jotbar information for the project.

Example 1 (json)

Request

https://joturl.com/a/i1/projects/jotbars/info?id=7384d4fa87e209b793fc43d390f7b165

Query parameters

id = 7384d4fa87e209b793fc43d390f7b165

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "logo": "https:\/\/joturl.com\/logo.svg",
    "logo_url": "https:\/\/joturl.com\/",
    "template": "right",
    "template_size": "big",
    "show_feedback": null,
    "languages": "en,it",
    "default_language": "",
    "user_default_language": "en",
    "info": {
      "en": {
        "page_title": "English page title",
        "description_title": null,
        "description": "<p>[EN] HTML description<\/p>",
        "questions_title": null,
        "questions": "<p>[EN] HTML questions<\/p>"
      },
      "it": {
        "page_title": "Titolo pagina in italiano",
        "description_title": null,
        "description": "<p>[IT] HTML description<\/p>",
        "questions_title": null,
        "questions": "<p>[IT] HTML questions<\/p>"
      }
    }
  }
}
Required parameters
parameter description
idID ID of the project
Return values
parameter description
default_language default language within languages, empty or null to inherit the configuration from the account-level settings
info for each language in languages, it contains page_title, description_title, description, questions_title, questions, see the following notes for details
languages comma-separated list of the languages selected for the jotbar, the jotbar will be shown to the user in the language the user has chosen in his/hers browser, if the user has an unsupported language the default language will be used (i.e., default_language if not empty, user_default_language otherwise)
logo it can be:

/projects/languages

/projects/languages/list

access: [READ]

This method returns a list of available languages for specific options (e.g., jotBar) of a project.

Example 1 (json)

Request

https://joturl.com/a/i1/projects/languages/list?id=c52b523f5ff163bc95c0f0b04da783bf

Query parameters

id = c52b523f5ff163bc95c0f0b04da783bf

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "languages": [
      {
        "name": "en",
        "label": "English"
      },
      {
        "name": "it",
        "label": "Italiano"
      }
    ],
    "selected": [
      "en",
      "it"
    ]
  }
}
Required parameters
parameter description
idID ID of the project
Return values
parameter description
languages available languages
selected array of names of enabled languages

/projects/list

access: [READ]

This method returns a list of projects data, specified in a comma separated input called fields.

Example 1 (json)

Request

https://joturl.com/a/i1/projects/list?fields=name,id

Query parameters

fields = name,id

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "data": [
      {
        "name": "project 1",
        "id": "208bb2aba43adbd6609bebdcaf7a5021"
      },
      {
        "name": "project 2",
        "id": "f64f3edb6cd0ab337383fc501b7ec6be"
      }
    ]
  }
}
Required parameters
parameter description
fieldsARRAY comma separated list of fields to return, available fields: client, conversions_visits, creation, ctas_visits, has_utm_parameters, id, name, qrcodes_visits, remarketings_visits, unique_visits, urls_count, visits, is_default, count
Optional parameters
parameter description
creatorSTRING filter projects by creator, available values: ID, all, me, others, only available for administrator users, see notes for details
end_dateSTRING filter projects created up to this date (inclusive)
lengthINTEGER extracts this number of items (maxmimum allowed: 100)
orderbyARRAY orders items by field, available fields: client, conversions_visits, creation, ctas_visits, has_utm_parameters, id, name, qrcodes_visits, remarketings_visits, unique_visits, urls_count, visits, is_default
searchSTRING filters items to be extracted by searching them
sortSTRING sorts items in ascending (ASC) or descending (DESC) order
startINTEGER starts to extract items from this position
start_dateSTRING filter projects created from this date (inclusive)
subuser_idID ID of the team member, when passed the field has_access is returned for each project, has_access = 1 if the team member has access to the project, has_access = 0 otherwise
whereSTRING to be used in conjunction with search, specifies where to search and it can be both, projects or links; where = projects: search for projects matching the name or the notes (default); where = links: search for tracking links matching the short url or the destination URL where = both: search for both tracking links and projects;
with_alertsBOOLEAN filter projects with security alerts
Return values
parameter description
count [OPTIONAL] total number of projects, returned only if count is passed in fields
data array containing required information on projects the user has access to

/projects/options

/projects/options/info

access: [READ]

Returns the list of available options for a specific project. Further, this method returns the exclusion list and active options.

Example 1 (json)

Request

https://joturl.com/a/i1/projects/options/info?id=409ef486319f80919b7bc5b2b2db4681

Query parameters

id = 409ef486319f80919b7bc5b2b2db4681

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "options": [
      "users",
      "jotbar",
      "defaults"
    ],
    "exclusions": [],
    "disabled": [],
    "active": [
      "defaults"
    ]
  }
}
Required parameters
parameter description
idID ID of the project
Return values
parameter description
active currently active options for the project
disabled disabled options for the project
exclusions exclusion map between options, a list of pairs (option, list of incompatible options)
options available options for the project

/projects/subusers

/projects/subusers/grant

access: [WRITE]

Grants access to the project to specified team members.

Example 1 (json)

Request

https://joturl.com/a/i1/projects/subusers/grant?id=de4efbeae2ebb2a47eab244135ec1664&add_ids=e0f9fa4d2fc0b4b4c9fcec30350928cd,9d68ca35e4170307e1fbc6b7207c9164,c218da4fb20f70dae9696cfbf0c4b7cd,0bbd2c1bb92f0e14be3d4a3897c3f47c,b0ac837253c2f7abf1661c7ff0c47d73&delete_ids=bb67b6ea4f1b8ac802f0dbf06eae1f79,14e4432f5035c169f9efa1d6653fec27,25a2290907a5018509b45087e153a23a,3a8331dc483fa714d65f944a9fb01e39,8785b3e306b7f2f2caa813a36ba85331

Query parameters

        id = de4efbeae2ebb2a47eab244135ec1664
   add_ids = e0f9fa4d2fc0b4b4c9fcec30350928cd,9d68ca35e4170307e1fbc6b7207c9164,c218da4fb20f70dae9696cfbf0c4b7cd,0bbd2c1bb92f0e14be3d4a3897c3f47c,b0ac837253c2f7abf1661c7ff0c47d73
delete_ids = bb67b6ea4f1b8ac802f0dbf06eae1f79,14e4432f5035c169f9efa1d6653fec27,25a2290907a5018509b45087e153a23a,3a8331dc483fa714d65f944a9fb01e39,8785b3e306b7f2f2caa813a36ba85331

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "added": 5,
    "deleted": 5
  }
}
Required parameters
parameter description
idID ID of the project
Optional parameters
parameter description
add_idsARRAY_OF_IDS comma-separated list of team members to grant access to the project
delete_idsARRAY_OF_IDS comma-separated list of team members to deny access to the project
Return values
parameter description
added number of team members who have been granted access to the project
deleted number of team members who were denied access to the project

/projects/watchdogs

/projects/watchdogs/alerts

/projects/watchdogs/alerts/delete

access: [WRITE]

Reset watchdog alerts for a given array of project IDs.

Example 1 (json)

Request

https://joturl.com/a/i1/projects/watchdogs/alerts/delete?ids=f9d65293d904a40de38c4c70c04bcf55,a04f6e7a5d4226c1fece068952e0f07a,12fd6cb91c7f28664740b637e7267850

Query parameters

ids = f9d65293d904a40de38c4c70c04bcf55,a04f6e7a5d4226c1fece068952e0f07a,12fd6cb91c7f28664740b637e7267850

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "count": 21,
    "ids": [
      "f9d65293d904a40de38c4c70c04bcf55",
      "a04f6e7a5d4226c1fece068952e0f07a",
      "12fd6cb91c7f28664740b637e7267850"
    ]
  }
}
Required parameters
parameter description
idsARRAY_OF_IDS comma-separated list of project IDs
Return values
parameter description
count number of resetted alerts, a maximum of 10000 alerts will be processed
ids array containing IDs passed in the ids input parameter

/projects/webhooks

/projects/webhooks/info

access: [READ]

This method return information on a webhook.

Example 1 (json)

Request

https://joturl.com/a/i1/projects/webhooks/info?id=10915dfc24cd36bf109a3f12c3970df3

Query parameters

id = 10915dfc24cd36bf109a3f12c3970df3

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "id": "10915dfc24cd36bf109a3f12c3970df3",
    "url": "https:\/\/my.custom.webhook\/",
    "type": "custom",
    "info": [],
    "notes": ""
  }
}
Required parameters
parameter description
idID ID of the project from which to remove the webhook
Return values
parameter description
id echo back of the id input parameter
info extended info of the webhook
notes notes for the webhook
type webhook type, see i1/ctas/webhooks/property for details
url URL of the webhook

/projects/webhooks/property

access: [READ]

Return available webhook types and their parameters.

Example 1 (json)

Request

https://joturl.com/a/i1/projects/webhooks/property?types=custom,zapier

Query parameters

types = custom,zapier

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "data": {
      "custom": {
        "name": "Custom webhook",
        "private": 0,
        "url_required": 1,
        "info": {
          "home": "https:\/\/joturl.zendesk.com\/hc\/en-us\/articles\/360012882199",
          "logo": "data:image\/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBkPSJtMjU2IDcuMzZjLTY1LjI1OSAwLTExOC40IDUzLjE0MS0xMTguNCAxMTguNCAwIDM4Ljk0MyAxOS4zMzMgNzMuMTIxIDQ4LjQ3IDk0LjcybC01OC40NiA5Ni41N2MtMC40NjItMC4xMzktMC45NzEtMC4yMzEtMS40OC0wLjM3LTEyLjIxLTMuMjg0LTI0LjkyOS0xLjQ4LTM1Ljg5IDQuODEtMjIuNjE2IDEzLjA4OS0zMC40MzIgNDIuMTM0LTE3LjM5IDY0Ljc1IDguNzQxIDE1LjE3IDI0LjY5NyAyMy42OCA0MS4wNyAyMy42OCA4LjA0NyAwIDE2LjIzNC0xLjk4OSAyMy42OC02LjI5IDEwLjk2MS02LjMzNiAxOC45MTYtMTYuNjUgMjIuMi0yOC44NnMxLjUyNi0yNC45MjktNC44MS0zNS44OWMtMS45ODktMy40MjItNC43MTgtNi40NzUtNy40LTkuMjVsNzAuNjctMTE2LjE4LTEwLjM2LTUuOTJjLTI3Ljg4OS0xNi40NjUtNDYuNjItNDYuOTQ0LTQ2LjYyLTgxLjc3IDAtNTIuNDQ4IDQyLjI3My05NC43MiA5NC43Mi05NC43MnM5NC43MiA0Mi4yNzIgOTQuNzIgOTQuNzJjMCA5Ljc1OS0xLjM0MSAxOC45MTYtNC4wNyAyNy43NWwyMi41NyA3LjAzYzMuNDIyLTExLjA1NCA1LjE4LTIyLjY2MiA1LjE4LTM0Ljc4IDAtNjUuMjU5LTUzLjE0MS0xMTguNC0xMTguNC0xMTguNHptMCA3MS4wNGMtMjYuMTMxIDAtNDcuMzYgMjEuMjI5LTQ3LjM2IDQ3LjM2czIxLjIyOSA0Ny4zNiA0Ny4zNiA0Ny4zNmMzLjkzMSAwIDcuODE2LTAuNTU1IDExLjQ3LTEuNDhsNTYuOTggMTAzLjIzIDUuNTUgMTAuMzYgMTAuNzMtNS41NWMxMy41NTEtNy40OTMgMjguOTA2LTExLjg0IDQ1LjUxLTExLjg0IDUyLjQ0OCAwIDk0LjcyIDQyLjI3MiA5NC43MiA5NC43MnMtNDIuMjczIDk0LjcyLTk0LjcyIDk0LjcyYy0yNS41NzYgMC00OC43OTQtMTAuMjIxLTY1Ljg2LTI2LjY0bC0xNi4yOCAxNy4wMmMyMS4yNzUgMjAuNDg5IDUwLjMyIDMzLjMgODIuMTQgMzMuMyA2NS4yNTkgMCAxMTguNC01My4xNDEgMTE4LjQtMTE4LjRzLTUzLjE0MS0xMTguNC0xMTguNC0xMTguNGMtMTYuNDE5IDAtMzEuNjM1IDQuMzAxLTQ1Ljg4IDEwLjM2bC01Mi4xNy05NC4zNWM5LjI1LTguNjQ5IDE1LjE3LTIwLjc2NiAxNS4xNy0zNC40MSAwLTI2LjEzMS0yMS4yMjktNDcuMzYtNDcuMzYtNDcuMzZ6bS0xNzAuOTQgMTY5LjA5Yy01MS41NjkgMTIuODU3LTg5LjU0IDU5LjcwOS04OS41NCAxMTUuMDcgMCA2NS4yNTkgNTMuMTQxIDExOC40IDExOC40IDExOC40IDYxLjA1IDAgMTA5Ljk0LTQ3LjEyOSAxMTYuMTgtMTA2LjU2aDExMC42M2M1LjI3MiAyMC4zOTYgMjMuNDk1IDM1LjUyIDQ1LjUxIDM1LjUyIDI2LjEzMSAwIDQ3LjM2LTIxLjIyOSA0Ny4zNi00Ny4zNnMtMjEuMjI5LTQ3LjM2LTQ3LjM2LTQ3LjM2Yy0yMi4wMTUgMC00MC4yMzggMTUuMTI0LTQ1LjUxIDM1LjUyaC0xMzIuMDl2MTEuODRjMCA1Mi40NDgtNDIuMjczIDk0LjcyLTk0LjcyIDk0Ljcycy05NC43Mi00Mi4yNzItOTQuNzItOTQuNzJjMC00NC40OTIgMzAuNjE4LTgxLjQ5MiA3MS43OC05MS43NnoiLz4KPC9zdmc+Cg=="
        },
        "parameters": [
          {
            "name": "fields",
            "type": "json",
            "maxlength": 2000,
            "description": "couples key\/values",
            "mandatory": 0,
            "example": "{\"source\":\"joturl\",\"test\":1}"
          }
        ]
      },
      "zapier": {
        "name": "Zapier",
        "private": 1,
        "url_required": 0,
        "info": {
          "home": "https:\/\/zapier.com\/",
          "logo": "https:\/\/cdn.zapier.com\/zapier\/images\/logos\/zapier-logo.png"
        },
        "parameters": []
      }
    }
  }
}
Optional parameters
parameter description
typesSTRING comma-separated list of webhook types to be returned, if empty all types are returned, available types: custom, zapier
Return values
parameter description
data array containing information on webhook parameters by type

/projects/webhooks/subscribe

access: [WRITE]

This method add a webhook subscription to a project.

Example 1 (json)

Request

https://joturl.com/a/i1/projects/webhooks/subscribe?id=cb520734b6f95f97248e1e4e59a4136a&url=https%3A%2F%2Fjoturl.com%2F

Query parameters

 id = cb520734b6f95f97248e1e4e59a4136a
url = https://joturl.com/

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "added": 1
  }
}
Required parameters
parameter description
idID ID of the project to which to add the webhook
typeSTRING webhook type, allowed types: custom, zapier
Optional parameters
parameter description max length
infoJSON info to be used with the webhook (e.g., an API key), see below for details
notesSTRING notes for the webhook 4000
unsubscribeBOOLEAN 1 to unsubscribe from the current webhook (if any) and subscribe to the new one
urlSTRING URL of the webhook, required for types: custom, zapier 4000
Return values
parameter description
added 1 on success, 0 otherwise

/projects/webhooks/test

access: [WRITE]

This endpoint sends test data to a project webhook.

Example 1 (json)

Request

https://joturl.com/a/i1/projects/webhooks/test?id=7753428965fca8b5df7ee9bce217dcc9

Query parameters

id = 7753428965fca8b5df7ee9bce217dcc9

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "ok": 1
  }
}
Required parameters
parameter description
idID ID of the project associated with the webhook
Return values
parameter description
ok 1 on success, otherwise an error is returned

/projects/webhooks/unsubscribe

access: [WRITE]

This method removes a webhook subscription to a project.

Example 1 (json)

Request

https://joturl.com/a/i1/projects/webhooks/unsubscribe?id=aecb19f6112bb2b3d428c7e52843d862

Query parameters

id = aecb19f6112bb2b3d428c7e52843d862

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "removed": 1
  }
}
Required parameters
parameter description
idID ID of the project from which to remove the webhook
Return values
parameter description
removed 1 on success, 0 otherwise

/provinces

/provinces/list

access: [READ]

This method returns a list of available Italian provinces.

Example 1 (json)

Request

https://joturl.com/a/i1/provinces/list

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "provinces": [
      {
        "label": "Agrigento",
        "code": "AG"
      },
      {
        "label": "Alessandria",
        "code": "AL"
      },
      {
        "label": "Ancona",
        "code": "AN"
      },
      {
        "label": "Aosta",
        "code": "AO"
      },
      {
        "label": "Arezzo",
        "code": "AR"
      },
      {
        "label": "Ascoli Piceno",
        "code": "AP"
      },
      {
        "label": "Asti",
        "code": "AT"
      },
      {
        "label": "Avellino",
        "code": "AV"
      },
      {
        "label": "Barletta-Andria-Trani",
        "code": "BT"
      },
      {
        "label": "Belluno",
        "code": "BL"
      },
      {
        "label": "Benevento",
        "code": "BN"
      },
      {
        "label": "Bergamo",
        "code": "BG"
      },
      {
        "label": "Biella",
        "code": "BI"
      },
      {
        "label": "Bolzano",
        "code": "BZ"
      },
      {
        "label": "Brescia",
        "code": "BS"
      },
      {
        "label": "Brindisi",
        "code": "BR"
      },
      {
        "label": "Caltanissetta",
        "code": "CL"
      },
      {
        "label": "Campobasso",
        "code": "CB"
      },
      {
        "label": "Caserta",
        "code": "CE"
      },
      {
        "label": "Catanzaro",
        "code": "CZ"
      },
      {
        "label": "Chieti",
        "code": "CH"
      },
      {
        "label": "Como",
        "code": "CO"
      },
      {
        "label": "Cosenza",
        "code": "CS"
      },
      {
        "label": "Cremona",
        "code": "CR"
      },
      {
        "label": "Crotone",
        "code": "KR"
      },
      {
        "label": "Cuneo",
        "code": "CN"
      },
      {
        "label": "Enna",
        "code": "EN"
      },
      {
        "label": "Fermo",
        "code": "FM"
      },
      {
        "label": "Ferrara",
        "code": "FE"
      },
      {
        "label": "Foggia",
        "code": "FG"
      },
      {
        "label": "Forlì-Cesena",
        "code": "FC"
      },
      {
        "label": "Frosinone",
        "code": "FR"
      },
      {
        "label": "Gorizia",
        "code": "GO"
      },
      {
        "label": "Grosseto",
        "code": "GR"
      },
      {
        "label": "Imperia",
        "code": "IM"
      },
      {
        "label": "Isernia",
        "code": "IS"
      },
      {
        "label": "L'Aquila",
        "code": "AQ"
      },
      {
        "label": "LaSpezia",
        "code": "SP"
      },
      {
        "label": "Latina",
        "code": "LT"
      },
      {
        "label": "Lecce",
        "code": "LE"
      },
      {
        "label": "Lecco",
        "code": "LC"
      },
      {
        "label": "Livorno",
        "code": "LI"
      },
      {
        "label": "Lodi",
        "code": "LO"
      },
      {
        "label": "Lucca",
        "code": "LU"
      },
      {
        "label": "Macerata",
        "code": "MC"
      },
      {
        "label": "Mantova",
        "code": "MN"
      },
      {
        "label": "Massa-Carrara",
        "code": "MS"
      },
      {
        "label": "Matera",
        "code": "MT"
      },
      {
        "label": "Modena",
        "code": "MO"
      },
      {
        "label": "Monzae Brianza",
        "code": "MB"
      },
      {
        "label": "Novara",
        "code": "NO"
      },
      {
        "label": "Nuoro",
        "code": "NU"
      },
      {
        "label": "Oristano",
        "code": "OR"
      },
      {
        "label": "Padova",
        "code": "PD"
      },
      {
        "label": "Parma",
        "code": "PR"
      },
      {
        "label": "Pavia",
        "code": "PV"
      },
      {
        "label": "Perugia",
        "code": "PG"
      },
      {
        "label": "Pesaro e Urbino",
        "code": "PU"
      },
      {
        "label": "Pescara",
        "code": "PE"
      },
      {
        "label": "Piacenza",
        "code": "PC"
      },
      {
        "label": "Pisa",
        "code": "PI"
      },
      {
        "label": "Pistoia",
        "code": "PT"
      },
      {
        "label": "Pordenone",
        "code": "PN"
      },
      {
        "label": "Potenza",
        "code": "PZ"
      },
      {
        "label": "Prato",
        "code": "PO"
      },
      {
        "label": "Ragusa",
        "code": "RG"
      },
      {
        "label": "Ravenna",
        "code": "RA"
      },
      {
        "label": "Reggio Emilia",
        "code": "RE"
      },
      {
        "label": "Rieti",
        "code": "RI"
      },
      {
        "label": "Rimini",
        "code": "RN"
      },
      {
        "label": "Rovigo",
        "code": "RO"
      },
      {
        "label": "Salerno",
        "code": "SA"
      },
      {
        "label": "Sassari",
        "code": "SS"
      },
      {
        "label": "Savona",
        "code": "SV"
      },
      {
        "label": "Siena",
        "code": "SI"
      },
      {
        "label": "Siracusa",
        "code": "SR"
      },
      {
        "label": "Sondrio",
        "code": "SO"
      },
      {
        "label": "Sud Sardegna",
        "code": "SU"
      },
      {
        "label": "Taranto",
        "code": "TA"
      },
      {
        "label": "Teramo",
        "code": "TE"
      },
      {
        "label": "Terni",
        "code": "TR"
      },
      {
        "label": "Trapani",
        "code": "TP"
      },
      {
        "label": "Trento",
        "code": "TN"
      },
      {
        "label": "Treviso",
        "code": "TV"
      },
      {
        "label": "Trieste",
        "code": "TS"
      },
      {
        "label": "Udine",
        "code": "UD"
      },
      {
        "label": "Varese",
        "code": "VA"
      },
      {
        "label": "Verbano-Cusio-Ossola",
        "code": "VB"
      },
      {
        "label": "Vercelli",
        "code": "VC"
      },
      {
        "label": "Verona",
        "code": "VR"
      },
      {
        "label": "Vibo Valentia",
        "code": "VV"
      },
      {
        "label": "Vicenza",
        "code": "VI"
      },
      {
        "label": "Viterbo",
        "code": "VT"
      }
    ]
  }
}
Return values
parameter description
provinces list of available Italian provinces

/qrcodes

/qrcodes/add

access: [WRITE]

Add a QR code template.

Example 1 (json)

Request

https://joturl.com/a/i1/qrcodes/add?name=QR+code+template&shape=square&fg_color=000000FF&bg_img_id=&bg_flip_v=0&bg_flip_h=0&bg_sslider_value=0&bg_rslider_value=0&bg_tslider_value=0&bg_color=FFFFFF00&fg_img_id=95461c6e6141f02bd76072a62037ca7d&fg_flip_v=0&fg_flip_h=0&fg_sslider_value=72&fg_rslider_value=0&fg_tslider_value=0

Query parameters

            name = QR code template
           shape = square
        fg_color = 000000FF
       bg_img_id = 
       bg_flip_v = 0
       bg_flip_h = 0
bg_sslider_value = 0
bg_rslider_value = 0
bg_tslider_value = 0
        bg_color = FFFFFF00
       fg_img_id = 95461c6e6141f02bd76072a62037ca7d
       fg_flip_v = 0
       fg_flip_h = 0
fg_sslider_value = 72
fg_rslider_value = 0
fg_tslider_value = 0

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "id": "7f505b29357ba6f2a5353ca77efa37c2",
    "name": "QR code template"
  }
}
Required parameters
parameter description max length
nameSTRING QR code template name 50
Optional parameters
parameter description
bg_colorSTRING See i1/qrcodes/list for details
bg_flip_hSTRING See i1/qrcodes/list for details
bg_flip_vSTRING See i1/qrcodes/list for details
bg_img_idID See i1/qrcodes/list for details
bg_rslider_valueSTRING See i1/qrcodes/list for details
bg_sslider_valueSTRING See i1/qrcodes/list for details
bg_tslider_valueSTRING See i1/qrcodes/list for details
fg_colorSTRING See i1/qrcodes/list for details
fg_flip_hSTRING See i1/qrcodes/list for details
fg_flip_vSTRING See i1/qrcodes/list for details
fg_img_idID See i1/qrcodes/list for details
fg_rslider_valueSTRING See i1/qrcodes/list for details
fg_sslider_valueSTRING See i1/qrcodes/list for details
fg_tslider_valueSTRING See i1/qrcodes/list for details
shapeSTRING See i1/qrcodes/list for details
Return values
parameter description
id ID of the QR code template
name echo back of the input parameter name

/qrcodes/count

access: [READ]

This method returns the number of defined QR code templates.

Example 1 (json)

Request

https://joturl.com/a/i1/qrcodes/count?search=test

Query parameters

search = test

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "count": 4
  }
}
Optional parameters
parameter description
searchSTRING filters QR code templates to be extracted by searching them
Return values
parameter description
count number of (filtered) QR code templates

/qrcodes/delete

access: [WRITE]

This method deletes a set of QR code templates by using their IDs.

Example 1 (json)

Request

https://joturl.com/a/i1/qrcodes/delete?ids=4fc099120dc7240b4e331135df78c084,ea483a00bdcf00fa2f9d5cda17244a13,ed7dc12bacf5b354d2e9e4d7d3b5ca83

Query parameters

ids = 4fc099120dc7240b4e331135df78c084,ea483a00bdcf00fa2f9d5cda17244a13,ed7dc12bacf5b354d2e9e4d7d3b5ca83

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "deleted": 3
  }
}
Required parameters
parameter description
idsARRAY_OF_IDS comma-separated list of QR code template IDs to be deleted
Return values
parameter description
deleted number of deleted QR code templates
ids [OPTIONAL] list of QR code template IDs whose delete has failed, this parameter is returned only when at least one delete error has occurred

/qrcodes/edit

access: [WRITE]

Edit a QR code template.

Example 1 (json)

Request

https://joturl.com/a/i1/qrcodes/edit?id=41afce991c19352a34e1ec3103628f56&name=new+name+for+the+QR+code+template

Query parameters

  id = 41afce991c19352a34e1ec3103628f56
name = new name for the QR code template

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "id": "41afce991c19352a34e1ec3103628f56",
    "name": "new name for the QR code template"
  }
}
Required parameters
parameter description
idID ID of the QR code template
Optional parameters
parameter description max length
bg_colorSTRING See i1/qrcodes/list for details
bg_flip_hSTRING See i1/qrcodes/list for details
bg_flip_vSTRING See i1/qrcodes/list for details
bg_img_idID See i1/qrcodes/list for details
bg_rslider_valueSTRING See i1/qrcodes/list for details
bg_sslider_valueSTRING See i1/qrcodes/list for details
bg_tslider_valueSTRING See i1/qrcodes/list for details
fg_colorSTRING See i1/qrcodes/list for details
fg_flip_hSTRING See i1/qrcodes/list for details
fg_flip_vSTRING See i1/qrcodes/list for details
fg_img_idID See i1/qrcodes/list for details
fg_rslider_valueSTRING See i1/qrcodes/list for details
fg_sslider_valueSTRING See i1/qrcodes/list for details
fg_tslider_valueSTRING See i1/qrcodes/list for details
nameSTRING See i1/qrcodes/list for details 50
shapeSTRING See i1/qrcodes/list for details
Return values
parameter description
id ID of the QR code template
name echo back of the input parameter name

/qrcodes/info

access: [READ]

This method returns information specified in a comma separated input called fields about a Qr code template.

Example 1 (json)

Request

https://joturl.com/a/i1/qrcodes/info?fields=count,id,name,shape,fg_color,bg_img_id,bg_flip_v,bg_flip_h,bg_sslider_value,bg_rslider_value,bg_tslider_value,bg_color,fg_img_id,fg_flip_v,fg_flip_h,fg_sslider_value,fg_rslider_value,fg_tslider_value

Query parameters

fields = count,id,name,shape,fg_color,bg_img_id,bg_flip_v,bg_flip_h,bg_sslider_value,bg_rslider_value,bg_tslider_value,bg_color,fg_img_id,fg_flip_v,fg_flip_h,fg_sslider_value,fg_rslider_value,fg_tslider_value

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "id": "64363575d3c76b87d9f8c2b1735d6b05",
    "name": "QR code template",
    "shape": "square",
    "fg_color": "000000FF",
    "bg_img_id": "",
    "bg_flip_v": 0,
    "bg_flip_h": 0,
    "bg_sslider_value": 0,
    "bg_rslider_value": 0,
    "bg_tslider_value": 0,
    "bg_color": "FFFFFF00",
    "fg_img_id": "49ae8b54689cb6351a387c3eef739f7d",
    "fg_flip_v": 0,
    "fg_flip_h": 0,
    "fg_sslider_value": 72,
    "fg_rslider_value": 0,
    "fg_tslider_value": 0
  }
}
Required parameters
parameter description
fieldsARRAY comma-separated list of fields to return, see i1/qrcodes/list for details
idID ID of the QR code template
Return values
parameter description
bg_color [OPTIONAL] returned only if bg_color is passed in fields
bg_flip_h [OPTIONAL] returned only if bg_flip_h is passed in fields
bg_flip_v [OPTIONAL] returned only if bg_flip_v is passed in fields
bg_img_id [OPTIONAL] returned only if bg_img_id is passed in fields
bg_rslider_value [OPTIONAL] returned only if bg_rslider_value is passed in fields
bg_sslider_value [OPTIONAL] returned only if bg_sslider_value is passed in fields
bg_tslider_value [OPTIONAL] returned only if bg_tslider_value is passed in fields
fg_color [OPTIONAL] returned only if fg_color is passed in fields
fg_flip_h [OPTIONAL] returned only if fg_flip_h is passed in fields
fg_flip_v [OPTIONAL] returned only if fg_flip_v is passed in fields
fg_img_id [OPTIONAL] returned only if fg_img_id is passed in fields
fg_rslider_value [OPTIONAL] returned only if fg_rslider_value is passed in fields
fg_sslider_value [OPTIONAL] returned only if fg_sslider_value is passed in fields
fg_tslider_value [OPTIONAL] returned only if fg_tslider_value is passed in fields
id [OPTIONAL] returned only if id is passed in fields
name [OPTIONAL] returned only if name is passed in fields
shape [OPTIONAL] returned only if shape is passed in fields

/qrcodes/list

access: [READ]

This method returns a list of user's Qr code templates, specified in a comma separated input called fields.

Example 1 (json)

Request

https://joturl.com/a/i1/qrcodes/list?fields=count,id,name,shape,fg_color,bg_img_id,bg_flip_v,bg_flip_h,bg_sslider_value,bg_rslider_value,bg_tslider_value,bg_color,fg_img_id,fg_flip_v,fg_flip_h,fg_sslider_value,fg_rslider_value,fg_tslider_value

Query parameters

fields = count,id,name,shape,fg_color,bg_img_id,bg_flip_v,bg_flip_h,bg_sslider_value,bg_rslider_value,bg_tslider_value,bg_color,fg_img_id,fg_flip_v,fg_flip_h,fg_sslider_value,fg_rslider_value,fg_tslider_value

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "count": 1,
    "data": [
      {
        "id": "64452bb0886aa66ef49ae403079bb5b2",
        "name": "QR code template",
        "shape": "square",
        "fg_color": "000000FF",
        "bg_img_id": "",
        "bg_flip_v": 0,
        "bg_flip_h": 0,
        "bg_sslider_value": 0,
        "bg_rslider_value": 0,
        "bg_tslider_value": 0,
        "bg_color": "FFFFFF00",
        "fg_img_id": "e6bd30e850fb55bb0d1187797a07553e",
        "fg_flip_v": 0,
        "fg_flip_h": 0,
        "fg_sslider_value": 72,
        "fg_rslider_value": 0,
        "fg_tslider_value": 0
      }
    ]
  }
}
Required parameters
parameter description
fieldsARRAY comma-separated list of fields to return, available fields: count, bg_color, bg_img_id, fg_color, id, fg_img_id, params, name, shape
Optional parameters
parameter description
lengthINTEGER extracts this number of QR code templates (maxmimum allowed: 100)
orderbyARRAY orders QR code templates by field, available fields: bg_color, bg_img_id, fg_color, id, fg_img_id, params, name, shape
searchSTRING filters QR code templates to be extracted by searching them
sortSTRING sorts QR code templates in ascending (ASC) or descending (DESC) order
startINTEGER starts to extract QR code templates from this position
typesSTRING NA
Return values
parameter description
data array containing information on the QR code templates, returned information depends on the fields parameter.

/qrcodes/preview

access: [READ]

This method returns a preview of a QR codes.

Example 1 (json)

Request

https://joturl.com/a/i1/qrcodes/preview?size=big&id=5fcaae67374bc963ce9e57b335909c6f

Query parameters

size = big
  id = 5fcaae67374bc963ce9e57b335909c6f

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "img": "data:image\/png;base64,NWUzMGVjOGVjNmUzOWIxYjczNGE4OGRiMmQ0OGVjZjU="
  }
}
Optional parameters
parameter description
bg_colorSTRING QR code background color, see i1/qrcodes/list for details, this parameter is ignored if id is passed
bg_flip_hSTRING 1 if the background image is flipped horizontally
bg_flip_vSTRING 1 if the background image is flipped vertically
bg_img_idID ID of the background image, see i1/qrcodes/list for details, this parameter is ignored if id is passed
bg_rslider_valueSTRING background image rotation [0-359 deg]
bg_sslider_valueSTRING background image scale [0-100%]
bg_tslider_valueSTRING background image transparency [0=totally opaque - 100=totally transparent]
checkBOOLEAN 1 to check if the QR code is readable, default value check = 0
customizationBOOLEAN 1 if the QR code preview should be generated using bg_color, fg_color, shape, fg_img_id, bg_img_id, bg_flip_v, bg_flip_h, bg_sslider_value, bg_rslider_value, bg_tslider_value, fg_flip_v, fg_flip_h, fg_sslider_value, fg_rslider_value, fg_tslider_value; this parameter is ignored if id is passed
downloadBOOLEAN 1 to force the download of the QR code to be started by this method, default value download = 0
fg_colorSTRING QR code modules color, see i1/qrcodes/list for details, this parameter is ignored if id is passed
fg_flip_hSTRING 1 if the foreground image is flipped horizontally
fg_flip_vSTRING 1 if the foreground image is flipped vertically
fg_img_idID ID of the foreground image (logo), see i1/qrcodes/list for details, this parameter is ignored if id is passed
fg_rslider_valueSTRING foreground image rotation [0-359 deg]
fg_sslider_valueSTRING foreground image scale [0-100%]
fg_tslider_valueSTRING foreground image transparency [0=totally opaque - 100=totally transparent]
idID ID of the QR code template to use for the preview
return_imageBOOLEAN 1 to return the QR code binary data regardless the format input parameter, it is useful to show QR codes on the user interface, default value return_image = 0
shapeSTRING QR code module shape, see i1/qrcodes/list for details, this parameter is ignored if id is passed
sizeSTRING size for the preview to be generated, see i1/qrcodes/property for available sizes, default value type = small
typeSTRING image type for the preview to be generated, see i1/qrcodes/property for available types, default value type = png
urlURL URL to which the QR code points, default value: http://joturl.com
Return values
parameter description
[BINARY DATA] [OPTIONAL] binary data representing the QR code image are returned only if download = 1 or return_image = 1
check [OPTIONAL] 1 if the QR code is readable, 0 otherwise, returned only if check = 1, download = 0 and return_image = 0
img [OPTIONAL] base64 of the data representing the QR code image, returned only if download = 0 and return_image = 0

/qrcodes/property

access: [READ]

This method returns a list of property of QR codes.

Example 1 (json)

Request

https://joturl.com/a/i1/qrcodes/property

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "shapes": [
      "square",
      "rsquare",
      "rrsquare",
      "rhombus",
      "ldiamond",
      "rdiamond",
      "dot",
      "rndsquare"
    ],
    "types": [
      "svg",
      "jpg"
    ],
    "sizes": [
      "small",
      "medium",
      "big"
    ]
  }
}
Return values
parameter description
shapes available shapes for the QR code modules
sizes available sizes for the QR code
types available image types for the QR code

/qrcodes/urls

/qrcodes/urls/count

access: [READ]

This method returns the number of tracking link associated to a specific QR code template.

Example 1 (json)

Request

https://joturl.com/a/i1/qrcodes/urls/count?qrcode_id=4b1ee3ae9dd25277f6734379b7af663d

Query parameters

qrcode_id = 4b1ee3ae9dd25277f6734379b7af663d

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "count": 8
  }
}
Required parameters
parameter description
qrcode_idID ID of the QR code template
Optional parameters
parameter description
searchSTRING filters tracking links to be extracted by searching them
Return values
parameter description
count number of (filtered) tracking links associated to the QR code template

/qrcodes/urls/list

access: [READ]

This method returns a list of tracking link associated to a specific QR code template.

Example 1 (json)

Request

https://joturl.com/a/i1/qrcodes/urls/list?fields=id,short_url&qrcode_id=49fa4575df083bb1e19b1cee92cd3ada

Query parameters

   fields = id,short_url
qrcode_id = 49fa4575df083bb1e19b1cee92cd3ada

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "data": [
      {
        "id": "7a64a1897c8b161377b52d6ee3eb11c3",
        "short_url": "http:\/\/jo.my\/be55e971"
      }
    ]
  }
}
Required parameters
parameter description
fieldsARRAY comma separated list of fields to return, available fields: id, notes, short_url, long_url, project_id, project_name, domain_id, domain_host, count
qrcode_idID ID of the QR code template
Optional parameters
parameter description
lengthINTEGER extracts this number of tracking links (maxmimum allowed: 100)
orderbyARRAY orders tracking links by field, available fields: id, notes, short_url, long_url, project_id, project_name, domain_id, domain_host, count
searchSTRING filters tracking links to be extracted by searching them
sortSTRING sorts tracking links in ascending (ASC) or descending (DESC) order
startINTEGER starts to extract tracking links from this position
Return values
parameter description
data array containing information on the tracking links, the returned information depends on the fields parameter.

/remarketings

/remarketings/add

access: [WRITE]

Add a remarketing pixel for the user logged in.

Example 1 (json)

Request

https://joturl.com/a/i1/remarketings/add?name=FB+remarketing+pixel¬es=this+is+a+simple+note&code_type=facebook&code_id=132434&code_html=&gdpr_id=7522395a6a22633061376e672161356b3153613638213d3d&gdpr_enabled=2

Query parameters

        name = FB remarketing pixel
       notes = this is a simple note
   code_type = facebook
     code_id = 132434
   code_html = 
     gdpr_id = 7522395a6a22633061376e672161356b3153613638213d3d
gdpr_enabled = 2

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "id": "71636c766251733639686861436d496d58426c464f773d3d",
    "name": "FB remarketing pixel",
    "notes": "this is a simple note",
    "code_type": "facebook",
    "code_id": "132434",
    "code_html": "",
    "gdpr_id": "7522395a6a22633061376e672161356b3153613638213d3d",
    "gdpr_enabled": 2
  }
}
Required parameters
parameter description max length
nameSTRING remarketing pixel name 100
Optional parameters
parameter description max length
code_htmlHTML HTML code for custom remarketing script 4000
code_idSTRING pixel ID 255
code_typeENUM pixel type, available codes: adroll, bing, custom, facebook, google_adwords, google_analytics, google_tag_manager, linkedin, manychat, pinterest, quora, reddit, snapchat, tiktok, twitter
gdpr_enabledINTEGER 0 if GDPR is disabled, 1 if GDPR is enabled and the default model is used, 2 if GDPR is enabled and the model with ID gdpr_id is used
gdpr_idID ID of the GDPR template associated with this remarketing pixel
notesSTRING remarketing pixel notes 128
Return values
parameter description
code_html [OPTIONAL] HTML code for custom remarketing script, returned only if code_html is passed
code_id [OPTIONAL] pixel ID, returned only if code_id is passed
code_type [OPTIONAL] pixel type, available codes: adroll, bing, custom, facebook, google_adwords, google_analytics, google_tag_manager, linkedin, manychat, pinterest, quora, reddit, snapchat, tiktok, twitter, returned only if code_type is passed
gdpr_enabled [OPTIONAL] 0 if GDPR is disabled, 1 if GDPR is enabled and the default model is used, 2 if GDPR is enabled and the model with ID gdpr_id is used, returned only if gdpr_enabled is passed
gdpr_id [OPTIONAL] ID of the GDPR template associated with this remarketing pixel, returned only if gdpr_id is passed
id [OPTIONAL] remarketing pixel (internal) ID, returned only if id is passed
name [OPTIONAL] remarketing pixel name, returned only if name is passed

/remarketings/count

access: [READ]

This method returns the number of defined remarketing pixels.

Example 1 (json)

Request

https://joturl.com/a/i1/remarketings/count

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "count": 8
  }
}
Optional parameters
parameter description
searchSTRING count items by searching them
typesARRAY filters list by code type(s), it can be empty, all or a comma separated list of these codes: facebook, twitter, linkedin, pinterest, bing, google_analytics, google_adwords, google_tag_manager, manychat, quora, adroll, snapchat, tiktok, reddit, custom
Return values
parameter description
count number of remarketing pixels (filtered by search if passed)

/remarketings/delete

access: [WRITE]

This method deletes a set of remarketing pixels by using their IDs.

Example 1 (json)

Request

https://joturl.com/a/i1/remarketings/delete?ids=9f74612b8b71e8294456790f6af45a1a,c68e82a708b124a5cc883f96e5b3498e,2743df51a2a3340ba4616bb486bdae1e

Query parameters

ids = 9f74612b8b71e8294456790f6af45a1a,c68e82a708b124a5cc883f96e5b3498e,2743df51a2a3340ba4616bb486bdae1e

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "deleted": 3
  }
}
Required parameters
parameter description
idsARRAY_OF_IDS comma-separated list of remarketing pixel IDs to be deleted
Return values
parameter description
deleted number of deleted remarketing pixels
ids [OPTIONAL] list of remarketing pixel IDs whose delete has failed, this parameter is returned only when at least one delete error has occurred

/remarketings/edit

access: [WRITE]

Edit fields of a remarketing pixel.

Example 1 (json)

Request

https://joturl.com/a/i1/remarketings/edit?id=306663506735386e622f69266e366a586d6b722552513d3d&name=FB+remarketing+pixel¬es=this+is+a+simple+note&code_type=facebook&code_id=132434&code_html=&gdpr_id=7522395a6a22633061376e672161356b3153613638213d3d&gdpr_enabled=2

Query parameters

          id = 306663506735386e622f69266e366a586d6b722552513d3d
        name = FB remarketing pixel
       notes = this is a simple note
   code_type = facebook
     code_id = 132434
   code_html = 
     gdpr_id = 7522395a6a22633061376e672161356b3153613638213d3d
gdpr_enabled = 2

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "id": "306663506735386e622f69266e366a586d6b722552513d3d",
    "name": "FB remarketing pixel",
    "notes": "this is a simple note",
    "code_type": "facebook",
    "code_id": "132434",
    "code_html": "",
    "gdpr_id": "7522395a6a22633061376e672161356b3153613638213d3d",
    "gdpr_enabled": 2
  }
}
Required parameters
parameter description
idID remarketing pixel (internal) ID
Optional parameters
parameter description max length
code_htmlHTML HTML code for custom remarketing script 4000
code_idSTRING pixel ID 255
code_typeENUM pixel type, available codes: adroll, bing, custom, facebook, google_adwords, google_analytics, google_tag_manager, linkedin, manychat, pinterest, quora, reddit, snapchat, tiktok, twitter
gdpr_enabledINTEGER 0 if GDPR is disabled, 1 if GDPR is enabled and the default model is used, 2 if GDPR is enabled and the model with ID gdpr_id is used
gdpr_idID ID of the GDPR template associated with this remarketing pixel
nameSTRING remarketing pixel name 100
notesSTRING remarketing pixel notes 128
Return values
parameter description
code_html [OPTIONAL] HTML code for custom remarketing script, returned only if code_html is passed
code_id [OPTIONAL] pixel ID, returned only if code_id is passed
code_type [OPTIONAL] pixel type, available codes: adroll, bing, custom, facebook, google_adwords, google_analytics, google_tag_manager, linkedin, manychat, pinterest, quora, reddit, snapchat, tiktok, twitter, returned only if code_type is passed
gdpr_enabled [OPTIONAL] 0 if GDPR is disabled, 1 if GDPR is enabled and the default model is used, 2 if GDPR is enabled and the model with ID gdpr_id is used, returned only if gdpr_enabled is passed
gdpr_id [OPTIONAL] ID of the GDPR template associated with this remarketing pixel, returned only if gdpr_id is passed
id [OPTIONAL] remarketing pixel (internal) ID, returned only if id is passed
name [OPTIONAL] remarketing pixel name, returned only if name is passed
notes [OPTIONAL] remarketing pixel notes, returned only if notes is passed

/remarketings/info

access: [READ]

This method returns information on a remarketing pixel, the returned information are that passed in the fields param (a comma separated list).

Example 1 (json)

Request

https://joturl.com/a/i1/remarketings/info?fields=clicks,code_id,code_type,creation,gdpr_enabled,gdpr_id,code_html,id,name,notes,performance,count

Query parameters

fields = clicks,code_id,code_type,creation,gdpr_enabled,gdpr_id,code_html,id,name,notes,performance,count

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "clicks": 31234,
    "code_id": "132434",
    "code_type": "facebook",
    "creation": "2018-06-06 23:25:31.703",
    "gdpr_enabled": 1,
    "gdpr_id": "",
    "id": "306663506735386e622f69266e366a586d6b722552513d3d",
    "name": "FB remarketing pixel",
    "notes": "this is a simple note",
    "performance": ".000000000000"
  }
}
Required parameters
parameter description
fieldsARRAY comma separated list of fields to return, available fields: clicks, code_id, code_type, creation, gdpr_enabled, gdpr_id, code_html, id, name, notes, performance, count
idID ID of the remarketing pixel
Return values
parameter description
clicks click generated on the remarketing pixel
code_id pixel ID
code_type pixel type, available codes: adroll, bing, custom, facebook, google_adwords, google_analytics, google_tag_manager, linkedin, manychat, pinterest, quora, reddit, snapchat, tiktok, twitter
creation creation date time (e.g., 2018-06-06 23:25:31.703)
gdpr_enabled 0 if GDPR is disabled, 1 if GDPR is enabled and the default model is used, 2 if GDPR is enabled and the model with ID gdpr_id is used
gdpr_id ID of the GDPR template associated with this remarketing pixel
id remarketing pixel (internal) ID
name remarketing pixel name
notes remarketing pixel notes
performance performance meter of this remarking code, 0 if the remarketing pixel has 0 clicks or if is was created by less than 3 hours, otherwise it is the average number of clicks per hour

/remarketings/list

access: [READ]

This method returns a list of remarking code's data, specified in a comma separated input called fields.

Example 1 (json)

Request

https://joturl.com/a/i1/remarketings/list?fields=clicks,code_id,code_type,creation,gdpr_enabled,gdpr_id,code_html,id,name,notes,performance,count

Query parameters

fields = clicks,code_id,code_type,creation,gdpr_enabled,gdpr_id,code_html,id,name,notes,performance,count

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "data": [
      {
        "clicks": 31234,
        "code_id": "132434",
        "user_retargeting_code_html": "",
        "code_type": "facebook",
        "creation": "2018-06-06 23:25:31.703",
        "gdpr_enabled": 1,
        "gdpr_id": "",
        "id": "306663506735386e622f69266e366a586d6b722552513d3d",
        "name": "FB remarketing pixel",
        "notes": "this is a simple note",
        "performance": ".000000000000"
      },
      {
        "clicks": 123,
        "code_id": "4568468",
        "user_retargeting_code_html": "",
        "code_type": "twitter",
        "creation": "2017-01-18 13:28:42.543",
        "gdpr_enabled": 1,
        "gdpr_id": "",
        "id": "806668506785886e642f69466e866a586d6b744552518d8d",
        "name": "TW remarketing pixel",
        "notes": "",
        "performance": ".000000000000"
      }
    ]
  }
}
Required parameters
parameter description
fieldsARRAY comma separated list of fields to return, available fields: clicks, code_id, code_type, creation, gdpr_enabled, gdpr_id, code_html, id, name, notes, performance, count
Optional parameters
parameter description
lengthINTEGER extracts this number of remarketing pixels (maxmimum allowed: 100)
orderbyARRAY orders remarketing pixels by field, available fields: clicks, code_id, code_type, creation, gdpr_enabled, gdpr_id, code_html, id, name, notes, performance, count
searchSTRING filters remarketing pixels to be extracted by searching them
sortSTRING sorts remarketing pixels in ascending (ASC) or descending (DESC) order
startINTEGER starts to extract remarketing pixels from this position
typesARRAY filters list by code type(s), it can be empty, all or a comma separated list of these codes: facebook, twitter, linkedin, pinterest, bing, google_analytics, google_adwords, google_tag_manager, manychat, quora, adroll, snapchat, tiktok, reddit, custom
Return values
parameter description
data array containing required information on remarketing pixels

/remarketings/property

access: [READ]

This method returns a list of supported remarketing pixels.

Example 1 (json)

Request

https://joturl.com/a/i1/remarketings/property

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "adroll": {
      "enabled": 1,
      "label": "Adroll Pixel",
      "title": "Advertiser ID|Pixel ID",
      "helper": "",
      "abbr": "AR"
    },
    "bing": {
      "enabled": 1,
      "label": "Bing Universal Event Tracking",
      "title": "UET Pixel ID",
      "helper": "",
      "abbr": "BNG"
    },
    "custom": {
      "enabled": 1,
      "label": "Custom remarketing code",
      "title": "Remarketing code (including opening and closing tags)",
      "helper": "",
      "abbr": "CSTM"
    },
    "facebook": {
      "enabled": 1,
      "label": "Facebook Pixel",
      "title": "Pixel ID",
      "helper": "",
      "abbr": "FB"
    },
    "google_adwords": {
      "enabled": 1,
      "label": "AdWords tag for websites",
      "title": "Conversion ID",
      "helper": "",
      "abbr": "ADWS"
    },
    "google_analytics": {
      "enabled": 1,
      "label": "Google Analytics Tracking code",
      "title": "Tracking ID",
      "helper": "",
      "abbr": "GA"
    },
    "google_tag_manager": {
      "enabled": 1,
      "label": "Google Tag Manager",
      "title": "GTM ID",
      "helper": "",
      "abbr": "GTAG"
    },
    "linkedin": {
      "enabled": 1,
      "label": "LinkedIn Insight Tag",
      "title": "Partner ID (linkedin_data_partner_id)",
      "helper": "",
      "abbr": "LI"
    },
    "manychat": {
      "enabled": 1,
      "label": "ManyChat Pixel\/Widget",
      "title": "Pixel\/Widget ID",
      "helper": "",
      "abbr": "MC"
    },
    "pinterest": {
      "enabled": 1,
      "label": "Pinterest Conversion Tag",
      "title": "Pinterest Pixel ID",
      "helper": "",
      "abbr": "PIN"
    },
    "quora": {
      "enabled": 1,
      "label": "Quora Pixel ID",
      "title": "Pixel ID",
      "helper": "",
      "abbr": "Q"
    },
    "reddit": {
      "enabled": 1,
      "label": "Reddit Pixel",
      "title": "ID Inserzionista",
      "helper": "",
      "abbr": "R"
    },
    "snapchat": {
      "enabled": 1,
      "label": "Snapchat Pixel",
      "title": "Pixel ID",
      "helper": "",
      "abbr": "SC"
    },
    "tiktok": {
      "enabled": 1,
      "label": "TikTok Pixel",
      "title": "Pixel ID",
      "helper": "",
      "abbr": "TT"
    },
    "twitter": {
      "enabled": 1,
      "label": "Twitter conversion tracking",
      "title": "Website Tag ID",
      "helper": "",
      "abbr": "TW"
    }
  }
}
Return values
parameter description
data array containing supported remarketing pixels

/remarketings/urls

/remarketings/urls/count

access: [READ]

This method returns the number of user's tracking links linked to a remarketing pixel.

Example 1 (json)

Request

https://joturl.com/a/i1/remarketings/urls/count

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "count": 8
  }
}
Required parameters
parameter description
remarketing_idID remarketing pixel (internal) ID
Optional parameters
parameter description
searchSTRING count tracking links by searching them
Return values
parameter description
count number of tracking links (filtered by search if passed)

/remarketings/urls/list

access: [READ]

This method returns a list of user's tracking links data linked to a remarketing pixel.

Example 1 (json)

Request

https://joturl.com/a/i1/remarketings/urls/list?fields=count,id,project_name,long_url,project_id,short_url,visits

Query parameters

fields = count,id,project_name,long_url,project_id,short_url,visits

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "data": [
      {
        "id": "e860e77365b80199095557c2cb64c9c5",
        "project_name": "project name 1",
        "long_url": "https:\/\/google.com\/",
        "project_id": "62a16299a5ce8014aafb4f1d6d014e95",
        "short_url": "https:\/\/my.domain.ext\/alias1",
        "visits": 1234
      },
      {
        "id": "f02da6582bfe37f310f9df6a279e8e25",
        "project_name": "project name 2",
        "long_url": "https:\/\/google.com\/",
        "project_id": "b53ff17e2680e2a6e972720081dc26c2",
        "short_url": "https:\/\/my.domain.ext\/alias2",
        "visits": 4321
      }
    ],
    "count": 2
  }
}
Required parameters
parameter description
fieldsARRAY comma separated list of fields to return, available fields: project_name, long_url, id, project_id, short_url, visits, count
remarketing_idID remarketing pixel (internal) ID
Optional parameters
parameter description
lengthINTEGER extracts this number of items (maxmimum allowed: 100)
orderbyARRAY orders items by field, available fields: project_name, long_url, id, project_id, short_url, visits, count
searchSTRING filters items to be extracted by searching them
sortSTRING sorts items in ascending (ASC) or descending (DESC) order
startINTEGER starts to extract items from this position
Return values
parameter description
count [OPTIONAL] total number of (filtered) urls, returned only if count is passed in fields
data array containing information on the tracking link associated with the remarketing pixel

/stats

/stats/conversions

/stats/conversions/get

access: [READ]

This method returns information about stats.

Example 1 (json)

Request

https://joturl.com/a/i1/stats/conversions/get?conversion_id=c2c4c224cce7483fa158efa15536f4d0&charts=tl_snapshot&start_date=2020-01-01&end_date=2020-10-13

Query parameters

conversion_id = c2c4c224cce7483fa158efa15536f4d0
       charts = tl_snapshot
   start_date = 2020-01-01
     end_date = 2020-10-13

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "tl_snapshot": {
      "type": "line",
      "series": [
        "visits",
        "unique_visits",
        "mobile",
        "unique_mobile",
        "qrcode_scans"
      ],
      "types": {
        "x": "Ym",
        "count": "int"
      },
      "data": {
        "visits": {
          "2020-03": {
            "count": 2
          }
        },
        "unique_visits": {
          "2020-03": {
            "count": 0
          }
        },
        "mobile": {
          "2020-03": {
            "count": 0
          }
        },
        "unique_mobile": {
          "2020-03": {
            "count": 0
          }
        },
        "qrcode_scans": {
          "2020-03": {
            "count": 0
          }
        }
      }
    }
  }
}
Required parameters
parameter description
chartsARRAY comma separated list of charts, for a detailed list of charts see i1/stats/conversions/info
Optional parameters
parameter description
conversion_idID ID of the conversion for which to extract statistics
end_dateDATE extract statistics up to this date (included)
ep00_idID filter conversion data by using the ID of the extended parameter ep00, see i1/conversions/codes/params/list for details
ep01_idID filter conversion data by using the ID of the extended parameter ep01, see i1/conversions/codes/params/list for details
ep02_idID filter conversion data by using the ID of the extended parameter ep02, see i1/conversions/codes/params/list for details
ep03_idID filter conversion data by using the ID of the extended parameter ep03, see i1/conversions/codes/params/list for details
ep04_idID filter conversion data by using the ID of the extended parameter ep04, see i1/conversions/codes/params/list for details
ep05_idID filter conversion data by using the ID of the extended parameter ep05, see i1/conversions/codes/params/list for details
ep06_idID filter conversion data by using the ID of the extended parameter ep06, see i1/conversions/codes/params/list for details
ep07_idID filter conversion data by using the ID of the extended parameter ep07, see i1/conversions/codes/params/list for details
ep08_idID filter conversion data by using the ID of the extended parameter ep08, see i1/conversions/codes/params/list for details
ep09_idID filter conversion data by using the ID of the extended parameter ep09, see i1/conversions/codes/params/list for details
ep10_idID filter conversion data by using the ID of the extended parameter ep10, see i1/conversions/codes/params/list for details
ep11_idID filter conversion data by using the ID of the extended parameter ep11, see i1/conversions/codes/params/list for details
ep12_idID filter conversion data by using the ID of the extended parameter ep12, see i1/conversions/codes/params/list for details
ep13_idID filter conversion data by using the ID of the extended parameter ep13, see i1/conversions/codes/params/list for details
ep14_idID filter conversion data by using the ID of the extended parameter ep14, see i1/conversions/codes/params/list for details
map_typeSTRING used only when charts contains tl_map, see i1/stats/projects/get for details
param_idID filter conversion data by using the ID of the parameter, see i1/conversions/codes/params/list for details
start_dateDATE extract statistics from this date (included)
url_idID ID of the tracking link for which to extract statistics
Return values
parameter description
data JSON object in the format {"chart": {[CHART INFO]}}

/stats/conversions/info

access: [READ]

This method returns information about stats.

Example 1 (json)

Request

https://joturl.com/a/i1/stats/conversions/info?conversion_id=45d6424bc62f1ba00121e5cf0d279fd3&url_id=bc1cbd4c4ecab7fd13e0718c47ec7d2d

Query parameters

conversion_id = 45d6424bc62f1ba00121e5cf0d279fd3
       url_id = bc1cbd4c4ecab7fd13e0718c47ec7d2d

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": [
    "tl_snapshot",
    "tl_map",
    "tl_countries",
    "tl_regions",
    "tl_cities",
    "tl_languages",
    "tl_referrers",
    "tl_devices",
    "tl_browsers",
    "tl_platforms",
    "tl_operating_systems",
    "tl_ips",
    "tl_bots",
    "tl_conversions",
    "tl_commissions"
  ]
}
Optional parameters
parameter description
conversion_idID ID of the conversion for which to extract statistics
url_idID ID of the tracking link for which to extract statistics
Return values
parameter description
data array of available charts for the given conversion_id and url_id

/stats/ctas

/stats/ctas/get

access: [READ]

This method returns information about stats.

Example 1 (json)

Request

https://joturl.com/a/i1/stats/ctas/get?charts=summary_snapshot&start_date=2018-09-01&end_date=2020-10-13

Query parameters

    charts = summary_snapshot
start_date = 2018-09-01
  end_date = 2020-10-13

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "summary_snapshot": {
      "type": "line",
      "series": [
        "ctas_visits",
        "ctas_clicks"
      ],
      "types": {
        "x": "Ym",
        "visits": "int",
        "clicks": "int"
      },
      "data": {
        "ctas_visits": {
          "2018-09": {
            "visits": 27
          },
          "2019-03": {
            "visits": 27
          },
          "2020-02": {
            "visits": 8
          },
          "2020-03": {
            "visits": 6
          },
          "2020-05": {
            "visits": 17
          },
          "2020-10": {
            "visits": 17
          }
        },
        "ctas_clicks": {
          "2018-09": {
            "clicks": 2
          },
          "2019-03": {
            "clicks": 2
          },
          "2020-02": {
            "clicks": 1
          },
          "2020-03": {
            "clicks": 1
          },
          "2020-05": {
            "clicks": 9
          },
          "2020-10": {
            "clicks": 2
          }
        }
      }
    }
  }
}
Required parameters
parameter description
chartsARRAY comma separated list of charts, for a detailed list of charts see i1/stats/ctas/info
Optional parameters
parameter description
cta_idID ID of the CTA for which to extract statistics
end_dateDATE extract statistics up to this date (included)
map_typeSTRING used only when charts contains tl_map, see i1/stats/projects/get for details
start_dateDATE extract statistics from this date (included)
url_idID ID of the tracking link for which to extract statistics
Return values
parameter description
data JSON object in the format {"chart": {[CHART INFO]}}

/stats/ctas/info

access: [READ]

This method returns information about stats.

Example 1 (json)

Request

https://joturl.com/a/i1/stats/ctas/info?cta_id=565e27fdf2e123efcb99cd50f6873a28&url_id=dbc5fe5e394e4141b606c1da507a1c03

Query parameters

cta_id = 565e27fdf2e123efcb99cd50f6873a28
url_id = dbc5fe5e394e4141b606c1da507a1c03

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": [
    "tl_snapshot",
    "tl_map",
    "tl_countries",
    "tl_regions",
    "tl_cities",
    "tl_languages",
    "tl_referrers",
    "tl_devices",
    "tl_browsers",
    "tl_platforms",
    "tl_operating_systems",
    "tl_ips",
    "tl_bots",
    "tl_ctas_conversions",
    "tl_ctas_metrics"
  ]
}
Optional parameters
parameter description
cta_idID ID of the CTA for which to extract statistics
url_idID ID of the tracking link for which to extract statistics
Return values
parameter description
data array of available charts for the given cta_id and url_id

/stats/projects

/stats/projects/get

access: [READ]

This method returns the charts requested in the charts parameter.

Example 1 (json)

Request

https://joturl.com/a/i1/stats/projects/get?charts=summary_snapshot&start_date=2020-10-05&end_date=2020-10-11

Query parameters

    charts = summary_snapshot
start_date = 2020-10-05
  end_date = 2020-10-11

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "summary_snapshot": {
      "type": "line",
      "series": [
        "visits",
        "unique_visits",
        "mobile",
        "unique_mobile",
        "qrcode_scans"
      ],
      "types": {
        "x": "Ymd",
        "count": "int"
      },
      "data": {
        "visits": {
          "2020-10-05": {
            "count": 2
          },
          ...: {
            "count": 3
          },
          "2020-10-11": {
            "count": 19
          }
        },
        "unique_visits": {
          "2020-10-05": {
            "count": 2
          },
          ...: {
            "count": 3
          },
          "2020-10-11": {
            "count": 5
          }
        },
        "mobile": {
          "2020-10-05": {
            "count": 0
          },
          ...: {
            "count": 2
          },
          "2020-10-11": {
            "count": 0
          }
        },
        "unique_mobile": {
          "2020-10-05": {
            "count": 0
          },
          ...: {
            "count": 2
          },
          "2020-10-11": {
            "count": 0
          }
        },
        "qrcode_scans": {
          "2020-10-05": {
            "count": 0
          },
          ...: {
            "count": 0
          },
          "2020-10-11": {
            "count": 0
          }
        }
      }
    }
  }
}
Required parameters
parameter description
chartsARRAY comma separated list of charts, for a detailed list of charts see i1/stats/projects/info
Optional parameters
parameter description
end_dateDATE extract statistics up to this date (included)
map_typeSTRING used only when charts contains tl_map, see before for details
mu_idxINTEGER only valid for tracking links with the InstaUrl option enabled, it allows you to specify the extraction of a specific URL: this value is the index of the corresponding URL in the option (in the same order in which they appear)
project_idID ID of the project for which to extract statistics
start_dateDATE extract statistics from this date (included)
url_idID ID of the tracking link for which to extract statistics
Return values
parameter description
data JSON object in the format {"chart": {[CHART INFO]}}

/stats/projects/info

access: [READ]

This method returns available charts for the given inputs.

Example 1 (json)

Request

https://joturl.com/a/i1/stats/projects/info?project_id=858fb8735a1b99b0865922b5c59abbde&url_id=160001ee769929d4358b4bcc5b962406

Query parameters

project_id = 858fb8735a1b99b0865922b5c59abbde
    url_id = 160001ee769929d4358b4bcc5b962406

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": [
    "tl_snapshot",
    "tl_map",
    "tl_countries",
    "tl_regions",
    "tl_cities",
    "tl_languages",
    "tl_referrers",
    "tl_devices",
    "tl_browsers",
    "tl_platforms",
    "tl_operating_systems",
    "tl_ips",
    "tl_bots"
  ]
}
Optional parameters
parameter description
project_idID ID of the project for which to extract statistics
url_idID ID of the tracking link for which to extract statistics
Return values
parameter description
data array of available charts for the given project_id and url_id

/subusers

/subusers/accounts

/subusers/accounts/count

access: [READ]

This method returns the number of accounts associated with the logged user.

Example 1 (json)

Request

https://joturl.com/a/i1/subusers/accounts/count

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "count": 2
  }
}
Optional parameters
parameter description
searchSTRING filters associated accounts to be extracted by searching them
Return values
parameter description
count total number of associated accounts (filtered by parameter search)

/subusers/accounts/list

access: [READ]

This method returns a list of accounts associated with the logged user.

Example 1 (json)

Request

https://joturl.com/a/i1/subusers/accounts/list

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "count": 2,
    "data": [
      {
        "id": "93e98f779598e86084720764e32d363f",
        "current": 1,
        "full_name": "Jon Smith",
        "email": "jon.smith.271@example.com",
        "short_name": "JS",
        "is_readonly": 0,
        "is_subuser": 0,
        "parent_full_name": "",
        "parent_short_name": "",
        "has_access_to_dashboard": 1,
        "creation": "2027-09-05 18:31:32",
        "domains": []
      },
      {
        "id": "193f4a9393894cc1c5bba21fd14f30ef",
        "current": 0,
        "full_name": "Jon Smith (subuser)",
        "email": "jon.smith.271@example.com",
        "short_name": "JS",
        "is_readonly": 0,
        "is_subuser": 1,
        "parent_full_name": "Maria Garcia",
        "parent_short_name": "MG",
        "has_access_to_dashboard": 0,
        "creation": "2026-01-10 18:31:32",
        "domains": [
          "my.custom.domain"
        ]
      }
    ]
  }
}
Optional parameters
parameter description
searchSTRING filters associated accounts to be extracted by searching them
Return values
parameter description
count total number of associated accounts (filtered by parameter search)
data array containing information on the associated accounts

/subusers/accounts/swap

access: [READ]

This method allows the logged in user to access another account to which he/she has access.

Example 1 (json)

Request

https://joturl.com/a/i1/subusers/accounts/swap?id=3026929e919d5e316d16864bb195621e

Query parameters

id = 3026929e919d5e316d16864bb195621e

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "logged": 1
  }
}
Required parameters
parameter description
idSTRING ID of the account to swap to, this ID can be obtained by calling i1/subusers/accounts/list
Return values
parameter description
logged 1 on success, an invalid parameter error otherwise

/subusers/add

access: [WRITE]

This method adds a new team member.

Example 1 (json)

Request

https://joturl.com/a/i1/subusers/add?email=email.of%40the.team.member&full_name=full+name+of+the+team+member

Query parameters

    email = email.of@the.team.member
full_name = full name of the team member

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "email": "email.of@the.team.member",
    "full_name": "full name of the team member",
    "added": "1 on success, 0 otherwise",
    "id": "f4ff2513320e12eefda69c84a6166aca",
    "level": 5,
    "gender": "m",
    "role": "",
    "group": "",
    "creation": "2025-01-19 18:31:32",
    "is_readonly": 0,
    "is_confirmed": 0,
    "permission_id": null,
    "permission_name": null,
    "is_alias": 0,
    "alias_email": "",
    "alias_full_name": ""
  }
}
Required parameters
parameter description max length
emailSTRING email address of the team member 255
full_nameSTRING full name of the team member 255
Optional parameters
parameter description max length
genderSTRING gender of the team member, possible values: [m, f], default: m 1
groupSTRING group of the team member 50
is_aliasBOOLEAN 1 if the user has full access to the account of the user who created it
is_readonlyBOOLEAN 1 if the team member can only read information
locationSTRING 2-digit code of the country (ISO Alpha-2) the team member is based on (e.g., US) 50
permission_idID ID of the subuser permission (can only be passed by administrator/root users)
phone_numberSTRING phone number 255
roleSTRING role of the team member 50
Return values
parameter description
added 1 on success, 0 otherwise
alias_email email of the alias user if is_alias = 1, empty othrwise
alias_full_name full name of the alias user if is_alias = 1, empty othrwise
creation creation date/time
email echo back of the email input parameter
full_name echo back of the full_name input parameter
gender echo back of the gender input parameter
group echo back of the group input parameter
id ID of the team member
is_alias echo back of the is_alias input parameter
is_confirmed 1 if the team member confirmed the account by clicking on the confirmation link sent by email, 0 otherwise. The return value is always 0 when adding a new team member. Read the note below for details.
is_readonly echo back of the is_readonly input parameter
level level of the team member (level represents the user hierarchy, parent users have a lower level than childrens)
permission_id ID of the subuser permission (only returned for administrator/root users)
permission_name name of the subuser permission (only returned for administrator/root users)
role echo back of the role input parameter

/subusers/count

access: [READ]

This method returns the number of team members.

Example 1 (json)

Request

https://joturl.com/a/i1/subusers/count

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "count": 10
  }
}
Optional parameters
parameter description
searchSTRING filters team members to be extracted by searching them
with_projectsBOOLEAN 1 to count only team members who created projects still present in the dashboard, 0 otherwise (default)
Return values
parameter description
count the number of team members

/subusers/delete

access: [WRITE]

This method deletes a team member.

Example 1 (json)

Request

https://joturl.com/a/i1/subusers/delete?ids=68cb5d9a010f2f45284a45c80f295bc8,2f3a3bb51d1a82723c893a0cfd65c654,cacd4086378248382773cce2958829f8,b364c86ae2e14b27521f42fd65916973

Query parameters

ids = 68cb5d9a010f2f45284a45c80f295bc8,2f3a3bb51d1a82723c893a0cfd65c654,cacd4086378248382773cce2958829f8,b364c86ae2e14b27521f42fd65916973

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "deleted": 4
  }
}
Required parameters
parameter description
idsARRAY_OF_IDS comma-separated list of team members to remove
Return values
parameter description
deleted number of deleted team members on success, 0 otherwise

/subusers/edit

access: [WRITE]

This method edits a team member.

Example 1 (json)

Request

https://joturl.com/a/i1/subusers/edit?full_name=new+full+name+of+the+team+member

Query parameters

full_name = new full name of the team member

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "full_name": "new full name of the team member",
    "updated": "1 on success, 0 otherwise",
    "id": "dc5f294025015a91ad2ecb2ade17be29",
    "is_alias": 0,
    "alias_email": "",
    "alias_full_name": ""
  }
}
Required parameters
parameter description
idID ID of the team member
Optional parameters
parameter description max length
full_nameSTRING full name of the team member 255
genderSTRING gender of the team member, possible values: [m, f], default: m 1
groupSTRING group of the team member 50
is_aliasBOOLEAN 1 if the user has full access to the account of the user who created it
is_confirmedBOOLEAN 1 to enable the team member, 0 to disable
is_readonlyBOOLEAN 1 if the team member can only read information
locationSTRING 2-digit code of the country (ISO Alpha-2) the team member is based on (e.g., US) 50
permission_idID ID of the subuser permission (can only be passed by administrator/root users)
phone_numberSTRING phone number 255
roleSTRING role of the team member 50
Return values
parameter description
alias_email email of the alias user if is_alias = 1, empty otherwise
alias_full_name full name of the alias user if is_alias = 1, empty otherwise
creation [OPTIONAL] creation date/time
full_name [OPTIONAL] echo back of the full_name input parameter
gender [OPTIONAL] echo back of the gender input parameter
group [OPTIONAL] echo back of the group input parameter
id ID of the team member
is_alias echo back of the is_alias input parameter
is_readonly [OPTIONAL] echo back of the is_readonly input parameter
location [OPTIONAL] echo back of the location input parameter
permission_id ID of the subuser permission (only returned for administrator/root users)
permission_name name of the subuser permission (only returned for administrator/root users)
phone_number [OPTIONAL] echo back of the phone_number input parameter
role [OPTIONAL] echo back of the role input parameter
updated 1 on success, 0 otherwise

/subusers/info

access: [READ]

This method returns info about a team member.

Example 1 (json)

Request

https://joturl.com/a/i1/subusers/info?fields=id,level,email,full_name,group,role,is_readonly,last_login,is_confirmed,permission_id,permission_name,is_alias&id=99dbd567f526e79a807797f98bffb792

Query parameters

fields = id,level,email,full_name,group,role,is_readonly,last_login,is_confirmed,permission_id,permission_name,is_alias
    id = 99dbd567f526e79a807797f98bffb792

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "data": [
      {
        "id": "99dbd567f526e79a807797f98bffb792",
        "level": 1,
        "email": "email.of@the.team.member",
        "full_name": "full name of the team member",
        "group": "",
        "role": "Tester",
        "is_readonly": 0,
        "last_login": "2025-01-19 18:31:32",
        "is_confirmed": 1,
        "permission_id": "c8ec8f717530e559fdc2187eee32ca73",
        "permission_name": "permission name",
        "is_alias": 0,
        "alias_email": "",
        "alias_full_name": ""
      }
    ]
  }
}
Required parameters
parameter description
fieldsARRAY comma-separated list of fields to return, available fields: count, is_confirmed, creation, email, full_name, gender, group, id, is_readonly, last_login, level, location, name, phone_number, role
idID ID of the team member
Return values
parameter description
data array containing information on the team members, returned information depends on the fields parameter.

/subusers/list

access: [READ]

This method returns a list of team members.

Example 1 (json)

Request

https://joturl.com/a/i1/subusers/list?fields=count,id,level,email,full_name,group,role,is_readonly,last_login,is_confirmed,permission_id,permission_name,is_alias

Query parameters

fields = count,id,level,email,full_name,group,role,is_readonly,last_login,is_confirmed,permission_id,permission_name,is_alias

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "count": 1,
    "data": [
      {
        "id": "0d8cc5fbcdd2d83377966044f0d87bea",
        "level": 1,
        "email": "email.of@the.team.member",
        "full_name": "full name of the team member",
        "group": "",
        "role": "Tester",
        "is_readonly": 0,
        "last_login": "2025-01-19 18:31:32",
        "is_confirmed": 1,
        "permission_id": "04e77f4a6cabfaabca27b62b3ba5d023",
        "permission_name": "permission name",
        "is_alias": 0,
        "alias_email": "",
        "alias_full_name": ""
      }
    ]
  }
}
Required parameters
parameter description
fieldsARRAY comma-separated list of fields to return, available fields: count, is_confirmed, creation, email, full_name, gender, group, id, is_readonly, last_login, level, location, name, phone_number, role
Optional parameters
parameter description
lengthINTEGER extracts this number of team members (maxmimum allowed: 100)
orderbyARRAY orders team members by field, available fields: is_confirmed, creation, email, full_name, gender, group, id, is_readonly, last_login, level, location, name, phone_number, role
project_idID ID of the project, when passed the field has_access is returned for each team member, has_access = 1 if the team member has access to the project, has_access = 0 otherwise
searchSTRING filters team members to be extracted by searching them
sortSTRING sorts team members in ascending (ASC) or descending (DESC) order
startINTEGER starts to extract team members from this position
with_projectsBOOLEAN 1 to extract only team members who created projects still present in the dashboard, 0 otherwise (default)
Return values
parameter description
count [OPTIONAL] total number of team members, returned only if count is passed in fields
data array containing information on the team members, returned information depends on the fields parameter.

/subusers/projects

/subusers/projects/grant

access: [WRITE]

Grants access to projects to the team member.

Example 1 (json)

Request

https://joturl.com/a/i1/subusers/projects/grant?id=31905cb0fcf332ee6a0e1744450ea590&add_ids=8be98e75aa1234bb693aad6034750f1b,5e773abcb84955a30ee73a693fd94312,0c293d55bbee76f80043b013366a0038,36c2a17353a3f6dde79d3a7184f0a42d&delete_ids=98477dfbb879d97adad7edf010dec5c4,0a59c045c2b8a6ecea037e5d47ff22be,0e48c74858cd057a357c3d38b95c6af7,1ae0558a77cec144eb1c81a0aad55668,3f4ff2979ba97126d19e3c1a8a39f281

Query parameters

        id = 31905cb0fcf332ee6a0e1744450ea590
   add_ids = 8be98e75aa1234bb693aad6034750f1b,5e773abcb84955a30ee73a693fd94312,0c293d55bbee76f80043b013366a0038,36c2a17353a3f6dde79d3a7184f0a42d
delete_ids = 98477dfbb879d97adad7edf010dec5c4,0a59c045c2b8a6ecea037e5d47ff22be,0e48c74858cd057a357c3d38b95c6af7,1ae0558a77cec144eb1c81a0aad55668,3f4ff2979ba97126d19e3c1a8a39f281

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "added": 4,
    "deleted": 5
  }
}
Required parameters
parameter description
idID ID of the team member
Optional parameters
parameter description
add_idsARRAY_OF_IDS comma separated list of project IDs to grant access to the team member
delete_idsARRAY_OF_IDS comma-separated list of project IDs to deny access to the team member
Return values
parameter description
added number of project IDs that the team member has been granted access to
deleted number of project IDs that the team member was denied access to

/subusers/roles_groups

/subusers/roles_groups/list

access: [READ]

This method returns a list of roles or groups previously used.

Example 1 (json)

Request

https://joturl.com/a/i1/subusers/roles_groups/list?type=role&search=test

Query parameters

  type = role
search = test

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": [
    "test",
    "Tester",
    "main tester"
  ]
}
Required parameters
parameter description
typeSTRING type to list, available types: [role, group]
Optional parameters
parameter description
lengthINTEGER extracts this number of roles &amp; groups (maxmimum allowed: 100)
searchSTRING filters roles &amp; groups to be extracted by searching them
startINTEGER starts to extract roles &amp; groups from this position
Return values
parameter description
[ARRAY] array containing requested information.

/urls

/urls/balancers

/urls/balancers/clone

access: [WRITE]

Clone the balancer configuration from a tracking link to another.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/balancers/clone?from_url_id=17cf38df51d3d44ffedb142640da8b02&to_url_id=77424523b6a0384d7750b98362247680

Query parameters

from_url_id = 17cf38df51d3d44ffedb142640da8b02
  to_url_id = 77424523b6a0384d7750b98362247680

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "cloned": 0
  }
}
Required parameters
parameter description
from_url_idID ID of the tracking link you want to copy the balancer configuration from
to_url_idID ID of the tracking link you want to copy the balancer configuration to
Return values
parameter description
cloned 1 on success, 0 otherwise

/urls/balancers/delete

access: [WRITE]

Delete the smart balancer linked to a tracking link.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/balancers/delete?id=ab91021409c485eaad7ab3d94bb1ce35

Query parameters

id = ab91021409c485eaad7ab3d94bb1ce35

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "deleted": 1
  }
}
Required parameters
parameter description
idID ID of the tracking link from which to remove the balancer
Return values
parameter description
deleted 1 on success, 0 otherwise

/urls/balancers/edit

access: [WRITE]

Set the smart balancer for a tracking link.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/balancers/edit?id=52b9ba5e615ef44f8e6ccbb3e492ebf7&type=WEIGHTED&urls=%5B%22https%3A%5C%2F%5C%2Fwww.joturl.com%5C%2Fpricing%5C%2F%22,%22https%3A%5C%2F%5C%2Fwww.joturl.com%5C%2F%22%5D&weights=%5B22.22,77.78%5D

Query parameters

     id = 52b9ba5e615ef44f8e6ccbb3e492ebf7
   type = WEIGHTED
   urls = ["https:\/\/www.joturl.com\/pricing\/","https:\/\/www.joturl.com\/"]
weights = [22.22,77.78]

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "enabled": 1
  }
}
Required parameters
parameter description
idID ID of the tracking link on which to enable the balancer
typeSTRING balancer type, available types: SEQUENTIAL, WEIGHTED, WEIGHTED_FIXED, RANDOM, RANDOM_FIXED, SWITCHING, SPLIT_TEST
urlsJSON JSON array of destination URLs to be used with the balancer, a maximum of 5 destination URLs can be used when type = SPLIT_TEST, otherwise a maximum of 100 destination URLs is allowed
Optional parameters
parameter description
conversionsARRAY_OF_IDS conversion codes to be used when type = SPLIT_TEST
weightsJSON JSON array of floats between 0.0 and 100.0, the balancer will use these floats to randomly select destination URLs, this parameter is mandatory for type = WEIGHTED and type = WEIGHTED_FIXED, it must contain the same number of items in urls
Return values
parameter description
enabled 1 on success, 0 otherwise

/urls/balancers/info

access: [READ]

Get the smart balancer linked to a tracking link.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/balancers/info?id=dca135ff2cebd8fda4c103d9635409a4

Query parameters

id = dca135ff2cebd8fda4c103d9635409a4

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "id": "dca135ff2cebd8fda4c103d9635409a4",
    "type": "WEIGHTED",
    "info": [
      {
        "url": "https:\/\/www.joturl.com\/pricing\/",
        "weight": "22.22"
      },
      {
        "url": "https:\/\/www.joturl.com\/",
        "weight": "77.78"
      }
    ]
  }
}
Required parameters
parameter description
idID ID of the tracking link whose balancer configuration is desired
Return values
parameter description
id echo back of parameter id
info array of couples (url, weight)
type balancer type, see i1/urls/balancers/edit for details

/urls/balancers/property

access: [READ]

This method returns smart balancer types that are available to the logged users.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/balancers/property

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "types": {
      "SEQUENTIAL": {
        "is_split": 0
      },
      "WEIGHTED": {
        "is_split": 0
      },
      "WEIGHTED_FIXED": {
        "is_split": 0
      },
      "RANDOM": {
        "is_split": 0
      },
      "RANDOM_FIXED": {
        "is_split": 0
      },
      "SWITCHING": {
        "is_split": 0
      },
      "SPLIT_TEST": {
        "is_split": 1
      }
    }
  }
}
Return values
parameter description
types array of smart balancer types

/urls/cloaking

/urls/cloaking/clone

access: [WRITE]

Clone a cloaking configuration from a tracking link to another.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/cloaking/clone?from_url_id=545cde9ccdc5bd53828a8e09ce078412&to_url_id=c76e21b25a13224af89393dfea6f40d1

Query parameters

from_url_id = 545cde9ccdc5bd53828a8e09ce078412
  to_url_id = c76e21b25a13224af89393dfea6f40d1

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "cloned": 0
  }
}
Required parameters
parameter description
from_url_idID ID of the tracking link you want to copy cloaking configuration from
to_url_idID ID of the tracking link you want to copy cloaking configuration to
Return values
parameter description
cloned 1 on success, 0 otherwise

/urls/cloaking/delete

access: [WRITE]

Delete the cloaking configuration of a tracking link.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/cloaking/delete?id=7918187a960c13041ea81a709bb21611

Query parameters

id = 7918187a960c13041ea81a709bb21611

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "deleted": 1
  }
}
Required parameters
parameter description
idID ID of the tracking link from which to remove a cloaking configuration
Return values
parameter description
deleted 1 on success, 0 otherwise

/urls/cloaking/edit

access: [WRITE]

Given the ID of a tracking link, sets a cloaking configuration.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/cloaking/edit?id=72babc3dfd1d73746300f1d4b7ea845a&settings=%7B%22block_url%22%3A%22https%3A%5C%2F%5C%2Fwww.google.com%5C%2F%22,%22corporate_ips_and_bots%22%3A%7B%22block%22%3Atrue%7D,%22desktop_devices%22%3A%7B%22block%22%3Atrue%7D,%22mobile_devices%22%3A%7B%22block%22%3Afalse%7D,%22countries%22%3A%7B%22block%22%3Atrue,%22mode%22%3A%22deny_all_except%22,%22list%22%3A%5B%22IT%22,%22US%22,%22FR%22%5D%7D%7D

Query parameters

      id = 72babc3dfd1d73746300f1d4b7ea845a
settings = {"block_url":"https:\/\/www.google.com\/","corporate_ips_and_bots":{"block":true},"desktop_devices":{"block":true},"mobile_devices":{"block":false},"countries":{"block":true,"mode":"deny_all_except","list":["IT","US","FR"]}}

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "enabled": 1
  }
}
Required parameters
parameter description
idID ID of the tracking link
settingsJSON stringified JSON of the cloaking configuration, see i1/urls/cloaking/info for details
Return values
parameter description
enabled 1 if the cloaking option has been successfully enabled, 0 otherwise

/urls/cloaking/info

access: [READ]

Returns information on the cloaking configuration.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/cloaking/info?id=9a270b28dcf0586078a05ce55090f45f

Query parameters

id = 9a270b28dcf0586078a05ce55090f45f

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "id": "9a270b28dcf0586078a05ce55090f45f",
    "settings": "{\"block_url\":\"https:\\\/\\\/www.google.com\\\/\",\"corporate_ips_and_bots\":{\"block\":true},\"desktop_devices\":{\"block\":true},\"mobile_devices\":{\"block\":false},\"countries\":{\"block\":true,\"mode\":\"deny_all_except\",\"list\":[\"IT\",\"US\",\"FR\"]}}"
  }
}
Required parameters
parameter description
idID ID of the tracking link
Return values
parameter description
data [OPTIONAL] stringified JSON of the cloaking configuration, this parameter is returned only if a cloaking configuration is available for the tracking link

/urls/clone

access: [WRITE]

This method clones options of a tracking link.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/clone?fields=id,short_url&src_id=3bc92450d2335e979b2f6da9965e7a0a&alias=507c717a&long_url=https%3A%2F%2Fwww.joturl.com%2F&domain_id=682800fa7918d9f13d5268e1b11e8694

Query parameters

   fields = id,short_url
   src_id = 3bc92450d2335e979b2f6da9965e7a0a
    alias = 507c717a
 long_url = https://www.joturl.com/
domain_id = 682800fa7918d9f13d5268e1b11e8694

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "cloned": 1,
    "added": 0,
    "removed": 0,
    "failed": [],
    "id": "d7f0a86e3e07cf0e77cba74fcb023630",
    "short_url": "http:\/\/jo.my\/507c717a"
  }
}
Required parameters
parameter description
src_idID ID of the tracking link to be cloned
Optional parameters
parameter description max length
aliasSTRING alias for the cloned tracking link, see i1/urls/shorten for details 510
domain_idID ID of the domain for the cloned tracking link, if not specified the domain of the source tracking link will be used
dst_idID ID of the tracking link on which to clone the options
fieldsARRAY comma separated list of fields to return after cloning is complete, see method i1/urls/list for reference.
long_urlSTRING destination URL for the cloned tracking link, not available for tracking pixels, if empty, the destination URL of the source tracking link will be used 4000
notesSTRING notes for the cloned tracking link 255
project_idID ID of the project where the cloned tracking link will be put in, if not specified the project of the source tracking link will be used
tagsARRAY comma-separated list of tags for the cloned tracking link
Return values
parameter description
[FIELDS] [OPTIONAL] fields containing information on cloned tracking links, the information returned depends on the fields parameter, no field is returned if the fields parameter is empty. See i1/urls/list for details on fields
added total number of options added or changed in the destination tracking link
cloned total number of cloned options (removed + added/changed), this parameter can be 0 if the tracking link you cloned has no options, or if an error occurred, in the latter case the parameter failed is not empty
failed list of options that could not be added, modified or deleted from the destination tracking link due to an error, this parameter can be empty when the cloned tracking link has no options or when no error occurred during cloning, see i1/urls/options/list for details on returned values
removed total number of options removed in the destination tracking link

/urls/conversions

/urls/conversions/add

access: [WRITE]

Add conversion codes to a tracking link.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/conversions/add?url_id=25fbdbfab9fd0b7d502127ed85ee491a&ids=e80facf199ab33470660cef4b19080e8,cdcee0fb7277934afa3364ad601a04c1,1674f73fa9f6e03a5ae1028d377d2a93,e6af4382b3d56a316c187be78377a4b2,4dbf8d48a98bb1219003497ff9149c1e

Query parameters

url_id = 25fbdbfab9fd0b7d502127ed85ee491a
   ids = e80facf199ab33470660cef4b19080e8,cdcee0fb7277934afa3364ad601a04c1,1674f73fa9f6e03a5ae1028d377d2a93,e6af4382b3d56a316c187be78377a4b2,4dbf8d48a98bb1219003497ff9149c1e

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "added": 5
  }
}
Required parameters
parameter description
idsARRAY_OF_IDS comma-separated list of conversion codes to add (maxmimum number of conversion codes: 5)
url_idID ID of the tracking link to which to add one or more conversion codes
Return values
parameter description
added 0 on error, the number of added conversion codes otherwise

/urls/conversions/clone

access: [WRITE]

Clone the conversions configuration from a tracking link to another.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/conversions/clone?from_url_id=ed703dfa15288af2b5080dbfb23d30da&to_url_id=8540cf6c4498f6557f73b8ced32c76c1

Query parameters

from_url_id = ed703dfa15288af2b5080dbfb23d30da
  to_url_id = 8540cf6c4498f6557f73b8ced32c76c1

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "cloned": 1
  }
}
Required parameters
parameter description
from_url_idID ID of the tracking link you want to copy the conversions configuration from
to_url_idID ID of the tracking link you want to copy the conversions configuration to
Return values
parameter description
cloned 1 on success, 0 otherwise

/urls/conversions/count

access: [READ]

This method returns the number of conversion codes linked to a tracking link.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/conversions/count?url_id=6cb14d93722c9afeb5f20e4fb47d8ed9

Query parameters

url_id = 6cb14d93722c9afeb5f20e4fb47d8ed9

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "count": 1
  }
}
Required parameters
parameter description
url_idID ID of the tracking link to check
Return values
parameter description
count the number of linked conversion codes

/urls/conversions/delete

access: [WRITE]

Delete one or more conversion codes linked to a tracking link.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/conversions/delete?url_id=7d76ff8d8d025bf2d0b576a707814342

Query parameters

url_id = 7d76ff8d8d025bf2d0b576a707814342

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "deleted": 1
  }
}
Required parameters
parameter description
url_idID ID of the tracking link from which to remove one or more conversion codes
Optional parameters
parameter description
idsARRAY_OF_IDS comma-separated list of conversion codes to remove, if empty all conversion codes will be removed
Return values
parameter description
deleted 1 on success, 0 otherwise

/urls/conversions/edit

access: [WRITE]

Edit the list of conversion codes linked to a tracking link (all previous conversion codes are removed).

Example 1 (json)

Request

https://joturl.com/a/i1/urls/conversions/edit?url_id=ca53b6fb26498d789f24780430256036&ids=e82f8a9d4decb90ec542f252b7506891,1825c24052ba31906c70f5328ed04f2d,1cf172ca2719fad63fe46b0c5810e051,44de7b544ab316203d8052ccf4cbb0ee

Query parameters

url_id = ca53b6fb26498d789f24780430256036
   ids = e82f8a9d4decb90ec542f252b7506891,1825c24052ba31906c70f5328ed04f2d,1cf172ca2719fad63fe46b0c5810e051,44de7b544ab316203d8052ccf4cbb0ee

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "ids": "e82f8a9d4decb90ec542f252b7506891,1825c24052ba31906c70f5328ed04f2d,1cf172ca2719fad63fe46b0c5810e051,44de7b544ab316203d8052ccf4cbb0ee"
  }
}
Required parameters
parameter description
idsARRAY_OF_IDS comma-separated list of conversion codes to add (maxmimum number of conversion codes: 5)
url_idID ID of the tracking link to which to add one or more conversion codes
Return values
parameter description
ids comma-separated list of added conversion codes

/urls/conversions/list

access: [READ]

This method returns a list of conversion codes linked to a tracking link.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/conversions/list?fields=count,name,id,enable_postback_url,actual_url_params&url_id=416ba32accbda8613b2484ce59713d86

Query parameters

fields = count,name,id,enable_postback_url,actual_url_params
url_id = 416ba32accbda8613b2484ce59713d86

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "count": 3,
    "data": [
      {
        "name": "conversion name 1",
        "id": "2e2076856012638f9ecc6e9a862c7f80",
        "enable_postback_url": 0,
        "actual_url_params": ""
      },
      {
        "name": "conversion name 2 (with postback URL enabled)",
        "id": "9c8018dae31cd3ec9b882684072729c5",
        "enable_postback_url": 1,
        "actual_url_params": "subid1={:CLICK_ID:}"
      },
      {
        "name": "conversion name 3",
        "id": "59351e2c8be677c80c4ea53ae585805f",
        "enable_postback_url": 0,
        "actual_url_params": ""
      }
    ]
  }
}
Required parameters
parameter description
fieldsARRAY comma-separated list of fields to return, available fields: count, id, name, notes, enable_postback_url, actual_url_params, postback_url_params
url_idID ID of the liked tracking link
Optional parameters
parameter description
lengthINTEGER extracts this number of conversion codes (maxmimum allowed: 100)
orderbyARRAY orders conversion codes by field, available fields: id, name, notes, enable_postback_url, actual_url_params, postback_url_params
searchSTRING filters conversion codes to be extracted by searching them
sortSTRING sorts conversion codes in ascending (ASC) or descending (DESC) order
startINTEGER starts to extract conversion codes from this position
Return values
parameter description
count [OPTIONAL] total number of conversion codes, returned only if count is passed in fields
data array containing information on the conversion codes, returned information depends on the fields parameter.

/urls/count

access: [READ]

This method returns the number of user's urls.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/count?project_id=886cc6c81099ee764fd722513a6baf9e

Query parameters

project_id = 886cc6c81099ee764fd722513a6baf9e

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "count": 569
  }
}
Optional parameters
parameter description
end_dateDATE see i1/urls/list for details
filterSTRING see i1/urls/list for details
optionSTRING see i1/urls/list for details
project_idID see i1/urls/list for details
searchSTRING see i1/urls/list for details
start_dateDATE see i1/urls/list for details
whereSTRING see i1/urls/list for details
with_alertsBOOLEAN see i1/urls/list for details
Return values
parameter description
count total number of tracking links

/urls/ctas

/urls/ctas/clone

access: [WRITE]

Clone the CTA configuration from a tracking link to another.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/ctas/clone?from_url_id=93f8d7f798b0a9ba3dd37e4756c2f5f0&to_url_id=b6137e6f023b46842eeea86d87721c79

Query parameters

from_url_id = 93f8d7f798b0a9ba3dd37e4756c2f5f0
  to_url_id = b6137e6f023b46842eeea86d87721c79

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "cloned": 0
  }
}
Required parameters
parameter description
from_url_idID ID of the tracking link you want to copy the CTA configuration from
to_url_idID ID of the tracking link you want to copy the CTA configuration to
Return values
parameter description
cloned 1 on success, 0 otherwise

/urls/ctas/delete

access: [WRITE]

Unset a call to action for a short URL.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/ctas/delete?url_id=65f77834ff1871d5fbe8bfdff7de5264

Query parameters

url_id = 65f77834ff1871d5fbe8bfdff7de5264

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "deleted": 1
  }
}
Required parameters
parameter description
url_idID ID of the tracking link from which to remove the CTA
Optional parameters
parameter description
idID ID of the CTA to remove
Return values
parameter description
deleted 1 on success, 0 otherwise

/urls/ctas/edit

access: [WRITE]

Set a call to action for a tracking link.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/ctas/edit?url_id=e49b66b24e7713e965c5914f83a74d25&id=aa797d3b67efa6321599d2688d56646d

Query parameters

url_id = e49b66b24e7713e965c5914f83a74d25
    id = aa797d3b67efa6321599d2688d56646d

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "added": 1
  }
}
Required parameters
parameter description
idID ID of the CTA to associate to the tracking link
url_idID ID of the tracking link
Return values
parameter description
added 1 on success, 0 otherwise

/urls/ctas/info

access: [READ]

Get information for a CTA that is linked to a tracking link.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/ctas/info?fields=id,type,name&url_id=184305470ee492bf27da6f03f0dc405a

Query parameters

fields = id,type,name
url_id = 184305470ee492bf27da6f03f0dc405a

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "id": "47648d9dc4f00713bf038e6bf766f868",
    "type": "button",
    "name": "this is a button CTA"
  }
}
Required parameters
parameter description
fieldsARRAY comma-separated list of fields to return, available fields: id, type, name
url_idID ID of the liked tracking link
Return values
parameter description
id [OPTIONAL] ID of the CTA, only if id is passed in fields
name [OPTIONAL] name of the CTA, only if name is passed in fields
type [OPTIONAL] type of the CTA, only if type is passed in fields

/urls/ctas/previews

/urls/ctas/previews/check

access: [WRITE]

Check if a page preview is associated with a tracking link.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/ctas/previews/check?url_id=e666fdbb0f7e9e2b8f7fe2779f0421b5

Query parameters

url_id = e666fdbb0f7e9e2b8f7fe2779f0421b5

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "enabled": 1
  }
}
Required parameters
parameter description
url_idID ID of the tracking link
Return values
parameter description
enabled 1 if a page preview is associated with the tracking link, 0 otherwise
/urls/ctas/previews/extract

access: [WRITE]

Extract a page preview for the destination URL of a tracking link.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/ctas/previews/extract?url_id=d05e2a3b69aafff3e952c7c3924b9b48

Query parameters

url_id = d05e2a3b69aafff3e952c7c3924b9b48

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "extracted": 1
  }
}
Required parameters
parameter description
url_idID ID of the tracking link
Optional parameters
parameter description
aiBOOLEAN 1 to enable the AI extraction, default value ai = 0
Return values
parameter description
extracted 1 on success, 0 otherwise
/urls/ctas/previews/info

access: [READ]

Return a page preview info for the destination URL of a tracking link.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/ctas/previews/info?url_id=8289d4fb72ec3b7ad77275f5da95d41f

Query parameters

url_id = 8289d4fb72ec3b7ad77275f5da95d41f

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "info": 1
  }
}
Required parameters
parameter description
url_idID ID of the tracking link
Return values
parameter description
info 1 on success, 0 otherwise
/urls/ctas/previews/preview

access: [WRITE]

Return a page preview HTML for the destination URL of a tracking link.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/ctas/previews/preview?url_id=a765c5597badb2168096418fd1595aab

Query parameters

url_id = a765c5597badb2168096418fd1595aab

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "html": "<html><body>...<\/body><\/html>"
  }
}
Required parameters
parameter description
url_idID ID of the tracking link
Optional parameters
parameter description
return_htmlBOOLEAN 1 to return HTML, 0 to return JSON containing the html field, default value return_html = 0
Return values
parameter description
[BINARY DATA] [OPTIONAL] raw HTML content for the page preview, returned if return_html = 1
html [OPTIONAL] HTML for the page preview, returned if return_html = 0

access: [READ]

Extract App Links information from a given URL.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/deeplinks/al?url=https%3A%2F%2Fwww.facebook.com%2Fgroups%2F1234567890%2F

Query parameters

url = https://www.facebook.com/groups/1234567890/

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "android": {
      "app_name": "Facebook",
      "package": "com.facebook.katana",
      "uri_scheme": "fb:\/\/group\/1234567890"
    },
    "ios": {
      "app_name": "Facebook",
      "app_store_id": "284882215",
      "uri_scheme": "fb:\/\/group\/?id=1234567890"
    }
  }
}
Required parameters
parameter description
urlSTRING URL to be scraped
Return values
parameter description
data Extracted App Link tags

access: [WRITE]

Clone the deep link configuration from a tracking link to another.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/deeplinks/clone?from_url_id=7109d12bca665cf8afaf0f94a8027720&to_url_id=90ac41f4ede7eb0147e73ff8f56a75c1

Query parameters

from_url_id = 7109d12bca665cf8afaf0f94a8027720
  to_url_id = 90ac41f4ede7eb0147e73ff8f56a75c1

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "cloned": 1
  }
}
Required parameters
parameter description
from_url_idID ID of the tracking link you want to copy the deep link configuration from
to_url_idID ID of the tracking link you want to the deep link configuration to
Return values
parameter description
cloned 1 on success, 0 otherwise

access: [WRITE]

Unset (delete) a deep link for a tracking link.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/deeplinks/delete?id=4a8ce8dab5e6c334e87cce8d10fb6baf

Query parameters

id = 4a8ce8dab5e6c334e87cce8d10fb6baf

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "deleted": 1
  }
}
Required parameters
parameter description
idID ID of the tracking link from which to remove a deep link configration
Return values
parameter description
deleted 1 on success, 0 otherwise

access: [WRITE]

Set deep link settings for a tracking link.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/deeplinks/edit?id=56b39d2c2a209e39fae31794889710c3

Query parameters

id = 56b39d2c2a209e39fae31794889710c3

Post parameters

settings=%7B%22params%22%3A%5B%5D%2C%22default_url%22%3A%22https%3A%2F%2Fjoturl.com%2F%22%2C%22desktop_settings%22%3A%22default%22%2C%22desktop_redirect_url%22%3A%22%22%2C%22android_redirect_url%22%3A%22%22%2C%22android_settings%22%3A%22deeplink%22%2C%22android_uri_scheme%22%3A%22customUriScheme%3A%2F%2Fopen%22%2C%22android_package_name%22%3A%22com.joturl.example%22%2C%22android_fallback%22%3A%22redirect%22%2C%22android_fallback_redirect_url%22%3A%22https%3A%2F%2Fjoturl.com%2F%22%2C%22ios_settings%22%3A%22default%22%2C%22ios_redirect_url%22%3A%22%22%2C%22ios_uri_scheme%22%3A%22%22%2C%22ios_store_url%22%3A%22%22%2C%22ios_fallback%22%3A%22store%22%2C%22ios_fallback_redirect_url%22%3A%22%22%2C%22og_title%22%3A%22%22%3A%22%22%2C%22og_image%22%3A%22%22%7D

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "enabled": 1
  }
}
Required parameters
parameter description
idID tracking link ID for which you want to edit the app deep link configuration
settingsSTRING stringified JSON of the app deep link configuration, see i1/urls/deeplinks/info for details
Return values
parameter description
enabled 1 if the app deep link option has been successfully enabled, 0 otherwise

access: [READ]

Get the package of a Huawei Quick App from its ID.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/deeplinks/huawei/quickapps/id2package?id=C1234567890

Query parameters

id = C1234567890

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "package": "com.example.quickapp"
  }
}
Required parameters
parameter description
idSTRING ID of a Huawei Quick App
Return values
parameter description
package The Huawei Quick App package that matches the passed id

access: [READ]

Get a deep link settings for a tracking link.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/deeplinks/info?id=080019fdb930a0bf3d55e1af49411032

Query parameters

id = 080019fdb930a0bf3d55e1af49411032

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "settings": {
      "params": [
        {
          "key": "a",
          "value": "b"
        },
        {
          "key": "c",
          "value": "d"
        }
      ],
      "default_url": "https:\/\/joturl.com\/",
      "desktop_settings": "default",
      "desktop_redirect_url": "",
      "android_redirect_url": "",
      "android_settings": "deeplink",
      "android_uri_scheme": "customUriScheme:\/\/open",
      "android_package_name": "com.joturl.example",
      "android_fallback": "redirect",
      "android_fallback_redirect_url": "https:\/\/joturl.com\/",
      "ios_settings": "default",
      "ios_redirect_url": "",
      "ios_uri_scheme": "",
      "ios_store_url": "",
      "ios_fallback": "store",
      "ios_fallback_redirect_url": "",
      "og_title": "",
      "og_description": "",
      "og_image": ""
    }
  }
}
Required parameters
parameter description
idID tracking link ID for which you want to extract the deep link configuration
Return values
parameter description
settings deep link configuration

access: [READ]

Extract Open Graph information from a given URL.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/deeplinks/og?url=https%3A%2F%2Fwww.facebook.com%2F

Query parameters

url = https://www.facebook.com/

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "data": {
      "site_name": "Facebook",
      "url": "https:\/\/www.facebook.com\/",
      "image": "https:\/\/www.facebook.com\/images\/fb_icon_325x325.png",
      "locale": "en_US",
      "title": "Facebook - Log In or Sign Up",
      "description": "Create an account or log into Facebook. Connect with friends, family and other people you know. Share photos and videos, send messages and get updates."
    }
  }
}
Required parameters
parameter description
urlSTRING URL to be scraped
Return values
parameter description
data Extracted Open Graph tags

/urls/delete

access: [WRITE]

This method deletes a set of tracking links by using the parameter ids.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/delete?ids=93fc8d9ab35657cba9869f4a447832a4,2582db132ffca889e742d082553cbe4a,9881d1fa8559db57ff58e83142ee0c06

Query parameters

ids = 93fc8d9ab35657cba9869f4a447832a4,2582db132ffca889e742d082553cbe4a,9881d1fa8559db57ff58e83142ee0c06

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "deleted": 3
  }
}
Required parameters
parameter description
idsARRAY_OF_IDS comma separated list of tracking link IDs to be deleted
Return values
parameter description
deleted number of deleted tracking links
ids [OPTIONAL] list of tracking link IDs whose delete has failed, this parameter is returned only when at least one delete error has occurred

access: [WRITE]

Clone the easy deep link configuration from a tracking link to another.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/easydeeplinks/clone?from_url_id=424b99a30590af79fca7a8aa9ef5de44&to_url_id=ac8e31694add2b1f33fecb2bb1ff13d3

Query parameters

from_url_id = 424b99a30590af79fca7a8aa9ef5de44
  to_url_id = ac8e31694add2b1f33fecb2bb1ff13d3

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "cloned": 0
  }
}
Required parameters
parameter description
from_url_idID ID of the tracking link you want to copy the easy deep link configuration from
to_url_idID ID of the tracking link you want to the easy deep link configuration to
Return values
parameter description
cloned 1 on success, 0 otherwise

access: [WRITE]

Unset (delete) an easy dee link for a tracking link.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/easydeeplinks/delete?id=44915a5e0bfe050a1686e720f92ec883

Query parameters

id = 44915a5e0bfe050a1686e720f92ec883

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "deleted": 1
  }
}
Required parameters
parameter description
idID ID of the tracking link from which to remove an easy deep link configration
Return values
parameter description
deleted 1 on success, 0 otherwise

access: [READ]

Find the app the passed URL is associated with (e.g., Facebook, Instagram).

Example 1 (json)

Request

https://joturl.com/a/i1/urls/easydeeplinks/detect?url=https%3A%2F%2Fwww.facebook.com%2FjotURL

Query parameters

url = https://www.facebook.com/jotURL

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "name": "Facebook",
    "category": "social"
  }
}
Optional parameters
parameter description max length
urlURL URL corresponding to the app page 4000
Return values
parameter description
category category of the easy deep link provider, if available, supported categories: affiliation, business, entertainment, lifestyle, music, other, shopping, social, travel, unknown, website
name name of the easy deep link provider, if available, supported names: Adidas, AliExpress, Amazon, Apartments.com, Apple Maps, Apple Music, Apple Podcast, Best Buy, Booking.com, BrandCycle, Discord, Epic Games Store, Etsy, Expedia, Facebook, Flipkart, Google Docs, Google Maps, Google Sheets, Google Slides, HSN, Howl, IKEA, Instagram, Kickstarter, Kohl's, LINE, LTK, LinkedIn, Macy's, MagicLinks, Mavely, Medium, Mercado Livre, Messenger, Microsoft Excel, Microsoft PowerPoint, Microsoft Word, Netflix, Nordstrom, OnlyFans, Pinterest, Product Hunt, QVC, Quora, Reddit, Refersion, SHEIN, Signal, Skype, Snapchat, Spotify, Steam, Target, Telegram, Temu, The Home Depot, TikTok, TripAdvisor, Trulia, Twitch TV, Twitter, Unknown, Viber, Vimeo, Walmart, WhatsApp, YouTube, Zendesk Support, Zillow, Zulily, eBay, iFood
real_category [OPTIONAL] category of the real easy deep link provider, see notes
real_name [OPTIONAL] name of the real easy deep link provider, see notes

access: [WRITE]

Set an easy deep link settings for a tracking link.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/easydeeplinks/edit?id=390cc437c0c03f1c4ff5320eb62ed572

Query parameters

id = 390cc437c0c03f1c4ff5320eb62ed572

Post parameters

settings=%7B%22name%22%3A%22YouTube%22%2C%22category%22%3A%22social%22%2C%22ios%22%3A%7B%22phone%22%3A%7B%22enabled%22%3A1%2C%22installed%22%3A%7B%22choice%22%3A%22scheme%22%2C%22scheme%22%3A%22vnd.youtube%3A%5C%2F%5C%2Fwww.youtube.com%5C%2Fwatch%3Fv%3DoBg0slZQt1g%26feature%3Dyoutu.be%22%2C%22custom%22%3A%22%22%2C%22alternatives%22%3A%5B%5D%7D%2C%22not_installed%22%3A%7B%22choice%22%3A%22default%22%2C%22custom%22%3A%22%22%2C%22store%22%3A%22https%3A%5C%2F%5C%2Fitunes.apple.com%5C%2Fus%5C%2Fapp%5C%2Fyoutube%5C%2Fid544007664%22%7D%2C%22deeplink_method%22%3A%22aggressive%22%7D%2C%22tablet%22%3A%7B%22enabled%22%3A1%2C%22installed%22%3A%7B%22choice%22%3A%22scheme%22%2C%22scheme%22%3A%22vnd.youtube%3A%5C%2F%5C%2Fwww.youtube.com%5C%2Fwatch%3Fv%3DoBg0slZQt1g%26feature%3Dyoutu.be%22%2C%22custom%22%3A%22%22%2C%22alternatives%22%3A%5B%5D%7D%2C%22not_installed%22%3A%7B%22choice%22%3A%22default%22%2C%22custom%22%3A%22%22%2C%22store%22%3A%22https%3A%5C%2F%5C%2Fitunes.apple.com%5C%2Fus%5C%2Fapp%5C%2Fyoutube%5C%2Fid544007664%22%7D%2C%22deeplink_method%22%3A%22aggressive%22%7D%7D%2C%22android%22%3A%7B%22phone%22%3A%7B%22enabled%22%3A1%2C%22installed%22%3A%7B%22choice%22%3A%22scheme%22%2C%22scheme%22%3A%22intent%3A%5C%2F%5C%2Fwww.youtube.com%5C%2Fwatch%3Fv%3DoBg0slZQt1g%26feature%3Dyoutu.be%23Intent%3Bpackage%3Dcom.google.android.youtube%3Bscheme%3Dhttps%3BS.browser_fallback_url%3D%7Bnot_installed%7D%3Bend%22%2C%22custom%22%3A%22%22%2C%22alternatives%22%3A%5B%5D%7D%2C%22not_installed%22%3A%7B%22choice%22%3A%22default%22%2C%22custom%22%3A%22%22%2C%22store%22%3A%22https%3A%5C%2F%5C%2Fplay.google.com%5C%2Fstore%5C%2Fapps%5C%2Fdetails%3Fid%3Dcom.google.android.youtube%22%7D%2C%22force_chrome%22%3A0%2C%22deeplink_method%22%3A%22aggressive%22%7D%2C%22tablet%22%3A%7B%22enabled%22%3A1%2C%22installed%22%3A%7B%22choice%22%3A%22scheme%22%2C%22scheme%22%3A%22intent%3A%5C%2F%5C%2Fwww.youtube.com%5C%2Fwatch%3Fv%3DoBg0slZQt1g%26feature%3Dyoutu.be%23Intent%3Bpackage%3Dcom.google.android.youtube%3Bscheme%3Dhttps%3BS.browser_fallback_url%3D%7Bnot_installed%7D%3Bend%22%2C%22custom%22%3A%22%22%2C%22alternatives%22%3A%5B%5D%7D%2C%22not_installed%22%3A%7B%22choice%22%3A%22default%22%2C%22custom%22%3A%22%22%2C%22store%22%3A%22https%3A%5C%2F%5C%2Fplay.google.com%5C%2Fstore%5C%2Fapps%5C%2Fdetails%3Fid%3Dcom.google.android.youtube%22%7D%2C%22force_chrome%22%3A0%2C%22deeplink_method%22%3A%22aggressive%22%7D%7D%2C%22default_url%22%3A%22https%3A%5C%2F%5C%2Fyoutu.be%5C%2FoBg0slZQt1g%22%2C%22info%22%3A%7B%22title%22%3A%22JotURL+-+The+all-in-one+dream+suite+for+your+marketing+links%21%22%2C%22description%22%3A%22JotUrl%3A+Boost+your+inbound+marketing+results+and+conversions%2C+with+the+best+user+experience.+www.joturl.com%22%2C%22image%22%3A%22https%3A%5C%2F%5C%2Fi.ytimg.com%5C%2Fvi%5C%2FoBg0slZQt1g%5C%2Fmaxresdefault.jpg%22%2C%22ios_url%22%3A%22vnd.youtube%3A%5C%2F%5C%2Fwww.youtube.com%5C%2Fwatch%3Fv%3DoBg0slZQt1g%26feature%3Dyoutu.be%22%2C%22ios_store_url%22%3A%22https%3A%5C%2F%5C%2Fitunes.apple.com%5C%2Fus%5C%2Fapp%5C%2Fyoutube%5C%2Fid544007664%22%2C%22android_url%22%3A%22intent%3A%5C%2F%5C%2Fwww.youtube.com%5C%2Fwatch%3Fv%3DoBg0slZQt1g%26feature%3Dyoutu.be%23Intent%3Bpackage%3Dcom.google.android.youtube%3Bscheme%3Dhttps%3BS.browser_fallback_url%3D%7Bnot_installed%7D%3Bend%22%2C%22android_store_url%22%3A%22https%3A%5C%2F%5C%2Fplay.google.com%5C%2Fstore%5C%2Fapps%5C%2Fdetails%3Fid%3Dcom.google.android.youtube%22%2C%22info%22%3A%7B%22ios%22%3A%7B%22app_name%22%3A%22YouTube%22%2C%22app_store_id%22%3A%22544007664%22%2C%22url%22%3A%22vnd.youtube%3A%5C%2F%5C%2Fwww.youtube.com%5C%2Fwatch%3Fv%3DoBg0slZQt1g%26feature%3Dyoutu.be%22%7D%2C%22android%22%3A%7B%22app_name%22%3A%22YouTube%22%2C%22package%22%3A%22com.google.android.youtube%22%2C%22url%22%3A%22intent%3A%5C%2F%5C%2Fwww.youtube.com%5C%2Fwatch%3Fv%3DoBg0slZQt1g%26feature%3Dyoutu.be%23Intent%3Bpackage%3Dcom.google.android.youtube%3Bscheme%3Dhttps%3BS.browser_fallback_url%3D%7Bnot_installed%7D%3Bend%22%7D%7D%7D%2C%22detected%22%3A%5B%22ios%22%2C%22android%22%5D%2C%22og_title%22%3A%22JotURL+-+The+all-in-one+dream+suite+for+your+marketing+links%21%22%2C%22og_description%22%3A%22JotUrl%3A+Boost+your+inbound+marketing+results+and+conversions%2C+with+the+best+user+experience.+www.joturl.com%22%2C%22og_image%22%3A%22https%3A%5C%2F%5C%2Fi.ytimg.com%5C%2Fvi%5C%2FoBg0slZQt1g%5C%2Fmaxresdefault.jpg%22%7D

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "enabled": 1
  }
}
Required parameters
parameter description
idID tracking link ID for which you want to edit the easy deep link configuration
settingsJSON stringified JSON of the easy deep link configuration, see i1/urls/easydeeplinks/info for details
Return values
parameter description
enabled 1 if the easy deep link option has been successfully enabled, 0 otherwise

access: [READ]

Get an easy deep link settings for a tracking link.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/easydeeplinks/info?id=615524287c22a2753419db142c75b9b9

Query parameters

id = 615524287c22a2753419db142c75b9b9

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "name": "YouTube",
    "category": "social",
    "ios": {
      "phone": {
        "enabled": 1,
        "installed": {
          "choice": "scheme",
          "scheme": "vnd.youtube:\/\/www.youtube.com\/watch?v=oBg0slZQt1g&feature=youtu.be",
          "custom": "",
          "alternatives": []
        },
        "not_installed": {
          "choice": "default",
          "custom": "",
          "store": "https:\/\/itunes.apple.com\/us\/app\/youtube\/id544007664"
        }
      },
      "tablet": {
        "enabled": 1,
        "installed": {
          "choice": "scheme",
          "scheme": "vnd.youtube:\/\/www.youtube.com\/watch?v=oBg0slZQt1g&feature=youtu.be",
          "custom": "",
          "alternatives": []
        },
        "not_installed": {
          "choice": "default",
          "custom": "",
          "store": "https:\/\/itunes.apple.com\/us\/app\/youtube\/id544007664"
        }
      }
    },
    "android": {
      "phone": {
        "enabled": 1,
        "installed": {
          "choice": "scheme",
          "scheme": "intent:\/\/www.youtube.com\/watch?v=oBg0slZQt1g&feature=youtu.be#Intent;package=com.google.android.youtube;scheme=https;S.browser_fallback_url={not_installed};end",
          "custom": "",
          "alternatives": []
        },
        "not_installed": {
          "choice": "default",
          "custom": "",
          "store": "https:\/\/play.google.com\/store\/apps\/details?id=com.google.android.youtube"
        }
      },
      "tablet": {
        "enabled": 1,
        "installed": {
          "choice": "scheme",
          "scheme": "intent:\/\/www.youtube.com\/watch?v=oBg0slZQt1g&feature=youtu.be#Intent;package=com.google.android.youtube;scheme=https;S.browser_fallback_url={not_installed};end",
          "custom": "",
          "alternatives": []
        },
        "not_installed": {
          "choice": "default",
          "custom": "",
          "store": "https:\/\/play.google.com\/store\/apps\/details?id=com.google.android.youtube"
        }
      }
    },
    "default_url": "https:\/\/youtu.be\/oBg0slZQt1g",
    "info": {
      "title": "JotURL - The all-in-one dream suite for your marketing links!",
      "description": "JotUrl: Boost your inbound marketing results and conversions, with the best user experience. www.joturl.com",
      "image": "https:\/\/i.ytimg.com\/vi\/oBg0slZQt1g\/maxresdefault.jpg",
      "ios_url": "vnd.youtube:\/\/www.youtube.com\/watch?v=oBg0slZQt1g&feature=youtu.be",
      "ios_store_url": "https:\/\/itunes.apple.com\/us\/app\/youtube\/id544007664",
      "android_url": "intent:\/\/www.youtube.com\/watch?v=oBg0slZQt1g&feature=youtu.be#Intent;package=com.google.android.youtube;scheme=https;S.browser_fallback_url={not_installed};end",
      "android_store_url": "https:\/\/play.google.com\/store\/apps\/details?id=com.google.android.youtube",
      "info": {
        "ios": {
          "app_name": "YouTube",
          "app_store_id": "544007664",
          "url": "vnd.youtube:\/\/www.youtube.com\/watch?v=oBg0slZQt1g&feature=youtu.be"
        },
        "android": {
          "app_name": "YouTube",
          "package": "com.google.android.youtube",
          "url": "intent:\/\/www.youtube.com\/watch?v=oBg0slZQt1g&feature=youtu.be#Intent;package=com.google.android.youtube;scheme=https;S.browser_fallback_url={not_installed};end"
        }
      }
    },
    "detected": [
      "ios",
      "android"
    ],
    "autodetect": 1
  }
}
Required parameters
parameter description
idID tracking link ID for which you want to extract the easy deep link configuration
Return values
parameter description
android [OPTIONAL] array containing the easy deep link configuration for Android, returned only if autodetect = 1
autodetect 1 if the configuration was automatically detected, 0 if it was taken from a previously set configuration
category [OPTIONAL] category of the easy deep link provider, returned only if autodetect = 1, supported categories: affiliation, business, entertainment, lifestyle, music, other, shopping, social, travel, unknown, website
default_url [OPTIONAL] default URL for the easy deepl ink configuration, returned only if autodetect = 1
detected [OPTIONAL] returned only if autodetect = 1, array containing the extracted information, it can contain the values ios and android depending on whether our system was able to extract the deep link information for that specific operating system, it contains only one of the above values in case it is not possible to extract the information for the deep link for one of the operating systems, it can be empty in case it is not possible to extract the information for the deep link
info [OPTIONAL] Open Graph information extracted from default_url and raw deep link information, returned only if autodetect = 1
ios [OPTIONAL] array containing the easy deep link configuration for iOS, returned only if autodetect = 1
name [OPTIONAL] name of the easy deep link provider, returned only if autodetect = 1, supported names: Adidas, AliExpress, Amazon, Apartments.com, Apple Maps, Apple Music, Apple Podcast, Best Buy, Booking.com, BrandCycle, Discord, eBay, Epic Games Store, Etsy, Expedia, Facebook, Flipkart, Google Docs, Google Maps, Google Sheets, Google Slides, Howl, HSN, iFood, IKEA, Instagram, Kickstarter, Kohl's, LINE, LinkedIn, LTK, Macy's, MagicLinks, Mavely, Medium, Mercado Livre, Messenger, Microsoft Excel, Microsoft PowerPoint, Microsoft Word, Netflix, Nordstrom, OnlyFans, Pinterest, Product Hunt, Quora, QVC, Reddit, Refersion, SHEIN, Signal, Skype, Snapchat, Spotify, Steam, Target, Telegram, Temu, The Home Depot, TikTok, TripAdvisor, Trulia, Twitch TV, Twitter, Unknown, Viber, Vimeo, Walmart, WhatsApp, YouTube, Zendesk Support, Zillow, Zulily
settings [OPTIONAL] returned only if autodetect = 0, stringified JSON of the easy deep link configuration, it contains the same fields returned when autodetect = 1 except autodetect plus the fields: og_title, og_description, og_image which are the corresponding custom Open Graph fields

NOTES: Both android and ios arrays have the following structure:

{
    "phone": (DEEPLINK_INFO),
    "tablet": (DEEPLINK_INFO)
}
Where (DEEPLINK_INFO) is:
{
    "enabled":(ENABLED),
    "installed":{
        "choice":"(INSTALLED_CHOICE)",
        "scheme":"(URI SCHEME)",
        "custom":"(CUSTOM URI SCHEME WHEN APP INSTALLED)",
        "alternatives":(ALTERNATIVES WHEN APP INSTALLED)
    },
    "not_installed":{
        "choice":"(NOT_INSTALLED_CHOICE)",
        "custom":"(CUSTOM URI SCHEME WHEN APP NOT INSTALLED)",
        "store":"(STORE URL)"
    },
    "force_chrome":(FORCE_CHROME),
    "force_redirect":(FORCE_REDIRECT),
    "deeplink_method":(DEEPLINK_METHOD)
}
With 

(ENABLED):
- 1: to enabled the specific configuration (phone or tablet)
- 0: to disable the specific configuration, in this case the default URL will be used to redirect the user

(INSTALLED_CHOICE):
- scheme: use the (URI SCHEME) for deep linking
- custom: use the (CUSTOM URI SCHEME WHEN APP INSTALLED)  for deep linking

(ALTERNATIVES WHEN APP INSTALLED): array of alternatives for the field (CUSTOM URI SCHEME WHEN APP INSTALLED), it can be an empty array or contain elements like this:
{
    "type": "[unique ID]",
    "url": "[alternative custom URI scheme]"
} 
(NOT_INSTALLED_CHOICE):
- default: use the default_url to redirect the user when the app is not installed
- store: use the (STORE URL) to redirect the user when the app is not installed
- custom: use the (CUSTOM URI SCHEME WHEN APP NOT INSTALLED) to redirect the user when the app is not installed

(FORCE_CHROME), may not be present and available only for Android (in all other cases it is ignored):  
- 1: to try to open Chrome before deep linking (useful in all those apps that open links in the webview, e.g., Facebook)
- 0: to not try to open Chrome

(FORCE_REDIRECT), may not be present and available only for Android (in all other cases it is ignored), this flag is only used 
 when `(NOT_INSTALLED_CHOICE) = default`, `(FORCE_CHROME) = 0` and our engine detects a webview (in-app browser, e.g., the Facebook internal browser), 
 in this case and when the deep link fails:
- 1: force a redirect to default_url instead of opening the Android Play Store
- 0: open the Android Play Store

(DEEPLINK_METHOD), only available when autodetect = 0:
- aggressive: try to open the app anyway, although this may cause errors (recommended)
- conservative: our engine tries to open the app only if our engine can determine if the app is installed

access: [READ]

Get all supported apps for easy deep link grouped by category.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/easydeeplinks/list

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "shopping": [
      "Adidas",
      "AliExpress",
      "Amazon",
      "Best Buy",
      "eBay",
      "Etsy",
      "Flipkart",
      "HSN",
      "IKEA",
      "Kohl's",
      "LTK",
      "Macy's",
      "Mercado Livre",
      "Nordstrom",
      "QVC",
      "SHEIN",
      "Target",
      "Temu",
      "The Home Depot",
      "Walmart",
      "Zulily"
    ],
    "lifestyle": [
      "Apartments.com",
      "iFood",
      "Trulia",
      "Zillow"
    ],
    "travel": [
      "Apple Maps",
      "Booking.com",
      "Expedia",
      "Google Maps",
      "TripAdvisor"
    ],
    "music": [
      "Apple Music",
      "Spotify"
    ],
    "other": [
      "Apple Podcast",
      "Zendesk Support"
    ],
    "affiliation": [
      "BrandCycle",
      "Howl",
      "MagicLinks",
      "Mavely",
      "Refersion"
    ],
    "social": [
      "Discord",
      "Facebook",
      "Instagram",
      "LINE",
      "LinkedIn",
      "Messenger",
      "Pinterest",
      "Product Hunt",
      "Reddit",
      "Signal",
      "Skype",
      "Snapchat",
      "Telegram",
      "TikTok",
      "Twitter",
      "Viber",
      "Vimeo",
      "YouTube"
    ],
    "entertainment": [
      "Epic Games Store",
      "Netflix",
      "OnlyFans",
      "Steam",
      "Twitch TV"
    ],
    "business": [
      "Google Docs",
      "Google Sheets",
      "Google Slides",
      "Microsoft Excel",
      "Microsoft PowerPoint",
      "Microsoft Word"
    ],
    "website": [
      "Kickstarter",
      "Medium",
      "Quora"
    ],
    "unknown": [
      "Unknown"
    ]
  }
}
Return values
parameter description
data array containing all supported apps for easy deep link grouped by category, it is in the form {"category1":[ list ], "category2":[ list ], ... }

/urls/edit

access: [WRITE]

Edit fields of a short URL.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/edit?id=0da655612d9d280708a41f1ccc543bcd&long_url=https%3A%2F%2Fwww.joturl.com%2F¬es=this+is+a+sample+note

Query parameters

      id = 0da655612d9d280708a41f1ccc543bcd
long_url = https://www.joturl.com/
   notes = this is a sample note

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "id": "0da655612d9d280708a41f1ccc543bcd",
    "alias": "jot",
    "domain_host": "jo.my",
    "domain_id": "c024be092f0c5c779efaa1e1010a382f",
    "project_id": "3b7bce919c84c1fd53f5a772e2336459",
    "project_name": "project name",
    "long_url": "https:\/\/www.joturl.com\/",
    "short_url": "http:\/\/jo.my\/jot",
    "notes": "this is a sample note"
  }
}
Required parameters
parameter description
idID ID of the tracking link to be edited
Optional parameters
parameter description max length
long_urlSTRING destination URL for tracking link 4000
notesSTRING notes for tracking link 255
Return values
parameter description
alias see i1/urls/list for details
domain_host domain (e.g., domain.ext) of the tracking link
domain_id ID of the domain of the tracking link
id see i1/urls/list for details
long_url see i1/urls/list for details
notes see i1/urls/list for details
project_id ID of the project
project_name name of the project
short_url see i1/urls/list for details

/urls/embeddable

access: [READ]

This method returns 1 if the passed URL is embeddable, 0 otherwise.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/embeddable?u=https%3A%2F%2Fwww.joturl.com%2F

Query parameters

u = https://www.joturl.com/

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "embeddable": 0
  }
}
Required parameters
parameter description
uSTRING URL to be checked
Return values
parameter description
embeddable 1 if the URL is embeddable, 0 otherwise

/urls/export

access: [READ]

This method export the list of URLs in a user account.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/export

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "count": 7,
    "remaining": 0,
    "tls": {
      "publication name 1": {
        "custom.domain3.ext": [
          {
            "alias": "alias0",
            "embed_code": "",
            "long_url": "https:\/\/my.destination.url\/?p=0",
            "visits": 34,
            "unique_visits": 8,
            "qrcodes_visits": 6
          },
          {
            "alias": "alias1",
            "embed_code": "",
            "long_url": "https:\/\/my.destination.url\/?p=1",
            "visits": 48,
            "unique_visits": 48,
            "qrcodes_visits": 6
          }
        ]
      },
      "publication name 2": {
        "custom.domain6.ext": [
          {
            "alias": "alias2",
            "embed_code": "",
            "long_url": "https:\/\/my.destination.url\/?p=2",
            "visits": 34,
            "unique_visits": 2,
            "qrcodes_visits": 2
          },
          {
            "alias": "alias3",
            "embed_code": "",
            "long_url": "https:\/\/my.destination.url\/?p=3",
            "visits": 61,
            "unique_visits": 41,
            "qrcodes_visits": 34
          },
          {
            "alias": "alias4",
            "embed_code": "",
            "long_url": "https:\/\/my.destination.url\/?p=4",
            "visits": 10,
            "unique_visits": 8,
            "qrcodes_visits": 5
          },
          {
            "alias": "alias5",
            "embed_code": "",
            "long_url": "https:\/\/my.destination.url\/?p=5",
            "visits": 60,
            "unique_visits": 18,
            "qrcodes_visits": 0
          }
        ]
      },
      "publication name 3": {
        "custom.domain1.ext": [
          {
            "alias": "alias6",
            "embed_code": "",
            "long_url": "https:\/\/my.destination.url\/?p=6",
            "visits": 68,
            "unique_visits": 58,
            "qrcodes_visits": 25
          }
        ]
      }
    }
  }
}
Optional parameters
parameter description
startINTEGER the position from which to start the extraction
Return values
parameter description
count total number of tracking links
next [OPTIONAL] the URL to be called to obtain the next tracking links, the export ends if this parameter does not exist or the URL is empty
remaining remaining tracking links after the export call, the export ends if this parameter is 0
tls array containing the exported tracking links

/urls/hub

/urls/hub/check

access: [READ]

This method performs an advanced check of conditions in the hub.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/hub/check?controller_id=5dcda66e3df29fd4d8e45ee38744c5e5

Query parameters

controller_id = 5dcda66e3df29fd4d8e45ee38744c5e5

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "data": [
      {
        "url_id": "13b62f3bbf4d13e05b1a3d26526828bf",
        "condition": "#referrer# CON 'facebook.com'",
        "warning": {
          "type": "not_reached",
          "message": "condition is never reached"
        }
      },
      {
        "url_id": "13b62f3bbf4d13e05b1a3d26526828bf",
        "condition": "#os# == 'android'",
        "warning": {
          "type": "=true",
          "message": "condition is always true"
        }
      },
      {
        "url_id": "b86ba70a737532789cd3a2bd11559359",
        "condition": "#os# != 'android'",
        "warning": {
          "type": "=false",
          "message": "condition is always false"
        }
      },
      {
        "url_id": "5dcda66e3df29fd4d8e45ee38744c5e5",
        "condition": "",
        "warning": {
          "type": "controller_url",
          "message": "the controller destination URL is never reached (at least one rule is always true)"
        }
      }
    ]
  }
}
Required parameters
parameter description
controller_idID ID of the controller tracking link
Return values
parameter description
data array containing information about rule checks, empty if no anomalies are detected

/urls/hub/clone

access: [WRITE]

Clone the hub configuration from a tracking link to another.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/hub/clone?from_url_id=928cd7731c7e29b26ec8401f79cf4e47&to_url_id=c948730b1b361c723c2fc5c4250e8e76

Query parameters

from_url_id = 928cd7731c7e29b26ec8401f79cf4e47
  to_url_id = c948730b1b361c723c2fc5c4250e8e76

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "cloned": 1
  }
}
Required parameters
parameter description
from_url_idID ID of the tracking link you want to copy the hub configuration from
to_url_idID ID of the tracking link you want to the hub configuration to
Return values
parameter description
cloned 1 on success, 0 otherwise

/urls/hub/conditions

/urls/hub/conditions/add

access: [WRITE]

Add a new condition to the URL hub.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/hub/conditions/add?url_id=ddf49a20c5dd1356cda973177e0e76f2&controller_id=1a91d3010184e773f6389dd7ed4c9aa5&condition=%23language%23+%3D+%27DE%27

Query parameters

       url_id = ddf49a20c5dd1356cda973177e0e76f2
controller_id = 1a91d3010184e773f6389dd7ed4c9aa5
    condition = #language# = 'DE'

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "added": 1
  }
}
Required parameters
parameter description
conditionHTML if this condition is met, the engine redirects to the tracking link identified by url_id
controller_idID ID of the root tracking link
url_idID ID of the tracking link to be used if the condition is met
Optional parameters
parameter description
old_url_idID ID of the existing tracking link in the hub to be replaced with the new one identified by url_id
Return values
parameter description
added 1 on success (the new condition is added/replaced), 0 otherwise
/urls/hub/conditions/check

access: [READ]

This method check the validity of a condition to be used with the hub.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/hub/conditions/check?condition=%23language%23+%3D+%27FR%27

Query parameters

condition = #language# = 'FR'

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": 1
}
Required parameters
parameter description
conditionHTML condition to check
Return values
parameter description
result 1 if the condition is valid, an invalid parameter error with a detailed error is returned otherwise
/urls/hub/conditions/decompile

access: [READ]

This method decompiles a condition by exploding it into parts.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/hub/conditions/decompile?condition=%23language%23+%3D+%27FR%27

Query parameters

condition = #language# = 'FR'

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "parts": [
      {
        "level": 0,
        "variable": "language",
        "operator": "=",
        "value": "FR"
      }
    ],
    "operators": {
      "language": {
        "=": "equal to",
        "!=": "not equal to"
      }
    },
    "values": {
      "language": {
        "AF": "Afrikaans",
        "AR": "Arabic - \u0627\u0644\u0639\u0631\u0628\u064a\u0629",
        "[...]": "[...]",
        "*": "custom (replace * with the ISO 639-1 code of the language)"
      }
    }
  }
}
Required parameters
parameter description
conditionHTML condition to decompile
Return values
parameter description
operators foreach varible in parts, it contains the allowed operators
parts parts of the condition in the format (level,variable,operator,value) or (level,boolean), where level is the variable of the boolean level (variables/booleans with the same level must be considered in brackets), variable is its name, operator and value are its operator and value, respectively; boolean can be AND or OR
values foreach varible in parts, it contains the allowed values
/urls/hub/conditions/delete

access: [WRITE]

This method allows you to remove a tracking link from the URL hub.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/hub/conditions/delete?url_id=80889fc7f243808214b26e609f2e963f&controller_id=5b79b547b6c6fed1137187bd33b2100f

Query parameters

       url_id = 80889fc7f243808214b26e609f2e963f
controller_id = 5b79b547b6c6fed1137187bd33b2100f

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "deleted": 1,
    "isActive": 1
  }
}
Required parameters
parameter description
controller_idID ID of the root tracking link
url_idID ID of the tracking link to remove
Return values
parameter description
deleted 1 on success (the new tracking link is deleted), 0 otherwise
isActive 1 if the hub is still active after deleting the tracking link identified by url_id (i.e., the hub has at least 2 tracking links, including the root tracking link), 0 otherwise
/urls/hub/conditions/order

access: [WRITE]

This method allows you to set the order for the tracking links of a hub URL.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/hub/conditions/order?controller_id=ddf6a13dba759e8aafce0904238d1bd7&ids%5B0%5D=ba6eba524634de1593617b43fef4619c&ids%5B1%5D=dcf2b61d8aeb537912c660660d508d3f&ids%5B2%5D=dc9ea9f3f85ad8099001874559e9a593&orders%5B0%5D=3&orders%5B1%5D=2&orders%5B2%5D=1

Query parameters

controller_id = ddf6a13dba759e8aafce0904238d1bd7
       ids[0] = ba6eba524634de1593617b43fef4619c
       ids[1] = dcf2b61d8aeb537912c660660d508d3f
       ids[2] = dc9ea9f3f85ad8099001874559e9a593
    orders[0] = 3
    orders[1] = 2
    orders[2] = 1

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "modified": 2,
    "isActive": 1
  }
}
Required parameters
parameter description
controller_idID ID of the root tracking link
idsARRAY_OF_IDS list of tracking link IDs for which to set the order
ordersARRAY list of integers defining the order of tracking links identified by ids
Return values
parameter description
isActive 1 if the hub is still active after reordering the tracking links, 0 otherwise
modified tracking link number whose ordering has actually changed

/urls/hub/debug

access: [READ]

Get a debug URL for a specific hub.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/hub/debug?controller_id=7d2bc07f3788b698197d3b20d8dc0702

Query parameters

controller_id = 7d2bc07f3788b698197d3b20d8dc0702

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "debug_url": "https:\/\/jo.my\/joturl?9774AA75!dbg",
    "valid_until": "2025-01-19T18:31:32+00:00"
  }
}
Required parameters
parameter description
controller_idID ID of the root tracking link
Return values
parameter description
debug_url debug URL
valid_until expiration date for the debug URL (ISO 8601 date format, e.g., 2025-01-19T18:31:32+00:00)

/urls/hub/delete

access: [WRITE]

Delete a URL hub.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/hub/delete?controller_id=e8db7cfc5d93c5ddd67479e08cd4c12c

Query parameters

controller_id = e8db7cfc5d93c5ddd67479e08cd4c12c

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "deleted": 1
  }
}
Required parameters
parameter description
controller_idID ID of the tracking link from which to remove a URL hub
Return values
parameter description
deleted 1 on success, 0 otherwise

/urls/hub/info

access: [READ]

Returns the URLs associated with a URL hub.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/hub/info?controller_id=68e7c7f9ab2a60bdbd654f36bc4ffc42

Query parameters

controller_id = 68e7c7f9ab2a60bdbd654f36bc4ffc42

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": [
    {
      "url_id": "2c207cb0ebbf1df3a4608d92a95e0bd0",
      "short_url": "https:\/\/jo.my\/tracking_link_condition_1",
      "condition": "#language# = 'IT'"
    },
    {
      "url_id": "c32b333485469254b9c0b422b00d417f",
      "short_url": "https:\/\/jo.my\/tracking_link_condition_2",
      "condition": "#language# = 'DE'"
    }
  ]
}
Required parameters
parameter description
controller_idID ID of the controller tracking link
Return values
parameter description
data array of objects in the format ( url_id, short_url, condition), where url_id is the tracking link ID, short_url is the tracking link itself and condition is the condition to be satisfied to redirect to the aforementioned tracking link. A maximum of 100 items are returned (the limit on the number of conditions that can be created)

/urls/hub/variable

access: [READ]

This method returns a list of variables that can be used with the Smart Redirector. Furthermore, if parameter name is passed, possible accepted operators and values are returned.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/hub/variable

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "variables": {
      "language": "Language",
      "country": "Country",
      "os": "Operating system",
      "os_version": "Operating system version",
      "mobile_device": "Mobile device",
      "browser": "Browser",
      "browser_type": "Browser type",
      "browser_version": "Main browser version",
      "visits": "Visits",
      "unique_visits": "Unique visits",
      "is_qrcode": "QR-Code?",
      "visited": "Already visited?",
      "time": "Time (UTC)",
      "datetime": "Date\/Time (UTC)",
      "referrer": "Referrer",
      "user_agent": "User agent"
    }
  }
}
Optional parameters
parameter description
nameSTRING name of the variable for which to extract the possible operators and values
Return values
parameter description
operators [OPTIONAL] array containing a list of available operators for the given variable name, it is passed only if name is passed
values [OPTIONAL] array containing a list of available values for the given variable name, it is passed only if name is passed
variables array containing a list of available variables

/urls/import

access: [WRITE]

This method import tracking links into a specific project.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/import?domain_id=0ff89072f75d48e8f247ea824979ab00

Query parameters

domain_id = 0ff89072f75d48e8f247ea824979ab00

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "imported": 797,
    "errors": []
  }
}
Required parameters
parameter description
domain_idID ID of the domain on which to import tracking links
inputSTRING name of the HTML form field that is used to transfer the CSV file
Optional parameters
parameter description
check_onlyBOOLEAN if 1 only a file check is required, no tracking link will be imported, default: 0
csv_has_headerBOOLEAN 1 if the CSV file has a header line, default: 0
csv_sepSTRING CSV delimiter, default: ; (semicolon)
project_idID ID of the project on which to import tracking links, if not specified the default will be used
Return values
parameter description
_accepted_id ID to be used to retrieve the current import status or to stop the import procedure
_accepted_key a string representing the current import operation
_accepted_perc percentage of completion of the import (floating point number)
check_only echo back of the input parameter check_only
csv_has_header echo back of the input parameter csv_has_header
csv_sep echo back of the input parameter csv_sep
domain_id echo back of the input parameter domain_id
errors array containing errors that occurred during the import (one element for each error)
imported number of imported tracking links
project_id echo back of the input parameter project_id

/urls/info

access: [READ]

This method returns the info about a tracking link, returned fields are specified by parameter fields.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/info?fields=id,short_url&id=6ca436372f559a2d713853e20893717d

Query parameters

fields = id,short_url
    id = 6ca436372f559a2d713853e20893717d

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "data": [
      {
        "id": "6ca436372f559a2d713853e20893717d",
        "short_url": "http:\/\/jo.my\/7de81e93"
      }
    ]
  }
}
Required parameters
parameter description
fieldsARRAY comma separated list of fields to return, see method i1/urls/list for reference
idID ID of the tracking link whose information is required
Return values
parameter description
data array containing 1 item on success, the returned information depends on the fields parameter.

/urls/instaurls

/urls/instaurls/clone

access: [WRITE]

Clone the InstaUrl configuration from a tracking link to another.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/instaurls/clone?from_url_id=8042104779226933f6905403255bd0d4&to_url_id=1ccdceeb84045dd37598756d1f4312c7

Query parameters

from_url_id = 8042104779226933f6905403255bd0d4
  to_url_id = 1ccdceeb84045dd37598756d1f4312c7

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "cloned": 1
  }
}
Required parameters
parameter description
from_url_idID ID of the tracking link you want to copy the InstaUrl configuration from
to_url_idID ID of the tracking link you want to the InstaUrl configuration to
Return values
parameter description
cloned 1 on success, 0 otherwise

/urls/instaurls/delete

access: [WRITE]

Delete InstaUrl settings for a tracking link.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/instaurls/delete?id=eed532f55bda082ec76069448f4d1002

Query parameters

id = eed532f55bda082ec76069448f4d1002

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "deleted": 1
  }
}
Required parameters
parameter description
idID ID of the tracking link from which to remove an InstaUrl configuration
Return values
parameter description
deleted 1 on success, 0 otherwise

/urls/instaurls/icons

/urls/instaurls/icons/info

access: [READ]

This method returns info on a SVG icon for InstaUrl.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/instaurls/icons/info?id=3f4459c326c051b4238787c705f86349

Query parameters

id = 3f4459c326c051b4238787c705f86349

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "id": "3f4459c326c051b4238787c705f86349",
    "svg": "<svg>[...]<\/svg>"
  }
}
Required parameters
parameter description
idSTRING ID of the icon as returned by the i1/urls/instaurls/icons/list method
Return values
parameter description
svg SVG of the requested icon
/urls/instaurls/icons/list

access: [READ]

This method returns a list of SVG icons for InstaUrl.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/instaurls/icons/list

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "count": 1462,
    "icons": {
      "id": "45c10ead4ceae000ddd19222178f0ffc",
      "svg": "<svg>[...]<\/svg>"
    }
  }
}
Optional parameters
parameter description
lengthINTEGER extracts this number of items (maxmimum allowed: 100)
searchSTRING filters items to be extracted by searching them
startINTEGER starts to extract items from this position
Return values
parameter description
count total number of icons
icons array containing icons in the format {"id":"[id of the icon]","svg":"[SVG of the icon"}

/urls/jotbars

/urls/jotbars/clone

access: [WRITE]

Clone the jotbar configuration from a tracking link to another.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/jotbars/clone?from_url_id=40961530ba9f7e35bbeb775955d72f2e&to_url_id=e1a3a4ed644abc977ec8f7c74a8feb38

Query parameters

from_url_id = 40961530ba9f7e35bbeb775955d72f2e
  to_url_id = e1a3a4ed644abc977ec8f7c74a8feb38

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "cloned": 0
  }
}
Required parameters
parameter description
from_url_idID ID of the tracking link you want to copy the jotbar configuration from
to_url_idID ID of the tracking link you want to the jotbar configuration to
Return values
parameter description
cloned 1 on success, 0 otherwise

/urls/jotbars/delete

access: [WRITE]

Remove a jotbar option for a tracking link.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/jotbars/delete?id=6811096eeeff65c8c4adfebb6507fc82

Query parameters

id = 6811096eeeff65c8c4adfebb6507fc82

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "deleted": 1
  }
}
Required parameters
parameter description
idID ID of the tracking link from which to remove a jotbar configuration
Return values
parameter description
deleted 1 on success, 0 otherwise

/urls/jotbars/edit

access: [WRITE]

Set a jotbar option for a tracking link.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/jotbars/edit?id=ea208934c419b8cae41a156db9a6f34f&logo=https%3A%2F%2Fjoturl.com%2Flogo.svg&logo_url=https%3A%2F%2Fjoturl.com%2F&template=right&template_size=big&languages=en,it&default_language=&user_default_language=en&info=%7B%22en%22%3A%7B%22page_title%22%3A%22English+page+title%22,%22description_title%22%3Anull,%22description%22%3A%22%3Cp%3E%5BEN%5D+HTML+description%3C%5C%2Fp%3E%22,%22questions_title%22%3Anull,%22questions%22%3A%22%3Cp%3E%5BEN%5D+HTML+questions%3C%5C%2Fp%3E%22%7D,%22it%22%3A%7B%22page_title%22%3A%22Titolo+pagina+in+italiano%22,%22description_title%22%3Anull,%22description%22%3A%22%3Cp%3E%5BIT%5D+HTML+description%3C%5C%2Fp%3E%22,%22questions_title%22%3Anull,%22questions%22%3A%22%3Cp%3E%5BIT%5D+HTML+questions%3C%5C%2Fp%3E%22%7D%7D

Query parameters

                   id = ea208934c419b8cae41a156db9a6f34f
                 logo = https://joturl.com/logo.svg
             logo_url = https://joturl.com/
             template = right
        template_size = big
            languages = en,it
     default_language = 
user_default_language = en
                 info = {"en":{"page_title":"English page title","description_title":null,"description":"<p>[EN] HTML description<\/p>","questions_title":null,"questions":"<p>[EN] HTML questions<\/p>"},"it":{"page_title":"Titolo pagina in italiano","description_title":null,"description":"<p>[IT] HTML description<\/p>","questions_title":null,"questions":"<p>[IT] HTML questions<\/p>"}}

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "updated": 1
  }
}
Required parameters
parameter description
idID ID of the project
Optional parameters
parameter description
embed_codeHTML embed code for videos (for example the YouTube embedding code <iframe ...></iframe>), if available
infoJSON JSON containing page_title, description_title, description, questions_title, questions for each language in languages, see i1/urls/jotbars/info for details on info
logoSTRING 0 to disable logo, the URL of the logo to be shown, empty or null to inherit the configuration from the account-level settings
logo_urlSTRING when logo has an URL, this is the URL to which the user will be redirect when clicks on the logo
show_feedbackSTRING 1 to show feedback, 0 to do not show it, empty or null to inherit the configuration from the account-level settings
templateSTRING position of the jotbar, empty or null to inherit the configuration from the account-level settings, for available positions see i1/jotbars/property
template_sizeSTRING dimension of the jotbar, empty or null to inherit the configuration from the account-level settings,for available dimensions see i1/jotbars/property
video_durationSTRING it represents the duration of the video in embed_code, if available
Return values
parameter description
data NA

/urls/jotbars/info

access: [READ]

Get jotbar information of a tracking link.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/jotbars/info?id=5474061eb868cde429a9e9ee93985af0

Query parameters

id = 5474061eb868cde429a9e9ee93985af0

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "logo": "https:\/\/joturl.com\/logo.svg",
    "logo_url": "https:\/\/joturl.com\/",
    "template": "right",
    "template_size": "big",
    "show_feedback": null,
    "embed_code": null,
    "video_duration": null,
    "info": {
      "en": {
        "page_title": "English page title",
        "description_title": null,
        "description": "<p>[EN] HTML description<\/p>",
        "questions_title": null,
        "questions": "<p>[EN] HTML questions<\/p>"
      },
      "it": {
        "page_title": "Titolo pagina in italiano",
        "description_title": null,
        "description": "<p>[IT] HTML description<\/p>",
        "questions_title": null,
        "questions": "<p>[IT] HTML questions<\/p>"
      }
    }
  }
}
Required parameters
parameter description
idID ID of the tracking link
Return values
parameter description
embed_code embed code for videos (for example the YouTube embedding code <iframe ...></iframe>), if available
info for each language in languages, it contains page_title, description_title, description, questions_title, questions, see the following notes for details
logo 0 to disable logo, the URL of the logo to be shown, empty or null to inherit the configuration from the account-level settings
logo_url when logo has an URL, this is the URL to which the user will be redirect when clicks on the logo
show_feedback 1 to show feedback, 0 to do not show it, empty or null to inherit the configuration from the account-level settings
template position of the jotbar, for available positions see i1/jotbars/property
template_size dimension of the jotbar, for available dimensions see i1/jotbars/property
video_duration it represents the duration of the video in embed_code, if available

/urls/languages

/urls/languages/list

access: [READ]

This method returns a list of available languages for specific options (e.g., Masking, jotBar) of a tracking link.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/languages/list?id=7ced124647a3a12bbb8f6aa59ecbb296

Query parameters

id = 7ced124647a3a12bbb8f6aa59ecbb296

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": [
    {
      "name": "en",
      "label": "English"
    },
    {
      "name": "it",
      "label": "Italiano"
    }
  ]
}
Required parameters
parameter description
idID ID of the tracking link
Return values
parameter description
[ARRAY] array containing available languages

/urls/last

access: [READ]

This method returns the list of the last 100 tracking links strictly created by the logged user. Returned fields are that specified in the parameter fields.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/last?fields=id,short_url,creation

Query parameters

fields = id,short_url,creation

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "data": [
      {
        "creation": "2025-01-19 18:31:32",
        "id": "65d3d12ec3037958ecfb05577a0b5f5e",
        "short_url": "http:\/\/jo.my\/6edca762"
      },
      {
        "creation": "2025-01-19 17:31:32",
        "id": "5591bcb139c9436123d42cc3fb64d720",
        "short_url": "http:\/\/jo.my\/4ced1b3a"
      },
      {
        "creation": "2025-01-19 16:31:32",
        "id": "b8c0aae18b6df2650f80254bd8d10db9",
        "short_url": "http:\/\/jo.my\/41f9197e"
      }
    ]
  }
}
Required parameters
parameter description
fieldsARRAY see method i1/urls/list for reference
Optional parameters
parameter description
end_dateDATE see method i1/urls/list for reference
filterSTRING see method i1/urls/list for reference
is_tracking_pixelBOOLEAN see method i1/urls/list for reference
lengthINTEGER see method i1/urls/list for reference
optionSTRING see method i1/urls/list for reference
orderbyARRAY orders items by field (see method i1/urls/list for reference). Default is orderby = creation
project_idID ID of the project, if empty or unspecified, this method returns last-created tracking links for the whole account
searchSTRING see method i1/urls/list for reference
sortSTRING sorts items in ascending (ASC) or descending (DESC) order. Default is sort = DESC
startINTEGER see method i1/urls/list for reference
start_dateDATE see method i1/urls/list for reference
whereSTRING see method i1/urls/list for reference
with_alertsBOOLEAN see method i1/urls/list for reference
Return values
parameter description
count see method i1/urls/list for reference
data see method i1/urls/list for reference

/urls/list

access: [READ]

This method returns a list of tracking links' data, returned fields are specified by parameter fields.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/list?fields=id,short_url&project_id=e375c8305ac9c45b7e8ee2c03d968ee2

Query parameters

    fields = id,short_url
project_id = e375c8305ac9c45b7e8ee2c03d968ee2

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "data": [
      {
        "id": "522d535f047e6968e9789418d6f76c99",
        "short_url": "http:\/\/jo.my\/73bd0303"
      },
      {
        "id": "1b9630012737f5eb1b520a260760d7b3",
        "short_url": "http:\/\/jo.my\/c10131fd"
      },
      {
        "id": "fb1ee81056a6f36697f165898cd46119",
        "short_url": "http:\/\/jo.my\/dcf27071"
      },
      {
        "id": "40dfa8c7160bac31eb606ee96e8a0656",
        "short_url": "http:\/\/jo.my\/fd2fcff8"
      },
      {
        "id": "6b21dd8eff8032177ded0e823af18075",
        "short_url": "http:\/\/jo.my\/25aa18a2"
      }
    ]
  }
}
Required parameters
parameter description
fieldsARRAY comma separated list of fields to return, available fields: count, id, short_url, creation, url_tags, visits, unique_visits, qrcodes_visits, conversions_visits, long_url, notes, alias, options, is_tracking_pixel, project_id, project_name, domain_id, domain_host, domain_nickname
Optional parameters
parameter description
end_dateDATE filter tracking links created up to this date (inclusive)
filterSTRING filter tracking links based on specific criteria, see notes for available filters
is_tracking_pixelBOOLEAN 1 to return only tracking pixels, 0 to return only tracking links, do not pass this parameter to return both
lengthINTEGER extracts this number of items (maxmimum allowed: 100)
optionSTRING filter tracking links by option, see i1/urls/options/list for a list of available options
orderbyARRAY orders items by field, available fields: count, id, short_url, creation, url_tags, visits, unique_visits, qrcodes_visits, conversions_visits, long_url, notes, alias, options, is_tracking_pixel, project_id, project_name, domain_id, domain_host, domain_nickname
project_idID ID of the project, if empty or unspecified, the default project will be assumed
searchSTRING filters items to be extracted by searching them
sortSTRING sorts items in ascending (ASC) or descending (DESC) order
startINTEGER starts to extract items from this position
start_dateDATE filter tracking links created from this date (inclusive)
whereSTRING to be used in conjunction with search, specifies where to search and it can be [alias,domain,destination,notes,tags,utms];
with_alertsBOOLEAN filter tracking links with security alerts
Return values
parameter description
count [OPTIONAL] total number of tracking links, returned only if count is passed in fields
data array containing information on the tracking links, the returned information depends on the fields parameter.

/urls/masking

/urls/masking/clone

access: [WRITE]

Clone the masking configuration from a tracking link to another.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/masking/clone?from_url_id=2924c42089f0ce3e812bab78041efe70&to_url_id=f7736f1d4ee22c1a2d235881cb9163df

Query parameters

from_url_id = 2924c42089f0ce3e812bab78041efe70
  to_url_id = f7736f1d4ee22c1a2d235881cb9163df

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "cloned": 1
  }
}
Required parameters
parameter description
from_url_idID ID of the tracking link you want to copy the masking configuration from
to_url_idID ID of the tracking link you want to copy the masking configuration to
Return values
parameter description
cloned 1 on success, 0 otherwise

/urls/masking/delete

access: [WRITE]

Delete the masking option from a tracking link.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/masking/delete?id=9df97a59db5b2cf94d6bd9d4decd36f4

Query parameters

id = 9df97a59db5b2cf94d6bd9d4decd36f4

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "deleted": 1
  }
}
Required parameters
parameter description
idID ID of the tracking link from which to remove a Masking configuration
Return values
parameter description
deleted 1 on success, 0 otherwise

/urls/masking/edit

access: [WRITE]

Set a masking option for a tracking link.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/masking/edit?id=04fc59e6f25835b05612e2cadd1f63a4&titles%5Ben%5D=This+is+title+for+the+page+in+English&titles%5Bit%5D=Questo+%C3%A8+un+titolo+per+la+pagina+in+Italiano&obfuscated=1&favicon=https%3A%2F%2Fwww.joturl.com%2Ffavicon.ico&otc_enabled=1&otc_validity=50&otc_private_key=4259305912

Query parameters

             id = 04fc59e6f25835b05612e2cadd1f63a4
     titles[en] = This is title for the page in English
     titles[it] = Questo è un titolo per la pagina in Italiano
     obfuscated = 1
        favicon = https://www.joturl.com/favicon.ico
    otc_enabled = 1
   otc_validity = 50
otc_private_key = 4259305912

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "enabled": 1
  }
}
Required parameters
parameter description
idID ID of the tracking link
Optional parameters
parameter description max length
faviconURL complete URL for the favicon to be used, this URL must be in HTTPS to avoid securiy issues 4000
obfuscatedBOOLEAN 1 if the destiantion URL should be obfuscated, 0 otherwise
otc_enabledBOOLEAN 1 to enable one-time code feature, 0 otherwise
otc_validityINTEGER the time in seconds that the one-time code remains valid, too short times can cause malfunctions, too long times can give other users access to the one-time code. Available times: 10, 20, 30, 40, 50, 60, 180, 360, 540, 720, 1440, 2880, 4320, 5760, 7200, 8640, 10080
titlesSTRING titles for the masking page, one for each supported language; it contains couples (language codes, title), each title can contain maximum 500 characters 500
Return values
parameter description
enabled 1 on success, 0 otherwise

/urls/masking/info

access: [READ]

Get masking information for a tracking link.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/masking/info?id=1c92c2a8a53b8709a6dc859784842c17

Query parameters

id = 1c92c2a8a53b8709a6dc859784842c17

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "titles": {
      "en": "This is title for the page in English",
      "it": "Questo è un titolo per la pagina in Italiano"
    },
    "obfuscated": 1,
    "favicon": "https:\/\/www.joturl.com\/favicon.ico",
    "otc_enabled": 1,
    "otc_validity": 50,
    "otc_private_key": "858991241"
  }
}
Required parameters
parameter description
idID ID of the tracking link
Return values
parameter description
favicon [OPTIONAL] complete URL for the favicon to be used, this URL must be in HTTPS to avoid securiy issues
obfuscated [OPTIONAL] 1 if the destiantion URL should be obfuscated, 0 otherwise
otc_enabled [OPTIONAL] 1 if the one-time code feature is enabled, 0 otherwise
otc_private_key [OPTIONAL] one-time code private key, it is the key to be used to generate one-time codes
otc_validity [OPTIONAL] the time in seconds that the one-time code remains valid, see i1/urls/masking/edit for details
titles [OPTIONAL] titles for the masking page, one for each supported language

/urls/minipages

/urls/minipages/clone

access: [WRITE]

Clone the minpages configuration from a tracking link to another.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/minipages/clone?from_url_id=3792e39bdb961322fd16ffdb9fd695b1&to_url_id=1176f4eb0e9af72d6625122326b821e7

Query parameters

from_url_id = 3792e39bdb961322fd16ffdb9fd695b1
  to_url_id = 1176f4eb0e9af72d6625122326b821e7

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "cloned": 0
  }
}
Required parameters
parameter description
from_url_idID ID of the tracking link you want to copy the minpages configuration from
to_url_idID ID of the tracking link you want to the minpages configuration to
Return values
parameter description
cloned 1 on success, 0 otherwise

/urls/minipages/delete

access: [WRITE]

Unset (delete) a minipage for a tracking link.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/minipages/delete?id=2d28cdac6056b79c4d5f70ece77d237f

Query parameters

id = 2d28cdac6056b79c4d5f70ece77d237f

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "deleted": 1
  }
}
Required parameters
parameter description
idID ID of the tracking link from which to remove a Minipage configuration
Return values
parameter description
deleted 1 on success, 0 otherwise

/urls/move

access: [WRITE]

Moves a tracking link from a project to another.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/move?src_project_id=bf94e73e7bc5b517f45d4178a7af881d&dst_project_id=4a7f6d51271c032fc092df597a6e8a3b&id=0814f27302040b42ca4aa189177ef0c8

Query parameters

src_project_id = bf94e73e7bc5b517f45d4178a7af881d
dst_project_id = 4a7f6d51271c032fc092df597a6e8a3b
            id = 0814f27302040b42ca4aa189177ef0c8

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "moved": [
      {
        "src_project_id": "bf94e73e7bc5b517f45d4178a7af881d",
        "id": "0814f27302040b42ca4aa189177ef0c8"
      }
    ]
  }
}
Required parameters
parameter description
dst_project_idID ID of the project the tracking link have to be moved to
src_project_idID ID of the project the tracking link is currently in
Optional parameters
parameter description
fieldsARRAY see method i1/urls/list for a list of available fields
idID ID of the tracking link to move
idsARRAY_OF_IDS comma separated list of tracking link IDs to be moved
Return values
parameter description
moved array containing information on the moved tracking links, errors occurred while moving are ignored and this array can be empty. The information returned depends on the fields parameter. If fields is not passed, IDs of the tracking links and of the source project are returned. See method i1/urls/list for a list of return fields.

/urls/options

/urls/options/check

access: [READ]

Checks if an option is compatible with those active on the tracking link.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/options/check?id=aa5020371e4a64d2ea06a063545fd3ec&option=split

Query parameters

    id = aa5020371e4a64d2ea06a063545fd3ec
option = split

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "compatible": 0,
    "incompatible": "split"
  }
}
Required parameters
parameter description
idID ID of the tracking link
optionSTRING Option to be checked
Return values
parameter description
compatible 1 if the option is compatible with the options that are active on the tracking link, 0 otherwise
incompatible if compatible = 0, it contains the option that is not compatible with the passed option, if compatible = 1 it is empty. incompatible is not a list of all incompatible options, but just the first option detected

/urls/options/info

access: [READ]

Returns the list of available options for a specific TLs. Further, this method returns the exclusion list (options that cannot be used with other options), the list of options that are disabled for the user plan and the list of options that can be used to filter tracking links.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/options/info?id=285966

Query parameters

id = 285966

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "options": [
      "balancer",
      "cloaking",
      "conversions",
      "ctas",
      "deeplink",
      "easydeeplink",
      "instaurl",
      "jotbar",
      "masking",
      "minipage",
      "parameters",
      "preview",
      "redirector",
      "remarketings",
      "selfdestruction",
      "split",
      "whatsapp"
    ],
    "exclusions": {
      "balancer": [
        "ctas",
        "deeplink",
        "easydeeplink",
        "instaurl",
        "jotbar",
        "masking",
        "minipage",
        "redirector",
        "remarketings",
        "split",
        "whatsapp"
      ],
      "cloaking": [],
      "conversions": [
        "split"
      ],
      "ctas": [
        "balancer",
        "deeplink",
        "easydeeplink",
        "instaurl",
        "jotbar",
        "masking",
        "minipage",
        "redirector",
        "split",
        "whatsapp"
      ],
      "deeplink": [
        "balancer",
        "ctas",
        "easydeeplink",
        "instaurl",
        "jotbar",
        "masking",
        "minipage",
        "redirector",
        "remarketings",
        "split",
        "whatsapp"
      ],
      "easydeeplink": [
        "balancer",
        "ctas",
        "deeplink",
        "instaurl",
        "jotbar",
        "masking",
        "minipage",
        "redirector",
        "remarketings",
        "split",
        "whatsapp"
      ],
      "instaurl": [
        "balancer",
        "ctas",
        "deeplink",
        "easydeeplink",
        "jotbar",
        "masking",
        "minipage",
        "redirector",
        "split",
        "whatsapp"
      ],
      "jotbar": [
        "balancer",
        "ctas",
        "deeplink",
        "easydeeplink",
        "instaurl",
        "masking",
        "minipage",
        "redirector",
        "split",
        "whatsapp"
      ],
      "masking": [
        "balancer",
        "ctas",
        "deeplink",
        "easydeeplink",
        "instaurl",
        "jotbar",
        "minipage",
        "redirector",
        "split",
        "whatsapp"
      ],
      "minipage": [
        "balancer",
        "ctas",
        "deeplink",
        "easydeeplink",
        "instaurl",
        "jotbar",
        "masking",
        "redirector",
        "split",
        "whatsapp"
      ],
      "parameters": [],
      "preview": [],
      "redirector": [
        "balancer",
        "ctas",
        "deeplink",
        "easydeeplink",
        "instaurl",
        "jotbar",
        "masking",
        "minipage",
        "remarketings",
        "split",
        "whatsapp"
      ],
      "remarketings": [
        "balancer",
        "deeplink",
        "easydeeplink",
        "redirector",
        "split",
        "whatsapp"
      ],
      "selfdestruction": [],
      "split": [
        "balancer",
        "conversions",
        "ctas",
        "deeplink",
        "easydeeplink",
        "instaurl",
        "jotbar",
        "masking",
        "minipage",
        "redirector",
        "remarketings",
        "whatsapp"
      ],
      "whatsapp": [
        "balancer",
        "ctas",
        "deeplink",
        "easydeeplink",
        "instaurl",
        "jotbar",
        "masking",
        "minipage",
        "redirector",
        "remarketings",
        "split"
      ]
    },
    "disabled": [],
    "filters": [
      "balancer",
      "cloaking",
      "conversions",
      "ctas",
      "deeplink",
      "easydeeplink",
      "instaurl",
      "jotbar",
      "masking",
      "minipage",
      "parameters",
      "preview",
      "redirector",
      "remarketings",
      "selfdestruction",
      "split",
      "whatsapp"
    ]
  }
}
Required parameters
parameter description
idID ID of the tracking link
Return values
parameter description
disabled List of options that are not available for the current user
exclusions List of options that are not compatible with other options. Each option of the list contains an array of incompatible options
filters List of options that are can be used to filter tracking links
options List of options available for the specified tracking link

/urls/options/list

access: [READ]

Returns the list of available options for TLs. Further, this method returns the exlusion list (options that cannot be used in conjuction of other options), the list of options that are disabled for the user plan and the list of options that can be used to filter tracking links.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/options/list

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "options": [
      "balancer",
      "cloaking",
      "conversions",
      "ctas",
      "deeplink",
      "easydeeplink",
      "instaurl",
      "jotbar",
      "masking",
      "minipage",
      "parameters",
      "preview",
      "redirector",
      "remarketings",
      "selfdestruction",
      "split",
      "whatsapp"
    ],
    "exclusions": {
      "balancer": [
        "ctas",
        "deeplink",
        "easydeeplink",
        "instaurl",
        "jotbar",
        "masking",
        "minipage",
        "redirector",
        "remarketings",
        "split",
        "whatsapp"
      ],
      "cloaking": [],
      "conversions": [
        "split"
      ],
      "ctas": [
        "balancer",
        "deeplink",
        "easydeeplink",
        "instaurl",
        "jotbar",
        "masking",
        "minipage",
        "redirector",
        "split",
        "whatsapp"
      ],
      "deeplink": [
        "balancer",
        "ctas",
        "easydeeplink",
        "instaurl",
        "jotbar",
        "masking",
        "minipage",
        "redirector",
        "remarketings",
        "split",
        "whatsapp"
      ],
      "easydeeplink": [
        "balancer",
        "ctas",
        "deeplink",
        "instaurl",
        "jotbar",
        "masking",
        "minipage",
        "redirector",
        "remarketings",
        "split",
        "whatsapp"
      ],
      "instaurl": [
        "balancer",
        "ctas",
        "deeplink",
        "easydeeplink",
        "jotbar",
        "masking",
        "minipage",
        "redirector",
        "split",
        "whatsapp"
      ],
      "jotbar": [
        "balancer",
        "ctas",
        "deeplink",
        "easydeeplink",
        "instaurl",
        "masking",
        "minipage",
        "redirector",
        "split",
        "whatsapp"
      ],
      "masking": [
        "balancer",
        "ctas",
        "deeplink",
        "easydeeplink",
        "instaurl",
        "jotbar",
        "minipage",
        "redirector",
        "split",
        "whatsapp"
      ],
      "minipage": [
        "balancer",
        "ctas",
        "deeplink",
        "easydeeplink",
        "instaurl",
        "jotbar",
        "masking",
        "redirector",
        "split",
        "whatsapp"
      ],
      "parameters": [],
      "preview": [],
      "redirector": [
        "balancer",
        "ctas",
        "deeplink",
        "easydeeplink",
        "instaurl",
        "jotbar",
        "masking",
        "minipage",
        "remarketings",
        "split",
        "whatsapp"
      ],
      "remarketings": [
        "balancer",
        "deeplink",
        "easydeeplink",
        "redirector",
        "split",
        "whatsapp"
      ],
      "selfdestruction": [],
      "split": [
        "balancer",
        "conversions",
        "ctas",
        "deeplink",
        "easydeeplink",
        "instaurl",
        "jotbar",
        "masking",
        "minipage",
        "redirector",
        "remarketings",
        "whatsapp"
      ],
      "whatsapp": [
        "balancer",
        "ctas",
        "deeplink",
        "easydeeplink",
        "instaurl",
        "jotbar",
        "masking",
        "minipage",
        "redirector",
        "remarketings",
        "split"
      ]
    },
    "disabled": [],
    "filters": [
      "balancer",
      "cloaking",
      "conversions",
      "ctas",
      "deeplink",
      "easydeeplink",
      "instaurl",
      "jotbar",
      "masking",
      "minipage",
      "parameters",
      "preview",
      "redirector",
      "remarketings",
      "selfdestruction",
      "split",
      "whatsapp"
    ]
  }
}
Return values
parameter description
disabled List of options that are not available for the current user
exclusions List of options that are not compatible with other options. Each option of the list contains an array of incompatible options
filters List of options that are can be used to filter tracking links
options List of options available for tracking links

/urls/parameters

/urls/parameters/clone

access: [WRITE]

Clone the UTM paramters from a tracking link to another.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/parameters/clone?from_url_id=29d2b185e55bcadbd5a565d8baaac224&to_url_id=340ed5afc889dd48d31cad2ccaf3e7a2

Query parameters

from_url_id = 29d2b185e55bcadbd5a565d8baaac224
  to_url_id = 340ed5afc889dd48d31cad2ccaf3e7a2

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "cloned": 0
  }
}
Required parameters
parameter description
from_url_idID ID of the tracking link you want to copy the UTM paramters from
to_url_idID ID of the tracking link you want to copy the UTM paramters to
Return values
parameter description
cloned 1 on success, 0 otherwise

/urls/parameters/delete

access: [WRITE]

Delete UTM parameters from the destination URL of a tracking link.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/parameters/delete?url_id=3d472268b19ad212ad2b7558b6aa5bce

Query parameters

url_id = 3d472268b19ad212ad2b7558b6aa5bce

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "deleted": 1
  }
}
Required parameters
parameter description
url_idID ID of the tracking link from which to remove the UTM parameters
Return values
parameter description
deleted 1 on success, 0 otherwise

/urls/parameters/edit

access: [WRITE]

Set query and UTM parameters of the destination URL of a tracking link.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/parameters/edit?url_id=b292252c19c4eb1d9c58fead7b2645c2&utm_template_id=a8d7a5e64e74e93f205b3a04b7d2af8e¶ms%5Bp1%5D=v1¶ms%5Bp2%5D=v2

Query parameters

         url_id = b292252c19c4eb1d9c58fead7b2645c2
utm_template_id = a8d7a5e64e74e93f205b3a04b7d2af8e
     params[p1] = v1
     params[p2] = v2

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "added": 1,
    "url_id": "b292252c19c4eb1d9c58fead7b2645c2",
    "enabled": 1,
    "utm_template_id": "a8d7a5e64e74e93f205b3a04b7d2af8e",
    "utm_source": "",
    "utm_medium": "",
    "utm_campaign": "",
    "utm_term": "",
    "utm_content": "",
    "long_url": "https:\/\/www.joturl.com\/reserved\/projects.html?p1=v1&p2=v2"
  }
}
Required parameters
parameter description
url_idID ID of the tracking link
Optional parameters
parameter description
paramsJSON couples (key,value) to be set in the destination URL of the tracking link, this only affects the main destination URL, other destination URLs coming from other options (e.g., balancer, timing) are not changed. Old parameters are deleted or changed with the passed values.
utm_campaignSTRING UTM campaign parameter
utm_contentSTRING UTM content parameter
utm_mediumSTRING UTM medium parameter
utm_sourceSTRING UTM source parameter
utm_template_idID ID of the UTM template to associate to the tracking link
utm_termSTRING UTM term parameter
Return values
parameter description
added 1 on success, 0 otherwise
enabled 1 if UTM parameters have been set for the tracking link, 0 otherwise
long_url [OPTIONAL] returned only if input paramter params is passed
utm_campaign echo back of the input utm_campaign parameter if utm_template_id is not passed, empty otherwise
utm_content echo back of the input utm_content parameter if utm_template_id is not passed, empty otherwise
utm_medium echo back of the input utm_medium parameter if utm_template_id is not passed, empty otherwise
utm_source echo back of the input utm_source parameter if utm_template_id is not passed, empty otherwise
utm_template_id echo back of the input utm_template_id parameter
utm_term echo back of the input utm_term parameter if utm_template_id is not passed, empty otherwise

/urls/parameters/info

access: [READ]

Get query and UTM parameters of the destination URL of a tracking link.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/parameters/info?url_id=bcf4c70217da4cb6ab8dab7d9e3397a5

Query parameters

url_id = bcf4c70217da4cb6ab8dab7d9e3397a5

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "params": {
      "p1": "v1",
      "p2": "v2"
    },
    "utm_template_id": "843e23c0cf0dbc860f7f8715c5a50951",
    "name": "template name",
    "utm_source": "",
    "utm_medium": "",
    "utm_campaign": "",
    "utm_term": "",
    "utm_content": "",
    "long_url": "https:\/\/www.joturl.com\/reserved\/projects.html?p1=v1&p2=v2"
  }
}
Required parameters
parameter description
url_idID ID of the tracking link
Return values
parameter description
long_url destination URL of the tracking link
name name of the UTM template if utm_template_id is not empty
params couples (key,value) representing query parameters of the destination URL
utm_campaign utm_campaign parameter, it is the utm_campaign defined in the UTM template if utm_template_id is not empty, otherwise it is the custom utm_campaign defined in the tracking link (if available)
utm_content utm_content parameter, it is the utm_content defined in the UTM template if utm_template_id is not empty, otherwise it is the custom utm_content defined in the tracking link (if available)
utm_medium utm_medium parameter, it is the utm_medium defined in the UTM template if utm_template_id is not empty, otherwise it is the custom utm_medium defined in the tracking link (if available)
utm_source utm_source parameter, it is the utm_source defined in the UTM template if utm_template_id is not empty, otherwise it is the custom utm_source defined in the tracking link (if available)
utm_template_id ID of the applied UTM template, if available
utm_term utm_term parameter, it is the utm_term defined in the UTM template if utm_template_id is not empty, otherwise it is the custom utm_term defined in the tracking link (if available)

/urls/password

/urls/password/clone

access: [WRITE]

Clone a password from a tracking link to another.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/password/clone?from_url_id=fff7ae4bce46851bcb80ae462070f5cb&to_url_id=f57e160c9d67003103ddc90e8df35eea

Query parameters

from_url_id = fff7ae4bce46851bcb80ae462070f5cb
  to_url_id = f57e160c9d67003103ddc90e8df35eea

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "cloned": 1
  }
}
Required parameters
parameter description
from_url_idID ID of the tracking link you want to copy password from
to_url_idID ID of the tracking link you want to copy password to
Return values
parameter description
cloned 1 on success, 0 otherwise (e.g., the password is empty)

/urls/password/delete

access: [WRITE]

Delete the password of a tracking link.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/password/delete?id=84e29401e1299d33234d4fb0855de98f

Query parameters

id = 84e29401e1299d33234d4fb0855de98f

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "deleted": 1
  }
}
Required parameters
parameter description
idID ID of the tracking link from which to remove the password
Return values
parameter description
deleted 1 on success, 0 otherwise

/urls/password/edit

access: [WRITE]

Define a password for the tracking link.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/password/edit?id=a4ab1add017d052f0b052d2d302fba40&password=8a32d1b4

Query parameters

      id = a4ab1add017d052f0b052d2d302fba40
password = 8a32d1b4

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "password": "8a32d1b4"
  }
}
Required parameters
parameter description max length
idID ID of the tracking link
passwordSTRING password to use to protect the tracking link 15
Return values
parameter description
password echo back of parameter password

/urls/password/info

access: [READ]

Get the password of a tracking link.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/password/info?id=4870aaf2342ed2834128986fafd1319a

Query parameters

id = 4870aaf2342ed2834128986fafd1319a

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "password": "80ccc713"
  }
}
Required parameters
parameter description
idID ID of the tracking link
Return values
parameter description
password password used to pretect the tracking link, empty otherwise

/urls/preview

/urls/preview/clone

access: [WRITE]

Clone the preview configuration from a tracking link to another.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/preview/clone?from_url_id=6b9eed0f23fbebc4674f047c1a544bf3&to_url_id=8818f8404d865bfa3a82330f7de6ac44

Query parameters

from_url_id = 6b9eed0f23fbebc4674f047c1a544bf3
  to_url_id = 8818f8404d865bfa3a82330f7de6ac44

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "cloned": 1
  }
}
Required parameters
parameter description
from_url_idID ID of the tracking link you want to copy the preview configuration from
to_url_idID ID of the tracking link you want to copy the preview configuration to
Return values
parameter description
cloned 1 on success, 0 otherwise

/urls/preview/delete

access: [WRITE]

Delete the preview option from a tracking link.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/preview/delete?id=ae308913044796e389ecac1e0818debf

Query parameters

id = ae308913044796e389ecac1e0818debf

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "deleted": 1
  }
}
Required parameters
parameter description
idID ID of the tracking link from which to remove a preview configuration
Return values
parameter description
deleted 1 on success, 0 otherwise

/urls/preview/edit

access: [WRITE]

Set a preview option for a tracking link.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/preview/edit?id=b70813c4d4f0bfc1033aaacd206bd094&title=This+is+a+custom+title&description=This+is+a+custom+description&image=https%3A%2F%2Fpath.to%2Flink%2Fpreview%2Fimage.jpg

Query parameters

         id = b70813c4d4f0bfc1033aaacd206bd094
      title = This is a custom title
description = This is a custom description
      image = https://path.to/link/preview/image.jpg

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "enabled": 1
  }
}
Required parameters
parameter description
idID ID of the tracking link
Optional parameters
parameter description max length
cdn_imageJSON JSON containing info on the CDN image to be used, if present it overrides the image parameter, see i1/cdns/list for details on this object
descriptionSTRING Open Graph description for the preview page 2000
imageURL complete URL for the Open Graph image to be used, this URL must be in HTTPS to avoid securiy issues, alternatively you can pass a CDN image by using the cdn_image parameter 4000
titleSTRING Open Graph title for the preview page 2000
Return values
parameter description
enabled 1 on success, 0 otherwise

/urls/preview/info

access: [READ]

Get link preview information for a tracking link.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/preview/info?id=03e83d0b05de0d8a7586ade482694fc6

Query parameters

id = 03e83d0b05de0d8a7586ade482694fc6

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "title": "This is a custom title",
    "description": "This is a custom description",
    "image": "https:\/\/path.to\/link\/preview\/image.jpg"
  }
}
Required parameters
parameter description
idID ID of the tracking link
Return values
parameter description
cdn_image [OPTIONAL] JSON containing info on the CDN image, see i1/urls/preview/edit for details
description [OPTIONAL] description to be shown in the link preview
image [OPTIONAL] image to be shown in the link preview
title [OPTIONAL] title to be shown in the link preview

/urls/preview/property

access: [READ]

Returns the list of available properties for the Preview option.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/preview/property

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "image": {
      "max_size": 512000,
      "max_width": 1200,
      "max_height": 630
    }
  }
}
Return values
parameter description
image limits ( max_size in bytes, max_width in pixels, max_height in pixels) for the preview image

/urls/qrcodes

/urls/qrcodes/add

access: [WRITE]

Set a Qr code template for a short URL.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/qrcodes/add?id=e25f52fdc21779002add9e4a50506e7d&qrcode_id=0595c9b1e9fdcd19795af78468f98e56

Query parameters

       id = e25f52fdc21779002add9e4a50506e7d
qrcode_id = 0595c9b1e9fdcd19795af78468f98e56

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "added": 1
  }
}
Required parameters
parameter description
idID ID of the tracking link
qrcode_idID ID of the QR code template to associate to the tracking link
Return values
parameter description
added 1 on success, 0 otherwise

/urls/qrcodes/clone

access: [WRITE]

Clone the qrcodes configuration from a tracking link to another.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/qrcodes/clone?from_url_id=26bdc240cf5b75a27d404ae694c553cc&to_url_id=1d7e03353896b970caf9ef5164ebfb1a

Query parameters

from_url_id = 26bdc240cf5b75a27d404ae694c553cc
  to_url_id = 1d7e03353896b970caf9ef5164ebfb1a

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "cloned": 1
  }
}
Required parameters
parameter description
from_url_idID ID of the tracking link you want to copy qrcode configuration from
to_url_idID ID of the tracking link you want to copy qrcode configuration to
Return values
parameter description
cloned 1 on success, 0 otherwise

/urls/qrcodes/delete

access: [WRITE]

Unset a Qr code template for a short URL.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/qrcodes/delete?id=e661ec160e4b5e236cbfe7baeee72240&qrcode_id=182f681b7ad87e45be4ed970427a3e1c

Query parameters

       id = e661ec160e4b5e236cbfe7baeee72240
qrcode_id = 182f681b7ad87e45be4ed970427a3e1c

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "deleted": 1
  }
}
Required parameters
parameter description
idID ID of the tracking link from which to remove the QR code configuration
Optional parameters
parameter description
qrcode_idID ID of the QR code configuration
Return values
parameter description
deleted 1 on success, 0 otherwise

/urls/qrcodes/info

access: [READ]

Returns information on QR code customization, if present.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/qrcodes/info?id=27359d585bf377a6b73b2cc6d76c33ed&fields=id,name,shape

Query parameters

    id = 27359d585bf377a6b73b2cc6d76c33ed
fields = id,name,shape

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "id": "720e03cc27ab546eb9a90cc3114c3634",
    "name": "QR code template name",
    "shape": "rhombus"
  }
}
Required parameters
parameter description
fieldsARRAY comma-separated list of fields to return, see i1/qrcodes/info for details
idID ID of the tracking link
Return values
parameter description
data see i1/qrcodes/info for details

/urls/qrcodes/preview

access: [READ]

This method returns a preview of the QR code associated to the tracking link (if any).

Example 1 (json)

Request

https://joturl.com/a/i1/urls/qrcodes/preview?size=big&id=ec0f04000ce66391075e864570a7998f

Query parameters

size = big
  id = ec0f04000ce66391075e864570a7998f

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "img": "data:image\/png;base64,NjBkZjM0YTRhNWQzOWM0YzdhMzVhNjJlZTcyNTlhY2I="
  }
}
Required parameters
parameter description
idID ID of the tracking link
Optional parameters
parameter description
downloadBOOLEAN see i1/qrcodes/preview for details
return_imageBOOLEAN see i1/qrcodes/preview for details
sizeSTRING see i1/qrcodes/preview for details
typeSTRING see i1/qrcodes/preview for details
Return values
parameter description
[BINARY DATA] see i1/qrcodes/preview for details
img see i1/qrcodes/preview for details

/urls/remarketings

/urls/remarketings/add

access: [WRITE]

Add remarketing pixels to a tracking link.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/remarketings/add?url_id=782d4d930b70a7b23f6a986ed7db3fc3&ids=0f8b2b9e36969bc85f0897d23e92171f,691f4b34f30f54889728fb3a6f992497,352c4705d895392fd79c4dc93bbdd88f,e532dde9bac26ddc5dc580b90041ed88,4606312a1c1bc2d85cce29c129aad81c

Query parameters

url_id = 782d4d930b70a7b23f6a986ed7db3fc3
   ids = 0f8b2b9e36969bc85f0897d23e92171f,691f4b34f30f54889728fb3a6f992497,352c4705d895392fd79c4dc93bbdd88f,e532dde9bac26ddc5dc580b90041ed88,4606312a1c1bc2d85cce29c129aad81c

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "added": 5
  }
}
Required parameters
parameter description
idsARRAY_OF_IDS comma-separated list of remarketing pixels to add (maxmimum number of remarketing pixels: 5)
url_idID ID of the tracking link to which to add one or more remarketing pixels
Return values
parameter description
added 0 on error, the number of added remarketing pixels otherwise

/urls/remarketings/clone

access: [WRITE]

Clone the remarketings configuration from a tracking link to another.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/remarketings/clone?from_url_id=687bcf0559dfaccea7f02667e4bd3b13&to_url_id=8e82f23519d4a2e34cef72727dd5cb64

Query parameters

from_url_id = 687bcf0559dfaccea7f02667e4bd3b13
  to_url_id = 8e82f23519d4a2e34cef72727dd5cb64

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "cloned": 0
  }
}
Required parameters
parameter description
from_url_idID ID of the tracking link you want to copy the remarketings configuration from
to_url_idID ID of the tracking link you want to copy the remarketings configuration to
Return values
parameter description
cloned 1 on success, 0 otherwise

/urls/remarketings/count

access: [READ]

This method returns the number of remarketing pixels linked to a tracking link.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/remarketings/count?url_id=ab82944b49d0c0a676400df2ce9edae0

Query parameters

url_id = ab82944b49d0c0a676400df2ce9edae0

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "count": 3
  }
}
Required parameters
parameter description
url_idID ID of the tracking link to check
Return values
parameter description
count the number of linked remakerting pixels

/urls/remarketings/delete

access: [WRITE]

Delete one or more remarketing pixels linked to a tracking link.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/remarketings/delete?url_id=6f32bf20d021784b4e4dbf15b6209e17

Query parameters

url_id = 6f32bf20d021784b4e4dbf15b6209e17

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "deleted": 1
  }
}
Required parameters
parameter description
url_idID ID of the tracking link from which to remove one or more remarketing pixels
Optional parameters
parameter description
idsARRAY_OF_IDS comma-separated list of remarketing pixels to remove, if empty all remarketing pixels will be removed
Return values
parameter description
deleted 1 on success, 0 otherwise

/urls/remarketings/edit

access: [WRITE]

Edit the list of tracking pixels linked to a tracking link (all previous tracking pixels are removed).

Example 1 (json)

Request

https://joturl.com/a/i1/urls/remarketings/edit?url_id=79e2e8cefbfe95721779842f9aa05d02&ids=6414fc7982cd683a69f5c05459a64f4b,7714a25f770764a47c980242cb61f41d,50d9e5a12ce853310d7b8b959654e31b

Query parameters

url_id = 79e2e8cefbfe95721779842f9aa05d02
   ids = 6414fc7982cd683a69f5c05459a64f4b,7714a25f770764a47c980242cb61f41d,50d9e5a12ce853310d7b8b959654e31b

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "ids": "6414fc7982cd683a69f5c05459a64f4b,7714a25f770764a47c980242cb61f41d,50d9e5a12ce853310d7b8b959654e31b"
  }
}
Required parameters
parameter description
idsARRAY_OF_IDS comma-separated list of remarketing pixels to add (maxmimum number of remarketing pixels: 5)
url_idID ID of the tracking link to which to add one or more remarketing pixels
Return values
parameter description
ids comma-separated list of added remarketing pixels

/urls/remarketings/list

access: [READ]

This method returns a list of remarketing pixels linked to a tracking link.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/remarketings/list?fields=count,id,name,notes,code_type,code_id&url_id=a453d9516a904ccec3cd3a2b9514b668

Query parameters

fields = count,id,name,notes,code_type,code_id
url_id = a453d9516a904ccec3cd3a2b9514b668

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "count": 2,
    "data": [
      {
        "id": "3161b744cedc1eaf90481fc9ceaca6c3",
        "name": "remarketing pixel (bing)",
        "notes": "",
        "code_type": "bing",
        "code_id": "1234567890A"
      },
      {
        "id": "0500d5f17d4f24f4cc32a79ae4809326",
        "name": "remarketing pixel (facebook)",
        "notes": "remarketing pixel for FB",
        "code_type": "facebook",
        "code_id": "A0987654321"
      }
    ]
  }
}
Required parameters
parameter description
fieldsARRAY comma-separated list of fields to return, available fields: count, id, name, notes, code_type, code_id
url_idID ID of the liked tracking link
Optional parameters
parameter description
lengthINTEGER extracts this number of remarketing pixels (maxmimum allowed: 100)
orderbyARRAY orders remarketing pixels by field, available fields: id, name, notes, code_type, code_id
searchSTRING filters remarketing pixels to be extracted by searching them
sortSTRING sorts remarketing pixels in ascending (ASC) or descending (DESC) order
startINTEGER starts to extract remarketing pixels from this position
Return values
parameter description
data array containing information on the remarketing pixels, returned information depends on the fields parameter.

/urls/selfdestruction

/urls/selfdestruction/clone

access: [WRITE]

Clone a self destruction configuration from a tracking link to another.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/selfdestruction/clone?from_url_id=8bad015762b23f2c21599218fa9e4ace&to_url_id=bb9a81b7869b6905afd505e434d7227f

Query parameters

from_url_id = 8bad015762b23f2c21599218fa9e4ace
  to_url_id = bb9a81b7869b6905afd505e434d7227f

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "cloned": 1
  }
}
Required parameters
parameter description
from_url_idID ID of the tracking link you want to copy self destruction configuration from
to_url_idID ID of the tracking link you want to copy self destruction configuration to
Return values
parameter description
cloned 1 on success, 0 otherwise

/urls/selfdestruction/delete

access: [WRITE]

Delete the self destruction configuration of a tracking link.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/selfdestruction/delete?id=ee5c0f28cd6394e25762edff57bae359

Query parameters

id = ee5c0f28cd6394e25762edff57bae359

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "deleted": 1
  }
}
Required parameters
parameter description
idID ID of the tracking link from which to remove a self destruction configuration
Return values
parameter description
deleted 1 on success, 0 otherwise

/urls/selfdestruction/edit

access: [WRITE]

Given the ID of a tracking link, sets a self destruction configuration.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/selfdestruction/edit?id=fd74fbaa5d5c48d0c0ab90294d97597b&time_offset=1&time_base=years&from_what=creation&condition_var=visits&condition_operand=%3C%3D&condition_value=100

Query parameters

               id = fd74fbaa5d5c48d0c0ab90294d97597b
      time_offset = 1
        time_base = years
        from_what = creation
    condition_var = visits
condition_operand = <=
  condition_value = 100

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "time_offset": "1",
    "time_base": "years",
    "from_what": "creation",
    "condition_var": "visits",
    "condition_operand": "<=",
    "condition_value": "100"
  }
}
Required parameters
parameter description
condition_varENUM the condition to be met in order to delete the tracking link, see notes for a list of available variables
from_whatENUM time reference, the event from which the time_offset is evaluated, see notes for a list of available time references
idID ID of the tracking link
time_baseENUM time base, see notes for a list of available time bases
time_offsetINTEGER time offset (integer greater than 0)
Optional parameters
parameter description
condition_operandENUM the operand for the condition_var, see notes for a list of available operands; mandatory if condition_var is different from inanycase
condition_valueINTEGER the value to be used with condition_var (integer greater than or equal to 0), mandatory if condition_var is different from inanycase
from_dtDATETIME/EMPTY custom date/time, it cannot be in the past, valid only when time_offset = datetime, mandatory if from_what = datetime
Return values
parameter description
condition_operand echo back of the input parameter condition_operand
condition_value echo back of the input parameter condition_value
condition_var echo back of the input parameter condition_var
from_dt echo back of the input parameter from_dt
from_what echo back of the input parameter from_what
id echo back of the input parameter id
time_base echo back of the input parameter time_base
time_offset echo back of the input parameter time_offset

/urls/selfdestruction/info

access: [READ]

Returns information on the self destruction configuration.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/selfdestruction/info?id=d898df4ce861ccff2289c8af2fd886aa

Query parameters

id = d898df4ce861ccff2289c8af2fd886aa

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "id": "d898df4ce861ccff2289c8af2fd886aa",
    "time_offset": "1",
    "time_base": "years",
    "from_what": "creation",
    "condition_var": "visits",
    "condition_operand": "<=",
    "condition_value": "100"
  }
}
Required parameters
parameter description
idID ID of the tracking link
Return values
parameter description
condition_operand see i1/urls/selfdestruction/edit for details
condition_value see i1/urls/selfdestruction/edit for details
condition_var see i1/urls/selfdestruction/edit for details
from_dt see i1/urls/selfdestruction/edit for details
from_what see i1/urls/selfdestruction/edit for details
id see i1/urls/selfdestruction/edit for details
time_base see i1/urls/selfdestruction/edit for details
time_offset see i1/urls/selfdestruction/edit for details

/urls/shorten

access: [WRITE]

Creates a shorten tracking link for a given destination URL.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/shorten?alias=jot&domain_id=700cb1fdc250b8c049dc648fcf094ad6&project_id=ea6705855d92e57ab6fa96e1558c37a7&long_url=https%3A%2F%2Fwww.joturl.com%2F

Query parameters

     alias = jot
 domain_id = 700cb1fdc250b8c049dc648fcf094ad6
project_id = ea6705855d92e57ab6fa96e1558c37a7
  long_url = https://www.joturl.com/

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "id": "b69d8442be2f2c232ffc58777d951713",
    "alias": "jot",
    "domain_id": "700cb1fdc250b8c049dc648fcf094ad6",
    "domain_host": "jo.my",
    "domain_nickname": "",
    "project_id": "ea6705855d92e57ab6fa96e1558c37a7",
    "project_name": "project name",
    "short_url": "\/\/jo.my\/jot",
    "long_url": "https:\/\/www.joturl.com\/",
    "template_type": 1,
    "notes": ""
  }
}
Optional parameters
parameter description max length
aliasSTRING available only when bulk = 0 - alias for the tracking link, if not specified a random and unique alias will be generated. The alias must be at least 3 characters among lower-case letters a-z, numbers 0-9, minus -, underscore _ 510
bulkBOOLEAN 1 to enable "bulk shorten" mode (default: 0)
domain_idID ID of the domain for the tracking link(s), if not specified the default domain for the user will be used
embed_codeHTML embed code for the JotBars
infoJSON required when bulk = 1 - information for creating tracking links, is a JSON like this [{"url": "destination URL 1", "alias": "alias 1"}, ...], a maximum of 100 elements are allowed
long_urlSTRING required when bulk = 0 - destination URL for the tracking link 4000
notesSTRING notes for the tracking link 255
project_idID ID of the project where the tracking link(s) will be put in, if not specified the default project is used
tagsARRAY comma-separated list of tags for the tracking link
video_durationSTRING if the embed code contains a video, this parameter can be used to specify the video duration
Return values
parameter description
alias alias for the tracking link
domain_host domain used to create the tracking link
domain_id ID of the domain used to create the tracking link
domain_nickname nickname of the short url domain
id ID of the created tracking link
long_url destination URL for the tracking link
notes only returned when bulk = 0 - notes for the tracking link
project_id ID of the project where the tracking link was created
project_name name of the project where the tracking link was created
short_url short URL for the tracking link
tags only returned when bulk = 0 - space-separated list of tags associated to the tracking link

/urls/suggest

access: [READ]

Given a domain, suggests a specific number of aliases.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/suggest?number_alias=3&domain_id=39866c39f3a5d6cb47d6707c7f930f7b

Query parameters

number_alias = 3
   domain_id = 39866c39f3a5d6cb47d6707c7f930f7b

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "data": [
      "89e",
      "6da",
      "b0f1"
    ]
  }
}
Required parameters
parameter description
domain_idID ID of the domain where to suggest a new and unique alias
Optional parameters
parameter description max length
aliasSTRING base for the alias to suggest 510
number_aliasSTRING number of aliases to suggest, default 1, maximum 3
Return values
parameter description
data suggested unique aliases

/urls/tags

/urls/tags/add

access: [WRITE]

Add a list of tags to a tracking link.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/tags/add?url_id=ba2ecddf5cad4fdd295facc607259682&tags=test,tag,api

Query parameters

url_id = ba2ecddf5cad4fdd295facc607259682
  tags = test,tag,api

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "added": 3
  }
}
Required parameters
parameter description
tagsARRAY comma-separated list of tags, these tags will be added to the previous tags
url_idID ID of the tracking link
Return values
parameter description
added numner of added tags, it could be 0 if all passed tags are already associated with the tracking link

/urls/tags/clone

access: [WRITE]

Clone tags from a tracking link to another.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/tags/clone?from_url_id=ccc0f88e1d3cfe623d0e1c270c5ac892&to_url_id=bae88a04090dccdd2dbe8bc8e27f4c0c

Query parameters

from_url_id = ccc0f88e1d3cfe623d0e1c270c5ac892
  to_url_id = bae88a04090dccdd2dbe8bc8e27f4c0c

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "cloned": 1
  }
}
Required parameters
parameter description
from_url_idID ID of the tracking link you want to copy tags from
to_url_idID ID of the tracking link you want to copy tags to
Return values
parameter description
cloned 1 on success, 0 otherwise

/urls/tags/count

access: [READ]

This method returns the number of tags.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/tags/count?url_id=ce778f9b96931a332655b3b11e10de62

Query parameters

url_id = ce778f9b96931a332655b3b11e10de62

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "count": 2
  }
}
Optional parameters
parameter description
searchSTRING filters tags to be extracted by searching them
url_idID ID of the tracking link from which to extract the tags
Return values
parameter description
count number of (filtered) tags

/urls/tags/delete

access: [WRITE]

This method deletes the relationship between a tag and an url. If the tag has no reference with others url, the tag will be deleted. Return 1 if the operation succeeds or 0 otherwise.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/tags/delete?url_id=26a79b3449e3b000bf4998f418ca26c5&tag=tag

Query parameters

url_id = 26a79b3449e3b000bf4998f418ca26c5
   tag = tag

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "deleted": 1
  }
}
Required parameters
parameter description
tagSTRING tag to remove
url_idID ID of the tracking link from which to remove a tag
Return values
parameter description
deleted 1 on success, 0 otherwise

/urls/tags/edit

access: [WRITE]

Edit tags for a tracking link.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/tags/edit?url_id=b3d4abf220865c2e6b95d15bfc261919&tags=test,tag,api

Query parameters

url_id = b3d4abf220865c2e6b95d15bfc261919
  tags = test,tag,api

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "edited": 3,
    "url_id": "b3d4abf220865c2e6b95d15bfc261919",
    "tags": "test,tag,api"
  }
}
Required parameters
parameter description
url_idID ID of the tracking link
Optional parameters
parameter description
tagsARRAY comma-separated list of tags, this list will completely replace previous tags (if empty all tags are removed)
Return values
parameter description
added number of added tags
deleted number of deleted tags
edited number of operations (add+delete) on tags
tags comma-separated list of tags
url_id echo back of parameter url_id

/urls/tags/list

access: [READ]

This method returns a list of tags related to an url, the data returned are specified in a comma separated input called fields.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/tags/list?url_id=64d73724bf20d094266108a13442b0f4

Query parameters

url_id = 64d73724bf20d094266108a13442b0f4

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "count": 2,
    "data": [
      {
        "tag": "tag1"
      },
      {
        "tag": "tag2"
      }
    ]
  }
}
Optional parameters
parameter description
lengthINTEGER extracts this number of tags (maxmimum allowed: 100)
searchSTRING filters tags to be extracted by searching them
startINTEGER starts to extract tags from this position
url_idID ID of the tracking link from which to extract the tags
Return values
parameter description
data array containing information on tags, returned information depends on the fields parameter.

/urls/timing

/urls/timing/clone

access: [WRITE]

Clone a timing configuration from a tracking link to another.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/timing/clone?from_url_id=cb8f95f4f44bcddfc3292b4e3060e9cc&to_url_id=b08db9c08ad9e71f13ae1fdf4ede2734

Query parameters

from_url_id = cb8f95f4f44bcddfc3292b4e3060e9cc
  to_url_id = b08db9c08ad9e71f13ae1fdf4ede2734

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "cloned": 1
  }
}
Required parameters
parameter description
from_url_idID ID of the tracking link you want to copy timing configuration from
to_url_idID ID of the tracking link you want to copy timing configuration to
Return values
parameter description
cloned 1 on success, 0 otherwise

/urls/timing/delete

access: [WRITE]

Delete the timing configuration of a tracking link.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/timing/delete?id=a92ca82a3187b314fcb9f4555c1df02f

Query parameters

id = a92ca82a3187b314fcb9f4555c1df02f

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "deleted": 1
  }
}
Required parameters
parameter description
idID ID of the tracking link from which to remove a timing configuration
Return values
parameter description
deleted 1 on success, 0 otherwise

/urls/timing/edit

access: [WRITE]

Given a short URL, defines a validity time range. It is possible to define the start datetime, the expire datetime and the URL to be used after expiration. This method is available only to certain user profiles.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/timing/edit?id=dc9111056e870b411de4f1f6fddccff4&valid_from=2024-12-20+18%3A31%3A32&valid_to=2026-01-19+18%3A31%3A32&valid_after_url=&delete_after_expiration=1

Query parameters

                     id = dc9111056e870b411de4f1f6fddccff4
             valid_from = 2024-12-20 18:31:32
               valid_to = 2026-01-19 18:31:32
        valid_after_url = 
delete_after_expiration = 1

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "valid_from": "2024-12-20 18:31:32",
    "valid_to": "2026-01-19 18:31:32",
    "valid_after_url": "",
    "delete_after_expiration": 1
  }
}
Required parameters
parameter description
idID ID of the tracking link
Optional parameters
parameter description max length
delete_after_expirationBOOLEAN 1 to delete the tracking link after valid_to
valid_after_urlURL URL to be used after valid_to 4000
valid_fromDATETIME/EMPTY the tracking link is valid from this date/time, before this date/time our engine returns a 404 error if someone tries to navigate to this tracking link; if empty or null it means "valid from now"
valid_toDATETIME/EMPTY the tracking link is valid until this date/time, after this date/time our engine returns a 404 error if delete_after_expiration = 1 otherwise redirects to valid_after_url; if empty or null it means "valid forever"
Return values
parameter description
delete_after_expiration NA
valid_after_url NA
valid_from NA
valid_to NA

/urls/timing/info

access: [READ]

Returns information on the validity range of a given short URL. This method is available only to certain user profiles.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/timing/info?id=435e28f5707770f7e7ac56f8d61ce6f6

Query parameters

id = 435e28f5707770f7e7ac56f8d61ce6f6

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "valid_from": "2024-12-20 18:31:32",
    "valid_to": "2026-01-19 18:31:32",
    "valid_after_url": "",
    "delete_after_expiration": 1
  }
}
Required parameters
parameter description
idID ID of the tracking link
Return values
parameter description
delete_after_expiration 1 to delete the tracking link after valid_to
valid_after_url URL to be used after valid_to
valid_from the tracking link is valid from this date/time, before this date/time our engine returns a 404 error if someone tries to navigate to this tracking link; if empty or null it means "valid from now"
valid_to the tracking link is valid until this date/time, after this date/time our engine returns a 404 error if delete_after_expiration = 1 otherwise redirects to valid_after_url; if empty or null it means "valid forever"

/urls/vcards

/urls/vcards/property

access: [READ]

Returns limits for vCards.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/vcards/property

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "max_vcard_size": 70000,
    "max_vcard_image_size": 30000,
    "supported_fields": {
      "name": [
        "namePrefix",
        "firstName",
        "middleName",
        "lastName",
        "nameSuffix"
      ],
      "work": [
        "title",
        "role",
        "organization",
        "department",
        "workURL"
      ],
      "emails": [
        "email",
        "workEmail"
      ],
      "phones": [
        "homePhone",
        "workPhone",
        "cellPhone",
        "pagerPhone",
        "homeFax",
        "workFax"
      ],
      "homeAdd": [
        "homeAddLabel",
        "homeAddStreet",
        "homeAddCity",
        "homeAddState",
        "homeAddPostalCode",
        "homeAddCountry"
      ],
      "workAdd": [
        "workAddLabel",
        "workAddStreet",
        "workAddCity",
        "workAddState",
        "workAddPostalCode",
        "workAddCountry"
      ],
      "personal": [
        "birthdayDay",
        "birthdayMonth",
        "birthdayYear",
        "anniversaryDay",
        "anniversaryMonth",
        "anniversaryYear",
        "personalURL",
        "gender"
      ],
      "images": [
        "photo",
        "embed_photo",
        "embedded_photo",
        "logo",
        "embed_logo",
        "embedded_logo"
      ],
      "socials": [
        "linkedin",
        "twitter",
        "facebook",
        "instagram",
        "youtube",
        "tiktok"
      ],
      "other": [
        "note",
        "uid"
      ]
    }
  }
}
Return values
parameter description
max_vcard_image_size maximum number of bytes allowed in vCard images
max_vcard_size maximum number of bytes allowed in the vCard
supported_fields list of fields supported in the vCard divided by groups

/urls/watchdogs

/urls/watchdogs/alerts

/urls/watchdogs/alerts/delete

access: [WRITE]

Reset watchdog's alerts for a given array of URL.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/watchdogs/alerts/delete?count=3&ids=cd4844b9797d85906aad878ea539fa18,c8427f42c68538be1bcb432f751f4a64,93ddcaa7e65342b25c7317ec49fbf9b4

Query parameters

count = 3
  ids = cd4844b9797d85906aad878ea539fa18,c8427f42c68538be1bcb432f751f4a64,93ddcaa7e65342b25c7317ec49fbf9b4

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "count": 3,
    "ids": "cd4844b9797d85906aad878ea539fa18,c8427f42c68538be1bcb432f751f4a64,93ddcaa7e65342b25c7317ec49fbf9b4"
  }
}
Required parameters
parameter description
idsARRAY_OF_IDS comma-separated list of ID of the tracking links from which to reset watchdog's alerts
Return values
parameter description
count number of deleted alerts
ids echo back of the ids imput parameters
/urls/watchdogs/alerts/info

access: [READ]

Returns watchdog's alerts for a given short URL.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/watchdogs/alerts/info?id=5802a171bd9e2297a339ee67edd54df3

Query parameters

id = 5802a171bd9e2297a339ee67edd54df3

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "data": {
      "alerts": [
        {
          "message": "URL redirects to .",
          "occurrencies": 56,
          "date": {
            "from": "2024-12-31 18:31:32",
            "to": "2025-01-19 18:31:32"
          }
        }
      ],
      "browsers": {
        "mobile": [
          {
            "BrowserName": "Openwave Mobile Browser 6.2.3.3.c.1.101",
            "Platform": "Unix sun",
            "MobileDevice": "Samsung"
          },
          "[...]",
          {
            "BrowserName": "DoCoMo 3.0",
            "Platform": "--",
            "MobileDevice": "--"
          }
        ],
        "desktop": [
          {
            "BrowserName": "Google AdSense",
            "Platform": "--"
          },
          "[...]",
          {
            "BrowserName": "Shiretoko Firefox 3.5",
            "Platform": "Linux"
          }
        ]
      },
      "long_url": "https:\/\/www.example.com\/product\/124141255",
      "last_update": "2024-12-29 18:31:32"
    }
  }
}
Required parameters
parameter description
idID ID of the tracking link
Return values
parameter description
data array containing information for the alerts

/urls/whatsapps

/urls/whatsapps/clone

access: [WRITE]

Clone the whatsapps configuration from a tracking link to another.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/whatsapps/clone?from_url_id=d0660a1d1e6925a2f6672e74b2148417&to_url_id=296cd15c8d59c46f300ba3d1183bec64

Query parameters

from_url_id = d0660a1d1e6925a2f6672e74b2148417
  to_url_id = 296cd15c8d59c46f300ba3d1183bec64

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "cloned": 1
  }
}
Required parameters
parameter description
from_url_idID ID of the tracking link you want to copy the whatsapps configuration from
to_url_idID ID of the tracking link you want to the whatsapps configuration to
Return values
parameter description
cloned 1 on success, 0 otherwise

/urls/whatsapps/delete

access: [WRITE]

Delete a WhatsUrl configuration for a tracking link.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/whatsapps/delete?url_id=ed5f0c7f1d08ed089dd79d689284f9c6

Query parameters

url_id = ed5f0c7f1d08ed089dd79d689284f9c6

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "deleted": 1
  }
}
Required parameters
parameter description
idID ID of the tracking link from which to remove a WhatsUrl configuration
Return values
parameter description
deleted 1 on success, 0 otherwise

/urls/whatsapps/edit

access: [WRITE]

Set WhatsApp settings for a tracking link.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/whatsapps/edit?id=f2f60c7ad1219ba4f9583a47eac60b1e&settings=%7B%22whatsapp_phone%22%3A%221234567890123%22,%22whatsapp_message%22%3A%22This+is+a+text+message%22,%22whatsapp_message_html%22%3A%22This+is+a+text+message%22,%22whatsapp_disclaimer%22%3A1%7D

Query parameters

      id = f2f60c7ad1219ba4f9583a47eac60b1e
settings = {"whatsapp_phone":"1234567890123","whatsapp_message":"This is a text message","whatsapp_message_html":"This is a text message","whatsapp_disclaimer":1}

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "enabled": 1
  }
}
Required parameters
parameter description
idID ID of the tracking link
settingsJSON stringified JSON containing the Whatsapp settings
Return values
parameter description
enabled 1 on success, 0 otherwise

/urls/whatsapps/info

access: [READ]

Get settings for the WhatsApp option.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/whatsapps/info?id=c4821be0b4b8b0cae63a087232ac4c11

Query parameters

id = c4821be0b4b8b0cae63a087232ac4c11

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "compatible": 1
  }
}
Required parameters
parameter description
idID ID of the tracking link
Return values
parameter description
settings array containing the settings for the WhatsApp option

/users

/users/2fa

/users/2fa/disable

access: [WRITE]

This method disable the 2-factor authentication for the logged in user.

Example 1 (json)

Request

https://joturl.com/a/i1/users/2fa/disable?code=322384

Query parameters

code = 322384

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "enabled": 1
  }
}
Required parameters
parameter description max length
codeSTRING security code given by the authenticator app or one of the backup codes 8
Return values
parameter description
disabled 1 if the 2-factor authentication deactivation was successful, otherwise an error is returned

/users/2fa/enable

access: [WRITE]

This method enable the 2-factor authentication for the logged in user.

Example 1 (json)

Request

https://joturl.com/a/i1/users/2fa/enable?code=322384

Query parameters

code = 322384

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "enabled": 1
  }
}
Required parameters
parameter description max length
codeSTRING security code given by the authenticator app 6
Return values
parameter description
enabled 1 if the 2-factor authentication activation was successful, otherwise an error is returned

/users/2fa/info

access: [READ]

This method returns info on the 2-factor authentication status of the logged in user.

Example 1 (json)

Request

https://joturl.com/a/i1/users/2fa/info

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "enabled": 0,
    "label": "JotUrl - my@email.address",
    "secret": "f62233361946235cbf9e6c6b34a9aaf3",
    "uri": "otpauth:\/\/totp\/JotUrl+-+my%40email.address?secret=f62233361946235cbf9e6c6b34a9aaf3"
  }
}
Optional parameters
parameter description max length
codeSTRING security code given by the authenticator app or one of the backup codes 8
statusBOOLEAN 1 to request only the status without generating/returning 2FA information (default: 0)
Return values
parameter description
backup [OPTIONAL] returned only if enabled = 0 or if code is passed, backup codes for the 2-factor authentication
enabled 1 if the 2-factor authentication is enabled for the logged in user, 0 otherwise
label [OPTIONAL] returned only if enabled = 0 or if code is passed, this is the label that will be displayed in the authenticator app
secret [OPTIONAL] returned only if enabled = 0 or if code is passed, it is the secret key used by the authenticator app
uri [OPTIONAL] returned only if enabled = 0 or if code is passed, it is the provisioning URI to enable 2-factor authentication

/users/blocked_ips

/users/blocked_ips/add

access: [WRITE]

Add IPs to the block list.

Example 1 (json)

Request

https://joturl.com/a/i1/users/blocked_ips/add?ips=8.8.137.0,8.8.115.0,8.8.163.%2A

Query parameters

ips = 8.8.137.0,8.8.115.0,8.8.163.*

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "count": 3
  }
}
Required parameters
parameter description
ipsARRAY array of IPs to add to the block list
Return values
parameter description
count total number of added IPs

/users/blocked_ips/count

access: [READ]

This method returns the number of blocked IPs.

Example 1 (json)

Request

https://joturl.com/a/i1/users/blocked_ips/count

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "count": 5
  }
}
Return values
parameter description
count total number of blocked IPs

/users/blocked_ips/delete

access: [WRITE]

Delete one or more blocked IPs.

Example 1 (json)

Request

https://joturl.com/a/i1/users/blocked_ips/delete?ips=8.8.50.0,8.8.60.0,8.8.205.0,8.8.79.0,8.8.166.%2A

Query parameters

ips = 8.8.50.0,8.8.60.0,8.8.205.0,8.8.79.0,8.8.166.*

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "count": 5
  }
}
Required parameters
parameter description
ipsARRAY array of blocked IPs to be deleted
Return values
parameter description
count total number of blocked IPs that have been deleted

/users/blocked_ips/is_blacklisted

access: [WRITE]

This method checks if the IPs in a list are blocked.

Example 1 (json)

Request

https://joturl.com/a/i1/users/blocked_ips/is_blacklisted?ids=8.8.49.0,8.8.101.0,8.8.75.0

Query parameters

ids = 8.8.49.0,8.8.101.0,8.8.75.0

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "ips": {
      "8.8.49.0": {
        "blacklisted": 1
      },
      "8.8.101.0": {
        "blacklisted": 0
      },
      "8.8.75.0": {
        "blacklisted": 0
      }
    }
  }
}
Required parameters
parameter description
ipsARRAY array of IPs to be checked
Return values
parameter description
ids JSON object that contains each valid IP in ips with its check result {"[IP1]":{"blacklisted":"[1&#124;0]"},...,"[IPN]":{"blacklisted":"[1&#124;0]"}}

/users/blocked_ips/list

access: [READ]

This method returns a list of blocked IPs.

Example 1 (json)

Request

https://joturl.com/a/i1/users/blocked_ips/list?fields=ip,count

Query parameters

fields = ip,count

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "count": 2,
    "data": [
      "8.8.51.0",
      "8.8.126.0",
      "8.8.95.*"
    ]
  }
}
Required parameters
parameter description
fieldsARRAY comma separated list of fields to return, available fields: ip, count
Return values
parameter description
count [OPTIONAL] total number of blocked IPs, returned only if count is passed in fields
data array containing a list of blocked IPs

/users/captcha

access: [WRITE]

This method emits a captcha.

Example 1 (json)

Request

https://joturl.com/a/i1/users/captcha?captcha=e466dd36

Query parameters

captcha = e466dd36

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "captcha": "e466dd36",
    "url": "\/a\/i1\/users\/captcha?captcha=e466dd36"
  }
}
Optional parameters
parameter description
captchaSTRING ID of the captcha, if it is passed this method returns the corresponding captcha image if valid, otherwise returns an invalid parameter error
Return values
parameter description
captcha ID of the captcha
url URL of the captcha image

/users/confirm

access: [WRITE]

This method executes confirm operations.

Example 1 (json)

Request

https://joturl.com/a/i1/users/confirm?info=e4b56577d5002f32065cdc820db79d56

Query parameters

info = e4b56577d5002f32065cdc820db79d56

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "ok": 1
  }
}
Required parameters
parameter description
infoSTRING confirm token sent to the user email
Return values
parameter description
ok 1 on success, otherwise a generic error is issued

/users/forgot

access: [WRITE]

This method manages the "forgot password" procedure.

Example 1 (json)

Request

https://joturl.com/a/i1/users/forgot?email=my.email%40addess.is.here&code=12345&captcha=92190906

Query parameters

  email = my.email@addess.is.here
   code = 12345
captcha = 92190906

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "message": "An e-mail with your login credentials has been sent to 'my.email@addess.is.here'."
  }
}
Required parameters
parameter description max length
captchaSTRING ID of the captcha, see i1/users/captcha for details
codeSTRING the code present in the captcha image and that the user has transcribed
emailSTRING email address of the user that wants to start the "forgot password" procedure 255

/users/info

access: [READ]

This method returns info about the logged user.

Example 1 (json)

Request

https://joturl.com/a/i1/users/info

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "actually_subuser": 0,
    "company": "JotUrl",
    "default_domain_id": "70991cd4adf0180186b5a65c1968bb34",
    "email": "my.email@address.to",
    "full_name": "Jon Smith",
    "gender": "m",
    "inactivity_timeout": 0,
    "is_readonly": 0,
    "location": "IT",
    "login": "my.email@address.to",
    "need_to_change_password": 0,
    "news_offers_consent": 0,
    "phone_number": "+1234567891011",
    "registration_time": "2018-06-25 23:18:21",
    "short_name": "JS",
    "spider_email": "",
    "spider_email_frequency": 1,
    "stats_permanency_days": 365,
    "subuser": 0
  }
}
Optional parameters
parameter description
fieldsARRAY comma separated list of fields to return, available fields: actually_subuser, company, default_domain_id, email, full_name, gender, inactivity_timeout, is_readonly, location, login, need_to_change_password, news_offers_consent, phone_number, registration_time, short_name, spider_email, spider_email_frequency, stats_permanency_days, subuser
Return values
parameter description
data information on the user/subuser

/users/jotbars

/users/jotbars/edit

access: [WRITE]

Set a jotbar option for a tracking link.

Example 1 (json)

Request

https://joturl.com/a/i1/users/jotbars/edit?user_id=371471b45eb5c58af726c80329218381&logo=https%3A%2F%2Fjoturl.com%2Flogo.svg&logo_url=https%3A%2F%2Fjoturl.com%2F&template=right&template_size=big&languages=en,it&default_language=&default_language=en&info=%7B%22en%22%3A%7B%22page_title%22%3A%22English+page+title%22,%22description_title%22%3Anull,%22description%22%3A%22%3Cp%3E%5BEN%5D+HTML+description%3C%5C%2Fp%3E%22,%22questions_title%22%3Anull,%22questions%22%3A%22%3Cp%3E%5BEN%5D+HTML+questions%3C%5C%2Fp%3E%22%7D,%22it%22%3A%7B%22page_title%22%3A%22Titolo+pagina+in+italiano%22,%22description_title%22%3Anull,%22description%22%3A%22%3Cp%3E%5BIT%5D+HTML+description%3C%5C%2Fp%3E%22,%22questions_title%22%3Anull,%22questions%22%3A%22%3Cp%3E%5BIT%5D+HTML+questions%3C%5C%2Fp%3E%22%7D%7D

Query parameters

         user_id = 371471b45eb5c58af726c80329218381
            logo = https://joturl.com/logo.svg
        logo_url = https://joturl.com/
        template = right
   template_size = big
       languages = en,it
default_language = en
            info = {"en":{"page_title":"English page title","description_title":null,"description":"<p>[EN] HTML description<\/p>","questions_title":null,"questions":"<p>[EN] HTML questions<\/p>"},"it":{"page_title":"Titolo pagina in italiano","description_title":null,"description":"<p>[IT] HTML description<\/p>","questions_title":null,"questions":"<p>[IT] HTML questions<\/p>"}}

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "updated": 1
  }
}
Optional parameters
parameter description
default_languageSTRING set the account-level default language, see i1/users/languages/set for details
infoJSON JSON containing page_title, description_title, description, questions_title, questions for each enabled language, see i1/users/languages/set for details
logoSTRING it can be: the URL of the logo to be shown; empty or null to disable it
logo_urlSTRING when logo has an URL, this is the URL to which the user will be redirect when he/she clicks on the logo
show_feedbackSTRING 1 to show feedback, 0 to do not show it
templateSTRING position of the jotbar, empty or null to disable the jotbar feature, for available positions see i1/jotbars/property
template_sizeSTRING dimension of the jotbar, empty or null to disable the jotbar feature, for available dimensions see i1/jotbars/property
Return values
parameter description
updated 1 on success, 0 otherwise

/users/jotbars/info

access: [READ]

Get account-level settings for the jotbar.

Example 1 (json)

Request

https://joturl.com/a/i1/users/jotbars/info?user_id=dcf5bab6c69f8c6b67fa8529ca98e8af

Query parameters

user_id = dcf5bab6c69f8c6b67fa8529ca98e8af

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "logo": "https:\/\/joturl.com\/logo.svg",
    "logo_url": "https:\/\/joturl.com\/",
    "template": "right",
    "template_size": "big",
    "show_feedback": null,
    "default_language": "en",
    "info": {
      "en": {
        "page_title": "English page title",
        "description_title": null,
        "description": "<p>[EN] HTML description<\/p>",
        "questions_title": null,
        "questions": "<p>[EN] HTML questions<\/p>"
      },
      "it": {
        "page_title": "Titolo pagina in italiano",
        "description_title": null,
        "description": "<p>[IT] HTML description<\/p>",
        "questions_title": null,
        "questions": "<p>[IT] HTML questions<\/p>"
      }
    }
  }
}
Return values
parameter description
info for each enabled language, it contains page_title, description_title, description, questions_title, questions, see the following notes for details
user_default_language account-level default language, see i1/users/languages/list for details
user_logo the URL of the logo to be shown or empty or null to disable it
user_logo_url when user_logo has an URL, this is the URL to which the user will be redirect when clicks on the logo
user_show_feedback 1 to show feedback, 0 to do not show it
user_template position of the jotbar, empty or null to disable the jotbar feature, for available positions see i1/jotbars/property
user_template_size dimension of the jotbar, empty or null to disable the jotbar feature, for available dimensions see i1/jotbars/property

/users/languages

/users/languages/list

access: [READ]

This method returns a list of available languages for specific options (e.g., Masking, jotBar) of a tracking link.

Example 1 (json)

Request

https://joturl.com/a/i1/users/languages/list

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "languages": [
      {
        "name": "en",
        "label": "English"
      },
      {
        "name": "it",
        "label": "Italiano"
      },
      {
        "name": "de",
        "label": "Deutsch"
      },
      {
        "name": "fr",
        "label": "Française"
      },
      {
        "name": "es",
        "label": "Español"
      },
      {
        "name": "jp",
        "label": "\u65e5\u672c"
      }
    ],
    "selected": [
      "en",
      "it"
    ]
  }
}
Return values
parameter description
languages array of available languages (name,label)
selected array of enabled languages (name)

/users/languages/set

access: [WRITE]

This method enables a list of languages for the current user.

Example 1 (json)

Request

https://joturl.com/a/i1/users/languages/set?langs=en,it

Query parameters

langs = en,it

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "updated": 1
  }
}
Required parameters
parameter description
langsARRAY comma-separated list of languages to enable, each language is identified by its name, see i1/users/languages/list for details
Return values
parameter description
updated 1 in case of success, 0 in case of failure or if there was no change in the list of languages

/users/login

access: [WRITE]

This method allows a user to login into the private area via credentials or through an external provider.

Example 1 (json)

Request

https://joturl.com/a/i1/users/login?username=username%40domain.ext&password=43cfb9db

Query parameters

username = username@domain.ext
password = 43cfb9db

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "session_id": "73e8c3a30564d9c9e2e2a44fd35e2637"
  }
}
Optional parameters
parameter description max length
captchaSTRING used when signup = 1, see i1/users/signup for details
codeSTRING used when signup = 1, see i1/users/signup for details
news_offers_consentBOOLEAN used when signup = 1, see i1/users/signup for details
passwordSTRING password to use to log in 100
providerSTRING alternative login provider, available providers: microsoftgraph, amazon, google, facebook, twitter, windowslive, linkedin 100
redirectURL redirect URL to be used after logged in, only used if parameter provider is passed 4000
signupBOOLEAN used when provider is passed, signup = 1 forces the signup from an alternative login when the user is not already registered, signup = 0 has no effect
tfa_codeSTRING 2-factor authentication code if enabled, see i1/users/2fa/info for details
tokenSTRING used when signup = 1, see i1/users/signup for details
tos_pp_consentBOOLEAN used when signup = 1, see i1/users/signup for details
usernameSTRING user name to use to log in 255
Return values
parameter description
datetime server date and time, to be used to synchronize calls
device_id a unique ID that identifies the device from which the login is being made
session_id ID of the login session

/users/logout

access: [WRITE]

This method executes a logout.

Example 1 (json)

Request

https://joturl.com/a/i1/users/logout

Response

{
  "status": {
    "code": 200,
    "text": "OK"
  }
}
Optional parameters
parameter description
logout_allBOOLEAN set to 1 if you want to disconnect from all accounts on all devices
Return values
parameter description
old_session_id ID of the login session that was just destroyed
redir_url URL to redirect the user to

/users/notifications

/users/notifications/count

access: [READ]

This method returns the number of new notifications for the user.

Example 1 (json)

Request

https://joturl.com/a/i1/users/notifications/count

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "count": 1
  }
}
Return values
parameter description
count number of available notifications

/users/notifications/list

access: [READ]

This method returns a list of notifications for the user.

Example 1 (json)

Request

https://joturl.com/a/i1/users/notifications/list

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "2020-10-24": [
      {
        "notification_id": "c0701ec8b32e129f8059ab29bdf3e3cf",
        "datetime": "2020-10-24T18:20:39+02:00",
        "read": 0,
        "type": 0,
        "type_description": "deleted",
        "short_url": "jo.my\/joturl",
        "who": "User Name (user@email)",
        "long_url": {
          "old": "",
          "new": ""
        }
      },
      {
        "notification_id": "d3ea1578201cb7a9feba7ba75f7eba65",
        "datetime": "2020-10-24T18:16:47+02:00",
        "read": 1,
        "type": 0,
        "type_description": "deleted",
        "short_url": "jo.my\/joturl",
        "who": "you",
        "long_url": {
          "old": "",
          "new": ""
        }
      }
    ],
    "2020-10-20": [
      {
        "notification_id": "a3171b873528eb5497cbea8c6b2b6cd8",
        "datetime": "2020-10-20T16:37:32+02:00",
        "read": 1,
        "type": 1,
        "type_description": "long url changed",
        "short_url": "jo.my\/joturl",
        "who": "you",
        "long_url": {
          "old": "http:\/\/www.joturl.com\/",
          "new": "https:\/\/joturl.com\/"
        }
      }
    ]
  }
}
Optional parameters
parameter description
lengthINTEGER extracts this number of notifications (maxmimum allowed: 100)
startINTEGER starts to extract notifications from this position
Return values
parameter description
data array containing information on notifications

/users/renew

access: [WRITE]

This method executes renew operations.

Example 1 (json)

Request

https://joturl.com/a/i1/users/renew?info=2ad6f0f040a370d9e52d5ef634474b0b

Query parameters

info = 2ad6f0f040a370d9e52d5ef634474b0b

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "ok": 1
  }
}
Required parameters
parameter description
infoSTRING token sent to the user email

/users/reports

/users/reports/get

access: [READ]

This method get the configuration for reports.

Example 1 (json)

Request

https://joturl.com/a/i1/users/reports/get

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "enabled": 1,
    "position": "top_left",
    "id": "4f78f039cb6814f65cef7c7be8ee830f",
    "metadata": {
      "name": "my logo",
      "creation": "2025-01-19 18:31:32",
      "width": 400,
      "height": 300,
      "size": 32442,
      "url": "https:\/\/cdn.endpoint\/path\/to\/resource"
    }
  }
}
Return values
parameter description
enabled 1 when custom logo in reports is enabled, 0 otherwise
id ID of the CDN resource used as custom logo in reports if enabled = 1, empty or null if enabled = 0
metadata array containing information on the CDN resource
position position of the custom logo if enabled = 1, empty or null if enabled = 0

/users/reports/property

access: [READ]

Returns allowed position for the custom logo in reports.

Example 1 (json)

Request

https://joturl.com/a/i1/users/reports/property

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "positions": [
      "top_left",
      "top_center",
      "top_right"
    ]
  }
}
Return values
parameter description
positions available position for the custom logo in reports

/users/reports/set

access: [WRITE]

This method sets the configuration for reports.

Example 1 (json)

Request

https://joturl.com/a/i1/users/reports/set?enabled=0

Query parameters

enabled = 0

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "deleted": 1
  }
}
Required parameters
parameter description
enabledBOOLEAN 1 to enable the custom logo in reports, 0 to disable it
Optional parameters
parameter description
idID ID of the CDN resource to use as logo
positionSTRING position of the logo, see i1/users/reports/property for available position
Return values
parameter description
deleted [OPTIONAL] 1 on success, 0 otherwise, only returned when enabled = 0
updated [OPTIONAL] 1 on success, 0 otherwise, only returned when enabled = 1

/users/set

access: [WRITE]

This method set info about the logged user.

Example 1 (json)

Request

https://joturl.com/a/i1/users/set?old_password=5bcdac834d5908d23a8b9439be94db72&new_password=cb3169b8cd3c6050a80a1d3bca9f38c2&confirm_password=cb3169b8cd3c6050a80a1d3bca9f38c2

Query parameters

    old_password = 5bcdac834d5908d23a8b9439be94db72
    new_password = cb3169b8cd3c6050a80a1d3bca9f38c2
confirm_password = cb3169b8cd3c6050a80a1d3bca9f38c2

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "updated": 1
  }
}
Optional parameters
parameter description
codeSTRING security code sent by email
companySTRING company of the logged user
default_domain_idSTRING the default domain for the logged user, this setting will be used as the default setting for endpoints that do not require the domain ID
full_nameSTRING full name of the logged user
genderSTRING gender of the logged user [m|f]
locationSTRING ISO 3166-1 alpha-2 code of the country of the logged user
news_offers_consentBOOLEAN 1 if the logged user has authorized the offers by e-mail, 0 otherwise
phone_numberSTRING phone number of the logged user
spider_emailSTRING comma separated list of emails to which content monitor will send security alerts, if not specified, login email will be used, maximum 10 email addresses are allowed
spider_email_frequencySTRING how often the content monitoring will send alerts, see i1/watchdogs/property for a list of available frequencies
Return values
parameter description
security_code_required [OPTIONAL] 1 if the security code is required, it is returned only when an email change is required
updated 1 on success, 0 otherwise

/users/signup

access: [WRITE]

This method executes a signup.

Example 1 (json)

Request

https://joturl.com/a/i1/users/signup?name=Jon+Smith&email=my.smart%40email.address&password=1e0dccc8b22f0e&confirm=1e0dccc8b22f0e

Query parameters

    name = Jon Smith
   email = my.smart@email.address
password = 1e0dccc8b22f0e
 confirm = 1e0dccc8b22f0e

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "ok": 1,
    "need_confirm": 1
  }
}
Required parameters
parameter description
tos_pp_consentBOOLEAN 1 if the user has given consent for the terms of service and the privacy policy, 0 otherwise, it must be 1 to be able to sign up
Optional parameters
parameter description max length
captchaSTRING ID of the captcha, see i1/users/captcha for details, optional to token
codeSTRING the code present in the captcha image and that the user has transcribed, optional to token
companySTRING company of the user 255
confirmSTRING confirmation for the password, must be the same as the password and retrieved from a different input field 100
emailSTRING email of the user 255
genderSTRING gender of the user, possible values: [m, f], default: m 1
locationSTRING 2-digit code of the country (ISO Alpha-2) the user is based on (e.g., US), if not passed our engine tries to retrieve location from the browser 50
nameSTRING full name of the user 255
news_offers_consentBOOLEAN 1 if the user has given consent for the news, 0 otherwise
passwordSTRING password for the login 100
tokenSTRING Google reCAPTCHA token, optional to code and captcha
Return values
parameter description
need_confirm 1 if the user must confirm his/hers email address by clicking on the email that our engine sent
ok 1 on success, otherwise a generic error is issued

/users/stats

/users/stats/details

access: [READ]

This method returns detailed events on the last 30/60/90 days for the logged user.

Example 1 (json)

Request

https://joturl.com/a/i1/users/stats/details

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "aggregate": [
      {
        "type": "[type 1]",
        "label": "[label 1]",
        "event": "[generates event?]",
        "count": 884
      },
      {
        "type": "[...]",
        "label": "[...]",
        "event": "[generates event?]",
        "count": "[...]"
      },
      {
        "type": "[type N]",
        "label": "[label N]",
        "event": "[generates event?]",
        "count": 2268
      }
    ],
    "by_date": {
      "2024-12-20": [
        {
          "type": "[type 1]",
          "label": "[label 1]",
          "event": "[generates event?]",
          "count": 9226
        },
        {
          "type": "[...]",
          "label": "[...]",
          "event": "[generates event?]",
          "count": "[...]"
        },
        {
          "type": "[type N]",
          "label": "[label N]",
          "event": "[generates event?]",
          "count": 3786
        }
      ],
      "[...]": [
        {
          "type": "[type 1]",
          "label": "[label 1]",
          "event": "[generates event?]",
          "count": 1094
        },
        {
          "type": "[...]",
          "label": "[...]",
          "event": "[generates event?]",
          "count": "[...]"
        },
        {
          "type": "[type N]",
          "label": "[label N]",
          "event": "[generates event?]",
          "count": 9624
        }
      ],
      "2025-01-19": [
        {
          "type": "[type 1]",
          "label": "[label 1]",
          "event": "[generates event?]",
          "count": 665
        },
        {
          "type": "[...]",
          "label": "[...]",
          "event": "[generates event?]",
          "count": "[...]"
        },
        {
          "type": "[type N]",
          "label": "[label N]",
          "event": "[generates event?]",
          "count": 3603
        }
      ]
    }
  }
}
Optional parameters
parameter description
time_intervalENUM time interval for information extraction, available values: 30, 60, 90 (default: 30)
Return values
parameter description
aggregate aggregate view by type
by_date view by date

/users/stats/summary

access: [READ]

Account-level summary statistics.

Example 1 (json)

Request

https://joturl.com/a/i1/users/stats/summary?fields=conversions_clicks,conversions_clicks_diff_perc,ctas_conversions,ctas_conversions_diff_perc,qrcodes_clicks,qrcodes_clicks_diff_perc,unique_visits,unique_visits_diff_perc,visits,visits_diff_perc

Query parameters

fields = conversions_clicks,conversions_clicks_diff_perc,ctas_conversions,ctas_conversions_diff_perc,qrcodes_clicks,qrcodes_clicks_diff_perc,unique_visits,unique_visits_diff_perc,visits,visits_diff_perc

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "data": [
      {
        "conversions_clicks": "9",
        "conversions_clicks_diff_perc": "",
        "conversions_clicks_diff_perc14_7": "0",
        "conversions_clicks_diff_perc14_7_min_date": "",
        "conversions_clicks_diff_perc7": "0",
        "conversions_clicks_diff_perc7_min_date": "",
        "ctas_conversions": "28",
        "ctas_conversions_diff_perc": "",
        "ctas_conversions_diff_perc14_7": "0",
        "ctas_conversions_diff_perc14_7_min_date": "",
        "ctas_conversions_diff_perc7": "2",
        "ctas_conversions_diff_perc7_min_date": "2020-10-11",
        "qrcodes_clicks": "334",
        "qrcodes_clicks_diff_perc": 14,
        "qrcodes_clicks_diff_perc14_7": "1",
        "qrcodes_clicks_diff_perc14_7_min_date": "2020-10-01",
        "qrcodes_clicks_diff_perc7": "15",
        "qrcodes_clicks_diff_perc7_min_date": "2020-10-12",
        "unique_visits": "940783",
        "unique_visits_diff_perc": 1.9565,
        "unique_visits_diff_perc14_7": "23",
        "unique_visits_diff_perc14_7_min_date": "2020-09-30",
        "unique_visits_diff_perc7": "68",
        "unique_visits_diff_perc7_min_date": "2020-10-06",
        "visits": "943328",
        "visits_diff_perc": 4.16,
        "visits_diff_perc14_7": "25",
        "visits_diff_perc14_7_min_date": "2020-09-30",
        "visits_diff_perc7": "129",
        "visits_diff_perc7_min_date": "2020-10-06"
      }
    ]
  }
}
Required parameters
parameter description
fieldsARRAY comma separated list of fields to return, available fields: conversions_clicks, conversions_clicks_diff_perc, ctas_conversions, ctas_conversions_diff_perc, ctas_events, ctas_events_diff_perc, ctas_form_clicks, ctas_form_clicks_diff_perc, ctas_redirect_to_destination_clicks, ctas_redirect_to_destination_clicks_diff_perc, ctas_social_connect_clicks, ctas_social_connect_clicks_diff_perc, events, events_diff_perc, events_last_30days, events_last_30days_diff_perc, external_api_clicks, external_api_clicks_diff_perc, internal_api_clicks, internal_api_clicks_diff_perc, qrcodes_clicks, qrcodes_clicks_diff_perc, unique_visits, unique_visits_diff_perc, visits, visits_diff_perc
Optional parameters
parameter description
project_idID if passed, statistics are filtered by this project ID
Return values
parameter description
data array containing required statistics

/users/watchdogs

/users/watchdogs/alerts

/users/watchdogs/alerts/count

access: [READ]

This method returns the number of watchdog's alerts, if any.

Example 1 (json)

Request

https://joturl.com/a/i1/users/watchdogs/alerts/count

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "count": "9+"
  }
}
Return values
parameter description
count number of alerts if it is less than 10, 9+ otherwise
/users/watchdogs/alerts/reset_alerts_flag

access: [READ]

This method reset the flag that our engine uses to send emails from the watchdog, by resetting this flag no emails will be sent.

Example 1 (json)

Request

https://joturl.com/a/i1/users/watchdogs/alerts/reset_alerts_flag

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "count": 1
  }
}
Return values
parameter description
count 1 on success, 0 if the flag was already reset

/utms

/utms/add

access: [WRITE]

This method adds a new UTM template.

Example 1 (json)

Request

https://joturl.com/a/i1/utms/add?name=JotUrl+campaign&utm_source=facebook

Query parameters

      name = JotUrl campaign
utm_source = facebook

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "name": "JotUrl campaign",
    "utm_source": "facebook",
    "added": 1,
    "id": "2287e5fa2c16316e059e7db8917e21d4",
    "utm_medium": "",
    "utm_campaign": "",
    "utm_term": "",
    "utm_content": ""
  }
}
Required parameters
parameter description max length
nameSTRING UTM template name 255
utm_sourceSTRING utm_source parameter 150
Optional parameters
parameter description max length
utm_campaignSTRING utm_campaign parameter 150
utm_contentSTRING utm_content parameter 150
utm_mediumSTRING utm_medium parameter 150
utm_termSTRING utm_term parameter 150
Return values
parameter description
added 1 on success, 0 otherwise
id ID of the UTM template
name echo back of the name input parameter
utm_campaign echo back of the utm_campaign input parameter
utm_content echo back of the utm_content input parameter
utm_medium echo back of the utm_medium input parameter
utm_source echo back of the utm_source input parameter
utm_term echo back of the utm_term input parameter

/utms/count

access: [READ]

This method returns the number of UTM templates.

Example 1 (json)

Request

https://joturl.com/a/i1/utms/count

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "count": 1
  }
}
Optional parameters
parameter description
searchSTRING filters UTM templates to be extracted by searching them
Return values
parameter description
count the number of UTM templates

/utms/delete

access: [WRITE]

This method deletes a UTM template.

Example 1 (json)

Request

https://joturl.com/a/i1/utms/delete?id=aa7038b41db6640fc25e71b0810322db

Query parameters

id = aa7038b41db6640fc25e71b0810322db

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "deleted": 1
  }
}
Required parameters
parameter description
idID ID of the UTM templates to delete
Optional parameters
parameter description
confirmBOOLEAN If 1 this method deletes the UTM template even if it is linked to a tracking link
Return values
parameter description
deleted 1 on success, 0 otherwise

/utms/edit

access: [WRITE]

This method edits a UTM template.

Example 1 (json)

Request

https://joturl.com/a/i1/utms/edit?id=3b3bbbf85f6bfc0888d8a0ecf65375d8&name=JotUrl+campaign&utm_source=facebook

Query parameters

        id = 3b3bbbf85f6bfc0888d8a0ecf65375d8
      name = JotUrl campaign
utm_source = facebook

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "id": "3b3bbbf85f6bfc0888d8a0ecf65375d8",
    "name": "JotUrl campaign",
    "utm_source": "facebook",
    "updated": 1,
    "utm_medium": "",
    "utm_campaign": "",
    "utm_term": "",
    "utm_content": ""
  }
}
Required parameters
parameter description
idID ID of the UTM template to edit
Optional parameters
parameter description max length
nameSTRING UTM template name 255
utm_campaignSTRING utm_campaign parameter 150
utm_contentSTRING utm_content parameter 150
utm_mediumSTRING utm_medium parameter 150
utm_sourceSTRING utm_source parameter 150
utm_termSTRING utm_term parameter 150
Return values
parameter description
id echo back of the id input parameter
name echo back of the name input parameter
updated 1 on success, 0 otherwise
utm_campaign echo back of the utm_campaign input parameter
utm_content echo back of the utm_content input parameter
utm_medium echo back of the utm_medium input parameter
utm_source echo back of the utm_source input parameter
utm_term echo back of the utm_term input parameter

/utms/info

access: [READ]

This method returns info about a UTM template.

Example 1 (json)

Request

https://joturl.com/a/i1/utms/info?fields=id,name,utm_campaign,utm_content,utm_medium,utm_source,utm_term&gdpr_id=b4e85466472f43e5e24888591720df5f

Query parameters

 fields = id,name,utm_campaign,utm_content,utm_medium,utm_source,utm_term
gdpr_id = b4e85466472f43e5e24888591720df5f

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "data": [
      {
        "id": "b4e85466472f43e5e24888591720df5f",
        "name": "JotUrl campaign",
        "utm_source": "facebook",
        "utm_medium": "",
        "utm_campaign": "",
        "utm_term": "",
        "utm_content": ""
      }
    ]
  }
}
Required parameters
parameter description
fieldsARRAY comma-separated list of fields to return, available fields: count, id, name, utm_campaign, utm_content, utm_medium, utm_source, utm_term
idID ID of the UTM template
Return values
parameter description
data array containing information on the UTM templates, returned information depends on the fields input parameter.

/utms/list

access: [READ]

This method returns a list of UTM templates.

Example 1 (json)

Request

https://joturl.com/a/i1/utms/list?fields=count,id,name,utm_campaign,utm_content,utm_medium,utm_source,utm_term

Query parameters

fields = count,id,name,utm_campaign,utm_content,utm_medium,utm_source,utm_term

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "count": 1,
    "data": [
      {
        "id": "8eb0d567f18d7144a6b85d5e00b0fb4b",
        "name": "JotUrl campaign",
        "utm_source": "facebook",
        "utm_medium": "",
        "utm_campaign": "",
        "utm_term": "",
        "utm_content": ""
      }
    ]
  }
}
Required parameters
parameter description
fieldsARRAY comma-separated list of fields to return, available fields: count, id, name, utm_campaign, utm_content, utm_medium, utm_source, utm_term
Optional parameters
parameter description
lengthINTEGER extracts this number of UTM templates (maxmimum allowed: 100)
orderbyARRAY orders UTM templates by field, available fields: id, name, utm_campaign, utm_content, utm_medium, utm_source, utm_term
searchSTRING filters UTM templates to be extracted by searching them
sortSTRING sorts UTM templates in ascending (ASC) or descending (DESC) order
startINTEGER starts to extract UTM templates from this position
Return values
parameter description
count [OPTIONAL] total number of UTM templates, returned only if count is passed in fields
data array containing information on the UTM templates, returned information depends on the fields input parameter.

/watchdogs

/watchdogs/clone

access: [WRITE]

Clone the qrcodes configuration from a tracking link to another.

Example 1 (json)

Request

https://joturl.com/a/i1/watchdogs/clone?from_url_id=8384f2a1fe65e8566d01d31469f41ecf&to_url_id=914864b3a367cdb9d51bf443c2042e4a

Query parameters

from_url_id = 8384f2a1fe65e8566d01d31469f41ecf
  to_url_id = 914864b3a367cdb9d51bf443c2042e4a

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "cloned": 0
  }
}
Required parameters
parameter description
from_url_idID ID of the tracking link you want to copy watchdog configuration from
to_url_idID ID of the tracking link you want to copy watchdog configuration to
Return values
parameter description
cloned 1 on success, 0 otherwise

/watchdogs/property

access: [READ]

This method returns a list of properties of the watchdog (content monitoring).

Example 1 (json)

Request

https://joturl.com/a/i1/watchdogs/property

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": "",
    "rate": 0
  },
  "result": {
    "watchdogs": [
      {
        "type": "1D",
        "title": "1 check per day",
        "limit": 1800
      }
    ],
    "spiders": [
      {
        "id": "DISABLE_ALL",
        "title": "Disable all spiders. No check will be performed.",
        "short": "Disable ALL",
        "params": {
          "video": 0,
          "time": 0,
          "texts": 0,
          "threshold": 0
        }
      },
      {
        "id": "AUTOMATIC",
        "title": "The spider will be automatically selected by the system. In most cases the system will choose the spider PING without any control over videos.",
        "short": "Automatic",
        "params": {
          "video": 0,
          "time": 0,
          "texts": 0,
          "threshold": 0
        }
      },
      {
        "id": "HTML_PING",
        "title": "Interrupted and redirected URL check (PING.)",
        "short": "PING",
        "params": {
          "video": 1,
          "time": 1,
          "texts": 0,
          "threshold": 0
        }
      },
      {
        "id": "HTML_TITLE_H1",
        "title": "Checks for interrupted or redirected URLs and changes in title and\/or h1 tag of the page.",
        "short": "TITLE and H1",
        "params": {
          "video": 1,
          "time": 1,
          "texts": 0,
          "threshold": 0
        }
      },
      {
        "id": "HTML_TEXTS",
        "title": "Checks for interrupted or redirected URLs and changes in the texts of the page (exluding numbers and tags.)",
        "short": "TEXT of the PAGE",
        "params": {
          "video": 1,
          "time": 1,
          "texts": 1,
          "threshold": 0
        }
      },
      {
        "id": "HTML_ALL",
        "title": "Checks for interrupted or redirected URLs and changes in the page (including numbers and tags.)",
        "short": "WHOLE PAGE",
        "params": {
          "video": 1,
          "time": 1,
          "texts": 1,
          "threshold": 0
        }
      },
      {
        "id": "HTML_BLOCKS",
        "title": "Checks for interrupted or redirected URLs and changes in the blocks of text that are extracted from the page with data mining algorithm.",
        "short": "DATA MINING",
        "params": {
          "video": 1,
          "time": 1,
          "texts": 0,
          "threshold": 1
        }
      },
      {
        "id": "HTML_DISABLED",
        "title": "Only the video spider will be activated (spider HTML will be disabled.)",
        "short": "HTML disabled",
        "params": {
          "video": 0,
          "time": 0,
          "texts": 0,
          "threshold": 0
        }
      }
    ],
    "frequencies": [
      {
        "label": "do_not_send",
        "value": ""
      },
      {
        "label": "immediately",
        "value": 0
      },
      {
        "label": "day",
        "value": 1
      },
      {
        "label": "day",
        "value": 3
      },
      {
        "label": "day",
        "value": 7
      },
      {
        "label": "day",
        "value": 15
      },
      {
        "label": "day",
        "value": 30
      }
    ]
  }
}
Return values
parameter description
frequencies list of frequencies available to the logged user
spiders list of spiders available to the logged user
watchdogs list of watchdogs available to the logged user

API reference (beta)

/ctas

/ctas/add

access: [WRITE]

Add a call to action template for the user logged in.

Example 1 (json)

Request

https://joturl.com/a/i1/ctas/add?name=calltoactionname&type=button&brand_id=1234abcde

Query parameters

    name = calltoactionname
    type = button
brand_id = 1234abcde

Response

{
  "status": {
    "code": 200,
    "text": "OK"
  },
  "result": {
    "id": "65794b5563376a7a354f6c756b42625946636d2f47773d3d",
    "name": "name"
  }
}
Required parameters
parameter description
name name of the call to action
type type of the call to action, for a complete list of types see the method i1/ctas/property
Optional parameters
parameter description
brand_id ID of the desired brand
params parameters of the call to action, for a complete list of parameters see the method i1/ctas/property
Return values
parameter description
date NA
id ID of the call to action
name name of the call to action
type type of the call to action, for a complete list of types see the method i1/ctas/property

/ctas/edit

access: [WRITE]

Edit a call to action template for the user logged in.

Example 1 (json)

Request

https://joturl.com/a/i1/ctas/edit?id=1234abc&name=calltoactionname&type=button&brand_id=1234abcde

Query parameters

      id = 1234abc
    name = calltoactionname
    type = button
brand_id = 1234abcde

Response

{
  "status": {
    "code": 200,
    "text": "OK"
  },
  "result": {
    "id": "65794b5563376a7a354f6c756b42625946636d2f47773d3d",
    "name": "name"
  }
}
Required parameters
parameter description
id ID of the call to action
Optional parameters
parameter description
brand_id ID of the desired brand
name name of the call to action
params parameters of the call to action, for a complete list of parameters see the method i1/ctas/property
type type of the call to action, for a complete list of types see the method i1/ctas/property
Return values
parameter description
id ID of the call to action
name name of the call to action

/ctas/info

access: [READ]

This method returns information specified in a comma separated input called fields about a cta

Example 1 (xml)

Request

https://joturl.com/a/i1/ctas/info?format=xml&id=123456&fields=name,type

Query parameters

format = xml
    id = 123456
fields = name,type

Response

<?xml version="1.0" encoding="UTF-8"?>
<response>
  <status>
    <code>200</code>  
    <text>OK</text>  
  </status>  
  <result></result>  
</response>
Required parameters
parameter description
fields comma separated list of CTA fields [id,type,name,brand_id,params,clicks,conversions]
id ID of the call to action
Return values
parameter description
data NA

/ctas/list

access: [READ]

This method returns a list of user's call to action data, specified in a comma separated input called fields.

Example 1 (xml)

Request

https://joturl.com/a/i1/ctas/list?format=xml&fields=name,id

Query parameters

format = xml
fields = name,id

Response

<?xml version="1.0" encoding="UTF-8"?>
<response>
  <status>
    <code>200</code>  
    <text>OK</text>  
  </status>  
  <result>
    <item0>
      <id>1a2b3c4d123456</id>  
      <name>conversion name</name>  
    </item0>  
    <item1>
      <id>1a2b3c4d123456</id>  
      <name>call to action name</name>  
    </item1>  
  </result>  
</response>
Required parameters
parameter description
fields comma separated list of CTA fields [id,type,name,brand_id,params,clicks,conversions,count,performance]. You can use the special field count to retrieve the number of call to actions
Optional parameters
parameter description
length number of items to be extracted
orderby order items by one field [id,type,name,brand_id,params,clicks,conversions,count,performance]. You can use the special field performance to order call to actions by performance. Use sort for ascending or descending order. Default is orderby = id
search filter items by searching them
sort to be used in conjunction with orderby to select the ascending or descending order [ASC|DESC]. Default is sort = ASC
start index from which the list will be extracted
types comma separated list of types to be extracted
Return values
parameter description
data NA

/ctas/preview

access: [READ]

This method returns an html preview of a cta, using custom parameters or using an existing call to action

Example 1 (xml)

Request

https://joturl.com/a/i1/ctas/preview?format=xml&id=123456

Query parameters

format = xml
    id = 123456

Response

<?xml version="1.0" encoding="UTF-8"?>
<response>
  <status>
    <code>200</code>  
    <text>OK</text>  
  </status>  
  <result><[CDATA[<html><head>[...]</head><body>[...]</body></html>]]></result>  
</response>
Optional parameters
parameter description
id ID of the call to action
params parameters of the call to action, for a complete list of parameters see the method i1/ctas/property
Return values
parameter description
html NA

/ctas/privatekey

access: [READ]

This method returns the user's private key.

Example 1 (json)

Request

https://joturl.com/a/i1/ctas/privatekey

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": ""
  },
  "result": {
    "privatekey": "01234567890123456789"
  }
}
Return values
parameter description
privatekey NA

/ctas/property

access: [READ]

This method returns a list of property of a call to action with detailed information on them.

Example 1 (json)

Request

https://joturl.com/a/i1/ctas/property

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": ""
  },
  "result": {
    "label": "Tipo Call to Action",
    "types": {
      "appsnip": {
        "label": "App Snip"
      },
      "banner": {
        "label": "Banner"
      },
      "button": {
        "label": "Bottone"
      },
      "form": {
        "label": "Form"
      },
      "socialconnect": {
        "label": "Connessione ai Social Network"
      },
      "textlink": {
        "label": "Text Link"
      }
    }
  }
}
Optional parameters
parameter description
types comma separated list of possible types. If not specified the method returns accepted types, otherwise it returns detailed information on the requested types. Types can be ALL to get detailed information on all types
Return values
parameter description
data NA

/ctas/snip

access: [READ]

This method returns the actual snip for CTAs

Example 1 (xml)

Request

https://joturl.com/a/i1/ctas/snip?format=xml&id=123456

Query parameters

format = xml
    id = 123456

Response

<?xml version="1.0" encoding="UTF-8"?>
<response>
  <status>
    <code>200</code>  
    <text>OK</text>  
  </status>  
  <result><[CDATA[<html><head>[...]</head><body>[...]</body></html>]]></result>  
</response>
Optional parameters
parameter description
id ID of the call to action
params parameters of the call to action, for a complete list of parameters see the method i1/ctas/property
Return values
parameter description
html NA

/resources

/resources/add

access: [WRITE]

This method allows to upload a resource

Example 1 (xml)

Request

https://joturl.com/a/i1/resources/add?format=xml

Query parameters

format = xml

Response

<?xml version="1.0" encoding="UTF-8"?>
<response>
  <status>
    <code>200</code>  
    <text>OK</text>  
  </status>  
</response>
Required parameters
parameter description
context context of the upload
input the name of the form field used to transfer resource's data
upload_type Type of the upload. Available types: images,ssl
Return values
parameter description
id NA
name name of the resource
type type of the resource
url complete URL of the resource

/resources/count

access: [READ]

This method returns number of resources of a specific upload_type in a context

Example 1 (xml)

Request

https://joturl.com/a/i1/resources/count?format=xml

Query parameters

format = xml

Response

<?xml version="1.0" encoding="UTF-8"?>
<response>
  <status>
    <code>200</code>  
    <text>OK</text>  
  </status>  
  <result>
    <count>5586</count>  
  </result>  
</response>
Required parameters
parameter description
context context of the upload
upload_type Type of the upload. Available types: images,ssl
Return values
parameter description
count number of resources

/resources/delete

access: [WRITE]

This method deletes a resource

Example 1 (xml)

Request

https://joturl.com/a/i1/resources/delete?format=xml&id=1234567890

Query parameters

format = xml
    id = 1234567890

Response

<?xml version="1.0" encoding="UTF-8"?>
<response>
  <status>
    <code>200</code>  
    <text>OK</text>  
  </status>  
  <result>
    <count>1</count>  
  </result>  
</response>
Required parameters
parameter description
context context of the upload
ids IDs of the resources to be deleted
upload_type Type of the upload. Available types: images,ssl
Return values
parameter description
count number of deleted resources

/resources/edit

access: [WRITE]

This method allows to edit a resource

Example 1 (xml)

Request

https://joturl.com/a/i1/resources/edit?format=xml

Query parameters

format = xml

Response

<?xml version="1.0" encoding="UTF-8"?>
<response>
  <status>
    <code>200</code>  
    <text>OK</text>  
  </status>  
</response>
Required parameters
parameter description
context context of the upload
id ID of the resource
input the name of the form field used to transfer resource's data
upload_type Type of the upload. Available types: images,ssl
Return values
parameter description
id NA
name name of the resource
type type of the resource
url complete URL of the resource

/resources/info

access: [READ]

This method returns information specified in a comma separated input called fields about a resource

Example 1 (xml)

Request

https://joturl.com/a/i1/resources/info?format=xml&id=123456&fields=name,url

Query parameters

format = xml
    id = 123456
fields = name,url

Response

<?xml version="1.0" encoding="UTF-8"?>
<response>
  <status>
    <code>200</code>  
    <text>OK</text>  
  </status>  
  <result>

  </result>  
</response>
Required parameters
parameter description
context context of the upload
fields comma separated list of resources fields [id,name,url,type,context,date]
id ID of the resource
upload_type Type of the upload. Available types: images,ssl
Return values
parameter description
data parameters specified in fields of the resource

/resources/list

access: [READ]

This method returns a list of resource of a specific upload_type in a context

Example 1 (xml)

Request

https://joturl.com/a/i1/resources/list?format=xml

Query parameters

format = xml

Response

<?xml version="1.0" encoding="UTF-8"?>
<response>
  <status>
    <code>200</code>  
    <text>OK</text>  
  </status>  
</response>
Required parameters
parameter description
context context of the upload
fields comma separated list of resources fields [id,name,url,type,context,date,count]. You can use the special field count to retrieve the number of resources
upload_type Type of the upload. Available types: images,ssl
Optional parameters
parameter description
length number of items to be extracted
start index from which the list will be extracted
Return values
parameter description
count number of resources
data array (id,name,url,type) of resources

/urls

/urls/instaurls

/urls/instaurls/edit

access: [WRITE]

Set InstaUrl settings for a tracking link.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/instaurls/edit?mp_url_id=12345

Query parameters

mp_url_id = 12345

Response

{
  "status": {
    "code": 200,
    "text": "OK"
  },
  "result": []
}
Required parameters
parameter description
id NA
settings NA
Return values
parameter description
enabled NA

/urls/instaurls/info

access: [READ]

Get settings for the InstaUrl option.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/instaurls/info?mp_url_id=12345

Query parameters

mp_url_id = 12345

Response

{
  "status": {
    "code": 200,
    "text": "OK"
  },
  "result": []
}
Required parameters
parameter description
id NA
Return values
parameter description
settings NA

/urls/instaurls/preview

access: [READ]

Given parameters, this method returns the HTML of an InstaUrl page.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/instaurls/preview?mp_url_id=12345

Query parameters

mp_url_id = 12345

Response

{
  "status": {
    "code": 200,
    "text": "OK"
  },
  "result": []
}
Optional parameters
parameter description
settings NA
Return values
parameter description
html NA

/urls/instaurls/property

access: [READ]

Returns the list of available properties for the InstaUrl option.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/instaurls/property?mp_url_id=12345

Query parameters

mp_url_id = 12345

Response

{
  "status": {
    "code": 200,
    "text": "OK"
  },
  "result": []
}
Return values
parameter description
avatar NA
background NA
css NA
fonts NA
icons NA
links NA
max_items NA
messengers NA
social_networks NA
themes NA

/urls/minipages

/urls/minipages/edit

access: [WRITE]

Set a minipage for a tracking link.

Required parameters
parameter description
id NA
Optional parameters
parameter description
params NA
template NA
template_name NA
Return values
parameter description
added NA

/urls/minipages/info

access: [READ]

Get the minipage linked to a tracking link.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/minipages/info?id=12345

Query parameters

id = 12345

Response

{
  "status": {
    "code": 200,
    "text": "OK"
  },
  "result": []
}
Required parameters
parameter description
id NA
Return values
parameter description
data NA

/urls/minipages/preview

access: [READ]

Given a template and parameters, this method returns the HTML.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/minipages/preview?id=12345

Query parameters

id = 12345

Response

{
  "status": {
    "code": 200,
    "text": "OK"
  },
  "result": []
}
Optional parameters
parameter description
id NA
params NA
template NA
template_name NA
Return values
parameter description
html NA

/urls/minipages/property

access: [READ]

Returns the list of available minipage templates and their properties.

Example 1 (json)

Request

https://joturl.com/a/i1/urls/minipages/property?id=12345

Query parameters

id = 12345

Response

{
  "status": {
    "code": 200,
    "text": "OK"
  },
  "result": []
}
Return values
parameter description
data NA

/users

/users/brands

/users/brands/add

access: [WRITE]

Add a user brand for the user logged in.

Example 1 (json)

Request

https://joturl.com/a/i1/users/brands/adduser_brand_name=brandname&url_home=http://www.joturl.com

Response

{
  "status": {
    "code": 200,
    "text": "OK"
  },
  "result": {
    "id": "65794b5563376a7a354f6c756b42625946636d2f47773d3d",
    "name": "name"
  }
}
Required parameters
parameter description
input the name of the form field used to transfer brand's logo
Optional parameters
parameter description
name name of the brand
url_home URL of the brand's home
Return values
parameter description
id ID of the brand
name name of the brand
url complete URL of the logo image
url_home URL of the brand's home

/users/brands/count

access: [READ]

This method returns the number of user brand's related to the call to actions

Example 1 (xml)

Request

https://joturl.com/a/i1/users/brands/count?format=xml

Query parameters

format = xml

Response

<?xml version="1.0" encoding="UTF-8"?>
<response>
  <status>
    <code>200</code>  
    <text>OK</text>  
  </status>  
  <result>
    <count>1576</count>  
  </result>  
</response>
Optional parameters
parameter description
search filter items by searching them
Return values
parameter description
count number of brands

/users/brands/delete

access: [WRITE]

This method deletes a user brand using the ids . Return 1 if the operation succeeds or 0 otherwise

Example 1 (xml)

Request

https://joturl.com/a/i1/users/brands/delete?format=xml&ids=12345abcdef6789,2345abcdef

Query parameters

format = xml
   ids = 12345abcdef6789,2345abcdef

Response

<?xml version="1.0" encoding="UTF-8"?>
<response>
  <status>
    <code>200</code>  
    <text>OK</text>  
  </status>  
  <result>
    <deleted>1</deleted>  
  </result>  
</response>
Required parameters
parameter description
ids IDs of the brands to be deleted
Return values
parameter description
deleted number of deleted brands

/users/brands/edit

access: [WRITE]

Edit fields of a user brand.

Example 1 (json)

Request

https://joturl.com/a/i1/users/brands/edit?id=123456a&name=newname

Query parameters

  id = 123456a
name = newname

Response

{
  "status": {
    "code": 200,
    "text": "OK"
  },
  "result": {
    "id": "65794b5563376a7a354f6c756b42625946636d2f47773d3d",
    "name": "name"
  }
}
Required parameters
parameter description
id ID of the brand
Optional parameters
parameter description
input the name of the form field used to transfer brand's logo
name name of the brand
url_home URL of the brand's home
Return values
parameter description
id ID of the brand
name name of the brand
url_home URL of the brand's home

/users/brands/info

access: [READ]

This method returns information specified in a comma separated input called fields about a user brand

Example 1 (xml)

Request

https://joturl.com/a/i1/users/brands/info?format=xml&id=123456&fields=name,url_home

Query parameters

format = xml
    id = 123456
fields = name,url_home

Response

<?xml version="1.0" encoding="UTF-8"?>
<response>
  <status>
    <code>200</code>  
    <text>OK</text>  
  </status>  
  <result>
    <id>65794b5563376a7a354f6c756b42625946636d2f47773d3d</id>  
    <name>name</name>  
  </result>  
</response>
Required parameters
parameter description
fields comma separated list of fields [id,name,url_home,url,res_id,res_name,context,type,date,count]
Optional parameters
parameter description
id ID of the brand
res_id NA
Return values
parameter description
data required fields (id,name,url_home,url,res_id,res_name,context,type,date) of the brand

/users/brands/list

access: [READ]

This method returns a list of user's brands data, specified in a comma separated input called fields.

Example 1 (xml)

Request

https://joturl.com/a/i1/users/brands/list?format=xml&fields=name,url_home

Query parameters

format = xml
fields = name,url_home

Response

<?xml version="1.0" encoding="UTF-8"?>
<response>
  <status>
    <code>200</code>  
    <text>OK</text>  
  </status>  
  <result>
    <item0>
      <id>1a2b3c4d123456</id>  
      <name>brand name</name>  
    </item0>  
    <item1>
      <id>1a2b3c4d123456</id>  
      <name>brand name</name>  
    </item1>  
  </result>  
</response>
Required parameters
parameter description
fields comma separated list of fields [id,name,url_home,url,res_id,res_name,context,type,date,count]. You can use the special field count to retrieve the number of resources
Optional parameters
parameter description
length number of items to be extracted
orderby order items by one field [id,name,url_home,url,res_id,res_name,context,type,date,count]. Use sort for ascending or descending order. Default is orderby = id
search filter items by searching them
sort to be used in conjunction with orderby to select the ascending or descending order [ASC|DESC]. Default is sort = ASC
start index from which the list will be extracted
Return values
parameter description
count number of brands
data array (id,name,url_home,url,res_id,res_name,context,type,date) of brands

/watchdogs

/watchdogs/add

access: [WRITE]

Given a url identifier, set a watchdog for it.

Example 1 (json)

Request

https://joturl.com/a/i1/watchdogs/add ?&ids=123abcdef&watchdog=1

Query parameters

     ids = 123abcdef
watchdog = 1

Response

{
  "status": {
    "code": 200,
    "text": "OK"
  },
  "result": {
    "updated": "1"
  }
}
Required parameters
parameter description
spider_type NA
watchdog NA
Optional parameters
parameter description
ids NA
project_id NA
text NA
text_check NA
video NA
watchdog NA
watchdog_set_as_default NA
Return values
parameter description
updated NA

/watchdogs/delete

access: [WRITE]

Delete a watchdog related to a given short URL or a given project.

Example 1 (json)

Request

https://joturl.com/a/i1/watchdogs/delete?id=123abcdef

Query parameters

id = 123abcdef

Response

{
  "status": {
    "code": 200,
    "text": "OK"
  },
  "result": {
    "watchdog": "0",
    "spider": "128",
    "spider_check": "0",
    "spider_check_option": "70",
    "spider_only_html": "1",
    "spider_time": "",
    "watchdog_is_default": "0"
  }
}
Optional parameters
parameter description
id NA
project_id NA
Return values
parameter description
data NA

/watchdogs/info

access: [READ]

Returns information on the watchdog related to a given tracking link or a given project.

Example 1 (json)

Request

https://joturl.com/a/i1/watchdogs/info?id=123abcdef

Query parameters

id = 123abcdef

Response

{
  "status": {
    "code": 200,
    "text": "OK"
  },
  "result": {
    "watchdog": "0",
    "spider": "128",
    "spider_check": "0",
    "spider_check_option": "70",
    "spider_only_html": "1",
    "spider_time": "",
    "watchdog_is_default": "0"
  }
}
Optional parameters
parameter description
id NA
project_id NA
Return values
parameter description
data NA

/watchdogs/stats

access: [READ]

This method returns stats about a watchdog.

Example 1 (json)

Request

https://joturl.com/a/i1/watchdogs/stats

Response

{
  "status": {
    "code": 200,
    "text": "OK",
    "error": ""
  },
  "result": {
    "stats": "",
    "spiders": ""
  }
}
Return values
parameter description
data NA