Pathgather

The Pathgather Developer Hub

Welcome to the Pathgather developer hub. You'll find comprehensive guides and documentation to help you start working with Pathgather as quickly as possible, as well as support if you get stuck. Let's jump right in!

Get Started    
Suggest Edits

Users

The users that have Pathgather accounts within your organization

 

At the heart of your account are your users, those within your organization using Pathgather. This API allows you to create, update, and delete your users. Additionally, you can fetch a single user as well as retrieve a list of users that satisfy certain filters.

The User object

Name
Type
Description

id

string

Randomly generated ID assigned upon user creation

custom_id

string

The unique ID you assign to the user

first_name

string

last_name

string

created_at

datetime

The date the user was created

email

string

The user's organization email

job_title

string

The job title for the user

hire_date

date

The date the user was hired within your organization

location

string

The user's main employment location within your organization

deactivated

boolean

A flag representing whether the user's Pathgather account has been deactivated. If true, the user is unable to use their account to access Pathgather.

active_at

datetime

The date the user was first active (initial login)

last_active_at

date

The date the user was last active in Pathgather (their last login date)

admin

boolean

A flag representing whether the user has administrator access in your Pathgather account

company_admin_scope

string

Admin level of a user. Can be null, "moderator", or "read_only". If a user is an admin null value means a user is a super admin

department

The department the user belongs to within your organization

updated_at

datetime

The date the user was last updated

custom_fields

hash

Custom fields/data that can be added to the user. See below for more details

user_skills

array of User Skills

The skills the user has added to their profile

User Custom Fields

The user object supports the addition of custom fields. You can use the custom_fields parameter to attach key-value data to any user, which is useful if you'd like to store, display, and/or filter users by fields that don't directly match an existing User column above.

As an example, you could store the user's internal profile URL, an internal employee ID, the user's direct manager, etc.

You can have up to 10 custom fields. Keys are limited to 40 characters and values up to 500 characters. The structure of a custom field is as such, with the key of the field acting as the "label", or name, of the custom field, the "value" property defining the value, and the "display" property a boolean property representing whether the field should be displayed on user's profiles.

{
  "label of field": {
    "value": "value of field",
    display: true
  }
}

EXAMPLE OBJECT

{
  "id": "85a5fade-edb2-462b-a3d3-f5a213a753e5",
  "custom_id": "neville@pathgather.com",
  "first_name": "Neville",
  "last_name": "Samuell",
  "created_at": "2014-05-16T11:05:31.410-04:00",
  "updated_at": "2016-08-09T08:24:13.771-04:00",
  "email": "neville@pathgather.com",
  "job_title": "Lead Engineer",
  "hire_date": "2014-03-01",
  "location": "New York, NY",
  "deactivated": false,
  "active_at": "2014-05-18T21:44:42.910-04:00",
  "last_active_at": "2016-08-09",
  "admin": true,
  "company_admin_scope": "read_only",
  "custom_fields": {},
  "_type": "User",
  "department": {
    "id": "562c2058-3ba2-444d-b5c6-6b8622c40609",
    "name": "Engineering",
    "_type": "Department",
    "created_at": "2014-05-16T11:05:31.398-04:00",
    "updated_at": "2014-05-16T11:05:31.398-04:00"
  },
  "user_skills": [
    {
      "id": "c1b5f855-dd8f-4b23-affc-5f6610b7fcd0",
      "level": "Expert",
      "_type": "UserSkill",
      "skill": {
        "id": "6d365dbf-0261-450e-9765-ac1ceef7b5c5",
        "name": "C++",
        "_type": "Skill"
      }
    },
    {
      "id": "5dc948b7-41c6-4641-a03a-f2ff76a0e40f",
      "level": "Intermediate",
      "_type": "UserSkill",
      "skill": {
        "id": "6526792f-885e-4da7-8d65-946a3a983614",
        "name": "Ruby",
        "_type": "Skill"
      }
    },
    {
      "id": "69239547-a183-4520-8d50-20c0dc9091d0",
      "level": "Intermediate",
      "_type": "UserSkill",
      "skill": {
        "id": "089e70cb-9736-4c5a-b84c-fcb7c4d199a2",
        "name": "Javascript",
        "_type": "Skill"
      }
    }
  ]
}
<user>
  <_type>User</_type>
  <id>4cea0449-666a-433f-8396-857e269449a9</id>
  <custom-id nil="true"/>
  <first-name>Jamie</first-name>
  <last-name>Davidson</last-name>
  <created-at>2014-10-22T13:04:27.329-04:00</created-at>
  <updated-at>2014-10-22T13:04:27.329-04:00</updated-at>
  <email>jamie@pathgather.com</email>
  <job-title>CTO</job-title>
  <hire-date type="date">2013-03-02</hire-date>
  <location>New York, NY</location>
  <deactivated type="boolean">false</deactivated>
  <last-active-at type="date">2014-10-17</last-active-at>
  <admin type="boolean">true</admin>
  <company-admin-scope>read_only</company-admin-scope>
  <department>
    <_type>Department</_type>
    <id>90c8e4f2-3fba-4747-9322-00635bcff1bc</id>
    <created-at>2014-10-22T13:04:27.329-04:00</created-at>
    <name>Founders</name>
  </department>
</user>
Suggest Edits

/users

List users in your account

 
gethttps://api.pathgather.com/v1/users
No code samples available
A binary file was returned

You couldn't be authenticated

{
  "results": [
    {
      "_type": "User",
      "id":"4cea0449-666a-433f-8396-857e269449a9",
      "custom_id": null,
      "first_name":"Jamie",
      "last_name":"Davidson",
      "created_at":"2014-10-22T13:04:27.329-04:00",
      "updated_at":"2014-10-22T13:04:27.329-04:00",
      "email":"jamie@pathgather.com",
      "job_title":"CTO",
      "hire_date":"2013-03-02",
      "location":"New York, NY",
      "deactivated":false,
      "active_at": "2014-11-18T21:44:42.910-04:00",
      "last_active_at":"2014-10-17",
      "admin": true,
      "company_admin_scope": null,
      "department": {
        "_type": "Department",
        "id":"90c8e4f2-3fba-4747-9322-00635bcff1bc",
        "created_at":"2014-10-22T13:04:27.329-04:00",
        "name":"Founders"
      }
    },
    {
      "_type":"User",
      "id":"3c7a388a-2cd0-7bn4-9x9c-56f29a53f1xc",
      "custom_id": null,
      "first_name":"Eric",
      "last_name":"Duffy",
      "created_at":"2014-10-21T13:04:27.329-04:00",
      "updated_at":"2014-10-21T13:04:27.329-04:00",
      "email":"eric@pathgather.com",
      "job_title":"CEO",
      "hire_date":"2012-12-01",
      "location":"New York, NY",
      "deactivated":false,
      "last_active_at":"2014-10-22",
      "admin":true,
      "company_admin_scope": "moderator",
      "department": {
        "_type": "Department",
        "id":"90c8e4f2-3fba-4747-9322-00635bcff1bc",
        "created_at":"2014-10-22T13:04:27.329-04:00",
        "name":"Founders"
      }
    }
  ],
  "next": null
}
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <results>
    <result>
      <_type>User</_type>
      <id>4cea0449-666a-433f-8396-857e269449a9</id>
      <custom-id nil="true"/>
      <first-name>Jamie</first-name>
      <last-name>Davidson</last-name>
      <created-at>2014-10-22T13:04:27.329-04:00</created-at>
      <updated-at>2014-10-22T13:04:27.329-04:00</updated-at>
      <email>jamie@pathgather.com</email>
      <job-title>CTO</job-title>
      <hire-date type="date">2013-03-02</hire-date>
      <location>New York, NY</location>
      <deactivated type="boolean">false</deactivated>
      <last-active-at type="date">2014-10-17</last-active-at>
      <admin type="boolean">true</admin>
      <company-admin-scope nil="true"/>
      <department>
        <_type>Department</_type>
        <id>90c8e4f2-3fba-4747-9322-00635bcff1bc</id>
        <created-at type="integer">1398488816</created-at>
        <name>Founders</name>
      </department>
    </result>
    <result>
      <_type>User</_type>
      <id>3c7a388a-2cd0-7bn4-9x9c-56f29a53f1xc</id>
      <custom-id nil="true"/>
      <first-name>Eric</first-name>
      <last-name>Duffy</last-name>
      <created-at type="integer">2014-10-21T13:04:27.329-04:00</created-at>
      <updated-at type="integer">2014-10-21T13:04:27.329-04:00</updated-at>
      <email>eric@pathgather.com</email>
      <job-title>CEO</job-title>
      <hire-date type="date">2012-12-01</hire-date>
      <location>New York, NY</location>
      <deactivated type="boolean">false</deactivated>
      <last-active-at type="date">2014-10-22</last-active-at>
      <admin type="boolean">true</admin>
      <company-admin-scope>moderator</company-admin-scope>
      <department>
        <_type>Department</_type>
        <id>90c8e4f2-3fba-4747-9322-00635bcff1bc</id>
        <created-at type="integer">1398488816</created-at>
        <name>Founders</name>
      </department>
    </result>
  </results>
  <next nil="true"/>
</response>

Query Params

from
string

For use in pagination. from is the ID of a user in Pathgather to begin your list with

 

Returns your users. Users are returned sorted by creation date, with the most recently created users appearing first.

Returns

A list of your users.

curl -X GET https://api.pathgather.com/v1/users \ 
  -H "Authorization: Bearer pg_test_fg4dfsg565hgfhfrk" \ 
  -H "Content-Type: application/json"
Suggest Edits

/users/:id

Retrieve an individual user

 
gethttps://api.pathgather.com/v1/users/id
No code samples available
A binary file was returned

You couldn't be authenticated

{
  "_type": "User",
  "id":"4cea0449-666a-433f-8396-857e269449a9",
  "custom_id": null,
  "first_name":"Jamie",
  "last_name":"Davidson",
  "created_at":"2014-10-22T13:04:27.329-04:00",
  "updated_at":"2014-10-22T13:04:27.329-04:00",
  "email":"jamie@pathgather.com",
  "job_title":"CTO",
  "hire_date":"2013-03-02",
  "location":"New York, NY",
  "deactivated":false,
  "active_at": "2014-11-18T21:44:42.910-04:00",
  "last_active_at":"2014-10-17",
  "admin": true,
  "company_admin_scope": "read_only",
  "department": {
    "_type": "Department",
    "id":"90c8e4f2-3fba-4747-9322-00635bcff1bc",
    "created_at":"2014-10-22T13:04:27.329-04:00",
    "name":"Founders"
  }
}
<?xml version="1.0" encoding="UTF-8"?>
<user>
  <_type>User</_type>
  <id>4cea0449-666a-433f-8396-857e269449a9</id>
  <custom-id nil="true"/>
  <first-name>Jamie</first-name>
  <last-name>Davidson</last-name>
  <created-at>2014-10-22T13:04:27.329-04:00</created-at>
  <updated-at>2014-10-22T13:04:27.329-04:00</updated-at>
  <email>jamie@pathgather.com</email>
  <job-title>CTO</job-title>
  <hire-date type="date">2013-03-02</hire-date>
  <location>New York, NY</location>
  <deactivated type="boolean">false</deactivated>
  <last-active-at type="date">2014-10-17</last-active-at>
  <admin type="boolean">true</admin>
  <company-admin-scope>read_only</company-admin-scope>
  <department>
    <_type>Department</_type>
    <id>90c8e4f2-3fba-4747-9322-00635bcff1bc</id>
    <created-at type="integer">1398488816</created-at>
    <name>Founders</name>
  </department>
</user>

Path Params

id
string
required

Can be the ID assigned upon creation, or a custom ID

 

Returns an individual user. The ID provided can be the ID assigned upon user creation, or a custom ID you assigned to the user.

Returns

The requested user object.

curl -X GET https://api.pathgather.com/v1/users/4cea0449-666a-433f-8396-857e269449a9 \ 
  -H "Authorization: Bearer pg_test_fg4dfsg565hgfhfrk" \ 
  -H "Content-Type: application/json"
Suggest Edits

/users

Create a new user

 

OAuth2 Auth

Bearer
 Authentication is required for this endpoint.
posthttps://api.pathgather.com/v1/users
No code samples available
A binary file was returned

Your OAuth2 token is incorrect or has expired

{
  "_type": "User",
  "id":"4cea0449-666a-433f-8396-857e269449a9",
  "custom_id": "user-1",
  "first_name":"Jane",
  "last_name":"Doe",
  "created_at":"2014-10-22T13:04:27.329-04:00",
  "email":"jane@company.com",
  "job_title":"Engineer",
  "hire_date":"2006-04-30",
  "location":"New York, NY",
  "deactivated":false,
  "active_at": null,
  "last_active_at": null,
  "admin": false,
  "company_admin_scope": null,
  "department": {
    "_type": "Department",
    "id":"90c8e4f2-3fba-4747-9322-00635bcff1bc",
    "created_at":"2014-10-22T13:04:27.329-04:00",
    "name":"Engineering"
  },
  "custom_fields": {
    "Internal Profile URL": {
      "value": "https://company.com/users/this-user",
      "display": true
    }
  }
}
<?xml version="1.0" encoding="UTF-8"?>
<user>
  <_type>User</_type>
  <id>4cea0449-666a-433f-8396-857e269449a9</id>
  <custom-id>user-1</custom-id>
  <first-name>Jane</first-name>
  <last-name>Doe</last-name>
  <created-at>2014-10-22T13:04:27.329-04:00</created-at>
  <email>jane@company.com</email>
  <job-title>Engineer</job-title>
  <hire-date type="date">2006-04-30</hire-date>
  <location>New York, NY</location>
  <deactivated type="boolean">false</deactivated>
  <last-active-at nil="true"/>
  <admin type="boolean">false</admin>
  <company-admin-scope nil="true"/>
  <department>
    <_type>Department</_type>
    <id>90c8e4f2-3fba-4747-9322-00635bcff1bc</id>
    <created-at>2014-10-22T13:04:27.329-04:00</created-at>
    <name>Engineering</name>
  </department>
  <custom-fields>
    <Internal-Profile-URL>
      <value>https://company.com/users/this-user</value>
      <display>true</display>
    </Internal-Profile-URL>
  </custom-fields>
</user>

Body Params

first_name
string
required
last_name
string
required
job_title
string
required
department
string
required

If the department specified here matches the same name as an existing department, the user will be added to the existing department. If the department is not found, it will be created and the user added to it.

email
string
required
saml_id
string

Required ONLY if your organization has SAML SSO enabled

custom_id
string

Optional, but highly recommended if creating users via the API

hire_date
date
location
string
avatar
string

Must be a URL to an image of the user

admin
boolean

Set to true if you want this user to have administrator access in Pathgather

company_admin_scope
string

An admin level of a user. Can either be null, "moderator", or "read_only". Must be null when a user is not an admin

send_invite
boolean

Set to true if you'd like the user being created to receive an email with login credentials and instructions

deactivated
boolean

A flag representing whether the user's Pathgather account has been deactivated. Set to true to prevent the user from successfully logging in.

custom_fields
object

Any custom fields for this user

 
 

Creates a new user account in your Pathgather instance.

Returns

Returns the user object if the create is successful. If the request contains invalid parameters or insufficient data, a 422 error response will be returned with details about the specific errors.

curl -X POST https://api.pathgather.com/v1/users \ 
  -H "Authorization: Bearer pg_test_fg4dfsg565hgfhfrk" \ 
  -H "Content-Type: application/json" \ 
  -d '{
    "user": {
      "name": "Jane Doe", 
      "email": "jane@company.com", 
      "job_title": "Engineer", 
      "department": "Engineering", 
      "custom_id": "user-1", 
      "hire_date": "2006-04-30", 
      "location": "New York, NY",
      "send_invite": true,
      "custom_fields": {
        "Internal Profile URL": {
      		"value": "https://company.com/users/this-user",
      		"display": true
    		}
      }
    }
  }'
Suggest Edits

/users/:id

Update an existing user

 
puthttps://api.pathgather.com/v1/users/id
No code samples available
A binary file was returned

You couldn't be authenticated

{
  "_type": "User",
  "id":"4cea0449-666a-433f-8396-857e269449a9",
  "custom_id": "user-1",
  "first_name":"Jane",
  "last_name":"Doe",
  "created_at":"2014-10-22T13:04:27.329-04:00",
  "email":"jane@company.com",
  "job_title":"Engineer",
  "hire_date":"2006-04-30",
  "location":"San Diego, CA",
  "deactivated":false,
  "active_at": null,
  "last_active_at": null,
  "admin": false,
  "company_admin_scope": null,
  "department": {
    "_type": "Department",
    "id":"90c8e4f2-3fba-4747-9322-00635bcff1bc",
    "created_at":"2014-10-22T13:04:27.329-04:00",
    "name":"Engineering"
  }
}
<?xml version="1.0" encoding="UTF-8"?>
<user>
  <_type>User</_type>
  <id>4cea0449-666a-433f-8396-857e269449a9</id>
  <custom-id>user-1</custom-id>
  <first-name>Jane</first-name>
  <last-name>Doe</last-name>
  <created-at>2014-10-22T13:04:27.329-04:00</created-at>
  <email>jane@company.com</email>
  <job-title>Engineer</job-title>
  <hire-date type="date">2006-04-30</hire-date>
  <location>San Diego, CA</location>
  <deactivated type="boolean">false</deactivated>
  <last-active-at nil="true"/>
  <admin type="boolean">false</admin>
  <company-admin-scope nil="true"/>
  <department>
    <_type>Department</_type>
    <id>90c8e4f2-3fba-4747-9322-00635bcff1bc</id>
    <created-at>2014-10-22T13:04:27.329-04:00</created-at>
    <name>Engineering</name>
  </department>
</user>

Path Params

id
string
required

Can be the ID assigned upon creation, or a custom ID

Body Params

user
string
required

A hash containing the properties to update. See documentation for the user creation endpoint for a list of the properties that can be updated.

 

Updates the specified user by setting the values of the parameters passed in the 'user' object. Any parameters not provided will be left unchanged.

Returns

Returns the user object if the update is successful. If the request contains invalid parameters, a 422 error response will be returned with details about the specific errors.

curl -X PUT https://api.pathgather.com/v1/users/user-1 \ 
  -H "Authorization: Bearer pg_test_fg4dfsg565hgfhfrk" \ 
  -H "Content-Type: application/json" \ 
  -d '{
    "user": {
      "location": "San Diego, CA"
    }
  }'
Suggest Edits

/users/:id

Delete an existing user

 
delete/users/id
curl --request DELETE \
  --url http://example.com/users/id
var request = require("request");

