PlusPlus API Docs

Warning: the REST API is being DEPRECATED in favor of the new GraphQL API. There will be no updates or improvements to the REST API, new applications should use the new GraphQL standard. The REST API is scheduled to shutdown on December 31rst 2019.  See the GraphQL API docs for more information.

Quickstart

Sample curl request:

curl -H "Authorization: Token 000000000000" https://demo.plusplus.co/api/v1/enrollments/?event__starts_after=2018-06-01&event__starts_before=2019-06-01

Response:

HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
  "count": 1,
  "next": null,
  "previous": null,
  "results": [
    {
      "id": 123,
      "user": {
        "id": 321,
        "employee_id": "73839",
        "url": "https://demo.plusplus.co/users/459/",
        "email": "charlie@plusplus.co",
        "full_name": "Charlie Palmer"
      },
      "event_id": 567,
      "rating": 3,
      "checkin_datetime": "2018-06-14T17:26:11.734251Z",
      "checkin_creator": "checkin_creator": {
        "id": 455,
        "employee_id": "89029292",
        "url": "https://demo.plusplus.co/users/781/",
        "email": "tyler@plusplus.co",
        "full_name": "Tyler Shields"
      }
    },
    ...
  ]
}

HOST URL

Always use your custom domain as the HOST of your requests.

Eg.: https://plusplus.mycustomdomain.com/api/v1/enrollments/

Authorization

Get you API token from within the PlusPlus app via Menu/Settings/Developers. You need to have Admin role.

Authentication is done via the Authorization HTTP header. It should be in the following format:

Authorization: Token {your-api-token}

Notice the word Token before the token value.

Pagination

As showed in the example above, responses will return the desired payload in the results field. The count, next and previous fields can be used to walk through the pages. Whenever next is not null there’s still a page to be fetched before you have the full list of results. Otherwise it will contain the URL you should use to fetch the next 300 items. The max number of results per page is 300 items. This means that if you expect more than this your code should be able to handle pagination.

Resources

Events /api/v1/events/

Sample response:

{
  "count": 1,
  "next": null,
  "previous": null,
  "results": [
    {
      "id": 248,
      "url": "https://demo.plusplus.co/events/248/",
      "organizer": {
        "id": 457,
        "employee_id": "",
        "url": "https://demo.plusplus.co/users/457/",
        "email": "pooja@plusplus.co",
        "full_name": "Pooja Mittal"
      },
      "presenters": [
        {
          "id": 458,
          "employee_id": "",
          "url": "https://demo.plusplus.co/users/458/",
          "email": "tyler@plusplus.co",
          "full_name": "Tyler Shields"
        }
      ],
      "name": "A Taste of Web Development",
      "location_name": "New York City",
      "timeslots": [
        {
            "id": 1,
            "starts_at": "2018-06-14T17:00:00Z",
            "ends_at": "2018-06-14T18:00:00Z",
            "duration": 60,
        }
      ]
      "event_type": "Onboarding",
      "average_feedback_rating": 0.0,
      "is_deleted": false
    }
  ]
}

Querystring Params

  • starts_after (optional)Filter events starting after this date.Format: YYYY-MM-DD, e.g. 2018-03-15
  • starts_before (optional)Filter events starting before this date. Note that an event may be running beyond this date if it’s a multi-day event.Format: YYYY-MM-DD, e.g. 2018-03-15

Enrollments /api/v1/enrollments/

Sample response:

{
  "count": 1,
  "next": null,
  "previous": null,
  "results": [
    {
      "id": 123,
      "user": {
        "id": 321,
        "employee_id": "73839",
        "url": "https://demo.plusplus.co/users/459/",
        "email": "charlie@plusplus.co",
        "full_name": "Charlie Palmer"
      },
      "event_id": 567,
      "rating": 3,
      "checkin_datetime": "2018-06-14T17:26:11.734251Z",
      "checkin_creator": "checkin_creator": {
        "id": 455,
        "employee_id": "89029292",
        "url": "https://demo.plusplus.co/users/781/",
        "email": "tyler@plusplus.co",
        "full_name": "Tyler Shields"
      }
    }
  ]
}

Querystring Params

  • event__starts_after (optional)Filter enrollments for events starting after this date.Format: YYYY-MM-DD, e.g. 2018-03-15
  • event__starts_before (optional)Filter enrollments for events starting before this date. Note that an event may be running beyond this date if it’s a multi-day event.Format: YYYY-MM-DD, e.g. 2018-03-15
  • event__name (optional)Filter events with a name that contains the value passed. Filtering for Onboard will return an event named Engineering Onboard.
  • attendee (optional)Filter enrollments for a particular attendee based on attendee’s email address.
  • modified_date_since (optional)Filter enrollments that have been changed since a particular date. This is useful for pulling the incremental enrollment data.Format: YYYY-MM-DD, e.g. 2018-03-15