Pipeless

Documentation

Recommended Accounts

Get a personalized list of accounts to follow based on a user’s interests and who similar users follow. This algorithm combines collaborative filtering of similar following behavior with tags from content that a user has engaged with positively in order to provide recommendations of other accounts.

Examples include:

  • People You May Know
  • Channels to Explore
  • Who to Follow
  • Suggested for You
  • Accounts You May Like

Code Example

Take a look at this example of using the Recommended Accounts endpoint, and read the detailed description below explaining each part of this code.

const data = JSON.stringify({
  "object": {
    "id": "Tim",
    "type": "user"
  },
  "followed_relationship_type": "followed",
  "content_created_relationship_type": "posted",
  "positive_relationship_type": "liked",
  "content_tagged_relationship_type": "taggedWith",
  "content_object_type": "article",
  "content_tag_object_type": "tag"
});

const xhr = new XMLHttpRequest();

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.pipeless.io/v1/apps/123/algos/recommendations/users-to-follow");
xhr.setRequestHeader("accept", "application/json");
xhr.setRequestHeader("content-type", "application/json");

xhr.send(data);
import requests

url = "https://api.pipeless.io/v1/apps/123/algos/recommendations/users-to-follow"

payload = {
    "object": {
        "id": "Tim",
        "type": "user"
    },
    "followed_relationship_type": "followed",
    "content_created_relationship_type": "posted",
    "positive_relationship_type": "liked",
    "content_tagged_relationship_type": "taggedWith",
    "content_object_type": "article",
    "content_tag_object_type": "tag"
}
headers = {
    "accept": "application/json",
    "content-type": "application/json"
}

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

print(response.text)
require 'uri'
require 'net/http'
require 'openssl'

url = URI("https://api.pipeless.io/v1/apps/123/algos/recommendations/users-to-follow")

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

request = Net::HTTP::Get.new(url)
request["accept"] = 'application/json'
request["content-type"] = 'application/json'
request.body = "{\"object\":{\"id\":\"Tim\",\"type\":\"user\"},\"followed_relationship_type\":\"followed\",\"content_created_relationship_type\":\"posted\",\"positive_relationship_type\":\"liked\",\"content_tagged_relationship_type\":\"taggedWith\",\"content_object_type\":\"article\",\"content_tag_object_type\":\"tag\"}"

response = http.request(request)
puts response.read_body
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.pipeless.io/v1/apps/123/algos/recommendations/users-to-follow",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_POSTFIELDS => "{\"object\":{\"id\":\"Tim\",\"type\":\"user\"},\"followed_relationship_type\":\"followed\",\"content_created_relationship_type\":\"posted\",\"positive_relationship_type\":\"liked\",\"content_tagged_relationship_type\":\"taggedWith\",\"content_object_type\":\"article\",\"content_tag_object_type\":\"tag\"}",
  CURLOPT_HTTPHEADER => [
    "accept: application/json",
    "content-type: application/json"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
OkHttpClient client = new OkHttpClient();

MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"object\":{\"id\":\"Tim\",\"type\":\"user\"},\"followed_relationship_type\":\"followed\",\"content_created_relationship_type\":\"posted\",\"positive_relationship_type\":\"liked\",\"content_tagged_relationship_type\":\"taggedWith\",\"content_object_type\":\"article\",\"content_tag_object_type\":\"tag\"}");
Request request = new Request.Builder()
  .url("https://api.pipeless.io/v1/apps/123/algos/recommendations/users-to-follow")
  .get()
  .addHeader("accept", "application/json")
  .addHeader("content-type", "application/json")
  .build();

Response response = client.newCall(request).execute();
curl --request GET \
  --url https://api.pipeless.io/v1/apps/123/algos/recommendations/users-to-follow \
  --header 'accept: application/json' \
  --header 'content-type: application/json' \
  --data '{"object":{"id":"Tim","type":"user"},"followed_relationship_type":"followed","content_created_relationship_type":"posted","positive_relationship_type":"liked","content_tagged_relationship_type":"taggedWith","content_object_type":"article","content_tag_object_type":"tag"}'

In this example we're running this recommendation algo on App ID "123" where an object user "Tim" is the target who will being receiving personalized recommended accounts to follow. The follow relationship to use is "followed" (potentially this could have been "favorited" or "subscribedTo"), which means the system will look for other users like Tim who follow similar users as Tim follows. Content created relationship type is "posted" which tells the system to look for content that has been posted by users who might be good for Tim to follow, and then factors in the positive relationship type "liked" to see if the content those users post are similar to posts Tim has liked in the past. Content tagged relationship type is "taggedWith" so recommendations are also weighted by looking at users who post content "articles" that have similar "tags" as content Tim has liked posted by other users.

To summarize, this example is: "get recommended users for Tim - users who are similar to other users Tim has followed, factoring in articles those users have posted and the tags on those articles, along with the liking behavior Tim has shown on similar articles."

How-To Guide

Check out our detailed how-to guide for recommended accounts:
How to get recommended users to follow

Tutorial Example

You can see this API endpoint in action using our tutorial restaurant dataset here:
Recommended Accounts Tutorial Example

API Reference Documentation

You can read the reference docs for this endpoint here:
Get Recommended Users to Follow (for user)

Updated 5 months ago


What's Next

Related Topics

Recommended Accounts


Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.