var options = { method: 'DELETE',
  url: 'http://example.com/users/id' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("http://example.com/users/id")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

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

xhr.open("DELETE", "http://example.com/users/id");

xhr.send(data);
import requests

url = "http://example.com/users/id"

response = requests.request("DELETE", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

<?xml version="1.0" encoding="UTF-8"?>
<hash>
</hash>

Path Params

id
string
required

Can be the ID assigned upon creation, or a custom ID

 

Deletes the specified user.

Returns

Returns an empty object when successful.

curl -X DELETE https://api.pathgather.com/v1/users/user-1 \ 
  -H "Authorization: Bearer pg_test_fg4dfsg565hgfhfrk" \ 
  -H "Content-Type: application/json"
Suggest Edits

/users/:user_id/user_skills

List of user_skills for a particular user

 
get/users/user_id/user_skills
curl --request GET \
  --url http://example.com/users/user_id/user_skills
var request = require("request");

var options = { method: 'GET',
  url:
   'http://example.com/users/user_id/user_skills' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("http://example.com/users/user_id/user_skills")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

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

xhr.open("GET", "http://example.com/users/user_id/user_skills");

xhr.send(data);
import requests

url = "http://example.com/users/user_id/user_skills"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "results": [
    {
      "id": "69239547-a183-4520-8d50-20c0dc9091d0",
      "level": "Intermediate",
      "_type": "UserSkill",
      "skill": {
        "id": "089e70cb-9736-4c5a-b84c-fcb7c4d199a2",
        "name": "Javascript",
        "_type": "Skill"
      }
    },
    {
      "id": "5dc948b7-41c6-4641-a03a-f2ff76a0e40f",
      "level": "Intermediate",
      "_type": "UserSkill",
      "skill": {
        "id": "6526792f-885e-4da7-8d65-946a3a983614",
        "name": "Ruby",
        "_type": "Skill"
      }
    },
    {
      "id": "c1b5f855-dd8f-4b23-affc-5f6610b7fcd0",
      "level": "Expert",
      "_type": "UserSkill",
      "skill": {
        "id": "6d365dbf-0261-450e-9765-ac1ceef7b5c5",
        "name": "C++",
        "_type": "Skill"
      }
    }
  ],
  "next": null
}
<?xml version="1.0" encoding="UTF-8"?>
<response>
    <results type="array">
        <result>
            <id>69239547-a183-4520-8d50-20c0dc9091d0</id>
            <level>Intermediate</level>
            <_type>UserSkill</_type>
            <skill>
                <id>089e70cb-9736-4c5a-b84c-fcb7c4d199a2</id>
                <name>Javascript</name>
                <_type>Skill</_type>
            </skill>
        </result>
        <result>
            <id>5dc948b7-41c6-4641-a03a-f2ff76a0e40f</id>
            <level>Intermediate</level>
            <_type>UserSkill</_type>
            <skill>
                <id>6526792f-885e-4da7-8d65-946a3a983614</id>
                <name>Ruby</name>
                <_type>Skill</_type>
            </skill>
        </result>
        <result>
            <id>c1b5f855-dd8f-4b23-affc-5f6610b7fcd0</id>
            <level>Expert</level>
            <_type>UserSkill</_type>
            <skill>
                <id>6d365dbf-0261-450e-9765-ac1ceef7b5c5</id>
                <name>C++</name>
                <_type>Skill</_type>
            </skill>
        </result>
    </results>
    <next nil="true"/>
</response>

Path Params

user_id
string
required

The user's ID, which can either be the ID assigned upon creation, or a custom ID

 

Returns a list of User Skills for the particular user, sorted by creation date, with the most recently created User Skills appearing first.

Returns

A list of your user_skills.

curl -X GET https://api.pathgather.com/v1/users/85a5fade-edb2-462b-a3d3-f5a213a753e5/user_skills \ 
  -H "Authorization: Bearer pg_test_fg4dfsg565hgfhfrk" \ 
  -H "Content-Type: application/json"
Suggest Edits

/users/:user_id/user_skills

Create a new user skill

 
post/users/user_id/user_skills
curl --request POST \
  --url http://example.com/users/user_id/user_skills
var request = require("request");

var options = { method: 'POST',
  url:
   'http://example.com/users/user_id/user_skills' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("http://example.com/users/user_id/user_skills")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

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

xhr.open("POST", "http://example.com/users/user_id/user_skills");

xhr.send(data);
import requests

url = "http://example.com/users/user_id/user_skills"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "id": "f5bf30a8-412c-4cea-9a64-1d4aae5a40f9",
  "level": "Expert",
  "_type": "UserSkill",
  "skill": {
    "id": "30cd791b-07fb-4c1c-8f3a-231799f86f66",
    "name": "API Testing",
    "_type": "Skill"
  }
}
<?xml version="1.0" encoding="UTF-8"?>
<hash>
    <id>f5bf30a8-412c-4cea-9a64-1d4aae5a40f9</id>
    <level>Expert</level>
    <_type>UserSkill</_type>
    <skill>
        <id>30cd791b-07fb-4c1c-8f3a-231799f86f66</id>
        <name>API Testing</name>
        <_type>Skill</_type>
    </skill>
</hash>

Path Params

user_id
string
required

The user's ID, which can either be the ID assigned upon creation, or a custom ID

Body Params

skill_id
string

The skill's ID, which can either be the ID assigned upon creation, or a custom ID

skill_name
string

As an alternative to skill_id, specify the name of the skill to add. If a skill with a matching name doesn't currently exist, it will be created.

level
string

The parent user's expertise level with the given skill. Must be either "Beginner", "Intermediate", or "Expert"

 

Creates a new User Skill for the particular user.

Returns

Returns the User Skill object if the create is successful. If the request contains invalid parameters or insufficient data, a 422 error response will be returned with details about the specific errors.

curl -X POST "https://api.prepathgather.com/v1/users/85a5fade-edb2-462b-a3d3-f5a213a753e5/user_skills" \
  -H "Authorization: Bearer pg_test_fg4dfsg565hgfhfrk" \ 
  -d '{
  	"user_skill": {
    	"level": "Expert",
      "skill_name": "API Testing"
    }
  }'
Suggest Edits

/users/:user_id/user_skills/create_or_update

Create a new user skill, or update an existing user skill if it exists

 
post/users/user_id/user_skills/create_or_update
curl --request POST \
  --url http://example.com/users/user_id/user_skills/create_or_update
var request = require("request");

var options = { method: 'POST',
  url:
   'http://example.com/users/user_id/user_skills/create_or_update' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("http://example.com/users/user_id/user_skills/create_or_update")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

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

xhr.open("POST", "http://example.com/users/user_id/user_skills/create_or_update");

xhr.send(data);
import requests

url = "http://example.com/users/user_id/user_skills/create_or_update"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "id": "f5bf30a8-412c-4cea-9a64-1d4aae5a40f9",
  "level": "Expert",
  "_type": "UserSkill",
  "skill": {
    "id": "30cd791b-07fb-4c1c-8f3a-231799f86f66",
    "name": "API Testing",
    "_type": "Skill"
  }
}
<?xml version="1.0" encoding="UTF-8"?>
<hash>
    <id>f5bf30a8-412c-4cea-9a64-1d4aae5a40f9</id>
    <level>Expert</level>
    <_type>UserSkill</_type>
    <skill>
        <id>30cd791b-07fb-4c1c-8f3a-231799f86f66</id>
        <name>API Testing</name>
        <_type>Skill</_type>
    </skill>
</hash>

Path Params

user_id
string
required

The user's ID, which can either be the ID assigned upon creation, or a custom ID

Body Params

skill_id
string

The skill's ID, which can either be the ID assigned upon creation, or a custom ID

skill_name
string

As an alternative to skill_id, specify the name of the skill to add. If a skill with a matching name doesn't currently exist, it will be created.

level
string

The parent user's expertise level with the given skill. Must be either "Beginner", "Intermediate", or "Expert"

 

Creates a new User Skill, or updates a matching User Skill for the particular user. Unlike the /users/:user_id/user_skills endpoint, this does not throw an error if the User Skill already exists - instead, the user skill is updated to match the specified level.

Returns

Returns the User Skill object if the create or update is successful. If the request contains invalid parameters or insufficient data, a 422 error response will be returned with details about the specific errors.

curl -X POST "https://api.prepathgather.com/v1/users/85a5fade-edb2-462b-a3d3-f5a213a753e5/user_skills/create_or_update" \
  -H "Authorization: Bearer pg_test_fg4dfsg565hgfhfrk" \ 
  -d '{
  	"user_skill": {
    	"level": "Expert",
      "skill_name": "API Testing"
    }
  }'
Suggest Edits

/users/:user_id/user_skills/:id

Destroy a particular user skill

 
delete/users/user_id/user_skills/id
curl --request DELETE \
  --url http://example.com/users/user_id/user_skills/id
var request = require("request");

var options = { method: 'DELETE',
  url:
   'http://example.com/users/user_id/user_skills/id' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("http://example.com/users/user_id/user_skills/id")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

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

xhr.open("DELETE", "http://example.com/users/user_id/user_skills/id");

xhr.send(data);
import requests

url = "http://example.com/users/user_id/user_skills/id"

response = requests.request("DELETE", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

<?xml version="1.0" encoding="UTF-8"?>
<hash></hash>

Path Params

user_id
string
required

The user's ID, which can either be the ID assigned upon creation, or a custom ID

id
string
required

The user skill ID, which is the ID assigned upon creation

 

Deletes the specified User Skill for the particular user.

Returns

Returns an empty object when successful.

curl -X DELETE "https://api.prepathgather.com/v1/users/85a5fade-edb2-462b-a3d3-f5a213a753e5/user_skills/89d0b88b-2e5c-4513-a6aa-4161e29378ac" \
  -H "Authorization: Bearer pg_test_fg4dfsg565hgfhfrk"
Suggest Edits

/users/:user_id/user_skills/remove_skill

Convenience method to delete a user skill by skill

 
post/users/user_id/user_skills/remove_skill
curl --request POST \
  --url http://example.com/users/user_id/user_skills/remove_skill
var request = require("request");

var options = { method: 'POST',
  url:
   'http://example.com/users/user_id/user_skills/remove_skill' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("http://example.com/users/user_id/user_skills/remove_skill")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

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

xhr.open("POST", "http://example.com/users/user_id/user_skills/remove_skill");

xhr.send(data);
import requests

url = "http://example.com/users/user_id/user_skills/remove_skill"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

<?xml version="1.0" encoding="UTF-8"?>
<hash></hash>

Path Params

user_id
string
required

The user's ID, which can either be the ID assigned upon creation, or a custom ID

Body Params

skill_id
string

The skill's ID, which can either be the ID assigned upon creation, or a custom ID

skill_name
string

As an alternative to skill_id, specify the name of the skill to remove

 

Deletes the User Skill from the particular user, by matching the given skill_id or skill_name to a skill.

Returns

Returns an empty object when successful.

curl -X POST "https://api.prepathgather.com/v1/users/85a5fade-edb2-462b-a3d3-f5a213a753e5/user_skills/remove_skill" \
  -H "Authorization: Bearer pg_test_fg4dfsg565hgfhfrk" \ 
  -d '{
  	"skill_name": "API Testing"
  }'
Suggest Edits

/users/:user_id/profile_sync

Trigger transcript and assignment metadata sync for a given user

 

OAuth2 Auth

Bearer
 Authentication is required for this endpoint.
posthttps://api.pathgather.com/v1/users/user_id/profile_sync
curl -X POST "https://api.pathgather.com/v1/users/85a5fade-edb2-462b-a3d3-f5a213a753e5/profile_sync" \
  -H "Authorization: Bearer pg_test_fg4dfsg565hgfhfrk" \
  -H "Content-Type: application/json"
require 'net/https'

uri = URI.parse('https://api.pathgather.com/v1/users/85a5fade-edb2-462b-a3d3-f5a213a753e5/profile_sync')

headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer pg_test_fg4dfsg565hgfhfrk'
}

https = Net::HTTP.new(uri.host, uri.port)
https.use_ssl = true

request = Net::HTTP::Post.new(uri.path, headers)
response = https.request(request)

p response.read_body
import requests

headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer pg_test_fg4dfsg565hgfhfrk'
}

url = 'https://api.pathgather.com/v1/users/85a5fade-edb2-462b-a3d3-f5a213a753e5/profile_sync'

response = requests.post(url, headers=headers)

print(response.text)
A binary file was returned

Your OAuth2 token is incorrect or has expired

{
  "dispatched_integrations": [
    {
      "name": "Pluralsight",
      "type": "history"
    },
    {
      "name": "Successfactors",
      "type": "assignment"
    }
  ]
}

Path Params

user_id
string
required

The user's ID assigned to the user upon creation

 

Depending on what integrations are enabled, this will force a full profile sync for the specified user.

Seeing results

Results are not immediate. Depending on the number of integrations enabled, this can be a long-running task that may take some time to complete.

Returns

Returns an array of integrations that have just been scheduled for processing for the specified user. There are two possible types of integrations the response can return:

Dispatched integration type
Meaning

history

User's learning history transcript has been scheduled to be synced for the given service.

assignment

User's to-do learning items have been scheduled to be synced with their learning plan for the given service.

Suggest Edits

Content

The content that makes up your Pathgather learning catalogue

 

One of the main ways your users can learn inside Pathgather is through your company's content, which makes up your Pathgather learning catalogue. Content can be in many forms: a webpage, video, Powerpoint, etc.

The Content object

Name
Type
Description

id

string

Randomly generated ID assigned upon creation

custom_id

string

The unique ID you assign to the content

name

string

The name/title for the content

description

string

The description for the content

created_at

datetime

The datetime the content was created

level

string

The level of difficulty for this content. Valid values are "Beginner", "Intermediate", "Advanced", "Expert", and "All". The default is "All".

rating

float

The average rating given to this content by your users

reviews_count

integer

The number of reviews this content has

endorsement_count

integer

The number of users that have endorsed this content

content_type

string

The type of content being referenced. Valid values are
"Course", "Document", "Media", "Webinar", "Webpage", and "Collection"

source_url

string

The URL where this content can be found

publicly_accessible

boolean

A flag specifying if the content is accessible by all your Pathgather users. If false, the content is only accessible by members of any gatherings the content has been shared with.

tags

array of strings

An array of tags for this content. A tag allows for easy lookup later

skills

array of strings

An array of skills this content will help a user learn/improve in

topic

The Topic this content should be organized under

provider

The Provider this content belongs to

gatherings

an array of Gathering objects

The Gatherings the content has been shared with, if any

sharer

The User this content was shared by, if set. If the content was added by an admin or an integration, this will be null.

enabled

boolean

A flag that specifies whether this content is readable by your users

deactivated

boolean

A flag that specifies whether this content is active and searchable by your users

updated_at

datetime

The date the content was last updated

duration

integer

The amount of time the content will take to complete (in seconds)

EXAMPLE OBJECT

{
  "_type": "Content",
  "id":"89a07305-0122-4da1-8b40-b99f4a968f88",
  "custom_id":null,
  "name":"ADO.NET Fundamentals",
  "publicly_accessible": true,
  "description": "Overview of ADO.NET including SqlConnection, SqlCommand, SqlDataAdapter.",
  "created_at": "2014-10-21T16:58:32.388-04:00", 
  "updated_at": "2014-10-21T16:58:32.388-04:00", 
  "level":"Intermediate",
  "rating":3.0,
  "reviews_count":1,
  "endorsement_count":6,
  "content_type":"Course",
  "duration": null,
  "source_url": "http://pluralsight.com/training/Courses/TableOfContents/adodotnet-fundamentals",
  "tags":[".NET"],
  "gatherings": [],
  "skills": [
    {
      "id": "1202a2dc-b927-27e6-a478-1a602e8aa4dc",
      "name": ".NET"
    }
  ],
  "topic": {
    "_type": "Topic",
    "id":"0803a3dd-a947-47e1-b488-1a707e8ab4ce",
    "created_at": "2014-10-21T16:58:32.388-04:00",
    "custom_id":null,
    "name":"Computer Science"
  },
  "provider": {
    "_type": "Provider",
    "id":"cf4c840d-4a48-4ee8-8c7b-1d3e41df21b9",
    "created_at": "2014-10-21T16:58:32.388-04:00",
    "custom_id":null,
    "name":"Pluralsight"
  },
  "sharer": null,
  "enabled": true,
  "deactivated": false
}
<content>
  <_type>Content</_type>
  <id>89a07305-0122-4da1-8b40-b99f4a968f88</id>
  <custom-id nil="true"/>
  <name>ADO.NET Fundamentals</name>
  <publicly_accessible type="boolean">true</publicly_accessible>
  <created-at>2014-10-21T16:58:32.388-04:00</created-at>
  <updated-at>2014-10-21T16:58:32.388-04:00</updated-at>
  <level>Intermediate</level>
  <rating type="float">3.0</rating>
  <reviews-count type="integer">1</reviews-count>
  <content-type>Course</content-type>
  <duration nil="true"/>
  <source-url>http://pluralsight.com/training/Courses/TableOfContents/adodotnet-fundamentals</source-url>
  <gatherings type="array"></gatherings>
  <tags type="array">
    <tag>.NET</tag>
  </tags>
  <skills type="array">
    <skill>
    	<id>1202a2dc-b927-27e6-a478-1a602e8aa4dc</id>
    	<name>.NET</name>
    </skill>
  </skills>
  <topic>
    <_type>Topic</_type>
    <id>0803a3dd-a947-47e1-b488-1a707e8ab4ce</id>
    <created-at>2014-10-21T16:58:32.388-04:00</created-at>
    <custom-id nil="true"/>
    <name>Computer Science</name>
  </topic>
  <provider>
    <_type>Provider</_type>
    <id>cf4c840d-4a48-4ee8-8c7b-1d3e41df21b9</id>
    <created-at>2014-10-21T16:58:32.388-04:00</created-at>
    <custom-id nil="true"/>
    <name>Pluralsight</name>
  </provider>
  <sharer nil="true"/>
  <enabled type="boolean">enabled</enabled>
</content>
Suggest Edits

/content

List content in your Pathgather learning catalogue

 
get/content
curl --request GET \
  --url http://example.com/content
var request = require("request");

var options = { method: 'GET', url: 'http://example.com/content' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("http://example.com/content")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

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

xhr.open("GET", "http://example.com/content");

xhr.send(data);
import requests

url = "http://example.com/content"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "next": null,
  "results": [
    {
      "_type": "Content",
      "id":"89a07305-0122-4da1-8b40-b99f4a968f88",
      "custom_id":null,
      "name":"ADO.NET Fundamentals",
      "created_at": "2014-10-21T16:58:32.388-04:00", 
      "updated_at": "2014-10-21T16:58:32.388-04:00", 
      "level":"Intermediate",
      "rating":3.0,
      "reviews_count":1,
      "content_type":"Course",
      "duration": null,
      "source_url": "http://pluralsight.com/training/Courses/TableOfContents/adodotnet-fundamentals",
      "tags":[".NET"],
      "skills": [
        {
          "id": "1202a2dc-b927-27e6-a478-1a602e8aa4dc",
	 		    "name": ".NET"
        }
      ],
      "enabled": true,
      "topic": {
        "_type": "Topic",
        "id":"0803a3dd-a947-47e1-b488-1a707e8ab4ce",
        "created_at": "2014-01-13T19:06:20.735-05:00",
        "custom_id":null,
        "name":"Computer Science"
      },
      "provider": {
        "_type": "Provider",
        "id":"cf4c840d-4a48-4ee8-8c7b-1d3e41df21b9",
        "created_at": "2014-01-13T19:06:20.735-05:00",
        "custom_id":null,
        "name":"Pluralsight"
      }
    },
    {
      "_type": "Content",
      "id": "227e1cd7-1644-47be-ad01-038c66678292",
      "custom_id": null,
      "name": "Intro to Javascript",
      "created_at": "2014-10-21T16:58:32.388-04:00",
      "updated_at": "2014-10-21T16:58:32.388-04:00",
      "level": "All",
      "duration": null,
      "rating": 0.0,
      "reviews_count": 0,
      "content_type": "Document",
      "source_url": "https://sharepoint.company.com/corp/docs/intro-to-javascript.pdf",
      "tags": [],
      "enabled": true,
      "topic": {
        "_type": "Topic",
        "created_at": "2014-01-13T19:06:20.735-05:00",
        "custom_id": null,
        "id": "2c573402-fc59-4799-ad29-0cff3c7c1c73",
        "name": "Javascript"
      },
      "provider": {
        "_type": "Provider",
        "created_at": "2014-01-13T19:06:20.735-05:00",
        "custom_id": null,
        "id": "47bca3cd-81db-3091-add6-788caeedc74c",
        "name": "Sharepoint"
      }
  	}
  ]
}
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <results type="array">
    <result>
      <_type>Content</_type>
      <id>89a07305-0122-4da1-8b40-b99f4a968f88</id>
      <custom-id nil="true"/>
      <name>ADO.NET Fundamentals</name>
      <created-at>2014-10-21T16:58:32.388-04:00</created-at>
      <updated-at>2014-10-21T16:58:32.388-04:00</updated-at>
      <level>Intermediate</level>
      <rating type="float">3.0</rating>
      <duration nil="true"/>
      <reviews-count type="integer">1</reviews-count>
      <content-type>Course</content-type>
      <source-url>http://pluralsight.com/training/Courses/TableOfContents/adodotnet-fundamentals</source-url>
      <tags type="array">
        <tag>.NET</tag>
      </tags>
      <skills type="array">
        <skill>
          <id>1202a2dc-b927-27e6-a478-1a602e8aa4dc</id>
          <name>NET</name>
        </skill>
      </skills>
      <topic>
        <_type>Topic</_type>
        <id>0803a3dd-a947-47e1-b488-1a707e8ab4ce</id>
        <created-at>2014-01-13T19:06:20.735-05:00</created-at>
        <custom-id nil="true"/>
        <name>Computer Science</name>
      </topic>
      <provider>
        <_type>Provider</_type>
        <id>cf4c840d-4a48-4ee8-8c7b-1d3e41df21b9</id>
        <created-at>2014-01-13T18:51:29.884-05:00</created-at>
        <custom-id nil="true"/>
        <name>Pluralsight</name>
      </provider>
      <enabled type="boolean">enabled</enabled>
    </result>
    <result>
      <_type>Content</_type>
      <id>227e1cd7-1644-47be-ad01-038c66678292</id>
      <custom-id nil="true"/>
      <name>Intro to Javascript</name>
      <created-at>2014-10-21T16:58:32.388-04:00</created-at>
      <updated-at>2014-10-21T16:58:32.388-04:00</updated-at>
      <level>All</level>
      <duration nil="true"/>
      <rating type="float">0.0</rating>
     	<reviews-count type="integer">0</reviews-count>
      <content-type>Document</content-type>
      <source-url>https://sharepoint.company.com/corp/docs/intro-to-javascript.pdf</source-url>
      <tags type="array">
        <tag></tag>
      </tags>
      <enabled type="boolean">true</enabled>
      <topic>
        <_type>Topic</_type>
        <created-at>2014-01-13T19:06:20.735-05:00</created-at>
        <custom-id nil="true"/>
        <id>2c573402-fc59-4799-ad29-0cff3c7c1c73</id>
        <name>Javascript</name>
      </topic>
      <provider>
        <_type>Provider</_type>
        <created-at>2014-01-13T18:51:29.884-05:00</created-at>
        <custom-id nil="true"/>
        <id>47bca3cd-81db-3091-add6-788caeedc74c</id>
        <name>Sharepoint</name>
      </provider>
    </result>
  </results>
  <next nil="true"/>
