NAV Navigation
Shell HTTP JavaScript Node.js Ruby Python Java Go

Pathable API v1.0.2

Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.

Overview

The Pathable API can be used to find and modify data in your account, including data for any of your events. This documentation provides information about each endpoint in the API. The right-hand pane of this page shows example requests and responses for each endpoint for a variety of environments and programming languages.

Getting Started

If you don't already have an account, please visit https://pathable.com to get started. You'll need an active community which is enabled for use with the Pathable API.

As described in the authorization section below, you will need to get your API key by opening your community Dashboard, then visiting the My Account > Settings section. The API key is required for any API call.

Community Scope

Pathable refers to your event community via a unique communityId identifier. You can find the communityId of any event in your account by visiting My Account > About from the dashboard of any of your events.

Your API key is associated with a specific communityId so you do not need to supply it when calling this API.

Security

Your community includes two API keys by default: one which is un-scoped (can be used for all API end-points listed here) and which is enabled to both read and write access.

This key should never be shared publicly as it will provide access to all your event data.

The second API key is scoped only to the /meetings end-point, and enabled only for read access. This API key is safe to use publicly. If you need additional API keys to publicly expose other end-points or with special permissions, please contact support.

Routes

All API requests should use the following:

Base URLs:

Authentication

People

findPeople

Code samples

# You can also use wget
curl -X GET https://api.pathable.co/v1/people/people \
  -H 'Accept: application/json' \
  -H 'X-API-KEY: API_KEY'

GET https://api.pathable.co/v1/people/people HTTP/1.1
Host: api.pathable.co
Accept: application/json

var headers = {
  'Accept':'application/json',
  'X-API-KEY':'API_KEY'

};

$.ajax({
  url: 'https://api.pathable.co/v1/people/people',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'X-API-KEY':'API_KEY'

};

fetch('https://api.pathable.co/v1/people/people',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'X-API-KEY' => 'API_KEY'
}

result = RestClient.get 'https://api.pathable.co/v1/people/people',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'X-API-KEY': 'API_KEY'
}