</response>

Query Params

from
string

For use in pagination. from is the ID of content in Pathgather to begin your list with

 

Returns your content. Content items are returned sorted by creation date, with the most recently created content appearing first.

Returns

A list of your content

curl -X GET https://api.pathgather.com/v1/content \ 
  -H "Authorization: Bearer pg_test_fg4dfsg565hgfhfrk" \ 
  -H "Content-Type: application/json"
Suggest Edits

/content/:id

Retrieve an existing content item

 
get/content/id
curl --request GET \
  --url http://example.com/content/id
var request = require("request");

var options = { method: 'GET',
  url: 'http://example.com/content/id' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("http://example.com/content/id")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

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

xhr.open("GET", "http://example.com/content/id");

xhr.send(data);
import requests

url = "http://example.com/content/id"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "_type": "Content",
  "id":"89a07305-0122-4da1-8b40-b99f4a968f88",
  "custom_id":null,
  "name":"ADO.NET Fundamentals",
  "created_at": "2014-10-21T16:58:32.388-04:00", 
  "level":"Intermediate",
  "rating":3.0,
  "reviews_count":1,
  "content_type":"Course",
  "source_url": "http://pluralsight.com/training/Courses/TableOfContents/adodotnet-fundamentals",
  "tags":[".NET"],
  "skills": [
    {
      "id": "1202a2dc-b927-27e6-a478-1a602e8aa4dc",
      "name": ".NET"
    }
  ],
  "topic": {
    "_type": "Topic",
    "id":"0803a3dd-a947-47e1-b488-1a707e8ab4ce",
    "created_at": "2014-01-13T19:06:20.735-05:00",
    "custom_id":null,
    "name":"Computer Science"
  },
  "provider": {
    "_type": "Provider",
    "id":"cf4c840d-4a48-4ee8-8c7b-1d3e41df21b9",
    "created_at": "2014-01-13T19:06:20.735-05:00",
    "custom_id":null,
    "name":"Pluralsight"
  },
  "enabled": true
}
<?xml version="1.0" encoding="UTF-8"?>
<content>
  <_type>Content</_type>
  <id>89a07305-0122-4da1-8b40-b99f4a968f88</id>
  <custom-id nil="true"/>
  <name>ADO.NET Fundamentals</name>
  <created-at>2014-10-21T16:58:32.388-04:00</created-at>
  <level>Intermediate</level>
  <rating type="float">3.0</rating>
  <reviews-count type="integer">1</reviews-count>
  <content-type>Course</content-type>
  <source-url>http://pluralsight.com/training/Courses/TableOfContents/adodotnet-fundamentals</source-url>
  <tags type="array">
    <tag>.NET</tag>
  </tags>
  <skills type="array">
    <skill>
    	<id>1202a2dc-b927-27e6-a478-1a602e8aa4dc</id>
    	<name>.NET</name>
    </skill>
  </skills>
  <topic>
    <_type>Topic</_type>
    <id>0803a3dd-a947-47e1-b488-1a707e8ab4ce</id>
    <created-at>2014-01-13T19:06:20.735-05:00</created-at>
    <custom-id nil="true"/>
    <name>Computer Science</name>
  </topic>
  <provider>
    <_type>Provider</_type>
    <id>cf4c840d-4a48-4ee8-8c7b-1d3e41df21b9</id>
    <created-at>2014-01-13T19:06:20.735-05:00</created-at>
    <custom-id nil="true"/>
    <name>Pluralsight</name>
  </provider>
  <enabled type="boolean">enabled</enabled>
</content>

Path Params

id
string
required

Can be the ID assigned upon creation, or a custom ID

 

Returns an individual content item. The ID provided can be the ID assigned upon content creation, or a custom ID you assigned to the content.

Returns

The requested content object.

curl -X GET https://api.pathgather.com/v1/content/89a07305-0122-4da1-8b40-b99f4a968f88 \ 
  -H "Authorization: Bearer pg_test_fg4dfsg565hgfhfrk" \ 
  -H "Content-Type: application/json"
Suggest Edits

/content

Create new content

 
posthttps://api.pathgather.com/v1/content
No code samples available
A binary file was returned

You couldn't be authenticated

{
  "_type": "Content",
  "id":"2dad1208-09b3-4ee5-b6a7-66517bab9c62",
  "custom_id":"content-1",
  "name":"The Design of Everyday Things",
  "created_at": "2014-10-26T18:05:29-04:00", 
  "level":"All",
  "rating":0.0,
  "reviews_count":0,
  "content_type":"Course",
  "source_url": "https://www.udacity.com/course/design101",
  "tags":["general"],
  "skills": [
    {
    	"id": "1202a2dc-b927-27e6-a478-1a602e8aa4dc",
			"name": "Design"
    }
	],
  "topic": {
    "_type": "Topic",
    "id":"2c673202-fc59-4599-cd29-1bfe3c7c8c52",
    "created_at": "2014-01-13T19:06:20-05:00",
    "custom_id":"topic-1",
    "name":"Design"
  },
  "provider": {
    "_type": "Provider",
    "id":"53bdc3bd-81db-4091-cdc5-728caefdb63c",
    "created_at": "2014-01-13T18:51:29-05:00",
    "custom_id":"provider-1",
    "name":"Udacity"
  },
  "enabled": true
}
<?xml version="1.0" encoding="UTF-8"?>
<content>
  <id>2dad1208-09b3-4ee5-b6a7-66517bab9c62</id>
  <_type>Content</_type>
  <custom-id>content-1</custom-id>
  <name>The Design of Everyday Things</name>
  <created-at type="dateTime">2014-10-26T18:05:29-04:00</created-at>
  <level>All</level>
  <rating type="float">0.0</rating>
  <reviews-count type="integer">0</reviews-count>
  <content-type>Course</content-type>
  <source-url>https://www.udacity.com/course/design101</source-url>
  <tags type="array">
    <tag>general</tag>
  </tags>
  <skills type="array">
    <skill>
    	<id>1202a2dc-b927-27e6-a478-1a602e8aa4dc</id>
    	<name>Design</name>
    </skill>
  </skills>
  <enabled nil="true"/>
  <topic>
    <id>2c673202-fc59-4599-cd29-1bfe3c7c8c52</id>
    <created-at type="dateTime">2014-01-13T19:06:20-05:00</created-at>
    <custom-id>topic-1</custom-id>
    <name>Design</name>
    <_type>Topic</_type>
  </topic>
  <provider>
    <id>53bdc3bd-81db-4091-cdc5-728caefdb63c</id>
    <created-at type="dateTime">2014-01-13T18:51:29-05:00</created-at>
    <custom-id>provider-1</custom-id>
    <name>Udacity</name>
    <_type>Provider</_type>
  </provider>
</content>

Body Params

name
string
required

Name/title of the content

content_type
string
required

The type of content being referenced. Valid values are "Course", "Document", "Media", "Webinar", "Webpage", and "Collection"

source_url
string
required

The URL where this content can be found

provider_name OR provider_custom_id
string
required

Specify the name of the provider via the provider_name field, or if you are using a custom_id, then please set the provider_custom_id field. Provider must already exist

topic_name OR topic_custom_id
string
required

Specify the name of the topic via the topic_name field, or if you are using a custom_id, then please set the topic_custom_id field. Topic must already exist.

level
string

The difficulty/experience level of the content. Valid values are "Beginner", "Intermediate", "Advanced", "Expert", and "All"

custom_id
string

Optional, but highly recommended if creating content via the API

description
string

A description of the content to display to users when viewing it. Optional, but highly recommended

image
string

The URL to an image to display to users when viewing the content

tags
array of strings

An array of tags to associate to the content. Tags are primarily used for easy lookup later.

enabled
boolean

A flag representing whether this content is discoverable in your Pathgather content catalog. If false, it will not show up in normal content searches.

skills
array of strings

An array of skills to associate to the content. Skills differ from tags, as they are displayed to the user and communicate the specific skill(s) the content will address.

duration_str
string

Set to a value that represents the amount of time needed to complete the content. A wide variety of inputs are accepted ('3 mins 4 sec', '2 hrs 20 min', etc). An error will be returned if the format is unknown. Integer values are also accepted and are assumed to be in seconds.

 

Creates a new content item in your Pathgather instance.

Returns

Returns the content object if the create is successful. If the request contains invalid parameters or insufficient data, a 422 error response will be returned with details about the specific errors.

curl -X POST https://api.pathgather.com/v1/content \ 
  -H "Authorization: Bearer pg_test_fg4dfsg565hgfhfrk" \ 
  -H "Content-Type: application/json" \ 
  -d '{
    "content": {
      "name": "The Design of Everyday Things", 
      "provider_custom_id": "provider-1", 
      "topic_custom_id": "topic-1", 
      "level": "All", 
      "custom_id": "content-1", 
      "description": "Learn the beauty of the everyday objects around you!", 
      "content_type": "Course", 
      "source_url": "https://www.udacity.com/course/design101", 
      "tags": ["general"],
      "skills": ["Design"]
    }
	}'
Suggest Edits

/content/:id

Update an existing content item

 
put/content/id
curl --request PUT \
  --url http://example.com/content/id
var request = require("request");

var options = { method: 'PUT',
  url: 'http://example.com/content/id' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("http://example.com/content/id")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Put.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

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

xhr.open("PUT", "http://example.com/content/id");

xhr.send(data);
import requests

url = "http://example.com/content/id"

response = requests.request("PUT", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "_type": "Content",
  "id":"2dad1208-09b3-4ee5-b6a7-66517bab9c62",
  "custom_id":"content-1",
  "name":"The Design of Everyday Things",
  "created_at": "2014-10-26T18:05:29-04:00", 
  "updated_at": "2014-10-26T18:05:29-04:00", 
  "level":"Intermediate",
  "rating":0.0,
  "reviews_count":0,
  "content_type":"Course",
  "source_url": "https://www.udacity.com/course/design101",
  "tags":["Design"],
  "topic": {
    "_type": "Topic",
    "id":"2c673202-fc59-4599-cd29-1bfe3c7c8c52",
    "created_at": "2014-01-13T19:06:20-05:00",
    "custom_id":"topic-1",
    "name":"Design"
  },
  "provider": {
    "_type": "Provider",
    "id":"53bdc3bd-81db-4091-cdc5-728caefdb63c",
    "created_at": "2014-01-13T18:51:29-05:00",
    "custom_id":"provider-1",
    "name":"Udacity"
  },
  "enabled": true
}
<?xml version="1.0" encoding="UTF-8"?>
<content>
  <id>2dad1208-09b3-4ee5-b6a7-66517bab9c62</id>
  <_type>Content</_type>
  <custom-id>content-1</custom-id>
  <name>The Design of Everyday Things</name>
  <created-at type="dateTime">2014-10-26T18:05:29-04:00</created-at>
  <updated-at type="dateTime">2014-10-26T18:05:29-04:00</updated-at>
  <level>Intermediate</level>
  <rating type="float">0.0</rating>
  <reviews-count type="integer">0</reviews-count>
  <content-type>Course</content-type>
  <source-url>https://www.udacity.com/course/design101</source-url>
  <tags type="array">
    <tag>Design</tag>
  </tags>
  <enabled nil="true"/>
  <topic>
    <id>2c673202-fc59-4599-cd29-1bfe3c7c8c52</id>
    <created-at type="dateTime">2014-01-13T19:06:20-05:00</created-at>
    <custom-id>topic-1</custom-id>
    <name>Design</name>
    <_type>Topic</_type>
  </topic>
  <provider>
    <id>53bdc3bd-81db-4091-cdc5-728caefdb63c</id>
    <created-at type="dateTime">2014-01-13T18:51:29-05:00</created-at>
    <custom-id>provider-1</custom-id>
    <name>Udacity</name>
    <_type>Provider</_type>
  </provider>
</content>

Path Params

id
string
required

Can be the ID assigned upon creation, or a custom ID

Body Params

content
string
required

A hash containing the properties to update. See documentation for the content creation endpoint for a list of the properties that can be updated.

 

Updates the specified content item by setting the values of the parameters passed in the 'content' object. Any parameters not provided will be left unchanged.

Returns

Returns the content object if the update is successful. If the request contains invalid parameters, a 422 error response will be returned with details about the specific errors.

curl -X PUT https://api.pathgather.com/v1/content/content-1 \ 
  -H "Authorization: Bearer pg_test_fg4dfsg565hgfhfrk" \ 
  -H "Content-Type: application/json" \ 
  -d '{
    "content": {
      "level": "Intermediate"
    }
  }'
Suggest Edits

/content/:id

Delete an existing content item

 
delete/content/id
curl --request DELETE \
  --url http://example.com/content/id
var request = require("request");

var options = { method: 'DELETE',
  url: 'http://example.com/content/id' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("http://example.com/content/id")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

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

xhr.open("DELETE", "http://example.com/content/id");

xhr.send(data);
import requests

url = "http://example.com/content/id"

response = requests.request("DELETE", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

<?xml version="1.0" encoding="UTF-8"?>
<hash>
</hash>

Path Params

id
string
required

Can be the ID assigned upon creation, or a custom ID

 

Deletes the specified content item.

Returns

Returns an empty object when successful.

curl -X DELETE https://api.pathgather.com/v1/content/content-1 \ 
  -H "Authorization: Bearer pg_test_fg4dfsg565hgfhfrk" \ 
  -H "Content-Type: application/json"
Suggest Edits

Paths

The paths created by your users in Pathgather

 

Another way your users can learn in Pathgather is through Paths, curated lists of content and resources created by your users. A Path is essentially the tools a user used to learn a skill or improve their knowledge in some capacity, ordered and curated together so others may benefit from a user's previous learning experiences.

Note

At the moment, you may only read paths via the API.

The Path object

Name
Type
Description

id

string

Randomly generated ID assigned upon creation

name

string

The name/title given to the Path by the author

published_at

datetime

The datetime this path was published

published

boolean

A flag specifying whether the path is currently published, and thus discoverable by users

publicly_accessible

boolean

A flag specifying if the path is accessible by all your Pathgather users. If false, the path is only accessible by members of any gatherings the path has been shared with.

tags

array of strings

An array of tags for this path given by the author

skills

array of strings

An array of skills this path will help a user learn/improve in

user

The user (author) that created this path

gatherings

an array of Gathering objects

The gatherings the content has been shared to, if any

created_at

datetime

The datetime this path was created

saved_at

datetime

The datetime this path was last saved by the author

updated_at

datetime

The datetime this path was last updated

custom_id

string

The unique ID you assign to the path

endorsement_count

integer

The number of users that have endorsed this path

EXAMPLE OBJECT

{
  "id": "2dea1427-676c-423e-8396-354f229149b8", 
  "name": "Learning AngularJS",
  "published": true,
  "publicly_accessible": true,
  "tags": ["AngularJS", "Technical Paths"],
  "skills": [
    {
      "id": "1202a2dc-b927-27e6-a478-1a602e8aa4dc",
      "name": "Javascript"
    }
  ],
  "published_at": "2014-11-11T15:12:13.561-05:00",
  "created_at": "2014-11-11T15:12:13.561-05:00",
  "saved_at": "2014-11-11T15:12:13.561-05:00",
  "updated_at": "2014-11-11T15:12:13.561-05:00",
  "gatherings": [],
  "custom_id": null,
  "endorsement_count": 4,
  "user": {
    "_type": "User",
    "id":"4cea0449-666a-433f-8396-857e269449a9",
    "custom_id": null,
    "first_name":"Jamie",
    "last_name":"Davidson",
    "created_at":"2014-10-22T13:04:27.329-04:00",
    "email":"jamie@pathgather.com",
    "job_title":"CTO",
    "hire_date":"2013-03-02",
    "location":"New York, NY",
    "deactivated":false,
    "last_active_at":"2014-10-17",
    "admin": true,
    "department": {
      "_type": "Department",
      "id":"90c8e4f2-3fba-4747-9322-00635bcff1bc",
      "created_at":"2014-10-22T13:04:27.329-04:00",
      "name":"Founders"
    }
  }
}
<path>
  <id>2dea1427-676c-423e-8396-354f229149b8</id>
  <name>Learning AngularJS</name>
  <published type="boolean">true</published>    
  <publicly_accessible type="boolean">true</publicly_accessible>
  <tags type="array">
    <tag>AngularJS</tag>
    <tag>Javascript</tag>
  </tags>
  <published-at>2014-11-11T15:12:13.561-05:00</published-at>
  <created-at>2014-11-11T15:12:13.561-05:00</created-at>
  <gatherings type="array"></gatherings>
  <custom-id nil="true"/>
  <user>
    <_type>User</_type>
    <id>4cea0449-666a-433f-8396-857e269449a9</id>
    <custom-id nil="true"/>
    <first-name>Jamie</first-name>
    <last-name>Davidson</last-name>
    <created-at>2014-10-22T13:04:27.329-04:00</created-at>
    <email>jamie@pathgather.com</email>
    <job-title>CTO</job-title>
    <hire-date type="date">2013-03-02</hire-date>
    <location>New York, NY</location>
    <deactivated type="boolean">false</deactivated>
    <last-active-at type="date">2014-10-17</last-active-at>
    <admin type="boolean">true</admin>
    <department>
      <_type>Department</_type>
      <id>90c8e4f2-3fba-4747-9322-00635bcff1bc</id>
      <created-at type="integer">1398488816</created-at>
      <name>Founders</name>
    </department>
  </user>
</path>
Suggest Edits

/paths

List paths in your Pathgather catalog

 

OAuth2 Auth

Bearer
 Authentication is required for this endpoint.
gethttps://api.pathgather.com/v1/paths
No code samples available
A binary file was returned

Your OAuth2 token is incorrect or has expired

{
  "results": [
    {
      "tags": ["AngularJS", "Technical Paths"],
  		"skills": [
    		{
      		"id": "1202a2dc-b927-27e6-a478-1a602e8aa4dc",
      		"name": "Javascript"
    		}
  		],
      "updated_at": "2014-10-28T18:03:11.782-04:00",
      "saved_at": "2014-07-11T16:39:30.478-04:00",
      "name": "Intro to Ruby",
      "published_at": "2014-07-11T16:39:30.478-04:00",
      "published": true,
      "id": "57a89e01-59a9-4c39-8b64-4eabd512e9f5",
      "custom_id": null,
      "user": {
        "last_active_at": "2015-04-08",
        "id": "85a5fade-edb2-462b-a3d3-f5a213a753e5",
        "deactivated": false,
        "location": "New York, NY",
        "admin": true,
        "created_at": "2014-05-16T11:05:31.410-04:00",
        "_type": "User",
        "updated_at": "2015-04-08T09:05:14.001-04:00",
        "job_title": "Lead Engineer",
        "last_name": "Samuell",
        "department": {
          "updated_at": "2014-05-16T11:05:31.398-04:00",
          "name": "Engineering",
          "id": "562c2058-3ba2-444d-b5c6-6b8622c40609",
          "created_at": "2014-05-16T11:05:31.398-04:00",
          "_type": "Department"
        },
        "custom_id": null,
        "first_name": "Neville",
        "hire_date": "2013-03-01",
        "email": "neville@pathgather.com"
      },
      "created_at": "2014-07-11T16:39:30.478-04:00",
      "_type": "Path"
    },
    {
      "name": "Sales Basics",
      "saved_at": "2014-06-26T09:35:05.714-04:00",
      "updated_at": "2015-01-13T11:09:37.986-05:00",
      "published_at": "2014-06-26T09:35:05.714-04:00",
      "published": true,
      "id": "9fddfad2-9a44-4fea-af2d-4e4de700b935",
      "_type": "Path",
      "created_at": "2014-06-26T09:35:05.714-04:00",
      "user": {
        "updated_at": "2015-03-24T16:43:13.463-04:00",
        "last_name": "Ohrenberger",
        "job_title": "Business Development",
        "department": {
          "id": "b8161d9e-eb72-448f-85f6-cc8cb8366468",
          "name": "Pathgather",
          "updated_at": "2014-05-01T02:44:01.992-04:00",
          "_type": "Department",
          "created_at": "2014-05-01T02:44:01.992-04:00"
        },
        "custom_id": null,
        "first_name": "John",
        "hire_date": "2013-09-01",
        "email": "johrenberger@pathgather.com",
        "last_active_at": "2015-03-24",
        "deactivated": false,
        "id": "0e855dd8-6792-492f-983a-9b517f3553b5",
        "location": "Greater Atlanta Area",
        "admin": true,
        "created_at": "2014-05-05T09:02:55.132-04:00",
        "_type": "User"
      }
      "tags": [
        "sales",
        "selling",
        "solution sales",
        "negotiation",
        "Discover How to Generate More Kick-Butt Leads Thru LinkedIn",
        "negotiating",
        "closing",
        "negotiationskills"
      ],
      "skills": [],
    },
    {
      "id": "4d084c27-e9f5-4141-a74b-c415442e72de",
      "created_at": "2014-05-12T19:53:25.931-04:00",
      "user": {
        "id": "4cea0449-666a-433f-8396-857e269449a9",
        "deactivated": false,
        "location": "New York, NY",
        "admin": true,
        "last_active_at": "2015-03-30",
        "_type": "User",
        "created_at": "2014-04-26T12:51:29.407-04:00",
        "department": {
          "_type": "Department",
          "created_at": "2014-04-26T12:51:29.389-04:00",
          "id": "90c8e4f2-3fba-4747-9322-00635bcff1bc",
          "name": "Founders",
          "updated_at": "2014-04-26T12:51:29.389-04:00"
        },
        "custom_id": null,
        "first_name": "Jamie",
        "updated_at": "2015-03-30T22:01:55.893-04:00",
        "last_name": "Davidson",
        "job_title": "CTO",
        "email": "jamie@pathgather.com",
        "hire_date": "2013-03-14"
      },
      "_type": "Path",
      "updated_at": "2015-04-08T09:05:14.074-04:00",
      "tags": [
        "AngularJS",
        "Javascript"
      ],
      "skills": [],
      "saved_at": "2014-05-12T20:22:26.698-04:00",
      "name": "Learning AngularJS",
      "published": true,
      "published_at": "2014-05-12T20:22:26.698-04:00"
    },
  ],
  "next": null
}
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <results type="array">
    <result>
      <id>57a89e01-59a9-4c39-8b64-4eabd512e9f5</id>
      <_type>Path</_type>
      <name>Intro to Ruby</name>
      <created-at>2014-07-11T16:39:30.478-04:00</created-at>
      <updated-at>2014-10-28T18:03:11.782-04:00</updated-at>
      <published type="boolean">true</published>
      <tags type="array"/>
      <published-at>2014-07-11T16:39:30.478-04:00</published-at>
      <saved-at>2014-07-11T16:39:30.478-04:00</saved-at>
      <custom-id nil="true"/>
      <user>
        <id>85a5fade-edb2-462b-a3d3-f5a213a753e5</id>
        <custom-id nil="true"/>
        <first-name>Neville</first-name>
        <last-name>Samuell</last-name>
        <created-at>2014-05-16T11:05:31.410-04:00</created-at>
        <updated-at>2015-04-08T09:05:14.001-04:00</updated-at>
        <email>neville@pathgather.com</email>
        <job-title>Lead Engineer</job-title>
        <hire-date>2013-03-01</hire-date>
        <location>New York, NY</location>
        <deactivated type="boolean">false</deactivated>
        <last-active-at>2015-04-08</last-active-at>
        <admin type="boolean">true</admin>
        <_type>User</_type>
        <department>
          <id>562c2058-3ba2-444d-b5c6-6b8622c40609</id>
          <name>Engineering</name>
          <_type>Department</_type>
          <created-at>2014-05-16T11:05:31.398-04:00</created-at>
          <updated-at>2014-05-16T11:05:31.398-04:00</updated-at>
        </department>
      </user>
    </result>
    <result>
      <id>9fddfad2-9a44-4fea-af2d-4e4de700b935</id>
      <_type>Path</_type>
      <name>Sales Basics</name>
      <created-at>2014-06-26T09:35:05.714-04:00</created-at>
      <updated-at>2015-01-13T11:09:37.986-05:00</updated-at>
      <published type="boolean">true</published>
      <tags type="array">
        <tag>sales</tag>
        <tag>selling</tag>
        <tag>solution sales</tag>
        <tag>negotiation</tag>
        <tag>Discover How to Generate More Kick-Butt Leads Thru LinkedIn</tag>
        <tag>negotiating</tag>
        <tag>closing</tag>
        <tag>negotiationskills</tag>
      </tags>
      <published-at>2014-06-26T09:35:05.714-04:00</published-at>
      <saved-at>2014-06-26T09:35:05.714-04:00</saved-at>
      <user>
        <id>0e855dd8-6792-492f-983a-9b517f3553b5</id>
        <custom-id nil="true"/>
        <first-name>John</first-name>
        <last-name>Ohrenberger</last-name>
        <created-at>2014-05-05T09:02:55.132-04:00</created-at>
        <updated-at>2015-03-24T16:43:13.463-04:00</updated-at>
        <email>johrenberger@pathgather.com</email>
        <job-title>Business Development</job-title>
        <hire-date>2013-09-01</hire-date>
        <location>Greater Atlanta Area</location>
        <deactivated type="boolean">false</deactivated>
        <last-active-at>2015-03-24</last-active-at>
        <admin type="boolean">true</admin>
        <_type>User</_type>
        <department>
          <id>b8161d9e-eb72-448f-85f6-cc8cb8366468</id>
          <name>Pathgather</name>
          <_type>Department</_type>
          <created-at>2014-05-01T02:44:01.992-04:00</created-at>
          <updated-at>2014-05-01T02:44:01.992-04:00</updated-at>
        </department>
      </user>
    </result>
    <result>
      <id>4d084c27-e9f5-4141-a74b-c415442e72de</id>
      <_type>Path</_type>
      <name>Learning AngularJS</name>
      <created-at>2014-05-12T19:53:25.931-04:00</created-at>
      <updated-at>2015-04-08T09:05:14.074-04:00</updated-at>
      <published type="boolean">true</published>
      <tags type="array">
        <tag>AngularJS</tag>
        <tag>Javascript</tag>
      </tags>
      <published-at>2014-05-12T20:22:26.698-04:00</published-at>
      <saved-at>2014-05-12T20:22:26.698-04:00</saved-at>
      <user>
        <id>4cea0449-666a-433f-8396-857e269449a9</id>
        <custom-id nil="true"/>
        <first-name>Jamie</first-name>
        <last-name>Davidson</last-name>
        <created-at>2014-04-26T12:51:29.407-04:00</created-at>
        <updated-at>2015-03-30T22:01:55.893-04:00</updated-at>
        <email>jamie@pathgather.com</email>
        <job-title>CTO</job-title>
        <hire-date>2013-03-14</hire-date>
        <location>New York, NY</location>
        <deactivated type="boolean">false</deactivated>
        <last-active-at>2015-03-30</last-active-at>
        <admin type="boolean">true</admin>
        <_type>User</_type>
        <department>
          <id>90c8e4f2-3fba-4747-9322-00635bcff1bc</id>
          <name>Founders</name>
          <_type>Department</_type>
          <created-at>2014-04-26T12:51:29.389-04:00</created-at>
          <updated-at>2014-04-26T12:51:29.389-04:00</updated-at>
        </department>
      </user>
    </result>
  </results>
  <next nil="true"/>
</response>

Query Params

from
string

For use in pagination. from is the ID of the path in Pathgather to begin your list with

include_unpublished
boolean

Set to true if the results should include unpublished paths

 

Returns a paginated list of paths from your Pathgather catalog. Paths are returned sorted by creation date, with the most recently created path appearing first.

Returns

A paginated list of paths

curl -X GET https://api.pathgather.com/v1/paths \ 
  -H "Authorization: Bearer pg_test_fg4dfsg565hgfhfrk" \ 
  -H "Content-Type: application/json"
Suggest Edits

/paths/:id

Retrieve a specific path

 
get/paths/id
curl --request GET \
  --url http://example.com/paths/id
var request = require("request");

var options = { method: 'GET',
  url: 'http://example.com/paths/id' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("http://example.com/paths/id")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

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

xhr.open("GET", "http://example.com/paths/id");

xhr.send(data);
import requests

url = "http://example.com/paths/id"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "published": true,
  "created_at": "2014-05-12T19:53:25.931-04:00",
  "_type": "Path",
  "saved_at": "2014-05-12T20:22:26.698-04:00",
  "id": "4d084c27-e9f5-4141-a74b-c415442e72de",
  "published_at": "2014-05-12T20:22:26.698-04:00",
  "updated_at": "2015-04-08T09:05:14.074-04:00",
  "name": "Learning AngularJS",
  "custom_id": null,
  "tags": [
    "AngularJS",
    "Javascript"
  ],
  "skills": [],
  "user": {
    "location": "New York, NY",
    "email": "jamie@pathgather.com",
    "hire_date": "2013-03-14",
    "job_title": "CTO",
    "id": "4cea0449-666a-433f-8396-857e269449a9",
    "created_at": "2014-04-26T12:51:29.407-04:00",
    "_type": "User",
    "deactivated": false,
    "custom_id": null,
    "last_active_at": "2015-03-30",
    "last_name": "Davidson",
    "department": {
      "id": "90c8e4f2-3fba-4747-9322-00635bcff1bc",
      "created_at": "2014-04-26T12:51:29.389-04:00",
      "name": "Founders",
      "_type": "Department",
      "updated_at": "2014-04-26T12:51:29.389-04:00"
    },
    "first_name": "Jamie",
    "admin": true,
    "updated_at": "2015-03-30T22:01:55.893-04:00"
  }
}
<?xml version="1.0" encoding="UTF-8"?>
<path>
  <id>4d084c27-e9f5-4141-a74b-c415442e72de</id>
  <_type>Path</_type>
  <name>Learning AngularJS</name>
  <created-at type="dateTime">2014-05-12T19:53:25-04:00</created-at>
  <updated-at type="dateTime">2015-04-08T09:05:14-04:00</updated-at>
  <published type="boolean">true</published>
  <custom-id nil="true"/>
  <tags type="array">
    <tag>AngularJS</tag>
    <tag>Javascript</tag>
  </tags>
  <published-at type="dateTime">2014-05-12T20:22:26-04:00</published-at>
  <saved-at type="dateTime">2014-05-12T20:22:26-04:00</saved-at>
  <user>
    <id>4cea0449-666a-433f-8396-857e269449a9</id>
    <custom-id nil="true"/>
    <first-name>Jamie</first-name>
    <last-name>Davidson</last-name>
    <created-at type="dateTime">2014-04-26T12:51:29-04:00</created-at>
    <updated-at type="dateTime">2015-03-30T22:01:55-04:00</updated-at>
    <email>jamie@pathgather.com</email>
    <job-title>CTO</job-title>
    <hire-date type="date">2013-03-14</hire-date>
    <location>New York, NY</location>
    <deactivated type="boolean">false</deactivated>
    <last-active-at type="date">2015-03-30</last-active-at>
    <admin type="boolean">true</admin>
    <_type>User</_type>
    <department>
      <id>90c8e4f2-3fba-4747-9322-00635bcff1bc</id>
      <name>Founders</name>
      <_type>Department</_type>
      <created-at type="dateTime">2014-04-26T12:51:29-04:00</created-at>
      <updated-at type="dateTime">2014-04-26T12:51:29-04:00</updated-at>
    </department>
  </user>
</path>

Path Params

id
string
required

id of the path

 

Returns an individual path.

Returns

The requested path.

curl -X GET https://api.pathgather.com/v1/paths/4d084c27-e9f5-4141-a74b-c415442e72de \ 
  -H "Authorization: Bearer pg_test_fg4dfsg565hgfhfrk" \ 
  -H "Content-Type: application/json"
Suggest Edits

Content Starts and Completions

An API for the events that occur when users start and/or complete your content

 

Whenever a user starts content in your Pathgather learning catalogue, a UserContent object is created in order to record the start. If the user then completes that content, the previously created UserContent object will be updated to record the completion.

This API allows you to query your UserContent objects, which comes in handy if you're attempting to determine the connections and similarities between your most popular content.

The UserContent object

Name
Type
Description

id

string

Randomly generated ID assigned upon creation

public

boolean

A flag representing whether the user started the content publicly (i.e. viewable by other users)

started_at

datetime

The datetime the content was started by the user

completed_at

datetime

If the user has also completed the content, this will be the datetime that completion occurred

user

The user that started the content

content

The content that was started

updated_at

datetime

The date the UserContent was last updated (changed)

EXAMPLE OBJECT

{
  "id":"01be6f4e-539a-489e-b1f3-7451c05f8b3d",
  "_type":"UserContent",
  "started_at":"2014-11-11T15:12:13.561-05:00",
  "completed_at":null,
  "updated_at":"2014-11-11T15:12:13.561-05:00",
  "public":true,
  "content": {
    "_type": "Content",
    "id":"89a07305-0122-4da1-8b40-b99f4a968f88",
    "custom_id":null,
    "name":"ADO.NET Fundamentals",
    "created_at": "2014-10-21T16:58:32.388-04:00", 
    "level":"Intermediate",
    "rating":3.0,
    "reviews_count":1,
    "content_type":"Course",
    "source_url": "http://pluralsight.com/training/Courses/TableOfContents/adodotnet-fundamentals",
    "tags":[".NET"],
    "enabled": true,
    "topic": {
      "_type": "Topic",
      "id":"0803a3dd-a947-47e1-b488-1a707e8ab4ce",
      "created_at": "2014-01-13T19:06:20.735-05:00",
      "custom_id":null,
      "name":"Computer Science"
    },
    "provider": {
      "_type": "Provider",
      "id":"cf4c840d-4a48-4ee8-8c7b-1d3e41df21b9",
      "created_at": "2014-01-13T19:06:20.735-05:00",
      "custom_id":null,
      "name":"Pluralsight"
    }   
  },
  user: {
    "_type": "User",
    "id":"4cea0449-666a-433f-8396-857e269449a9",
    "custom_id": null,
    "first_name":"Jamie",
    "last_name":"Davidson",
    "created_at":"2014-10-22T13:04:27.329-04:00",
    "email":"jamie@pathgather.com",
    "job_title":"CTO",
    "hire_date":"2013-03-02",
    "location":"New York, NY",
    "deactivated":false,
    "last_active_at":"2014-10-17",
    "admin": true,
    "department": {
      "_type": "Department",
      "id":"90c8e4f2-3fba-4747-9322-00635bcff1bc",
      "created_at":"2014-10-22T13:04:27.329-04:00",
      "name":"Founders"
    }
  }
}
<user-content>
  <id>01be6f4e-539a-489e-b1f3-7451c05f8b3d</id>
  <_type>UserContent</_type>
  <started-at>2014-11-11T15:12:13.561-05:00</started-at>
  <completed-at nil="true"/>
  <updated-at>2014-11-11T15:12:13.561-05:00</updated-at>
  <public type="boolean">true</public>
  <user>
    <_type>User</_type>
    <id>4cea0449-666a-433f-8396-857e269449a9</id>
    <custom-id nil="true"/>
    <first-name>Jamie</first-name>
    <last-name>Davidson</last-name>
    <created-at>2014-10-22T13:04:27.329-04:00</created-at>
    <email>jamie@pathgather.com</email>
    <job-title>CTO</job-title>
    <hire-date type="date">2013-03-02</hire-date>
    <location>New York, NY</location>
    <deactivated type="boolean">false</deactivated>
    <last-active-at type="date">2014-10-17</last-active-at>
    <admin type="boolean">true</admin>
    <department>
      <_type>Department</_type>
      <id>90c8e4f2-3fba-4747-9322-00635bcff1bc</id>
      <created-at type="integer">1398488816</created-at>
      <name>Founders</name>
    </department>
  </user>
  <content>
    <_type>Content</_type>
    <id>89a07305-0122-4da1-8b40-b99f4a968f88</id>
    <custom-id nil="true"/>
    <name>ADO.NET Fundamentals</name>
    <created-at>2014-10-21T16:58:32.388-04:00</created-at>
    <level>Intermediate</level>
    <rating type="float">3.0</rating>
    <reviews-count type="integer">1</reviews-count>
    <content-type>Course</content-type>
    <source-url>http://pluralsight.com/training/Courses/TableOfContents/adodotnet-fundamentals</source-url>
    <tags type="array">
      <tag>.NET</tag>
    </tags>
    <topic>
      <_type>Topic</_type>
      <id>0803a3dd-a947-47e1-b488-1a707e8ab4ce</id>
      <created-at>2014-01-13T19:06:20.735-05:00</created-at>
      <custom-id nil="true"/>
      <name>Computer Science</name>
    </topic>
    <provider>
      <_type>Provider</_type>
      <id>cf4c840d-4a48-4ee8-8c7b-1d3e41df21b9</id>
      <created-at>2014-01-13T18:51:29.884-05:00</created-at>
      <custom-id nil="true"/>
      <name>Pluralsight</name>
    </provider>
    <enabled type="boolean">enabled</enabled>
  </content>
</user-content>
Suggest Edits

/user_content

List content starts and completions in your account

 
get/user_content
curl --request GET \
  --url http://example.com/user_content
var request = require("request");

var options = { method: 'GET', url: 'http://example.com/user_content' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("http://example.com/user_content")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

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

xhr.open("GET", "http://example.com/user_content");

xhr.send(data);
import requests

url = "http://example.com/user_content"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "results": [
    {
      "id":"01be6f4e-539a-489e-b1f3-7451c05f8b3d",
      "_type":"UserContent",
      "started_at":"2014-11-11T15:12:13.561-05:00",
      "completed_at":null,
      "public":true,
      "content": {
        "_type": "Content",
        "id":"89a07305-0122-4da1-8b40-b99f4a968f88",
        "custom_id":null,
        "name":"ADO.NET Fundamentals",
        "created_at": "2014-10-21T16:58:32.388-04:00", 
        "level":"Intermediate",
        "rating":3.0,
        "reviews_count":1,
        "content_type":"Course",
        "source_url": "http://pluralsight.com/training/Courses/TableOfContents/adodotnet-fundamentals",
        "tags":[".NET"],
        "enabled": true,
        "topic": {
          "_type": "Topic",
          "id":"0803a3dd-a947-47e1-b488-1a707e8ab4ce",
          "created_at": "2014-01-13T19:06:20.735-05:00",
          "custom_id":null,
          "name":"Computer Science"
        },
        "provider": {
          "_type": "Provider",
          "id":"cf4c840d-4a48-4ee8-8c7b-1d3e41df21b9",
          "created_at": "2014-01-13T19:06:20.735-05:00",
          "custom_id":null,
          "name":"Pluralsight"
        }   
      },
      user: {
        "_type": "User",
        "id":"4cea0449-666a-433f-8396-857e269449a9",
        "custom_id": null,
        "first_name":"Jamie",
        "last_name":"Davidson",
        "created_at":"2014-10-22T13:04:27.329-04:00",
        "email":"jamie@pathgather.com",
        "job_title":"CTO",
        "hire_date":"2013-03-02",
        "location":"New York, NY",
        "deactivated":false,
        "last_active_at":"2014-10-17",
        "admin": true,
        "department": {
          "_type": "Department",
          "id":"90c8e4f2-3fba-4747-9322-00635bcff1bc",
          "created_at":"2014-10-22T13:04:27.329-04:00",
          "name":"Founders"
        }
      }
    },
    {
      "id":"6622296d-9036-4eb0-b742-d22621d9020d",
      "_type":"UserContent",
      "started_at":"2014-11-11T15:11:54.598-05:00",
      "completed_at":null,
      "public":true,
      "content": {
        "_type": "Content",
        "id": "227e1cd7-1644-47be-ad01-038c66678292",
        "custom_id": null,
        "name": "Intro to Javascript",
        "created_at": "2014-10-21T16:58:32.388-04:00",
        "level": "All",
        "rating": 0.0,
        "reviews_count": 0,
        "content_type": "Document",
        "source_url": "https://sharepoint.company.com/corp/docs/intro-to-javascript.pdf",
        "tags": [],
        "enabled": true,
        "topic": {
          "_type": "Topic",
          "created_at": "2014-01-13T19:06:20.735-05:00",
          "custom_id": null,
          "id": "2c573402-fc59-4799-ad29-0cff3c7c1c73",
          "name": "Javascript"
        },
        "provider": {
          "_type": "Provider",
          "created_at": "2014-01-13T19:06:20.735-05:00",
          "custom_id": null,
          "id": "47bca3cd-81db-3091-add6-788caeedc74c",
          "name": "Sharepoint"
        }
      },
      user: {
        "_type":"User",
        "id":"3c7a388a-2cd0-7bn4-9x9c-56f29a53f1xc",
        "custom_id": null,
        "first_name":"Eric",
        "last_name":"Duffy",
        "created_at":"2014-10-21T13:04:27.329-04:00",
        "email":"eric@pathgather.com",
        "job_title":"CEO",
        "hire_date":"2012-12-01",
        "location":"New York, NY",
        "deactivated":false,
        "last_active_at":"2014-10-22",
        "admin":true,
        "department": {
          "_type": "Department",
          "id":"90c8e4f2-3fba-4747-9322-00635bcff1bc",
          "created_at":"2014-10-22T13:04:27.329-04:00",
          "name":"Founders"
        }
      }
    }
  ],
  "next": null
}
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <results type="array">
    <result>
      <id>01be6f4e-539a-489e-b1f3-7451c05f8b3d</id>
      <_type>UserContent</_type>
      <started-at>2014-11-11T15:12:13.561-05:00</started-at>
      <completed-at nil="true"/>
      <public type="boolean">true</public>
      <user>
        <_type>User</_type>
        <id>4cea0449-666a-433f-8396-857e269449a9</id>
        <custom-id nil="true"/>
        <first-name>Jamie</first-name>
        <last-name>Davidson</last-name>
        <created-at>2014-10-22T13:04:27.329-04:00</created-at>
        <email>jamie@pathgather.com</email>
        <job-title>CTO</job-title>
        <hire-date type="date">2013-03-02</hire-date>
        <location>New York, NY</location>
        <deactivated type="boolean">false</deactivated>
        <last-active-at type="date">2014-10-17</last-active-at>
        <admin type="boolean">true</admin>
        <department>
          <_type>Department</_type>
          <id>90c8e4f2-3fba-4747-9322-00635bcff1bc</id>
          <created-at type="integer">1398488816</created-at>
          <name>Founders</name>
        </department>
      </user>
      <content>
        <_type>Content</_type>
        <id>89a07305-0122-4da1-8b40-b99f4a968f88</id>
        <custom-id nil="true"/>
        <name>ADO.NET Fundamentals</name>
        <created-at>2014-10-21T16:58:32.388-04:00</created-at>
        <level>Intermediate</level>
        <rating type="float">3.0</rating>
        <reviews-count type="integer">1</reviews-count>
        <content-type>Course</content-type>
        <source-url>http://pluralsight.com/training/Courses/TableOfContents/adodotnet-fundamentals</source-url>
        <tags type="array">
          <tag>.NET</tag>
        </tags>
        <topic>
          <_type>Topic</_type>
          <id>0803a3dd-a947-47e1-b488-1a707e8ab4ce</id>
          <created-at>2014-01-13T19:06:20.735-05:00</created-at>
          <custom-id nil="true"/>
          <name>Computer Science</name>
        </topic>
        <provider>
          <_type>Provider</_type>
          <id>cf4c840d-4a48-4ee8-8c7b-1d3e41df21b9</id>
          <created-at>2014-01-13T18:51:29.884-05:00</created-at>
          <custom-id nil="true"/>
          <name>Pluralsight</name>
        </provider>
        <enabled type="boolean">enabled</enabled>
      </content>
    </result>
    <result>
      <id>6622296d-9036-4eb0-b742-d22621d9020d</id>
      <_type>UserContent</_type>
      <started-at>2014-11-11T15:11:54.598-05:00</started-at>
      <completed-at nil="true"/>
      <public type="boolean">true</public>
      <user>
        <_type>User</_type>
        <id>3c7a388a-2cd0-7bn4-9x9c-56f29a53f1xc</id>
        <custom-id nil="true"/>
        <first-name>Eric</first-name>
        <last-name>Duffy</last-name>
        <created-at type="integer">2014-10-21T13:04:27.329-04:00</created-at>
        <email>eric@pathgather.com</email>
        <job-title>CEO</job-title>
        <hire-date type="date">2012-12-01</hire-date>
        <location>New York, NY</location>
        <deactivated type="boolean">false</deactivated>
        <last-active-at type="date">2014-10-22</last-active-at>
        <admin type="boolean">true</admin>
        <department>
          <_type>Department</_type>
          <id>90c8e4f2-3fba-4747-9322-00635bcff1bc</id>
          <created-at type="integer">1398488816</created-at>
          <name>Founders</name>
        </department>
      </user>
      <content>
        <_type>Content</_type>
        <id>227e1cd7-1644-47be-ad01-038c66678292</id>
        <custom-id nil="true"/>
        <name>Intro to Javascript</name>
        <created-at>2014-10-21T16:58:32.388-04:00</created-at>
        <level>All</level>
        <rating type="float">0.0</rating>
        <reviews-count type="integer">0</reviews-count>
        <content-type>Document</content-type>
        <source-url>https://sharepoint.company.com/corp/docs/intro-to-javascript.pdf</source-url>
        <tags type="array">
          <tag></tag>
        </tags>
        <enabled type="boolean">true</enabled>
        <topic>
          <_type>Topic</_type>
          <created-at>2014-01-13T19:06:20.735-05:00</created-at>
          <custom-id nil="true"/>
          <id>2c573402-fc59-4799-ad29-0cff3c7c1c73</id>
          <name>Javascript</name>
        </topic>
        <provider>
          <_type>Provider</_type>
          <created-at>2014-01-13T18:51:29.884-05:00</created-at>
          <custom-id nil="true"/>
          <id>47bca3cd-81db-3091-add6-788caeedc74c</id>
          <name>Sharepoint</name>
        </provider>
      </content>
    </result>
  </results>
	<next nil="true"/>
</response>

Query Params

from
string

For use in pagination. from is the ID of a user_content object in Pathgather to begin your list with

 

Returns objects representing a user's interaction (starts and completions) with content. User content items are returned sorted by start date, with the most recently started content appearing first.

Returns

A list of your user content

curl -X GET https://api.pathgather.com/v1/user_content \ 
  -H "Authorization: Bearer pg_test_fg4dfsg565hgfhfrk" \ 
  -H "Content-Type: application/json"
Suggest Edits

/user_content

Log completion of content for a user

 
post/user_content
curl --request POST \
  --url http://example.com/user_content
var request = require("request");

var options = { method: 'POST', url: 'http://example.com/user_content' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("http://example.com/user_content")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

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

xhr.open("POST", "http://example.com/user_content");

xhr.send(data);
import requests

url = "http://example.com/user_content"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "id":"01be6f4e-539a-489e-b1f3-7451c05f8b3d",
  "_type":"UserContent",
  "completed_at": "2014-11-11T15:12:13.561-05:00",
  "public":true,
  "content": {
    "_type": "Content",
    "id":"89a07305-0122-4da1-8b40-b99f4a968f88",
    "custom_id":null,
    "name":"ADO.NET Fundamentals",
    "created_at": "2014-10-21T16:58:32.388-04:00", 
    "level":"Intermediate",
    "content_type":"Course",
    "source_url": "http://pluralsight.com/training/Courses/TableOfContents/adodotnet-fundamentals",
    "tags":[".NET"],
    "enabled": true,
    "topic": {
      "_type": "Topic",
      "id":"0803a3dd-a947-47e1-b488-1a707e8ab4ce",
      "created_at": "2014-01-13T19:06:20.735-05:00",
      "custom_id":null,
      "name":"Computer Science"
    },
    "provider": {
      "_type": "Provider",
      "id":"cf4c840d-4a48-4ee8-8c7b-1d3e41df21b9",
      "created_at": "2014-01-13T19:06:20.735-05:00",
      "custom_id":null,
      "name":"Pluralsight"
    } 
  },
  user: {
    "_type": "User",
    "id":"4cea0449-666a-433f-8396-857e269449a9",
    "custom_id": null,
    "first_name":"Jamie",
    "last_name":"Davidson",
    "created_at":"2014-10-22T13:04:27.329-04:00",
    "email":"jamie@pathgather.com",
    "job_title":"CTO",
    "hire_date":"2013-03-02",
    "location":"New York, NY",
    "deactivated":false,
    "last_active_at":"2014-10-17",
    "admin": true,
    "department": {
      "_type": "Department",
      "id":"90c8e4f2-3fba-4747-9322-00635bcff1bc",
      "created_at":"2014-10-22T13:04:27.329-04:00",
      "name":"Founders"
    }
  }
}
<?xml version="1.0" encoding="UTF-8"?>
<user-content>
  <id>01be6f4e-539a-489e-b1f3-7451c05f8b3d</id>
  <_type>UserContent</_type>
  <completed-at>2014-11-11T15:12:13.561-05:00</completed-at>
  <public type="boolean">true</public>
  <user>
    <_type>User</_type>
    <id>4cea0449-666a-433f-8396-857e269449a9</id>
    <custom-id nil="true"/>
    <first-name>Jamie</first-name>
    <last-name>Davidson</last-name>
    <created-at>2014-10-22T13:04:27.329-04:00</created-at>
    <email>jamie@pathgather.com</email>
    <job-title>CTO</job-title>
    <hire-date type="date">2013-03-02</hire-date>
    <location>New York, NY</location>
    <deactivated type="boolean">false</deactivated>
    <last-active-at type="date">2014-10-17</last-active-at>
    <admin type="boolean">true</admin>
    <department>
      <_type>Department</_type>
      <id>90c8e4f2-3fba-4747-9322-00635bcff1bc</id>
      <created-at type="integer">1398488816</created-at>
      <name>Founders</name>
    </department>
  </user>
  <content>
    <_type>Content</_type>
    <id>89a07305-0122-4da1-8b40-b99f4a968f88</id>
    <custom-id nil="true"/>
    <name>ADO.NET Fundamentals</name>
    <created-at>2014-10-21T16:58:32.388-04:00</created-at>
    <level>Intermediate</level>
    <rating type="float">3.0</rating>
    <reviews-count type="integer">1</reviews-count>
    <content-type>Course</content-type>
    <source-url>http://pluralsight.com/training/Courses/TableOfContents/adodotnet-fundamentals</source-url>
    <tags type="array">
      <tag>.NET</tag>
    </tags>
    <topic>
      <_type>Topic</_type>
      <id>0803a3dd-a947-47e1-b488-1a707e8ab4ce</id>
      <created-at>2014-01-13T19:06:20.735-05:00</created-at>
      <custom-id nil="true"/>
      <name>Computer Science</name>
    </topic>
    <provider>
      <_type>Provider</_type>
      <id>cf4c840d-4a48-4ee8-8c7b-1d3e41df21b9</id>
      <created-at>2014-01-13T18:51:29.884-05:00</created-at>
      <custom-id nil="true"/>
      <name>Pluralsight</name>
    </provider>
    <enabled type="boolean">enabled</enabled>
  </content>
</user-content>

Body Params

content_id
string
required

Can be the ID assigned upon creation, or a custom ID

user_id
string
required

Required unless you specify user_email. Can be the ID assigned upon creation, or a custom ID

user_email
string
required

Required unless you specify user_id. The email of the user that completed the content

completed_at
date-time
required

The time the content was completed by the user. Must be a parseable timestamp or the word 'now' (if you are logging completions as they occur in a different system)

 

Logs that a user completed content. Use this API to automatically update a user's Pathgather profile with learning activity that occurs in a different system.

Returns

Returns the user content object if the create is successful. If the request contains invalid parameters or insufficient data, a 422 error response will be returned with details about the specific errors.

curl -X POST https://api.pathgather.com/v1/user_content \ 
  -H "Authorization: Bearer pg_test_fg4dfsg565hgfhfrk" \ 
  -H "Content-Type: application/json" \ 
  -d '{
    "content_id": "89a07305-0122-4da1-8b40-b99f4a968f88",
    "user_email": "jamie@pathgather.com",
    "completed_at": "now"
	}'
Suggest Edits

Path Starts and Completions

An API for the events that occur when users start and/or complete paths

 

Whenever a user starts a path in your Pathgather learning catalogue, a UserPath object is created in order to record the start. If the user then completes that path, the previously created UserPath object will be updated to record the completion.

This API allows you to query your UserPath objects, which comes in handy if you're attempting to determine the connections and similarities between your most popular paths.

The UserPath object

Name
Type
Description

id

string

Randomly generated ID assigned upon creation

public

boolean

A flag representing whether the user started the path publicly (i.e. viewable by other users)

started_at

datetime

The datetime the path was started by the user

completed_at

datetime

If the user has also completed the path, this will be the datetime that completion occurred

user

The user that started the path

path

The path that was started

updated_at

datetime

The date the UserPath was last updated (changed)

percentage

float

The user's completion percentage for the path, from 0.0 - 100.0

EXAMPLE OBJECT

{
  "id":"0844b18e-d7ff-4ff8-ace2-2116efd27b71",
  "_type":"UserPath",
  "started_at":"2014-11-11T15:12:13.561-05:00",
  "completed_at":null,
  "updated_at":"2014-11-11T15:12:13.561-05:00",
  "public":true,
  "percentage": 50.0,
  "path": {
    "id": "2dea1427-676c-423e-8396-354f229149b8", 
    "name": "Learning AngularJS",
    "published": true,
    "tags": ["AngularJS", "Javascript"],
    "published_at": "2014-11-11T15:12:13.561-05:00",
    "created_at": "2014-11-11T15:12:13.561-05:00",
    "user": {
      "_type": "User",
      "id":"4cea0449-666a-433f-8396-857e269449a9",
      "custom_id": null,
      "first_name":"Jamie",
      "last_name":"Davidson",
      "created_at":"2014-10-22T13:04:27.329-04:00",
      "email":"jamie@pathgather.com",
      "job_title":"CTO",
      "hire_date":"2013-03-02",
      "location":"New York, NY",
      "deactivated":false,
      "last_active_at":"2014-10-17",
      "admin": true,
      "department": {
        "_type": "Department",
        "id":"90c8e4f2-3fba-4747-9322-00635bcff1bc",
        "created_at":"2014-10-22T13:04:27.329-04:00",
        "name":"Founders"
      }
    }
  },
  user: {
    "_type": "User",
    "id":"4cea0449-666a-433f-8396-857e269449a9",
    "custom_id": null,
    "first_name":"Jamie",
    "last_name":"Davidson",
    "created_at":"2014-10-22T13:04:27.329-04:00",
    "email":"jamie@pathgather.com",
    "job_title":"CTO",
    "hire_date":"2013-03-02",
    "location":"New York, NY",
    "deactivated":false,
    "last_active_at":"2014-10-17",
    "admin": true,
    "department": {
      "_type": "Department",
      "id":"90c8e4f2-3fba-4747-9322-00635bcff1bc",
      "created_at":"2014-10-22T13:04:27.329-04:00",
      "name":"Founders"
    }
  }
}
<user-path>
  <id>0844b18e-d7ff-4ff8-ace2-2116efd27b71</id>
  <_type>UserPath</_type>
  <started-at>2014-11-11T15:12:13.561-05:00</started-at>
  <completed-at nil="true"/>
  <updated-at>2014-11-11T15:12:13.561-05:00</updated-at>
  <public type="boolean">true</public>
  <percentage>50.0</percentage>
  <user>
    <_type>User</_type>
    <id>4cea0449-666a-433f-8396-857e269449a9</id>
    <custom-id nil="true"/>
    <first-name>Jamie</first-name>
    <last-name>Davidson</last-name>
    <created-at>2014-10-22T13:04:27.329-04:00</created-at>
    <email>jamie@pathgather.com</email>
    <job-title>CTO</job-title>
    <hire-date type="date">2013-03-02</hire-date>
    <location>New York, NY</location>
    <deactivated type="boolean">false</deactivated>
    <last-active-at type="date">2014-10-17</last-active-at>
    <admin type="boolean">true</admin>
    <department>
      <_type>Department</_type>
      <id>90c8e4f2-3fba-4747-9322-00635bcff1bc</id>
      <created-at type="integer">1398488816</created-at>
      <name>Founders</name>
    </department>
  </user>
  <path>
    <id>2dea1427-676c-423e-8396-354f229149b8</id>
    <name>Learning AngularJS</name>
    <published type="boolean">true</published>
    <tags type="array">
      <tag>AngularJS</tag>
      <tag>Javascript</tag>
    </tags>
    <published-at>2014-11-11T15:12:13.561-05:00</published-at>
    <created-at>2014-11-11T15:12:13.561-05:00</created-at>
    <user>
      <_type>User</_type>
      <id>4cea0449-666a-433f-8396-857e269449a9</id>
      <custom-id nil="true"/>
      <first-name>Jamie</first-name>
      <last-name>Davidson</last-name>
      <created-at>2014-10-22T13:04:27.329-04:00</created-at>
      <email>jamie@pathgather.com</email>
      <job-title>CTO</job-title>
      <hire-date type="date">2013-03-02</hire-date>
      <location>New York, NY</location>
      <deactivated type="boolean">false</deactivated>
      <last-active-at type="date">2014-10-17</last-active-at>
      <admin type="boolean">true</admin>
      <department>
        <_type>Department</_type>
        <id>90c8e4f2-3fba-4747-9322-00635bcff1bc</id>
        <created-at type="integer">1398488816</created-at>
        <name>Founders</name>
      </department>
    </user>
  </path>
</user-path>
Suggest Edits

/user_paths

List path starts and completions in your account

 
get/user_paths
curl --request GET \
  --url http://example.com/user_paths
var request = require("request");

var options = { method: 'GET', url: 'http://example.com/user_paths' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("http://example.com/user_paths")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

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

xhr.open("GET", "http://example.com/user_paths");

xhr.send(data);
import requests

url = "http://example.com/user_paths"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "results": [
    {
      "id":"0844b18e-d7ff-4ff8-ace2-2116efd27b71",
      "_type":"UserPath",
      "started_at":"2014-11-11T15:12:13.561-05:00",
      "completed_at":null,
      "public":true,
      "percentage":50.0,
      "path": {
        "id": "2dea1427-676c-423e-8396-354f229149b8", 
        "name": "Learning AngularJS",
        "published": true,
        "tags": ["AngularJS", "Javascript"],
        "published_at": "2014-11-11T15:12:13.561-05:00",
        "created_at": "2014-11-11T15:12:13.561-05:00",
        "user": {
          "_type": "User",
          "id":"4cea0449-666a-433f-8396-857e269449a9",
          "custom_id": null,
          "first_name":"Jamie",
          "last_name":"Davidson",
          "created_at":"2014-10-22T13:04:27.329-04:00",
          "email":"jamie@pathgather.com",
          "job_title":"CTO",
          "hire_date":"2013-03-02",
          "location":"New York, NY",
          "deactivated":false,
          "last_active_at":"2014-10-17",
          "admin": true,
          "department": {
            "_type": "Department",
            "id":"90c8e4f2-3fba-4747-9322-00635bcff1bc",
            "created_at":"2014-10-22T13:04:27.329-04:00",
            "name":"Founders"
          }
        }
      },
      user: {
        "_type": "User",
        "id":"4cea0449-666a-433f-8396-857e269449a9",
        "custom_id": null,
        "first_name":"Jamie",
        "last_name":"Davidson",
        "created_at":"2014-10-22T13:04:27.329-04:00",
        "email":"jamie@pathgather.com",
        "job_title":"CTO",
        "hire_date":"2013-03-02",
        "location":"New York, NY",
        "deactivated":false,
        "last_active_at":"2014-10-17",
        "admin": true,
        "department": {
          "_type": "Department",
          "id":"90c8e4f2-3fba-4747-9322-00635bcff1bc",
          "created_at":"2014-10-22T13:04:27.329-04:00",
          "name":"Founders"
        }
      }
    },
    {
      "id":"1d58e4f0-2129-4049-a93c-1bbe4bca9de6",
      "_type":"UserPath",
      "started_at":"2014-11-11T15:11:54.598-05:00",
      "completed_at":null,
      "public":true,
      "percentage":100.0,
      "path": {
        "id": "2dea1427-676c-423e-8396-354f229149b8", 
        "name": "Learning AngularJS",
        "published": true,
        "tags": ["AngularJS", "Javascript"],
        "published_at": "2014-11-11T15:12:13.561-05:00",
        "created_at": "2014-11-11T15:12:13.561-05:00",
        "user": {
          "_type": "User",
          "id":"4cea0449-666a-433f-8396-857e269449a9",
          "custom_id": null,
          "first_name":"Jamie",
          "last_name":"Davidson",
          "created_at":"2014-10-22T13:04:27.329-04:00",
          "email":"jamie@pathgather.com",
          "job_title":"CTO",
          "hire_date":"2013-03-02",
          "location":"New York, NY",
          "deactivated":false,
          "last_active_at":"2014-10-17",
          "admin": true,
          "department": {
            "_type": "Department",
            "id":"90c8e4f2-3fba-4747-9322-00635bcff1bc",
            "created_at":"2014-10-22T13:04:27.329-04:00",
            "name":"Founders"
          }
        }
      },
      user: {
        "_type":"User",
        "id":"3c7a388a-2cd0-7bn4-9x9c-56f29a53f1xc",
        "custom_id": null,
        "first_name":"Eric",
        "last_name":"Duffy",
        "created_at":"2014-10-21T13:04:27.329-04:00",
        "email":"eric@pathgather.com",
        "job_title":"CEO",
        "hire_date":"2012-12-01",
        "location":"New York, NY",
        "deactivated":false,
        "last_active_at":"2014-10-22",
        "admin":true,
        "department": {
          "_type": "Department",
          "id":"90c8e4f2-3fba-4747-9322-00635bcff1bc",
          "created_at":"2014-10-22T13:04:27.329-04:00",
          "name":"Founders"
        }
      }
    }
  ],
  "next": null
}
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <results type="array">
    <result>
      <id>0844b18e-d7ff-4ff8-ace2-2116efd27b71</id>
      <_type>UserPath</_type>
      <started-at>2014-11-11T15:12:13.561-05:00</started-at>
      <completed-at nil="true"/>
      <public type="boolean">true</public>
      <percentage>50.0</percentage>
      <user>
        <_type>User</_type>
        <id>4cea0449-666a-433f-8396-857e269449a9</id>
        <custom-id nil="true"/>
        <first-name>Jamie</first-name>
        <last-name>Davidson</last-name>
        <created-at>2014-10-22T13:04:27.329-04:00</created-at>
        <email>jamie@pathgather.com</email>
        <job-title>CTO</job-title>
        <hire-date type="date">2013-03-02</hire-date>
        <location>New York, NY</location>
        <deactivated type="boolean">false</deactivated>
        <last-active-at type="date">2014-10-17</last-active-at>
        <admin type="boolean">true</admin>
        <department>
          <_type>Department</_type>
          <id>90c8e4f2-3fba-4747-9322-00635bcff1bc</id>
          <created-at type="integer">1398488816</created-at>
          <name>Founders</name>
        </department>
      </user>
      <path>
        <id>2dea1427-676c-423e-8396-354f229149b8</id>
        <name>Learning AngularJS</name>
        <published type="boolean">true</published>
        <tags type="array">
          <tag>AngularJS</tag>
          <tag>Javascript</tag>
        </tags>
        <published-at>2014-11-11T15:12:13.561-05:00</published-at>
        <created-at>2014-11-11T15:12:13.561-05:00</created-at>
        <user>
          <_type>User</_type>
          <id>4cea0449-666a-433f-8396-857e269449a9</id>
          <custom-id nil="true"/>
          <first-name>Jamie</first-name>
          <last-name>Davidson</last-name>
          <created-at>2014-10-22T13:04:27.329-04:00</created-at>
          <email>jamie@pathgather.com</email>
          <job-title>CTO</job-title>
          <hire-date type="date">2013-03-02</hire-date>
          <location>New York, NY</location>
          <deactivated type="boolean">false</deactivated>
          <last-active-at type="date">2014-10-17</last-active-at>
          <admin type="boolean">true</admin>
          <department>
            <_type>Department</_type>
            <id>90c8e4f2-3fba-4747-9322-00635bcff1bc</id>
            <created-at type="integer">1398488816</created-at>
            <name>Founders</name>
          </department>
        </user>
      </path>
    </result>
    <result>
      <id>1d58e4f0-2129-4049-a93c-1bbe4bca9de6</id>
      <_type>UserPath</_type>
      <started-at>2014-11-11T15:11:54.598-05:00</started-at>
      <completed-at nil="true"/>
      <public type="boolean">true</public>
      <percentage>100.0</percentage>
      <user>
        <_type>User</_type>
        <id>3c7a388a-2cd0-7bn4-9x9c-56f29a53f1xc</id>
        <custom-id nil="true"/>
        <first-name>Eric</first-name>
        <last-name>Duffy</last-name>
        <created-at type="integer">2014-10-21T13:04:27.329-04:00</created-at>
        <email>eric@pathgather.com</email>
        <job-title>CEO</job-title>
        <hire-date type="date">2012-12-01</hire-date>
        <location>New York, NY</location>
        <deactivated type="boolean">false</deactivated>
        <last-active-at type="date">2014-10-22</last-active-at>
        <admin type="boolean">true</admin>
        <department>
          <_type>Department</_type>
          <id>90c8e4f2-3fba-4747-9322-00635bcff1bc</id>
          <created-at type="integer">1398488816</created-at>
          <name>Founders</name>
        </department>
      </user>
      <path>
        <id>2dea1427-676c-423e-8396-354f229149b8</id>
        <name>Learning AngularJS</name>
        <published type="boolean">true</published>
        <tags type="array">
          <tag>AngularJS</tag>
          <tag>Javascript</tag>
        </tags>
        <published-at>2014-11-11T15:12:13.561-05:00</published-at>
        <created-at>2014-11-11T15:12:13.561-05:00</created-at>
        <user>
          <_type>User</_type>
          <id>4cea0449-666a-433f-8396-857e269449a9</id>
          <custom-id nil="true"/>
          <first-name>Jamie</first-name>
          <last-name>Davidson</last-name>
          <created-at>2014-10-22T13:04:27.329-04:00</created-at>
          <email>jamie@pathgather.com</email>
          <job-title>CTO</job-title>
          <hire-date type="date">2013-03-02</hire-date>
          <location>New York, NY</location>
          <deactivated type="boolean">false</deactivated>
          <last-active-at type="date">2014-10-17</last-active-at>
          <admin type="boolean">true</admin>
          <department>
            <_type>Department</_type>
            <id>90c8e4f2-3fba-4747-9322-00635bcff1bc</id>
            <created-at type="integer">1398488816</created-at>
            <name>Founders</name>
          </department>
        </user>
      </path>
    </result>
  </results>
	<next nil="true"/>
</response>

Query Params

from
string

For use in pagination. from is the ID of a user_path object in Pathgather to begin your list with

 

Returns objects representing a user's interaction (starts and completions) with paths. User path items are returned sorted by start date, with the most recently started content appearing first.

Returns

A list of your user paths

curl -X GET https://api.pathgather.com/v1/user_paths \ 
  -H "Authorization: Bearer pg_test_fg4dfsg565hgfhfrk" \ 
  -H "Content-Type: application/json"
Suggest Edits

Gatherings

The gatherings available to your entire organization

 

Gatherings are groupings of users, content, and discussions organized around common topics, skills, or projects.

The Gatherings object

Name
Type
Description

id

string

Randomly generated ID assigned upon creation

custom_id

string

The unique ID you assign to the gathering

name

string

The name/title for the gathering

description

string

The description for the gathering

closed

boolean

A flag that specifies where the gathering is open for users to join without an invitation

image

string

The image for the gathering

users_count

integer

The number of users belonging to the gathering

courses_count

integer

The number of courses available to the gathering

paths_count

integer

The number of paths available to the gathering

conversations_count

integer

The number of conversations available to the gathering

user

The user (author) that created this gathering

skills

array of objects

An array of skills this gathering will help a user learn/improve in

EXAMPLE OBJECT

{
  "id": "af1c062e-a56b-4a44-8fa0-d79e55f36048",
  "custom_id": null,
  "name": "Angular Hangout",
  "description": "To keep pushing each other.",
  "closed": false,
  "image": "https://d31oabdcps5aoz.cloudfront.net/api/file/KZNnOYbqTiKuj0Vy7RfJ",
  "users_count": 2,
  "courses_count": 3,
  "paths_count": 2,
  "conversations_count": 9,
  "user": {
    "id": "4cea0449-666a-433f-8396-857e269449a9",
    "custom_id": null,
    "first_name": "Jamie",
    "last_name": "Davidson",
    "created_at": "2014-10-22T13:04:27.329-04:00",
    "email": "jamie@pathgather.com",
    "job_title": "CTO",
    "hire_date": "2013-03-02",
    "location": "New York, NY",
    "deactivated": false,
    "last_active_at": "2014-10-17",
    "admin": true,
    "department": {
      "id": "90c8e4f2-3fba-4747-9322-00635bcff1bc",
      "created_at": "2014-10-22T13:04:27.329-04:00",
      "name": "Founders"
    }
  },
  "skills": [
    {
      "id": "90bffd26-ce22-4537-baeb-a93a1556bda7",
      "name": "AngularJS"
    },
    {
      "id": "089e70cb-9736-4c5a-b84c-fcb7c4d199a2",
      "name": "Javascript"
    },
    {
      "id": "4d024fe7-aa76-4d16-84ee-bf4a728e09d8",
      "name": "User Interface Design"
    }
  ]
}
<?xml version="1.0" encoding="UTF-8"?>
<gathering>
  <id>af1c062e-a56b-4a44-8fa0-d79e55f36048</id>
  <custom-id nil="true" />
	<name>Angular Hangout</name>
  <description>To keep pushing each other.</description>
  <closed type="boolean">false</closed>
	<image>https://d31oabdcps5aoz.cloudfront.net/api/file/KZNnOYbqTiKuj0Vy7RfJ</image>
  <users-count type="integer">2</users-count>
  <courses-count type="integer">3</courses-count>
	<paths-count type="integer">2</paths-count>
  <conversations-count> type="integer"9</conversations-count>
  <skills type="array">
    <skill>
      <id>90bffd26-ce22-4537-baeb-a93a1556bda7</id>
      <name>AngularJS</name>
    </skill>
    <skill>
      <id>089e70cb-9736-4c5a-b84c-fcb7c4d199a2</id>
      <name>Javascript</name>
    </skill>
    <skill>
      <id>4d024fe7-aa76-4d16-84ee-bf4a728e09d8</id>
      <name>User Interface Design</name>
    </skill>
  </skills>
   <user>
      <admin>true</admin>
      <created-at>2014-10-22T13:04:27.329-04:00</created-at>
      <custom-id null="true" />
      <deactivated>false</deactivated>
      <department>
         <created-at>2014-10-22T13:04:27.329-04:00</created-at>
         <id>90c8e4f2-3fba-4747-9322-00635bcff1bc</id>
         <name>Founders</name>
      </department>
      <email>jamie@pathgather.com</email>
      <first-name>Jamie</first-name>
      <hire-date>2013-03-02</hire-date>
      <id>4cea0449-666a-433f-8396-857e269449a9</id>
      <job-title>CTO</job-title>
      <last-active-at>2014-10-17</last-active-at>
      <last-name>Davidson</last-name>
      <location>New York, NY</location>
   </user>
</gathering>
Suggest Edits

/gatherings

List gatherings available to your entire organization

 
get/gatherings
curl --request GET \
  --url http://example.com/gatherings
var request = require("request");

var options = { method: 'GET', url: 'http://example.com/gatherings' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("http://example.com/gatherings")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

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

xhr.open("GET", "http://example.com/gatherings");

xhr.send(data);
import requests

url = "http://example.com/gatherings"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
	"next": null,
  "results": [
    {
      "_type": "Gathering",
      "id": "a21c062e-756b-4a44-8fa0-c79e55f36045",
      "name": "Angular Hangout",
      "description": "To keep pushing each other.",
      "closed": false,
      "image": "https://d31oabdcps5aoz.cloudfront.net/api/file/KZNnOYbqTiKuj0Vy7RfJ",
      "users_count": 2,
      "courses_count": 3,
      "paths_count": 2,
      "conversations_count": 9,
      "user": {
        "_type": "User",
        "id": "4cea0449-666a-433f-8396-857e269449a9",
        "custom_id": null,
        "first_name": "Jamie",
        "last_name": "Davidson",
        "created_at": "2014-10-22T13:04:27.329-04:00",
        "email": "jamie@pathgather.com",
        "job_title": "CTO",
        "hire_date": "2013-03-02",
        "location": "New York, NY",
        "deactivated": false,
        "last_active_at": "2014-10-17",
        "admin": true,
        "department": {
          "_type": "Department",
          "id": "90c8e4f2-3fba-4747-9322-00635bcff1bc",
          "created_at": "2014-10-22T13:04:27.329-04:00",
          "name": "Founders"
        }
      },
      "skills": [
        {
          "id": "90bffd26-ce22-4537-baeb-a93a1556bda7",
          "name": "AngularJS",
          "_type": "Skill"
        },
        {
          "id": "089e70cb-9736-4c5a-b84c-fcb7c4d199a2",
          "name": "Javascript",
          "_type": "Skill"
        },
        {
          "id": "4d024fe7-aa76-4d16-84ee-bf4a728e09d8",
          "name": "User Interface Design",
          "_type": "Skill"
        }
      ]
    },
    {
      "_type": "Gathering",
      "id": "2d3cac41-7e3e-432c-9d0a-2525853062b8",
      "name": "Pathgather Leadership Forum",
      "description": "In this Gathering we will explore all areas around Pathgather's approach to building amazing leaders. You will have the ability to ask questions of Pathgather's executive team, share/access learning resources that will help you grow as a future leader, and discuss new trends in leadership development.",
      "closed": false,
      "image": "https://d31oabdcps5aoz.cloudfront.net/api/file/esnFyP7FTsufVmoPL7EI",
      "users_count": 31,
      "courses_count": 10,
      "paths_count": 4,
      "conversations_count": 6,
      "user": {
        "updated_at": "2015-03-24T16:43:13.463-04:00",
        "last_name": "Ohrenberger",
        "job_title": "Business Development",
        "department": {
          "id": "b8161d9e-eb72-448f-85f6-cc8cb8366468",
          "name": "Pathgather",
          "updated_at": "2014-05-01T02:44:01.992-04:00",
          "_type": "Department",
          "created_at": "2014-05-01T02:44:01.992-04:00"
        },
        "custom_id": null,
        "first_name": "John",
        "hire_date": "2013-09-01",
        "email": "johrenberger@pathgather.com",
        "last_active_at": "2015-03-24",
        "deactivated": false,
        "id": "0e855dd8-6792-492f-983a-9b517f3553b5",
        "location": "Greater Atlanta Area",
        "admin": true,
        "created_at": "2014-05-05T09:02:55.132-04:00",
        "_type": "User"
      },
      "skills": [
        {
          "id": "67bee23e-e70d-4be0-92fd-a7e25ccedda7",
          "name": "Leadership",
          "_type": "Skill"
        },
        {
          "id": "020c34c0-5dfb-4c78-bfea-6f2dd6790111",
          "name": "Leadership Development",
          "_type": "Skill"
        }
      ]
    }
  ]
}
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <next null="true" />
  <results>
    <result>
      <_type>Gathering</_type>
      <closed>false</closed>
      <conversations-count>9</conversations-count>
      <courses-count>3</courses-count>
      <description>To keep pushing each other.</description>
      <id>a21c062e-756b-4a44-8fa0-c79e55f36045</id>
      <image>https://d31oabdcps5aoz.cloudfront.net/api/file/KZNnOYbqTiKuj0Vy7RfJ</image>
      <name>Angular Hangout</name>
      <paths-count>2</paths-count>
      <skills>
        <skill>
          <_type>Skill</_type>
          <id>90bffd26-ce22-4537-baeb-a93a1556bda7</id>
          <name>AngularJS</name>
        </skill>
        <skill>
          <_type>Skill</_type>
          <id>089e70cb-9736-4c5a-b84c-fcb7c4d199a2</id>
          <name>Javascript</name>
        </skill>
        <skill>
          <_type>Skill</_type>
          <id>4d024fe7-aa76-4d16-84ee-bf4a728e09d8</id>
          <name>User Interface Design</name>
        </skill>
      </skills>
      <user>
        <_type>User</_type>
        <admin>true</admin>
        <created-at>2014-10-22T13:04:27.329-04:00</created-at>
        <custom-id null="true" />
        <deactivated>false</deactivated>
        <department>
          <_type>Department</_type>
          <created-at>2014-10-22T13:04:27.329-04:00</created-at>
          <id>90c8e4f2-3fba-4747-9322-00635bcff1bc</id>
          <name>Founders</name>
        </department>
        <email>jamie@pathgather.com</email>
        <first-name>Jamie</first-name>
        <hire-date>2013-03-02</hire-date>
        <id>4cea0449-666a-433f-8396-857e269449a9</id>
        <job-title>CTO</job-title>
        <last-active-at>2014-10-17</last-active-at>
        <last-name>Davidson</last-name>
        <location>New York, NY</location>
      </user>
      <users-count>2</users-count>
    </result>
    <result>
      <_type>Gathering</_type>
      <closed>false</closed>
      <conversations-count>6</conversations-count>
      <courses-count>10</courses-count>
      <description>In this Gathering we will explore all areas around Pathgather's approach to building amazing leaders. You will have the ability to ask questions of Pathgather's executive team, share/access learning resources that will help you grow as a future leader, and discuss new trends in leadership development.</description>
      <id>2d3cac41-7e3e-432c-9d0a-2525853062b8</id>
      <image>https://d31oabdcps5aoz.cloudfront.net/api/file/esnFyP7FTsufVmoPL7EI</image>
      <name>Pathgather Leadership Forum</name>
      <paths-count>4</paths-count>
      <skills>
        <skill>
          <_type>Skill</_type>
          <id>67bee23e-e70d-4be0-92fd-a7e25ccedda7</id>
          <name>Leadership</name>
        </skill>
        <skill>
          <_type>Skill</_type>
          <id>020c34c0-5dfb-4c78-bfea-6f2dd6790111</id>
          <name>Leadership Development</name>
        </skill>
      </skills>
      <user>
        <_type>User</_type>
        <admin>true</admin>
        <created-at>2014-05-05T09:02:55.132-04:00</created-at>
        <custom-id null="true" />
        <deactivated>false</deactivated>
        <department>
          <_type>Department</_type>
          <created-at>2014-05-01T02:44:01.992-04:00</created-at>
          <id>b8161d9e-eb72-448f-85f6-cc8cb8366468</id>
          <name>Pathgather</name>
          <updated-at>2014-05-01T02:44:01.992-04:00</updated-at>
        </department>
        <email>johrenberger@pathgather.com</email>
        <first-name>John</first-name>
        <hire-date>2013-09-01</hire-date>
        <id>0e855dd8-6792-492f-983a-9b517f3553b5</id>
        <job-title>Business Development</job-title>
        <last-active-at>2015-03-24</last-active-at>
        <last-name>Ohrenberger</last-name>
        <location>Greater Atlanta Area</location>
        <updated-at>2015-03-24T16:43:13.463-04:00</updated-at>
      </user>
      <users-count>31</users-count>
    </result>
  </results>
</response>

Query Params

from
string

For use in pagination. from is the ID of gatherings in Pathgather to begin your list with

 

Returns a paginated list of gatherings for your organization. Gatherings are returned sorted by creation date, with the most recently created gathering appearing first.

Returns

A paginated list of gatherings

curl -X GET https://api.pathgather.com/v1/gatherings \ 
  -H "Authorization: Bearer pg_test_fg4dfsg565hgfhfrk" \ 
  -H "Content-Type: application/json"
Suggest Edits

/gatherings/:id

 
get/gatherings/id
curl --request GET \
  --url http://example.com/gatherings/id
var request = require("request");

var options = { method: 'GET',
  url: 'http://example.com/gatherings/id' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("http://example.com/gatherings/id")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

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

xhr.open("GET", "http://example.com/gatherings/id");

xhr.send(data);
import requests

url = "http://example.com/gatherings/id"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "_type": "Gathering",
  "id": "a21c062e-756b-4a44-8fa0-c79e55f36045",
  "name": "Angular Hangout",
  "description": "To keep pushing each other.",
  "closed": false,
  "image": "https://d31oabdcps5aoz.cloudfront.net/api/file/KZNnOYbqTiKuj0Vy7RfJ",
  "users_count": 2,
  "courses_count": 3,
  "paths_count": 2,
  "conversations_count": 9,
  "user": {
    "_type": "User",
    "id": "4cea0449-666a-433f-8396-857e269449a9",
    "custom_id": null,
    "first_name": "Jamie",
    "last_name": "Davidson",
    "created_at": "2014-10-22T13:04:27.329-04:00",
    "email": "jamie@pathgather.com",
    "job_title": "CTO",
    "hire_date": "2013-03-02",
    "location": "New York, NY",
    "deactivated": false,
    "last_active_at": "2014-10-17",
    "admin": true,
    "department": {
    "_type": "Department",
      "id": "90c8e4f2-3fba-4747-9322-00635bcff1bc",
      "created_at": "2014-10-22T13:04:27.329-04:00",
      "name": "Founders"
    }
  },
  "skills": [
    {
      "id": "90bffd26-ce22-4537-baeb-a93a1556bda7",
      "name": "AngularJS",
      "_type": "Skill"
    },
    {
      "id": "089e70cb-9736-4c5a-b84c-fcb7c4d199a2",
      "name": "Javascript",
      "_type": "Skill"
    },
    {
      "id": "4d024fe7-aa76-4d16-84ee-bf4a728e09d8",
      "name": "User Interface Design",
      "_type": "Skill"
    }
  ]
}
<?xml version="1.0" encoding="UTF-8"?>
<gathering>
  <_type>Gathering</_type>
  <id>a21c062e-756b-4a44-8fa0-c79e55f36045</id>
  <custom-id nil="true" />
  <name>Angular Hangout</name>
  <description>To keep pushing each other.</description>
  <closed>false</closed>
  <image>https://d31oabdcps5aoz.cloudfront.net/api/file/KZNnOYbqTiKuj0Vy7RfJ</image>
  <users-count type="integer">2</users-count>
  <courses-count type="integer">3</courses-count>
  <paths-count type="integer">2</paths-count>
  <conversations-count type="integer">9</conversations-count>
  <skills type="array">
    <skill>
      <_type>Skill</_type>
      <id>90bffd26-ce22-4537-baeb-a93a1556bda7</id>
      <name>AngularJS</name>
    </skill>
    <skill>
      <_type>Skill</_type>
      <id>089e70cb-9736-4c5a-b84c-fcb7c4d199a2</id>
      <name>Javascript</name>
    </skill>
    <skill>
      <_type>Skill</_type>
      <id>4d024fe7-aa76-4d16-84ee-bf4a728e09d8</id>
      <name>User Interface Design</name>
    </skill>
  </skills>
  <user>
    <_type>User</_type>
    <admin>true</admin>
    <created-at>2014-10-22T13:04:27.329-04:00</created-at>
    <custom-id null="true" />
    <deactivated>false</deactivated>
    <department>
      <_type>Department</_type>
      <created-at>2014-10-22T13:04:27.329-04:00</created-at>
      <id>90c8e4f2-3fba-4747-9322-00635bcff1bc</id>
      <name>Founders</name>
    </department>
    <email>jamie@pathgather.com</email>
    <first-name>Jamie</first-name>
    <hire-date>2013-03-02</hire-date>
    <id>4cea0449-666a-433f-8396-857e269449a9</id>
    <job-title>CTO</job-title>
    <last-active-at>2014-10-17</last-active-at>
    <last-name>Davidson</last-name>
    <location>New York, NY</location>
  </user>
</gathering>

Path Params

id
string
required

Can be the ID assigned upon creation, or a custom ID

 

Returns an individual gathering. The ID provided can be the ID assigned upon gathering creation, or a custom ID you assigned to the gathering.

Returns

The requested gathering object.

curl -X GET https://api.pathgather.com/v1/gatherings/a21c062e-756b-4a44-8fa0-c79e55f36045 \ 
  -H "Authorization: Bearer pg_test_fg4dfsg565hgfhfrk" \ 
  -H "Content-Type: application/json"
Suggest Edits

/gatherings

Create a new gathering

 
post/gatherings
curl --request POST \
  --url http://example.com/gatherings
var request = require("request");

var options = { method: 'POST', url: 'http://example.com/gatherings' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("http://example.com/gatherings")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

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

xhr.open("POST", "http://example.com/gatherings");

xhr.send(data);
import requests

url = "http://example.com/gatherings"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "_type": "Gathering",
  "id": "a21c062e-756b-4a44-8fa0-c79e55f36045",
  "name": "Angular Hangout",
  "description": "To keep pushing each other.",
  "closed": false,
  "image": "https://d31oabdcps5aoz.cloudfront.net/api/file/KZNnOYbqTiKuj0Vy7RfJ",
  "users_count": 2,
  "courses_count": 3,
  "paths_count": 2,
  "conversations_count": 9,
  "user": {
    "_type": "User",
    "id": "4cea0449-666a-433f-8396-857e269449a9",
    "custom_id": null,
    "first_name": "Jamie",
    "last_name": "Davidson",
    "created_at": "2014-10-22T13:04:27.329-04:00",
    "email": "jamie@pathgather.com",
    "job_title": "CTO",
    "hire_date": "2013-03-02",
    "location": "New York, NY",
    "deactivated": false,
    "last_active_at": "2014-10-17",
    "admin": true,
    "department": {
      "_type": "Department",
      "id": "90c8e4f2-3fba-4747-9322-00635bcff1bc",
      "created_at": "2014-10-22T13:04:27.329-04:00",
      "name": "Founders"
    }
  },
  "skills": [
    {
      "id": "90bffd26-ce22-4537-baeb-a93a1556bda7",
      "name": "AngularJS",
      "_type": "Skill"
    },
    {
      "id": "089e70cb-9736-4c5a-b84c-fcb7c4d199a2",
      "name": "Javascript",
      "_type": "Skill"
    },
    {
      "id": "4d024fe7-aa76-4d16-84ee-bf4a728e09d8",
      "name": "User Interface Design",
      "_type": "Skill"
    }
  ]
}
<?xml version="1.0" encoding="UTF-8"?>
<gathering>
  <_type>Gathering</_type>
  <closed>false</closed>
  <conversations-count>9</conversations-count>
  <courses-count>3</courses-count>
  <description>To keep pushing each other.</description>
  <id>a21c062e-756b-4a44-8fa0-c79e55f36045</id>
  <image>https://d31oabdcps5aoz.cloudfront.net/api/file/KZNnOYbqTiKuj0Vy7RfJ</image>
  <name>Angular Hangout</name>
  <paths-count>2</paths-count>
  <skills>
    <skill>
      <_type>Skill</_type>
      <id>90bffd26-ce22-4537-baeb-a93a1556bda7</id>
      <name>AngularJS</name>
    </skill>
    <skill>
      <_type>Skill</_type>
      <id>089e70cb-9736-4c5a-b84c-fcb7c4d199a2</id>
      <name>Javascript</name>
    </skill>
    <skill>
      <_type>Skill</_type>
      <id>4d024fe7-aa76-4d16-84ee-bf4a728e09d8</id>
      <name>User Interface Design</name>
    </skill>
  </skills>
  <user>
    <_type>User</_type>
    <admin>true</admin>
    <created-at>2014-10-22T13:04:27.329-04:00</created-at>
    <custom-id null="true" />
    <deactivated>false</deactivated>
    <department>
      <_type>Department</_type>
      <created-at>2014-10-22T13:04:27.329-04:00</created-at>
      <id>90c8e4f2-3fba-4747-9322-00635bcff1bc</id>
      <name>Founders</name>
    </department>
    <email>jamie@pathgather.com</email>
    <first-name>Jamie</first-name>
    <hire-date>2013-03-02</hire-date>
    <id>4cea0449-666a-433f-8396-857e269449a9</id>
    <job-title>CTO</job-title>
    <last-active-at>2014-10-17</last-active-at>
    <last-name>Davidson</last-name>
    <location>New York, NY</location>
  </user>
  <users-count>2</users-count>
</gathering>

Body Params

name
string
required

Name/title of the gathering

custom_id
string

Optional, but highly recommended if creating gatherings via the API

description
string

A description of the gathering to display to users when viewing it.

closed
boolean

A flag representing whether this gathering is closed to new members

image
string

The URL to an image to display to users when viewing the gathering

skills
array of strings

An array of skills to associate to the gathering.

 

Creates a new gathering in your Pathgather instance.

Returns

Returns the gathering object if the create is successful. If the request contains invalid parameters or insufficient data, a 422 error response will be returned with details about the specific errors.

curl -X POST https://api.pathgather.com/v1/gatherings \ 
  -H "Authorization: Bearer pg_test_fg4dfsg565hgfhfrk" \ 
  -H "Content-Type: application/json" \ 
  -d '{
    "gathering": {
      "name": "The Best Place to Learn New Things", 
      "custom_id": "gathering-1",  
      "description": "Learn the beauty of the everyday objects around 
      "closed": false,
      "image": "https://www.gathering-example.com/my-gathering-image.png", 
      "skills": ["Design", "Engineering"]
    }
	}'