r = requests.get('https://api.pathable.co/v1/people/people', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.pathable.co/v1/people/people");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "X-API-KEY": []string{"API_KEY"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.pathable.co/v1/people/people", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /people/people

Find people attending any of your events.

The people collection holds attendee information that spans events, i.e. there is only a single person entry for each real user in your account. This person data is never used for display in any Pathable application and so does not include most of the dynamic profile attributes you can configure on each of your events. However, as a convenience, when an event profile is updated, the firstName and lastName attributes are updated on the parent person. You can use this when searching people. See the profiles collection for event specific profile information.

Because people span all your communities, the communityId associated with your API key is not used when getting items from this endpoint. It always returns all people across all your events. To find profiles in a specific event use the findProfiles endpoint.

Parameters

Name In Type Required Description
skip query integer(int32) false The number of records to skip (e.g. for pagination).
limit query integer(int32) false The maximum number of records to return. Set this to 0 to quickly return the total count of objects matching your search criteria, set in the total attribute of the response.
_email query string(email) false Search for a person by email address. If no match is the results will be empty.
searchBy query object false An object of attribute names and values on which to search (see below for details).
updatedAfter query string(date) false A date after which results were last updated. Accepts any ISO 8601 date.
updatedBefore query string(date) false A date before which results were last updated. Accepts any ISO 8601 date.
createdAfter query string(date) false A date after which results were originally created. Accepts any ISO 8601 date.
createdBefore query string(date) false A date before which results were originally created. Accepts any ISO 8601 date.

Detailed descriptions

searchBy: An object of attribute names and values on which to search (see below for details).

For example searchBy[firstName]=John. You can include any property present in objects in your collection, including any profile attributes configured on your community. You can manage these from your community dashboard by visiting People > Profile Questions.

Additionally, there are other userful attributes including the following:

Example responses

200 Response

{
  "total": 10,
  "limit": 100,
  "skip": 0,
  "data": [
    {
      "_id": "9CAGFxNsxtHeJ5LkX",
      "accountId": "CvKTvbGotZB5SvCzA",
      "userId": "WRcjScevqdJeuNufE",
      "firstName": "John",
      "lastName": "Smith",
      "email": "john@acme.com",
      "profiles": [
        {
          "firstName": "John",
          "lastName": "Smith",
          "credentials": "CMP",
          "description": "About me and my company.",
          "companyName": "Acme, Inc.",
          "title": "President",
          "personId": "WRcjScevqdJeuNufE",
          "communityId": "CvKTvbGotZB5SvCzA",
          "membership": {
            "externalId": "1234abc",
            "isVisible": true
          }
        }
      ],
      "membership": {
        "externalId": "1234abc",
        "isVisible": true
      }
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Paginated results matching your search. PeopleData
400 Bad Request Bad input parameter None

createPerson

Code samples

# You can also use wget
curl -X POST https://api.pathable.co/v1/people/people \
  -H 'Content-Type: application/json' \
  -H 'X-API-KEY: API_KEY'

POST https://api.pathable.co/v1/people/people HTTP/1.1
Host: api.pathable.co
Content-Type: application/json

var headers = {
  'Content-Type':'application/json',
  'X-API-KEY':'API_KEY'

};

$.ajax({
  url: 'https://api.pathable.co/v1/people/people',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "_email": "john@acme.com",
  "_profile": {
    "firstName": "John",
    "lastName": "Smith",
    "credentials": "CMP",
    "description": "About me and my company.",
    "companyName": "Acme, Inc.",
    "title": "President",
    "_templateId": "e4cjScevqdro9ufE",
    "membership": {
      "externalId": "1234abc",
      "isVisible": true
    }
  }
}';
const headers = {
  'Content-Type':'application/json',
  'X-API-KEY':'API_KEY'

};

fetch('https://api.pathable.co/v1/people/people',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'X-API-KEY' => 'API_KEY'
}

result = RestClient.post 'https://api.pathable.co/v1/people/people',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'X-API-KEY': 'API_KEY'
}

r = requests.post('https://api.pathable.co/v1/people/people', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.pathable.co/v1/people/people");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "X-API-KEY": []string{"API_KEY"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.pathable.co/v1/people/people", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /people/people

Add a new person and profile combination to an community.

Creates a new person entry in the people collection, linked to a new profile entry in the profiles collection for the communityId associated with your API key. If a person with the provided email address already exists, you can use the createProfile endpoint to create a new profile for a specific community.

For additional settings related to the API, please see Settings > API in your event dashboard.

Body parameter

{
  "_email": "john@acme.com",
  "_profile": {
    "firstName": "John",
    "lastName": "Smith",
    "credentials": "CMP",
    "description": "About me and my company.",
    "companyName": "Acme, Inc.",
    "title": "President",
    "_templateId": "e4cjScevqdro9ufE",
    "membership": {
      "externalId": "1234abc",
      "isVisible": true
    }
  }
}

Parameters

Name In Type Required Description
body body NewPerson false Person object to add, including profile information for the community associated with your API key.

Responses

Status Meaning Description Schema
201 Created Person succesfully created. None
400 Bad Request Invalid input. None
409 Conflict Email address already taken. None

getPerson

Code samples

# You can also use wget
curl -X GET https://api.pathable.co/v1/people/people/{id} \
  -H 'Accept: application/json' \
  -H 'X-API-KEY: API_KEY'

GET https://api.pathable.co/v1/people/people/{id} HTTP/1.1
Host: api.pathable.co
Accept: application/json

var headers = {
  'Accept':'application/json',
  'X-API-KEY':'API_KEY'

};

$.ajax({
  url: 'https://api.pathable.co/v1/people/people/{id}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'X-API-KEY':'API_KEY'

};

fetch('https://api.pathable.co/v1/people/people/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'X-API-KEY' => 'API_KEY'
}

result = RestClient.get 'https://api.pathable.co/v1/people/people/{id}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'X-API-KEY': 'API_KEY'
}

r = requests.get('https://api.pathable.co/v1/people/people/{id}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.pathable.co/v1/people/people/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "X-API-KEY": []string{"API_KEY"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.pathable.co/v1/people/people/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /people/people/{id}

Get a person by ID.

Get a person from your account by their person ID. The communityId associated with your API key is not used when getting items from this endpoint.

Parameters

Name In Type Required Description
id path integer(uuid) true The primary ID for this item.

Example responses

200 Response

[
  {
    "_id": "9CAGFxNsxtHeJ5LkX",
    "accountId": "CvKTvbGotZB5SvCzA",
    "userId": "WRcjScevqdJeuNufE",
    "firstName": "John",
    "lastName": "Smith",
    "email": "john@acme.com",
    "profiles": [
      {
        "firstName": "John",
        "lastName": "Smith",
        "credentials": "CMP",
        "description": "About me and my company.",
        "companyName": "Acme, Inc.",
        "title": "President",
        "personId": "WRcjScevqdJeuNufE",
        "communityId": "CvKTvbGotZB5SvCzA",
        "membership": {
          "externalId": "1234abc",
          "isVisible": true
        }
      }
    ],
    "membership": {
      "externalId": "1234abc",
      "isVisible": true
    }
  }
]

Responses

Status Meaning Description Schema
200 OK The person matching the provided ID. Inline
404 Not Found Person not found using the provided ID. None

Response Schema

Status Code 200

Name Type Required Restrictions Description
anonymous [Person] false none none
» _id string(uuid) false none none
» accountId string(uuid) true none none
» userId string(uuid) true none none
» firstName string false none none
» lastName string false none none
» email string(email) false none none
» profiles [Profile] false none An array of all the community profiles for this person. Note that this is read-only and cannot be directly updated.
»» firstName string false none none
»» lastName string false none none
»» credentials string false none none
»» description string false none none
»» companyName string false none none
»» title string false none none
»» personId string(uuid) true none The ID of this profiles master person record.
»» communityId string(uuid) true none The community ID associated with this profile. This profile and only this profile will be used for this community.
»» membership Membership false none none
»»» externalId string false none An identifer of any value, internal to your data scheme. Use this to track users using your own ticket ID, registration ID or etc. Note that in your community dashboard the Master External ID comes from the membership object on people and the Event External ID comes from the membership object on profiles.
»»» isVisible boolean false none none
»» membership Membership false none none

updatePerson

Code samples

# You can also use wget
curl -X PATCH https://api.pathable.co/v1/people/people/{id} \
  -H 'Content-Type: application/json' \
  -H 'X-API-KEY: API_KEY'

PATCH https://api.pathable.co/v1/people/people/{id} HTTP/1.1
Host: api.pathable.co
Content-Type: application/json

var headers = {
  'Content-Type':'application/json',
  'X-API-KEY':'API_KEY'

};

$.ajax({
  url: 'https://api.pathable.co/v1/people/people/{id}',
  method: 'patch',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "_id": "9CAGFxNsxtHeJ5LkX",
  "accountId": "CvKTvbGotZB5SvCzA",
  "userId": "WRcjScevqdJeuNufE",
  "firstName": "John",
  "lastName": "Smith",
  "email": "john@acme.com",
  "profiles": [
    {
      "firstName": "John",
      "lastName": "Smith",
      "credentials": "CMP",
      "description": "About me and my company.",
      "companyName": "Acme, Inc.",
      "title": "President",
      "personId": "WRcjScevqdJeuNufE",
      "communityId": "CvKTvbGotZB5SvCzA",
      "membership": {
        "externalId": "1234abc",
        "isVisible": true
      }
    }
  ],
  "membership": {
    "externalId": "1234abc",
    "isVisible": true
  }
}';
const headers = {
  'Content-Type':'application/json',
  'X-API-KEY':'API_KEY'

};

fetch('https://api.pathable.co/v1/people/people/{id}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'X-API-KEY' => 'API_KEY'
}

result = RestClient.patch 'https://api.pathable.co/v1/people/people/{id}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'X-API-KEY': 'API_KEY'
}

r = requests.patch('https://api.pathable.co/v1/people/people/{id}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.pathable.co/v1/people/people/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "X-API-KEY": []string{"API_KEY"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://api.pathable.co/v1/people/people/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH /people/people/{id}

Update attributes on an existing person.

Updates an existing person in the people collection. Note that you cannot update the profiles array on people using this method. Instead you should use the updateProfile method.

Body parameter

{
  "_id": "9CAGFxNsxtHeJ5LkX",
  "accountId": "CvKTvbGotZB5SvCzA",
  "userId": "WRcjScevqdJeuNufE",
  "firstName": "John",
  "lastName": "Smith",
  "email": "john@acme.com",
  "profiles": [
    {
      "firstName": "John",
      "lastName": "Smith",
      "credentials": "CMP",
      "description": "About me and my company.",
      "companyName": "Acme, Inc.",
      "title": "President",
      "personId": "WRcjScevqdJeuNufE",
      "communityId": "CvKTvbGotZB5SvCzA",
      "membership": {
        "externalId": "1234abc",
        "isVisible": true
      }
    }
  ],
  "membership": {
    "externalId": "1234abc",
    "isVisible": true
  }
}

Parameters

Name In Type Required Description
id path integer(uuid) true The primary ID for this item.
body body Person false Changes to apply to this person.

Responses

Status Meaning Description Schema
201 Created Person succesfully updated. None
400 Bad Request Invalid input. None
404 Not Found Person could not be found by the provided ID. None

removePerson

Code samples

# You can also use wget
curl -X DELETE https://api.pathable.co/v1/people/people/{id} \
  -H 'Accept: application/json' \
  -H 'X-API-KEY: API_KEY'

DELETE https://api.pathable.co/v1/people/people/{id} HTTP/1.1
Host: api.pathable.co
Accept: application/json

var headers = {
  'Accept':'application/json',
  'X-API-KEY':'API_KEY'

};

$.ajax({
  url: 'https://api.pathable.co/v1/people/people/{id}',
  method: 'delete',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'X-API-KEY':'API_KEY'

};

fetch('https://api.pathable.co/v1/people/people/{id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'X-API-KEY' => 'API_KEY'
}

result = RestClient.delete 'https://api.pathable.co/v1/people/people/{id}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'X-API-KEY': 'API_KEY'
}

r = requests.delete('https://api.pathable.co/v1/people/people/{id}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.pathable.co/v1/people/people/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "X-API-KEY": []string{"API_KEY"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://api.pathable.co/v1/people/people/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE /people/people/{id}

Remove an existing person.

Permanently remove a person using the provided ID, including all related profile information on all communities in your account.

Example responses

200 Response

{
  "_id": "9CAGFxNsxtHeJ5LkX",
  "accountId": "CvKTvbGotZB5SvCzA",
  "userId": "WRcjScevqdJeuNufE",
  "firstName": "John",
  "lastName": "Smith",
  "email": "john@acme.com",
  "profiles": [
    {
      "firstName": "John",
      "lastName": "Smith",
      "credentials": "CMP",
      "description": "About me and my company.",
      "companyName": "Acme, Inc.",
      "title": "President",
      "personId": "WRcjScevqdJeuNufE",
      "communityId": "CvKTvbGotZB5SvCzA",
      "membership": {
        "externalId": "1234abc",
        "isVisible": true
      }
    }
  ],
  "membership": {
    "externalId": "1234abc",
    "isVisible": true
  }
}

Responses

Status Meaning Description Schema
200 OK OK Person
404 Not Found Person could not be found by the provided ID. None

Profiles

findProfiles

Code samples

# You can also use wget
curl -X GET https://api.pathable.co/v1/people/profiles \
  -H 'Accept: application/json' \
  -H 'X-API-KEY: API_KEY'

GET https://api.pathable.co/v1/people/profiles HTTP/1.1
Host: api.pathable.co
Accept: application/json

var headers = {
  'Accept':'application/json',
  'X-API-KEY':'API_KEY'

};

$.ajax({
  url: 'https://api.pathable.co/v1/people/profiles',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'X-API-KEY':'API_KEY'

};

fetch('https://api.pathable.co/v1/people/profiles',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'X-API-KEY' => 'API_KEY'
}

result = RestClient.get 'https://api.pathable.co/v1/people/profiles',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'X-API-KEY': 'API_KEY'
}

r = requests.get('https://api.pathable.co/v1/people/profiles', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.pathable.co/v1/people/profiles");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "X-API-KEY": []string{"API_KEY"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.pathable.co/v1/people/profiles", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /people/profiles

Find profiles for people attending the community associated with your API key.

Find all profiles or profiles matching search criteria for the community associated with your API key.

Parameters

Name In Type Required Description
skip query integer(int32) false The number of records to skip (e.g. for pagination).
limit query integer(int32) false The maximum number of records to return. Set this to 0 to quickly return the total count of objects matching your search criteria, set in the total attribute of the response.
searchBy query object false An object of attribute names and values on which to search (see below for details).
updatedAfter query string(date) false A date after which results were last updated. Accepts any ISO 8601 date.
updatedBefore query string(date) false A date before which results were last updated. Accepts any ISO 8601 date.
createdAfter query string(date) false A date after which results were originally created. Accepts any ISO 8601 date.
createdBefore query string(date) false A date before which results were originally created. Accepts any ISO 8601 date.

Detailed descriptions

searchBy: An object of attribute names and values on which to search (see below for details).

For example searchBy[firstName]=John. You can include any property present in objects in your collection, including any profile attributes configured on your community. You can manage these from your community dashboard by visiting People > Profile Questions.

Additionally, there are other userful attributes including the following:

Example responses

200 Response

{
  "total": 10,
  "limit": 100,
  "skip": 0,
  "data": [
    {
      "firstName": "John",
      "lastName": "Smith",
      "credentials": "CMP",
      "description": "About me and my company.",
      "companyName": "Acme, Inc.",
      "title": "President",
      "personId": "WRcjScevqdJeuNufE",
      "communityId": "CvKTvbGotZB5SvCzA",
      "membership": {
        "externalId": "1234abc",
        "isVisible": true
      }
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Paginated list of community profiles matching your search. ProfilesData
400 Bad Request Bad input parameter. None

createProfile

Code samples

# You can also use wget
curl -X POST https://api.pathable.co/v1/people/profiles \
  -H 'Content-Type: application/json' \
  -H 'X-API-KEY: API_KEY'

POST https://api.pathable.co/v1/people/profiles HTTP/1.1
Host: api.pathable.co
Content-Type: application/json

var headers = {
  'Content-Type':'application/json',
  'X-API-KEY':'API_KEY'

};

$.ajax({
  url: 'https://api.pathable.co/v1/people/profiles',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "firstName": "John",
  "lastName": "Smith",
  "credentials": "CMP",
  "description": "About me and my company.",
  "companyName": "Acme, Inc.",
  "title": "President",
  "personId": "WRcjScevqdJeuNufE",
  "communityId": "CvKTvbGotZB5SvCzA",
  "membership": {
    "externalId": "1234abc",
    "isVisible": true
  }
}';
const headers = {
  'Content-Type':'application/json',
  'X-API-KEY':'API_KEY'

};

fetch('https://api.pathable.co/v1/people/profiles',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'X-API-KEY' => 'API_KEY'
}

result = RestClient.post 'https://api.pathable.co/v1/people/profiles',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'X-API-KEY': 'API_KEY'
}

r = requests.post('https://api.pathable.co/v1/people/profiles', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.pathable.co/v1/people/profiles");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "X-API-KEY": []string{"API_KEY"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.pathable.co/v1/people/profiles", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /people/profiles

Add a profile to a community.

Creates a new profile entry in the profiles collection, associated with an existing person entry in the people collection. If this person has never registered for any of your events, the person must first be created.

Body parameter

{
  "firstName": "John",
  "lastName": "Smith",
  "credentials": "CMP",
  "description": "About me and my company.",
  "companyName": "Acme, Inc.",
  "title": "President",
  "personId": "WRcjScevqdJeuNufE",
  "communityId": "CvKTvbGotZB5SvCzA",
  "membership": {
    "externalId": "1234abc",
    "isVisible": true
  }
}

Parameters

Name In Type Required Description
body body Profile false new profile to be added

Responses

Status Meaning Description Schema
201 Created profile succesfully created None
400 Bad Request invalid input, object invalid None
409 Conflict an existing item already exists None

getProfile

Code samples

# You can also use wget
curl -X GET https://api.pathable.co/v1/people/profiles/{id} \
  -H 'Accept: application/json' \
  -H 'X-API-KEY: API_KEY'

GET https://api.pathable.co/v1/people/profiles/{id} HTTP/1.1
Host: api.pathable.co
Accept: application/json

var headers = {
  'Accept':'application/json',
  'X-API-KEY':'API_KEY'

};

$.ajax({
  url: 'https://api.pathable.co/v1/people/profiles/{id}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'X-API-KEY':'API_KEY'

};

fetch('https://api.pathable.co/v1/people/profiles/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'X-API-KEY' => 'API_KEY'
}

result = RestClient.get 'https://api.pathable.co/v1/people/profiles/{id}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'X-API-KEY': 'API_KEY'
}

r = requests.get('https://api.pathable.co/v1/people/profiles/{id}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.pathable.co/v1/people/profiles/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "X-API-KEY": []string{"API_KEY"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.pathable.co/v1/people/profiles/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /people/profiles/{id}

Get a profile by ID.

Get a profile belonging to the community associated with your API key matching the provided profile ID. If your profile is not found, check to be sure the ID is from the community associated with your API key.

Parameters

Name In Type Required Description
id path integer(uuid) true The primary ID for this item.

Example responses

200 Response

{
  "firstName": "John",
  "lastName": "Smith",
  "credentials": "CMP",
  "description": "About me and my company.",
  "companyName": "Acme, Inc.",
  "title": "President",
  "personId": "WRcjScevqdJeuNufE",
  "communityId": "CvKTvbGotZB5SvCzA",
  "membership": {
    "externalId": "1234abc",
    "isVisible": true
  }
}

Responses

Status Meaning Description Schema
200 OK The person matching the provided ID. Profile
404 Not Found Person not found by the provied ID. None

updateProfile

Code samples

# You can also use wget
curl -X PATCH https://api.pathable.co/v1/people/profiles/{id} \
  -H 'Content-Type: application/json' \
  -H 'X-API-KEY: API_KEY'

PATCH https://api.pathable.co/v1/people/profiles/{id} HTTP/1.1
Host: api.pathable.co
Content-Type: application/json

var headers = {
  'Content-Type':'application/json',
  'X-API-KEY':'API_KEY'

};

$.ajax({
  url: 'https://api.pathable.co/v1/people/profiles/{id}',
  method: 'patch',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "firstName": "John",
  "lastName": "Smith",
  "credentials": "CMP",
  "description": "About me and my company.",
  "companyName": "Acme, Inc.",
  "title": "President",
  "personId": "WRcjScevqdJeuNufE",
  "communityId": "CvKTvbGotZB5SvCzA",
  "membership": {
    "externalId": "1234abc",
    "isVisible": true
  }
}';
const headers = {
  'Content-Type':'application/json',
  'X-API-KEY':'API_KEY'

};

fetch('https://api.pathable.co/v1/people/profiles/{id}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'X-API-KEY' => 'API_KEY'
}

result = RestClient.patch 'https://api.pathable.co/v1/people/profiles/{id}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'X-API-KEY': 'API_KEY'
}

r = requests.patch('https://api.pathable.co/v1/people/profiles/{id}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.pathable.co/v1/people/profiles/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "X-API-KEY": []string{"API_KEY"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://api.pathable.co/v1/people/profiles/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH /people/profiles/{id}

Update the attributes on an existing profile object.

Updates an existing profile in the profiles collection matching both the provided ID and the community assocaited with your API key.

Body parameter

{
  "firstName": "John",
  "lastName": "Smith",
  "credentials": "CMP",
  "description": "About me and my company.",
  "companyName": "Acme, Inc.",
  "title": "President",
  "personId": "WRcjScevqdJeuNufE",
  "communityId": "CvKTvbGotZB5SvCzA",
  "membership": {
    "externalId": "1234abc",
    "isVisible": true
  }
}

Parameters

Name In Type Required Description
id path integer(uuid) true The primary ID for this item.
body body Profile false Changes to apply to this profile.

Responses

Status Meaning Description Schema
201 Created Profile succesfully updated. None
400 Bad Request Invalid input. None
404 Not Found Pofile could not be found using the provided ID and the community associated with your API key. None

removeProfile

Code samples

# You can also use wget
curl -X DELETE https://api.pathable.co/v1/people/profiles/{id} \
  -H 'Accept: application/json' \
  -H 'X-API-KEY: API_KEY'

DELETE https://api.pathable.co/v1/people/profiles/{id} HTTP/1.1
Host: api.pathable.co
Accept: application/json

var headers = {
  'Accept':'application/json',
  'X-API-KEY':'API_KEY'

};

$.ajax({
  url: 'https://api.pathable.co/v1/people/profiles/{id}',
  method: 'delete',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'X-API-KEY':'API_KEY'

};

fetch('https://api.pathable.co/v1/people/profiles/{id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'X-API-KEY' => 'API_KEY'
}

result = RestClient.delete 'https://api.pathable.co/v1/people/profiles/{id}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'X-API-KEY': 'API_KEY'
}

r = requests.delete('https://api.pathable.co/v1/people/profiles/{id}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.pathable.co/v1/people/profiles/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "X-API-KEY": []string{"API_KEY"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://api.pathable.co/v1/people/profiles/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE /people/profiles/{id}

Remove an existing profile.

Permanently remove a community profile using the provided ID, including all related information (e.g. private meetings, discussions).

Example responses

200 Response

{
  "firstName": "John",
  "lastName": "Smith",
  "credentials": "CMP",
  "description": "About me and my company.",
  "companyName": "Acme, Inc.",
  "title": "President",
  "personId": "WRcjScevqdJeuNufE",
  "communityId": "CvKTvbGotZB5SvCzA",
  "membership": {
    "externalId": "1234abc",
    "isVisible": true
  }
}

Responses

Status Meaning Description Schema
200 OK OK Profile
404 Not Found Profile could not be found by the provided ID and the community associated with your API key. None

Profile Attributes

findPeopleProfileAttributes

Code samples

# You can also use wget
curl -X GET https://api.pathable.co/v1/people/profiles/attributes \
  -H 'Accept: application/json' \
  -H 'X-API-KEY: API_KEY'

GET https://api.pathable.co/v1/people/profiles/attributes HTTP/1.1
Host: api.pathable.co
Accept: application/json

var headers = {
  'Accept':'application/json',
  'X-API-KEY':'API_KEY'

};

$.ajax({
  url: 'https://api.pathable.co/v1/people/profiles/attributes',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'X-API-KEY':'API_KEY'

};

fetch('https://api.pathable.co/v1/people/profiles/attributes',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'X-API-KEY' => 'API_KEY'
}

result = RestClient.get 'https://api.pathable.co/v1/people/profiles/attributes',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'X-API-KEY': 'API_KEY'
}

r = requests.get('https://api.pathable.co/v1/people/profiles/attributes', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.pathable.co/v1/people/profiles/attributes");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "X-API-KEY": []string{"API_KEY"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.pathable.co/v1/people/profiles/attributes", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /people/profiles/attributes

Get profile attributes.

Get a paginated list of profile attributes configured for the community associated with your API key. You can manage these from your community dashboard by visiting People > Profile Questions.

Example responses

200 Response

[
  {
    "total": 100,
    "data": {
      "_id": "CvKTvbGotZB5SvCzA",
      "communityId": "CvKTvbGotZB5SvCzA",
      "name": "firstName",
      "type": "string"
    }
  }
]

Responses

Status Meaning Description Schema
200 OK A complete list of the profile attributes for the community associated with your API key. Inline
400 Bad Request Bad input parameter. None

Response Schema

Status Code 200

Name Type Required Restrictions Description
anonymous [AttributesData] false none none
» total number false none none
» data Attribute false none none
»» _id string(uuid) true none none
»» communityId string(uuid) true none none
»» name string true none none
»» type string false none none

removePeopleProfileAttribute

Code samples

# You can also use wget
curl -X DELETE https://api.pathable.co/v1/people/profiles/attributes/{id} \
  -H 'Accept: application/json' \
  -H 'X-API-KEY: API_KEY'

DELETE https://api.pathable.co/v1/people/profiles/attributes/{id} HTTP/1.1
Host: api.pathable.co
Accept: application/json

var headers = {
  'Accept':'application/json',
  'X-API-KEY':'API_KEY'

};

$.ajax({
  url: 'https://api.pathable.co/v1/people/profiles/attributes/{id}',
  method: 'delete',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'X-API-KEY':'API_KEY'

};

fetch('https://api.pathable.co/v1/people/profiles/attributes/{id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'X-API-KEY' => 'API_KEY'
}

result = RestClient.delete 'https://api.pathable.co/v1/people/profiles/attributes/{id}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'X-API-KEY': 'API_KEY'
}

r = requests.delete('https://api.pathable.co/v1/people/profiles/attributes/{id}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.pathable.co/v1/people/profiles/attributes/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "X-API-KEY": []string{"API_KEY"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://api.pathable.co/v1/people/profiles/attributes/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE /people/profiles/attributes/{id}

Remove an existing profile attribute.

Permanently remove an existing profile attribute using the provided ID in the community associated with your API key.

Example responses

200 Response

{
  "_id": "CvKTvbGotZB5SvCzA",
  "communityId": "CvKTvbGotZB5SvCzA",
  "name": "firstName",
  "type": "string"
}

Responses

Status Meaning Description Schema
200 OK OK Attribute
404 Not Found Profile could not be found by the provided ID and the community associated with your API key. None

updatePeopleProfileAttribute

Code samples

# You can also use wget
curl -X PATCH https://api.pathable.co/v1/people/profiles/attributes/{id} \
  -H 'Content-Type: application/json' \
  -H 'X-API-KEY: API_KEY'

PATCH https://api.pathable.co/v1/people/profiles/attributes/{id} HTTP/1.1
Host: api.pathable.co
Content-Type: application/json

var headers = {
  'Content-Type':'application/json',
  'X-API-KEY':'API_KEY'

};

$.ajax({
  url: 'https://api.pathable.co/v1/people/profiles/attributes/{id}',
  method: 'patch',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "_id": "CvKTvbGotZB5SvCzA",
  "communityId": "CvKTvbGotZB5SvCzA",
  "name": "firstName",
  "type": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'X-API-KEY':'API_KEY'

};

fetch('https://api.pathable.co/v1/people/profiles/attributes/{id}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'X-API-KEY' => 'API_KEY'
}

result = RestClient.patch 'https://api.pathable.co/v1/people/profiles/attributes/{id}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'X-API-KEY': 'API_KEY'
}

r = requests.patch('https://api.pathable.co/v1/people/profiles/attributes/{id}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.pathable.co/v1/people/profiles/attributes/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "X-API-KEY": []string{"API_KEY"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://api.pathable.co/v1/people/profiles/attributes/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PATCH /people/profiles/attributes/{id}

Update an existing profile attribute.

Updates an existing profile attribute both the provided ID and the community assocaited with your API key.

Body parameter

{
  "_id": "CvKTvbGotZB5SvCzA",
  "communityId": "CvKTvbGotZB5SvCzA",
  "name": "firstName",
  "type": "string"
}

Parameters

Name In Type Required Description
id path integer(uuid) true The primary ID for this item.
body body Attribute false Changes to apply to this attribute.

Responses

Status Meaning Description Schema
201 Created Attribute succesfully updated. None
400 Bad Request Invalid input. None
404 Not Found Attribute could not be found using the provided ID in the community associated with your API key. None

Meetings

findMeetings

Code samples

# You can also use wget
curl -X GET https://api.pathable.co/v1/meetings \
  -H 'Accept: application/json' \
  -H 'X-API-KEY: API_KEY'

GET https://api.pathable.co/v1/meetings HTTP/1.1
Host: api.pathable.co
Accept: application/json

var headers = {
  'Accept':'application/json',
  'X-API-KEY':'API_KEY'

};

$.ajax({
  url: 'https://api.pathable.co/v1/meetings',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'X-API-KEY':'API_KEY'

};

fetch('https://api.pathable.co/v1/meetings',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'X-API-KEY' => 'API_KEY'
}

result = RestClient.get 'https://api.pathable.co/v1/meetings',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'X-API-KEY': 'API_KEY'
}

r = requests.get('https://api.pathable.co/v1/meetings', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.pathable.co/v1/meetings");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "X-API-KEY": []string{"API_KEY"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.pathable.co/v1/meetings", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /meetings

Find and filter meetings within a community.

Retrieve and find meetings from the community associated with your API Key.

Parameters

Name In Type Required Description
skip query integer(int32) false The number of records to skip (e.g. for pagination).
limit query integer(int32) false The maximum number of records to return. Set this to 0 to quickly return the total count of objects matching your search criteria, set in the total attribute of the response.
searchBy query object false An object of attribute names and values on which to search (see below for details).
personId query integer(uuid) false Find items which are owned by a specific person. For example, find all the meetings on the schedule of a person in a community.
updatedAfter query string(date) false A date after which results were last updated. Accepts any ISO 8601 date.
updatedBefore query string(date) false A date before which results were last updated. Accepts any ISO 8601 date.
createdAfter query string(date) false A date after which results were originally created. Accepts any ISO 8601 date.
createdBefore query string(date) false A date before which results were originally created. Accepts any ISO 8601 date.

Detailed descriptions

searchBy: An object of attribute names and values on which to search (see below for details).

For example searchBy[firstName]=John. You can include any property present in objects in your collection, including any profile attributes configured on your community. You can manage these from your community dashboard by visiting People > Profile Questions.

Additionally, there are other userful attributes including the following:

Example responses

200 Response

{
  "total": 10,
  "limit": 100,
  "skip": 0,
  "data": [
    {
      "name": "Rumunations on thought and action",
      "membershipsCount": 108,
      "startsAt": "2020-04-23T12:11:48.845Z",
      "_endsAt": "2020-04-23T12:11:48.845Z",
      "duration": 60,
      "hasStartDate": true,
      "hasStartTime": true
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Paginated results matching your search. MeetingsData
400 Bad Request Bad input parameter None

createMeeting

Code samples

# You can also use wget
curl -X POST https://api.pathable.co/v1/meetings \
  -H 'Content-Type: application/json' \
  -H 'X-API-KEY: API_KEY'

POST https://api.pathable.co/v1/meetings HTTP/1.1
Host: api.pathable.co
Content-Type: application/json

var headers = {
  'Content-Type':'application/json',
  'X-API-KEY':'API_KEY'

};

$.ajax({
  url: 'https://api.pathable.co/v1/meetings',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "name": "Rumunations on thought and action",
  "membershipsCount": 108,
  "startsAt": "2020-04-23T12:11:48.845Z",
  "_endsAt": "2020-04-23T12:11:48.845Z",
  "duration": 60,
  "hasStartDate": true,
  "hasStartTime": true
}';
const headers = {
  'Content-Type':'application/json',
  'X-API-KEY':'API_KEY'

};

fetch('https://api.pathable.co/v1/meetings',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'X-API-KEY' => 'API_KEY'
}

result = RestClient.post 'https://api.pathable.co/v1/meetings',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'X-API-KEY': 'API_KEY'
}

r = requests.post('https://api.pathable.co/v1/meetings', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.pathable.co/v1/meetings");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "X-API-KEY": []string{"API_KEY"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.pathable.co/v1/meetings", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /meetings

Create a new meeting.

Creates a new meeting in the agenda of the community associated with your API Key.

Body parameter

{
  "name": "Rumunations on thought and action",
  "membershipsCount": 108,
  "startsAt": "2020-04-23T12:11:48.845Z",
  "_endsAt": "2020-04-23T12:11:48.845Z",
  "duration": 60,
  "hasStartDate": true,
  "hasStartTime": true
}

Parameters

Name In Type Required Description
body body Meeting false Meeting object to add to the community associated with your API key.

Responses

Status Meaning Description Schema
201 Created Meeting succesfully created. None
400 Bad Request Invalid input. None

getMeeting

Code samples

# You can also use wget
curl -X GET https://api.pathable.co/v1/meetings/{id} \
  -H 'Accept: application/json' \
  -H 'X-API-KEY: API_KEY'

GET https://api.pathable.co/v1/meetings/{id} HTTP/1.1
Host: api.pathable.co
Accept: application/json

var headers = {
  'Accept':'application/json',
  'X-API-KEY':'API_KEY'

};

$.ajax({
  url: 'https://api.pathable.co/v1/meetings/{id}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'X-API-KEY':'API_KEY'

};

fetch('https://api.pathable.co/v1/meetings/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'X-API-KEY' => 'API_KEY'
}

result = RestClient.get 'https://api.pathable.co/v1/meetings/{id}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'X-API-KEY': 'API_KEY'
}

r = requests.get('https://api.pathable.co/v1/meetings/{id}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.pathable.co/v1/meetings/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "X-API-KEY": []string{"API_KEY"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.pathable.co/v1/meetings/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /meetings/{id}

Get a profile by ID.

Get a meeting belonging to the community associated with your API key matching the provided ID.

Parameters

Name In Type Required Description
id path integer(uuid) true The primary ID for this item.

Example responses

200 Response

{
  "name": "Rumunations on thought and action",
  "membershipsCount": 108,
  "startsAt": "2020-04-23T12:11:48.846Z",
  "_endsAt": "2020-04-23T12:11:48.846Z",
  "duration": 60,
  "hasStartDate": true,
  "hasStartTime": true
}

Responses

Status Meaning Description Schema
200 OK The meeting matching the provided ID. Meeting
404 Not Found Meeting not found by the provied ID. None

removeMeeting

Code samples

# You can also use wget
curl -X DELETE https://api.pathable.co/v1/meetings/{id} \
  -H 'Accept: application/json' \
  -H 'X-API-KEY: API_KEY'

DELETE https://api.pathable.co/v1/meetings/{id} HTTP/1.1
Host: api.pathable.co
Accept: application/json

var headers = {
  'Accept':'application/json',
  'X-API-KEY':'API_KEY'

};

$.ajax({
  url: 'https://api.pathable.co/v1/meetings/{id}',
  method: 'delete',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'X-API-KEY':'API_KEY'

};

fetch('https://api.pathable.co/v1/meetings/{id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'X-API-KEY' => 'API_KEY'
}

result = RestClient.delete 'https://api.pathable.co/v1/meetings/{id}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'X-API-KEY': 'API_KEY'
}

r = requests.delete('https://api.pathable.co/v1/meetings/{id}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.pathable.co/v1/meetings/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "X-API-KEY": []string{"API_KEY"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://api.pathable.co/v1/meetings/{id}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE /meetings/{id}

Remove an existing meeting.

Permanently remove an existing meeting using the provided ID in the community associated with your API key. Also removes any related data such as files or the links between people and meetings, but does not remove any profile information (e.g. speaker profiles).

Parameters

Name In Type Required Description
id path integer(uuid) true The primary ID for this item.

Example responses

200 Response

{
  "name": "Rumunations on thought and action",
  "membershipsCount": 108,
  "startsAt": "2020-04-23T12:11:48.846Z",
  "_endsAt": "2020-04-23T12:11:48.846Z",
  "duration": 60,
  "hasStartDate": true,
  "hasStartTime": true
}

Responses

Status Meaning Description Schema
200 OK OK Meeting
404 Not Found Meeting could not be found by the provided ID and the community associated with your API key. None

Schemas

AttributesData

{
  "total": 100,
  "data": {
    "_id": "CvKTvbGotZB5SvCzA",
    "communityId": "CvKTvbGotZB5SvCzA",
    "name": "firstName",
    "type": "string"
  }
}

Properties

Name Type Required Restrictions Description
total number false none none
data Attribute false none none

Attribute

{
  "_id": "CvKTvbGotZB5SvCzA",
  "communityId": "CvKTvbGotZB5SvCzA",
  "name": "firstName",
  "type": "string"
}

Properties

Name Type Required Restrictions Description
_id string(uuid) true none none
communityId string(uuid) true none none
name string true none none
type string false none none

Person

{
  "_id": "9CAGFxNsxtHeJ5LkX",
  "accountId": "CvKTvbGotZB5SvCzA",
  "userId": "WRcjScevqdJeuNufE",
  "firstName": "John",
  "lastName": "Smith",
  "email": "john@acme.com",
  "profiles": [
    {
      "firstName": "John",
      "lastName": "Smith",
      "credentials": "CMP",
      "description": "About me and my company.",
      "companyName": "Acme, Inc.",
      "title": "President",
      "personId": "WRcjScevqdJeuNufE",
      "communityId": "CvKTvbGotZB5SvCzA",
      "membership": {
        "externalId": "1234abc",
        "isVisible": true
      }
    }
  ],
  "membership": {
    "externalId": "1234abc",
    "isVisible": true
  }
}

Properties

Name Type Required Restrictions Description
_id string(uuid) false none none
accountId string(uuid) true none none
userId string(uuid) true none none
firstName string false none none
lastName string false none none
email string(email) false none none
profiles [Profile] false none An array of all the community profiles for this person. Note that this is read-only and cannot be directly updated.
membership Membership false none The membership for this person. Profiles also have a membership with distinct values.

NewPerson

{
  "_email": "john@acme.com",
  "_profile": {
    "firstName": "John",
    "lastName": "Smith",
    "credentials": "CMP",
    "description": "About me and my company.",
    "companyName": "Acme, Inc.",
    "title": "President",
    "_templateId": "e4cjScevqdro9ufE",
    "membership": {
      "externalId": "1234abc",
      "isVisible": true
    }
  }
}

Properties

Name Type Required Restrictions Description
_email string(email) false none An email address applied to the master person record in your account.
_profile NewProfile false none A new profile to apply to the community associated with your API key. If this person already has a profile at this community, an error will be returned.

PeopleData

{
  "total": 10,
  "limit": 100,
  "skip": 0,
  "data": [
    {
      "_id": "9CAGFxNsxtHeJ5LkX",
      "accountId": "CvKTvbGotZB5SvCzA",
      "userId": "WRcjScevqdJeuNufE",
      "firstName": "John",
      "lastName": "Smith",
      "email": "john@acme.com",
      "profiles": [
        {
          "firstName": "John",
          "lastName": "Smith",
          "credentials": "CMP",
          "description": "About me and my company.",
          "companyName": "Acme, Inc.",
          "title": "President",
          "personId": "WRcjScevqdJeuNufE",
          "communityId": "CvKTvbGotZB5SvCzA",
          "membership": {
            "externalId": "1234abc",
            "isVisible": true
          }
        }
      ],
      "membership": {
        "externalId": "1234abc",
        "isVisible": true
      }
    }
  ]
}

Properties

Name Type Required Restrictions Description
total number false none The total number of records matching your search criteria.
limit number false none The amount by which each "page" should be limited. Set this to 0 to quickly return the total count of objects matching your search criteria.
skip number false none The number of records to skip; i.e. the "page" size.
data [Person] false none none

Membership

{
  "externalId": "1234abc",
  "isVisible": true
}

Properties

Name Type Required Restrictions Description
externalId string false none An identifer of any value, internal to your data scheme. Use this to track users using your own ticket ID, registration ID or etc. Note that in your community dashboard the Master External ID comes from the membership object on people and the Event External ID comes from the membership object on profiles.
isVisible boolean false none none

Profile

{
  "firstName": "John",
  "lastName": "Smith",
  "credentials": "CMP",
  "description": "About me and my company.",
  "companyName": "Acme, Inc.",
  "title": "President",
  "personId": "WRcjScevqdJeuNufE",
  "communityId": "CvKTvbGotZB5SvCzA",
  "membership": {
    "externalId": "1234abc",
    "isVisible": true
  }
}

Properties

Name Type Required Restrictions Description
firstName string false none none
lastName string false none none
credentials string false none none
description string false none none
companyName string false none none
title string false none none
personId string(uuid) true none The ID of this profiles master person record.
communityId string(uuid) true none The community ID associated with this profile. This profile and only this profile will be used for this community.
membership Membership false none none

NewProfile

{
  "firstName": "John",
  "lastName": "Smith",
  "credentials": "CMP",
  "description": "About me and my company.",
  "companyName": "Acme, Inc.",
  "title": "President",
  "_templateId": "e4cjScevqdro9ufE",
  "membership": {
    "externalId": "1234abc",
    "isVisible": true
  }
}

Properties

Name Type Required Restrictions Description
firstName string false none none
lastName string false none none
credentials string false none none
description string false none none
companyName string false none none
title string false none none
_templateId string(uuid) false none An optional ID of a campaign template to send to this user when newly created. A default value for this can be configured via your dashboard under Settings > API.
membership Membership false none none

ProfilesData

{
  "total": 10,
  "limit": 100,
  "skip": 0,
  "data": [
    {
      "firstName": "John",
      "lastName": "Smith",
      "credentials": "CMP",
      "description": "About me and my company.",
      "companyName": "Acme, Inc.",
      "title": "President",
      "personId": "WRcjScevqdJeuNufE",
      "communityId": "CvKTvbGotZB5SvCzA",
      "membership": {
        "externalId": "1234abc",
        "isVisible": true
      }
    }
  ]
}

Properties

Name Type Required Restrictions Description
total number false none The total number of records matching your search criteria.
limit number false none The maximum number of records that can be returned.
skip number false none The number of records skipped; i.e. the "page" size.
data [Profile] false none none

MeetingsData

{
  "total": 10,
  "limit": 100,
  "skip": 0,
  "data": [
    {
      "name": "Rumunations on thought and action",
      "membershipsCount": 108,
      "startsAt": "2020-04-23T12:11:48.848Z",
      "_endsAt": "2020-04-23T12:11:48.848Z",
      "duration": 60,
      "hasStartDate": true,
      "hasStartTime": true
    }
  ]
}

Properties

Name Type Required Restrictions Description
total number false none The total number of records matching your search criteria.
limit number false none The maximum number of records that can be returned.
skip number false none The number of records skipped; i.e. the "page" size.
data [Meeting] false none none

Meeting

{
  "name": "Rumunations on thought and action",
  "membershipsCount": 108,
  "startsAt": "2020-04-23T12:11:48.848Z",
  "_endsAt": "2020-04-23T12:11:48.848Z",
  "duration": 60,
  "hasStartDate": true,
  "hasStartTime": true
}

Properties

Name Type Required Restrictions Description
name string false none none
membershipsCount number false none The total number of people attending this meeting.
startsAt string(date) false none The ISO 8601 date (including time) at which this meeting will start.
_endsAt string(date) false none The ISO 8601 date (including time) at which this meeting will end. This value is computed from the startsAt and duration attributes and cannot be set when updating or creating. Instead, change startsAt and duration.
duration number false none The number of minutes this meeting will last.
hasStartDate boolean false none Indicates if this meeting has a start date. Useful because children meetings may not have a start date (or time or duration).
hasStartTime boolean false none Indicates if this meeting has a start time. Useful because children meetings may not have a start time (or date or duration).