Suggest Edits

/gatherings/:id

Update an existing gathering

 
put/gatherings/id
curl --request PUT \
  --url http://example.com/gatherings/id
var request = require("request");

var options = { method: 'PUT',
  url: 'http://example.com/gatherings/id' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("http://example.com/gatherings/id")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Put.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

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

xhr.open("PUT", "http://example.com/gatherings/id");

xhr.send(data);
import requests

url = "http://example.com/gatherings/id"

response = requests.request("PUT", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "_type": "Gathering",
  "id": "a21c062e-756b-4a44-8fa0-c79e55f36045",
  "name": "Angular Hangout",
  "description": "To keep pushing each other.",
  "closed": false,
  "image": "https://d31oabdcps5aoz.cloudfront.net/api/file/KZNnOYbqTiKuj0Vy7RfJ",
  "users_count": 2,
  "courses_count": 3,
  "paths_count": 2,
  "conversations_count": 9,
  "user": {
    "_type": "User",
    "id": "4cea0449-666a-433f-8396-857e269449a9",
    "custom_id": null,
    "first_name": "Jamie",
    "last_name": "Davidson",
    "created_at": "2014-10-22T13:04:27.329-04:00",
    "email": "jamie@pathgather.com",
    "job_title": "CTO",
    "hire_date": "2013-03-02",
    "location": "New York, NY",
    "deactivated": false,
    "last_active_at": "2014-10-17",
    "admin": true,
    "department": {
      "_type": "Department",
      "id": "90c8e4f2-3fba-4747-9322-00635bcff1bc",
      "created_at": "2014-10-22T13:04:27.329-04:00",
      "name": "Founders"
    }
  },
  "skills": [
    {
      "id": "90bffd26-ce22-4537-baeb-a93a1556bda7",
      "name": "AngularJS",
      "_type": "Skill"
    },
    {
      "id": "089e70cb-9736-4c5a-b84c-fcb7c4d199a2",
      "name": "Javascript",
      "_type": "Skill"
    },
    {
      "id": "4d024fe7-aa76-4d16-84ee-bf4a728e09d8",
      "name": "User Interface Design",
      "_type": "Skill"
    }
  ]
}
<?xml version="1.0" encoding="UTF-8"?>
<gathering>
  <_type>Gathering</_type>
  <closed>false</closed>
  <conversations-count>9</conversations-count>
  <courses-count>3</courses-count>
  <description>To keep pushing each other.</description>
  <id>a21c062e-756b-4a44-8fa0-c79e55f36045</id>
  <image>https://d31oabdcps5aoz.cloudfront.net/api/file/KZNnOYbqTiKuj0Vy7RfJ</image>
  <name>Angular Hangout</name>
  <paths-count>2</paths-count>
  <skills>
    <skill>
      <_type>Skill</_type>
      <id>90bffd26-ce22-4537-baeb-a93a1556bda7</id>
      <name>AngularJS</name>
    </skill>
    <skill>
      <_type>Skill</_type>
      <id>089e70cb-9736-4c5a-b84c-fcb7c4d199a2</id>
      <name>Javascript</name>
    </skill>
    <skill>
      <_type>Skill</_type>
      <id>4d024fe7-aa76-4d16-84ee-bf4a728e09d8</id>
      <name>User Interface Design</name>
    </skill>
  </skills>
  <user>
    <_type>User</_type>
    <admin>true</admin>
    <created-at>2014-10-22T13:04:27.329-04:00</created-at>
    <custom-id null="true" />
    <deactivated>false</deactivated>
    <department>
      <_type>Department</_type>
      <created-at>2014-10-22T13:04:27.329-04:00</created-at>
      <id>90c8e4f2-3fba-4747-9322-00635bcff1bc</id>
      <name>Founders</name>
    </department>
    <email>jamie@pathgather.com</email>
    <first-name>Jamie</first-name>
    <hire-date>2013-03-02</hire-date>
    <id>4cea0449-666a-433f-8396-857e269449a9</id>
    <job-title>CTO</job-title>
    <last-active-at>2014-10-17</last-active-at>
    <last-name>Davidson</last-name>
    <location>New York, NY</location>
  </user>
  <users-count>2</users-count>
</gathering>

Path Params

id
string
required

Can be the ID assigned upon creation, or a custom ID

Body Params

gathering
object
required

A hash containing the properties to update. See documentation for the gathering creation endpoint for a list of the properties that can be updated.

 
 

Updates the specified gathering by setting the values of the parameters passed in the 'gathering' object. Any parameters not provided will be left unchanged.

Returns

Returns the gathering object if the update is successful. If the request contains invalid parameters, a 422 error response will be returned with details about the specific errors.

curl -X PUT https://api.pathgather.com/v1/gatherings/gathering-1 \ 
  -H "Authorization: Bearer pg_test_fg4dfsg565hgfhfrk" \ 
  -H "Content-Type: application/json" \ 
  -d '{
    "gathering": {
      "skills": ["Design", "Engineering", "Web Development"]
    }
  }'
Suggest Edits

/gatherings/:id

Delete an existing gathering

 
delete/gatherings/id
curl --request DELETE \
  --url http://example.com/gatherings/id
var request = require("request");

var options = { method: 'DELETE',
  url: 'http://example.com/gatherings/id' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("http://example.com/gatherings/id")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

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

xhr.open("DELETE", "http://example.com/gatherings/id");

xhr.send(data);
import requests

url = "http://example.com/gatherings/id"

response = requests.request("DELETE", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

<?xml version="1.0" encoding="UTF-8"?>
<hash>
</hash>

Path Params

id
string
required

Can be the ID assigned upon creation, or a custom ID

 

Deletes the specified gathering.

Returns

Returns an empty object when successful.

curl -X DELETE https://api.pathgather.com/v1/gatherings/gathering-1 \ 
  -H "Authorization: Bearer pg_test_fg4dfsg565hgfhfrk" \ 
  -H "Content-Type: application/json"
Suggest Edits

Gathering Contents

The content that is available to a gathering.

 

One of the main ways your users can learn inside Pathgather is through your company's content, which makes up your Pathgather learning catalogue. Content can be in many forms: a webpage, video, Powerpoint, etc.

This API allows your existing content to be added to a gathering, which will make that content available to all members of the gathering.

Name
Type
Description

id

string

Randomly generated ID assigned upon creation

created_at

datetime

The datetime the content was added to the gathering

course

The content object

user

The user that add the content to the gathering

{
  "_type": "GatheringContent",
  "course": {
    "_type": "Content",
    "content_type": "Course",
    "created_at": "2014-05-05T00:09:37.914-04:00",
    "custom_id": null,
    "deactivated": false,
    "description": "Learn the fundamentals to become a Ruby and Rails developer. You'll learn things like what Ruby is, how to write object oriented Ruby, classes and modules, programming structures and types,  and more. There are no requirements for this course other than a web browser and willingness to learn.",
    "enabled": true,
    "end_date": null,
    "id": "b0201945-8d13-4188-aabe-43493728b899",
    "instructor": {
      "_type": null,
      "name": "Jason Seifer"
    },
    "level": "Beginner",
    "name": "Ruby Foundations",
    "rating": 0.0,
    "reviews_count": 0,
    "sharer": null,
    "sharer_id": null,
    "source_url": "http://teamtreehouse.com/library/ruby-foundations",
    "start_date": null,
    "tags": [
      "Ruby"
    ],
    "topic": {
      "_type": "Topic",
      "created_at": "2014-06-30T03:28:27.101-04:00",
      "custom_id": null,
      "id": "0803a3dd-a947-47e1-b488-1a707e8ab4ce",
      "name": "Computer Science",
      "updated_at": "2015-06-06T21:56:10.820-04:00"
    },
    "updated_at": "2015-04-19T17:13:28.267-04:00"
  },
  "created_at": "2015-08-30T18:17:46.669-04:00",
  "id": "f6ea9a80-cc47-4712-83ea-9a306a1044c4",
  "user": {
    "_type": "User",
    "admin": true,
    "created_at": "2014-04-26T12:51:29.407-04:00",
    "custom_id": null,
    "deactivated": false,
    "department": {
      "_type": "Department",
      "created_at": "2015-04-23T23:24:33.142-04:00",
      "id": "75edd400-5edd-4ca8-b37b-16c82eafcd4f",
      "name": "Stuffs",
      "updated_at": "2015-04-23T23:24:33.142-04:00"
    },
    "email": "jamie@pathgather.com",
    "first_name": "Jamie",
    "hire_date": "2013-03-13",
    "id": "4cea0449-666a-433f-8396-857e269449a9",
    "job_title": "CTO",
    "last_active_at": "2015-08-30",
    "last_name": "Davidson",
    "location": "New York, NY",
    "updated_at": "2015-08-30T18:10:43.848-04:00"
  }
}
<?xml version="1.0" encoding="UTF-8"?>
<gathering-content>
   <_type>GatheringContent</_type>
   <course>
      <_type>Content</_type>
      <content_type>Course</content_type>
      <created-at>2014-05-05T00:09:37.914-04:00</created-at>
      <custom-id null="true" />
      <deactivated>false</deactivated>
      <description>Learn the fundamentals to become a Ruby and Rails developer. You'll learn things like what Ruby is, how to write object oriented Ruby, classes and modules, programming structures and types,  and more. There are no requirements for this course other than a web browser and willingness to learn.</description>
      <enabled>true</enabled>
      <end-date null="true" />
      <id>b0201945-8d13-4188-aabe-43493728b899</id>
      <instructor>
         <_type null="true" />
         <name>Jason Seifer</name>
      </instructor>
      <level>Beginner</level>
      <name>Ruby Foundations</name>
      <rating>0.0</rating>
      <reviews-count>0</reviews-count>
      <sharer null="true" />
      <sharer-id null="true" />
      <source-url>http://teamtreehouse.com/library/ruby-foundations</source-url>
      <start-date null="true" />
      <tags>
         <element>Ruby</element>
      </tags>
      <topic>
         <_type>Topic</_type>
         <created-at>2014-06-30T03:28:27.101-04:00</created-at>
         <custom-id null="true" />
         <id>0803a3dd-a947-47e1-b488-1a707e8ab4ce</id>
         <name>Computer Science</name>
         <updated-at>2015-06-06T21:56:10.820-04:00</updated-at>
      </topic>
      <updated-at>2015-04-19T17:13:28.267-04:00</updated-at>
   </course>
   <created-at>2015-08-30T18:17:46.669-04:00</created-at>
   <id>f6ea9a80-cc47-4712-83ea-9a306a1044c4</id>
   <user>
      <_type>User</_type>
      <admin>true</admin>
      <created-at>2014-04-26T12:51:29.407-04:00</created-at>
      <custom-id null="true" />
      <deactivated>false</deactivated>
      <department>
         <_type>Department</_type>
         <created-at>2015-04-23T23:24:33.142-04:00</created-at>
         <id>75edd400-5edd-4ca8-b37b-16c82eafcd4f</id>
         <name>Stuffs</name>
         <updated-at>2015-04-23T23:24:33.142-04:00</updated-at>
      </department>
      <email>jamie@pathgather.com</email>
      <first-name>Jamie</first-name>
      <hire-date>2013-03-13</hire-date>
      <id>4cea0449-666a-433f-8396-857e269449a9</id>
      <job-title>CTO</job-title>
      <last-active-at>2015-08-30</last-active-at>
      <last-name>Davidson</last-name>
      <location>New York, NY</location>
      <updated-at>2015-08-30T18:10:43.848-04:00</updated-at>
   </user>
</gathering-content>
Suggest Edits

/gatherings/:gathering_id/contents

List content available to a gathering

 
get/gatherings/gathering_id/contents
curl --request GET \
  --url http://example.com/gatherings/gathering_id/contents
var request = require("request");

var options = { method: 'GET',
  url:
   'http://example.com/gatherings/gathering_id/contents' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("http://example.com/gatherings/gathering_id/contents")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

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

xhr.open("GET", "http://example.com/gatherings/gathering_id/contents");

xhr.send(data);
import requests

url = "http://example.com/gatherings/gathering_id/contents"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "next": null,
  "results": [
    {
      "_type": "GatheringContent",
      "course": {
        "_type": "Content",
        "content_type": "Course",
        "created_at": "2014-05-05T00:09:37.914-04:00",
        "custom_id": null,
        "deactivated": false,
        "description": "Learn the fundamentals to become a Ruby and Rails developer. You'll learn things like what Ruby is, how to write object oriented Ruby, classes and modules, programming structures and types,  and more. There are no requirements for this course other than a web browser and willingness to learn.",
        "enabled": true,
        "end_date": null,
        "id": "b0201945-8d13-4188-aabe-43493728b899",
        "instructor": {
          "_type": null,
          "name": "Jason Seifer"
        },
        "level": "Beginner",
        "name": "Ruby Foundations",
        "rating": 0.0,
        "reviews_count": 0,
        "sharer": null,
        "sharer_id": null,
        "source_url": "http://teamtreehouse.com/library/ruby-foundations",
        "start_date": null,
        "tags": [
          "Ruby"
        ],
        "topic": {
          "_type": "Topic",
          "created_at": "2014-06-30T03:28:27.101-04:00",
          "custom_id": null,
          "id": "0803a3dd-a947-47e1-b488-1a707e8ab4ce",
          "name": "Computer Science",
          "updated_at": "2015-06-06T21:56:10.820-04:00"
        },
        "updated_at": "2015-04-19T17:13:28.267-04:00"
      },
      "created_at": "2015-08-30T18:17:46.669-04:00",
      "id": "f6ea9a80-cc47-4712-83ea-9a306a1044c4",
      "user": {
        "_type": "User",
        "admin": true,
        "created_at": "2014-04-26T12:51:29.407-04:00",
        "custom_id": null,
        "deactivated": false,
        "department": {
          "_type": "Department",
          "created_at": "2015-04-23T23:24:33.142-04:00",
          "id": "75edd400-5edd-4ca8-b37b-16c82eafcd4f",
          "name": "Stuffs",
          "updated_at": "2015-04-23T23:24:33.142-04:00"
        },
        "email": "jamie@pathgather.com",
        "first_name": "Jamie",
        "hire_date": "2013-03-13",
        "id": "4cea0449-666a-433f-8396-857e269449a9",
        "job_title": "CTO",
        "last_active_at": "2015-08-30",
        "last_name": "Davidson",
        "location": "New York, NY",
        "updated_at": "2015-08-30T18:10:43.848-04:00"
      }
    }
  ]
}
<?xml version="1.0" encoding="UTF-8"?>
<response>
   <next null="true" />
   <results>
      <result>
         <_type>GatheringContent</_type>
         <course>
            <_type>Content</_type>
            <content_type>Course</content_type>
            <created-at>2014-05-05T00:09:37.914-04:00</created-at>
            <custom-id null="true" />
            <deactivated>false</deactivated>
            <description>Learn the fundamentals to become a Ruby and Rails developer. You'll learn things like what Ruby is, how to write object oriented Ruby, classes and modules, programming structures and types,  and more. There are no requirements for this course other than a web browser and willingness to learn.</description>
            <enabled>true</enabled>
            <end-date null="true" />
            <id>b0201945-8d13-4188-aabe-43493728b899</id>
            <instructor>
               <_type null="true" />
               <name>Jason Seifer</name>
            </instructor>
            <level>Beginner</level>
            <name>Ruby Foundations</name>
            <rating>0.0</rating>
            <reviews-count>0</reviews-count>
            <sharer null="true" />
            <sharer-id null="true" />
            <source-url>http://teamtreehouse.com/library/ruby-foundations</source-url>
            <start-date null="true" />
            <tags>
               <result>Ruby</result>
            </tags>
            <topic>
               <_type>Topic</_type>
               <created-at>2014-06-30T03:28:27.101-04:00</created-at>
               <custom-id null="true" />
               <id>0803a3dd-a947-47e1-b488-1a707e8ab4ce</id>
               <name>Computer Science</name>
               <updated-at>2015-06-06T21:56:10.820-04:00</updated-at>
            </topic>
            <updated-at>2015-04-19T17:13:28.267-04:00</updated-at>
         </course>
         <created-at>2015-08-30T18:17:46.669-04:00</created-at>
         <id>f6ea9a80-cc47-4712-83ea-9a306a1044c4</id>
         <user>
            <_type>User</_type>
            <admin>true</admin>
            <created-at>2014-04-26T12:51:29.407-04:00</created-at>
            <custom-id null="true" />
            <deactivated>false</deactivated>
            <department>
               <_type>Department</_type>
               <created-at>2015-04-23T23:24:33.142-04:00</created-at>
               <id>75edd400-5edd-4ca8-b37b-16c82eafcd4f</id>
               <name>Stuffs</name>
               <updated-at>2015-04-23T23:24:33.142-04:00</updated-at>
            </department>
            <email>jamie@pathgather.com</email>
            <first-name>Jamie</first-name>
            <hire-date>2013-03-13</hire-date>
            <id>4cea0449-666a-433f-8396-857e269449a9</id>
            <job-title>CTO</job-title>
            <last-active-at>2015-08-30</last-active-at>
            <last-name>Davidson</last-name>
            <location>New York, NY</location>
            <updated-at>2015-08-30T18:10:43.848-04:00</updated-at>
         </user>
      </result>
   </results>
</response>

Path Params

gathering_id
string
required

Can be the gathering ID assigned upon creation, or a custom ID

 

Returns a list of content available to a gathering. Gathering content is returned sorted by the date the content was added to the gathering, with the most recent appearing first.

Returns

A list of content available in your gathering

curl -X GET https://api.pathgather.com/v1/gatherings/gathering-1/contents \ 
  -H "Authorization: Bearer pg_test_fg4dfsg565hgfhfrk" \ 
  -H "Content-Type: application/json"
Suggest Edits

/gatherings/:gathering_id/contents

Add an item of content as available to a gathering

 
post/gatherings/gathering_id/contents
curl --request POST \
  --url http://example.com/gatherings/gathering_id/contents
var request = require("request");

var options = { method: 'POST',
  url:
   'http://example.com/gatherings/gathering_id/contents' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("http://example.com/gatherings/gathering_id/contents")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

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

xhr.open("POST", "http://example.com/gatherings/gathering_id/contents");

xhr.send(data);
import requests

url = "http://example.com/gatherings/gathering_id/contents"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "_type": "GatheringContent",
  "course": {
    "_type": "Content",
    "content_type": "Course",
    "created_at": "2014-05-05T00:09:37.914-04:00",
    "custom_id": null,
    "deactivated": false,
    "description": "Learn the fundamentals to become a Ruby and Rails developer. You'll learn things like what Ruby is, how to write object oriented Ruby, classes and modules, programming structures and types,  and more. There are no requirements for this course other than a web browser and willingness to learn.",
    "enabled": true,
    "end_date": null,
    "id": "b0201945-8d13-4188-aabe-43493728b899",
    "instructor": {
      "_type": null,
      "name": "Jason Seifer"
    },
    "level": "Beginner",
    "name": "Ruby Foundations",
    "rating": 0.0,
    "reviews_count": 0,
    "sharer": null,
    "sharer_id": null,
    "source_url": "http://teamtreehouse.com/library/ruby-foundations",
    "start_date": null,
    "tags": [
      "Ruby"
    ],
    "topic": {
      "_type": "Topic",
      "created_at": "2014-06-30T03:28:27.101-04:00",
      "custom_id": null,
      "id": "0803a3dd-a947-47e1-b488-1a707e8ab4ce",
      "name": "Computer Science",
      "updated_at": "2015-06-06T21:56:10.820-04:00"
    },
    "updated_at": "2015-04-19T17:13:28.267-04:00"
  },
  "created_at": "2015-08-30T18:17:46.669-04:00",
  "id": "f6ea9a80-cc47-4712-83ea-9a306a1044c4",
  "user": {
    "_type": "User",
    "admin": true,
    "created_at": "2014-04-26T12:51:29.407-04:00",
    "custom_id": null,
    "deactivated": false,
    "department": {
      "_type": "Department",
      "created_at": "2015-04-23T23:24:33.142-04:00",
      "id": "75edd400-5edd-4ca8-b37b-16c82eafcd4f",
      "name": "Stuffs",
      "updated_at": "2015-04-23T23:24:33.142-04:00"
    },
    "email": "jamie@pathgather.com",
    "first_name": "Jamie",
    "hire_date": "2013-03-13",
    "id": "4cea0449-666a-433f-8396-857e269449a9",
    "job_title": "CTO",
    "last_active_at": "2015-08-30",
    "last_name": "Davidson",
    "location": "New York, NY",
    "updated_at": "2015-08-30T18:10:43.848-04:00"
  }
}
<?xml version="1.0" encoding="UTF-8"?>
<gathering-content>
   <_type>GatheringContent</_type>
   <course>
      <_type>Content</_type>
      <content_type>Course</content_type>
      <created-at>2014-05-05T00:09:37.914-04:00</created-at>
      <custom-id null="true" />
      <deactivated>false</deactivated>
      <description>Learn the fundamentals to become a Ruby and Rails developer. You'll learn things like what Ruby is, how to write object oriented Ruby, classes and modules, programming structures and types,  and more. There are no requirements for this course other than a web browser and willingness to learn.</description>
      <enabled>true</enabled>
      <end-date null="true" />
      <id>b0201945-8d13-4188-aabe-43493728b899</id>
      <instructor>
         <_type null="true" />
         <name>Jason Seifer</name>
      </instructor>
      <level>Beginner</level>
      <name>Ruby Foundations</name>
      <rating>0.0</rating>
      <reviews-count>0</reviews-count>
      <sharer null="true" />
      <sharer-id null="true" />
      <source-url>http://teamtreehouse.com/library/ruby-foundations</source-url>
      <start-date null="true" />
      <tags>
         <element>Ruby</element>
      </tags>
      <topic>
         <_type>Topic</_type>
         <created-at>2014-06-30T03:28:27.101-04:00</created-at>
         <custom-id null="true" />
         <id>0803a3dd-a947-47e1-b488-1a707e8ab4ce</id>
         <name>Computer Science</name>
         <updated-at>2015-06-06T21:56:10.820-04:00</updated-at>
      </topic>
      <updated-at>2015-04-19T17:13:28.267-04:00</updated-at>
   </course>
   <created-at>2015-08-30T18:17:46.669-04:00</created-at>
   <id>f6ea9a80-cc47-4712-83ea-9a306a1044c4</id>
   <user>
      <_type>User</_type>
      <admin>true</admin>
      <created-at>2014-04-26T12:51:29.407-04:00</created-at>
      <custom-id null="true" />
      <deactivated>false</deactivated>
      <department>
         <_type>Department</_type>
         <created-at>2015-04-23T23:24:33.142-04:00</created-at>
         <id>75edd400-5edd-4ca8-b37b-16c82eafcd4f</id>
         <name>Stuffs</name>
         <updated-at>2015-04-23T23:24:33.142-04:00</updated-at>
      </department>
      <email>jamie@pathgather.com</email>
      <first-name>Jamie</first-name>
      <hire-date>2013-03-13</hire-date>
      <id>4cea0449-666a-433f-8396-857e269449a9</id>
      <job-title>CTO</job-title>
      <last-active-at>2015-08-30</last-active-at>
      <last-name>Davidson</last-name>
      <location>New York, NY</location>
      <updated-at>2015-08-30T18:10:43.848-04:00</updated-at>
   </user>
</gathering-content>

Path Params

gathering_id
string
required

Can be the gathering ID assigned upon creation, or a custom ID

Body Params

content
object
required

A hash containing the ID of the content to add to the gaterhing.

 
 

Adds a piece of content to your gathering.

Returns

Returns the gathering content object if the content was successfully added to the gathering. If the request contains invalid parameters or insufficient data, a 422 error response will be returned with details about the specific errors.

curl -X POST https://api.pathgather.com/v1/gatherings/gathering-1/contents \ 
  -H "Authorization: Bearer pg_test_fg4dfsg565hgfhfrk" \ 
  -H "Content-Type: application/json" \ 
  -d '{
    "content": {
      "id": "custom-content-id-1"
    }
	}'
Suggest Edits

/gatherings/:gathering_id/contents/:content_id

Remove an item of content from a gathering's available content

 
delete/gatherings/gathering_id/contents/content_id
curl --request DELETE \
  --url http://example.com/gatherings/gathering_id/contents/content_id
var request = require("request");

var options = { method: 'DELETE',
  url:
   'http://example.com/gatherings/gathering_id/contents/content_id' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("http://example.com/gatherings/gathering_id/contents/content_id")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

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

xhr.open("DELETE", "http://example.com/gatherings/gathering_id/contents/content_id");

xhr.send(data);
import requests

url = "http://example.com/gatherings/gathering_id/contents/content_id"

response = requests.request("DELETE", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

<?xml version="1.0" encoding="UTF-8"?>
<hash>
</hash>

Path Params

gathering_id
string
required

Can be the gathering ID assigned upon creation, or a custom ID

content_id
string
required

Can be the content ID assigned upon creation, or a custom ID

 

Remove a piece of content from your gathering. This does not delete the content, it simply removes it's availability within the gathering.

Returns

Returns an empty object when successful.

curl -X DELETE https://api.pathgather.com/v1/gatherings/gathering-1/contents/content-custom-id-1 \ 
  -H "Authorization: Bearer pg_test_fg4dfsg565hgfhfrk" \ 
  -H "Content-Type: application/json"
Suggest Edits

Gathering Paths

The paths that are available to a gathering.

 

Paths are curated lists of content and resources created by your users. A Path is essentially the tools a user used to learn a skill or improve their knowledge in some capacity, ordered and curated together so others may benefit from a user's previous learning experiences.

This API allows you to view, add and remove paths to your gathering.

The GatheringPath object

Name
Type
Description

id

string

Randomly generated ID assigned upon creation

created_at

datetime

The datetime the path was added to the gathering

path

The path object

user

The user (author) that created this path

{
  "_type": "GatheringContent",
  "created_at": "2015-08-24T01:54:57.901-04:00",
  "id": "e89903ff-d15f-4938-8c9d-cbca129c5dba",
  "path": {
    "published": true,
    "created_at": "2014-05-12T19:53:25.931-04:00",
    "_type": "Path",
    "saved_at": "2014-05-12T20:22:26.698-04:00",
    "id": "4d084c27-e9f5-4141-a74b-c415442e72de",
    "published_at": "2014-05-12T20:22:26.698-04:00",
    "updated_at": "2015-04-08T09:05:14.074-04:00",
    "name": "Learning AngularJS",
    "tags": [
      "AngularJS",
      "Javascript"
    ],
    "skills": [],
    "user": {
      "location": "New York, NY",
      "email": "jamie@pathgather.com",
      "hire_date": "2013-03-14",
      "job_title": "CTO",
      "id": "4cea0449-666a-433f-8396-857e269449a9",
      "created_at": "2014-04-26T12:51:29.407-04:00",
      "_type": "User",
      "deactivated": false,
      "custom_id": null,
      "last_active_at": "2015-03-30",
      "last_name": "Davidson",
      "department": {
        "id": "90c8e4f2-3fba-4747-9322-00635bcff1bc",
        "created_at": "2014-04-26T12:51:29.389-04:00",
        "name": "Founders",
        "_type": "Department",
        "updated_at": "2014-04-26T12:51:29.389-04:00"
      },
      "first_name": "Jamie",
      "admin": true,
      "updated_at": "2015-03-30T22:01:55.893-04:00"
    }
  },
  "user": {
    "location": "New York, NY",
    "email": "jamie@pathgather.com",
    "hire_date": "2013-03-14",
    "job_title": "CTO",
    "id": "4cea0449-666a-433f-8396-857e269449a9",
    "created_at": "2014-04-26T12:51:29.407-04:00",
    "_type": "User",
    "deactivated": false,
    "custom_id": null,
    "last_active_at": "2015-03-30",
    "last_name": "Davidson",
    "department": {
      "id": "90c8e4f2-3fba-4747-9322-00635bcff1bc",
      "created_at": "2014-04-26T12:51:29.389-04:00",
      "name": "Founders",
      "_type": "Department",
      "updated_at": "2014-04-26T12:51:29.389-04:00"
    },
    "first_name": "Jamie",
    "admin": true,
    "updated_at": "2015-03-30T22:01:55.893-04:00"
  }
}
<?xml version="1.0" encoding="UTF-8"?>
<gathering-content>
  <_type>GatheringContent</_type>
  <created-at>2015-08-24T01:54:57.901-04:00</created-at>
  <id>e89903ff-d15f-4938-8c9d-cbca129c5dba</id>
  <path>
    <_type>Path</_type>
    <created-at>2014-05-12T19:53:25.931-04:00</created-at>
    <id>4d084c27-e9f5-4141-a74b-c415442e72de</id>
    <name>Learning AngularJS</name>
    <published>true</published>
    <published-at>2014-05-12T20:22:26.698-04:00</published-at>
    <saved-at>2014-05-12T20:22:26.698-04:00</saved-at>
    <skills />
    <tags>
      <result>AngularJS</result>
      <result>Javascript</result>
    </tags>
    <updated-at>2015-04-08T09:05:14.074-04:00</updated-at>
    <user>
      <_type>User</_type>
      <admin>true</admin>
      <created-at>2014-04-26T12:51:29.407-04:00</created-at>
      <custom-id null="true" />
      <deactivated>false</deactivated>
      <department>
        <_type>Department</_type>
        <created-at>2014-04-26T12:51:29.389-04:00</created-at>
        <id>90c8e4f2-3fba-4747-9322-00635bcff1bc</id>
        <name>Founders</name>
        <updated-at>2014-04-26T12:51:29.389-04:00</updated-at>
      </department>
      <email>jamie@pathgather.com</email>
      <first-name>Jamie</first-name>
      <hire-date>2013-03-14</hire-date>
      <id>4cea0449-666a-433f-8396-857e269449a9</id>
      <job-title>CTO</job-title>
      <last-active-at>2015-03-30</last-active-at>
      <last-name>Davidson</last-name>
      <location>New York, NY</location>
      <updated-at>2015-03-30T22:01:55.893-04:00</updated-at>
    </user>
  </path>
  <user>
    <_type>User</_type>
    <admin>true</admin>
    <created-at>2014-04-26T12:51:29.407-04:00</created-at>
    <custom-id null="true" />
    <deactivated>false</deactivated>
    <department>
      <_type>Department</_type>
      <created-at>2014-04-26T12:51:29.389-04:00</created-at>
      <id>90c8e4f2-3fba-4747-9322-00635bcff1bc</id>
      <name>Founders</name>
      <updated-at>2014-04-26T12:51:29.389-04:00</updated-at>
    </department>
    <email>jamie@pathgather.com</email>
    <first-name>Jamie</first-name>
    <hire-date>2013-03-14</hire-date>
    <id>4cea0449-666a-433f-8396-857e269449a9</id>
    <job-title>CTO</job-title>
    <last-active-at>2015-03-30</last-active-at>
    <last-name>Davidson</last-name>
    <location>New York, NY</location>
    <updated-at>2015-03-30T22:01:55.893-04:00</updated-at>
  </user>
</gathering-content>
Suggest Edits

/gatherings/:gathering_id/paths

List the paths available to a gathering

 
get/gatherings/gathering_id/paths
curl --request GET \
  --url http://example.com/gatherings/gathering_id/paths
var request = require("request");

var options = { method: 'GET',
  url:
   'http://example.com/gatherings/gathering_id/paths' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("http://example.com/gatherings/gathering_id/paths")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

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

xhr.open("GET", "http://example.com/gatherings/gathering_id/paths");

xhr.send(data);
import requests

url = "http://example.com/gatherings/gathering_id/paths"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
	"next": null,
  "results": [
    {
      "_type": "GatheringContent",
      "created_at": "2015-08-24T01:54:57.901-04:00",
      "id": "e89903ff-d15f-4938-8c9d-cbca129c5dba",
      "path": {
        "published": true,
        "created_at": "2014-05-12T19:53:25.931-04:00",
        "_type": "Path",
        "saved_at": "2014-05-12T20:22:26.698-04:00",
        "id": "4d084c27-e9f5-4141-a74b-c415442e72de",
        "published_at": "2014-05-12T20:22:26.698-04:00",
        "updated_at": "2015-04-08T09:05:14.074-04:00",
        "name": "Learning AngularJS",
        "tags": [
          "AngularJS",
          "Javascript"
        ],
        "skills": [],
        "user": {
          "location": "New York, NY",
          "email": "jamie@pathgather.com",
          "hire_date": "2013-03-14",
          "job_title": "CTO",
          "id": "4cea0449-666a-433f-8396-857e269449a9",
          "created_at": "2014-04-26T12:51:29.407-04:00",
          "_type": "User",
          "deactivated": false,
          "custom_id": null,
          "last_active_at": "2015-03-30",
          "last_name": "Davidson",
          "department": {
            "id": "90c8e4f2-3fba-4747-9322-00635bcff1bc",
            "created_at": "2014-04-26T12:51:29.389-04:00",
            "name": "Founders",
            "_type": "Department",
            "updated_at": "2014-04-26T12:51:29.389-04:00"
          },
          "first_name": "Jamie",
          "admin": true,
          "updated_at": "2015-03-30T22:01:55.893-04:00"
        }
      },
      "user": {
        "location": "New York, NY",
        "email": "jamie@pathgather.com",
        "hire_date": "2013-03-14",
        "job_title": "CTO",
        "id": "4cea0449-666a-433f-8396-857e269449a9",
        "created_at": "2014-04-26T12:51:29.407-04:00",
        "_type": "User",
        "deactivated": false,
        "custom_id": null,
        "last_active_at": "2015-03-30",
        "last_name": "Davidson",
        "department": {
          "id": "90c8e4f2-3fba-4747-9322-00635bcff1bc",
          "created_at": "2014-04-26T12:51:29.389-04:00",
          "name": "Founders",
          "_type": "Department",
          "updated_at": "2014-04-26T12:51:29.389-04:00"
        },
        "first_name": "Jamie",
        "admin": true,
        "updated_at": "2015-03-30T22:01:55.893-04:00"
      }
    }
  ]
}
<?xml version="1.0" encoding="UTF-8"?>
<results>
  <next null="true" />
  <results>
    <result>
      <_type>GatheringContent</_type>
      <created-at>2015-08-24T01:54:57.901-04:00</created-at>
      <id>e89903ff-d15f-4938-8c9d-cbca129c5dba</id>
      <path>
        <_type>Path</_type>
        <created-at>2014-05-12T19:53:25.931-04:00</created-at>
        <id>4d084c27-e9f5-4141-a74b-c415442e72de</id>
        <name>Learning AngularJS</name>
        <published>true</published>
        <published-at>2014-05-12T20:22:26.698-04:00</published-at>
        <saved-at>2014-05-12T20:22:26.698-04:00</saved-at>
        <skills />
        <tags>
          <result>AngularJS</result>
          <result>Javascript</result>
        </tags>
        <updated-at>2015-04-08T09:05:14.074-04:00</updated-at>
        <user>
          <_type>User</_type>
          <admin>true</admin>
          <created-at>2014-04-26T12:51:29.407-04:00</created-at>
          <custom-id null="true" />
          <deactivated>false</deactivated>
          <department>
            <_type>Department</_type>
            <created-at>2014-04-26T12:51:29.389-04:00</created-at>
            <id>90c8e4f2-3fba-4747-9322-00635bcff1bc</id>
            <name>Founders</name>
            <updated-at>2014-04-26T12:51:29.389-04:00</updated-at>
          </department>
          <email>jamie@pathgather.com</email>
          <first-name>Jamie</first-name>
          <hire-date>2013-03-14</hire-date>
          <id>4cea0449-666a-433f-8396-857e269449a9</id>
          <job-title>CTO</job-title>
          <last-active-at>2015-03-30</last-active-at>
          <last-name>Davidson</last-name>
          <location>New York, NY</location>
          <updated-at>2015-03-30T22:01:55.893-04:00</updated-at>
        </user>
      </path>
      <user>
        <