Authentication

Handles authenticating and logging out a user for your app

APIDescription
POST api/v1/Authentication/Login

Logs in a user

POST api/v1/Authentication/Logout

Logs a user out.

POST api/v1/Authentication/TokenLogin

Reauthenticates a user by their login token generated during a normal login.

POST api/v1/Authentication/RequestPasswordReset?suppressResponseCodes={suppressResponseCodes}&APIKey={APIKey}&APIToken={APIToken}

Sends a password reset request to the provided user

POST api/v1/Authentication/FinishPasswordReset

Allows the user to finish their password reset using the reset code we send to their email.

Commitment

APIDescription
GET api/v1/Commitments

Gets the user's commitments. The default date range returns this week and three weeks forward.

GET api/v1/Commitments/Team/{teamID}

Gets the commitments for all users on the team. The logged in user should either be on the team, or one of its parent teams, or an admin level user. The default date range returns this week and three weeks forward.

GET api/v1/Commitments/User/{userID}

Gets the commitments for a specific user. The logged in user should either share a team, or be in one one of the target user's parent teams, or an admin level user. The default date range returns this week and three weeks forward.

GET api/v1/Commitments/{id}

Gets a specific commitment

DELETE api/v1/Commitments/{id}?suppressResponseCodes={suppressResponseCodes}&APIKey={APIKey}&APIToken={APIToken}

Deletes the given commitment

PUT api/v1/Commitments/{id}

Updates an existing commitment

POST api/v1/Commitments

Creates a new commitment

Company

APIDescription
GET api/v1/Company

Gets basic information about the user's company

Goal

APIDescription
GET api/v1/Goals/{id}

Gets a specific goal and all of its first level relationships to other goals. Only returns active goals.

GET api/Teams/{id}/Goals

Returns an collection of goals for a given team ID

DELETE api/v1/Goals/{id}?suppressResponseCodes={suppressResponseCodes}&APIKey={APIKey}&APIToken={APIToken}

Deletes a goal by its ID

PATCH api/v1/Goals/{id}

Undeletes a goal by its ID

DELETE api/v1/Goals/{id}/Retire?suppressResponseCodes={suppressResponseCodes}&APIKey={APIKey}&APIToken={APIToken}

Retires a goal by its ID

PATCH api/v1/Goals/{id}/UnRetire

Unretire a goal by its ID

PUT api/v1/Goals/{id}

Updates an existing goal

POST api/v1/Goals

Create a new goal

GET api/v1/Goals/Waypoints

Returns all of the waypoints for a collection of goal IDs

PUT api/v1/Goals/{id}/Waypoints

Synchronize a list of waypoints with the existing waypoints on a goal.

GET api/v1/Goals/{id}/Periods

Returns all goal history/periods for a goal ID

Organizational Unit

APIDescription
GET api/v1/OrganizationalUnits

Gets all of the OUs the user can see

GET api/v1/OrganizationalUnits/{id}

Get an Organizational Unit by its ID

POST api/v1/OrganizationalUnits

Create a new Organizational Unit

PUT api/v1/OrganizationalUnits/{id}?suppressResponseCodes={suppressResponseCodes}&APIKey={APIKey}&APIToken={APIToken}

Allows the name or external ID (does NOT have to be unique, but likely should be...) of an OU to be updated. Will ignore other properties.

DELETE api/v1/OrganizationalUnits/{id}?suppressResponseCodes={suppressResponseCodes}&APIKey={APIKey}&APIToken={APIToken}

Delete an OU by its ID

GET api/v1/OrganizationalUnits/ByExternalID/{externalID}

Retrieve an OU(s) by its external ID (could be multiple if identical external IDs exist)

PATCH api/v1/OrganizationalUnits/{id}/Parent/{parentID}?suppressResponseCodes={suppressResponseCodes}&APIKey={APIKey}&APIToken={APIToken}

Change the parent ID of an OU to something else

DELETE api/v1/OrganizationalUnits/{id}/Parent?suppressResponseCodes={suppressResponseCodes}&APIKey={APIKey}&APIToken={APIToken}

Remove the parent of an OU

GET api/v1/OrganizationalUnits/ByParent/{parentID}

Most common usage of this method is to retrieve the top level OUs (Guid.Empty)

GET api/v1/OrganizationalUnits/SessionOUs/Mine

Will get all of the OUs that house the Session Teams that a user is on.

GET api/v1/OrganizationalUnits/{id}/SessionTeams/Mine

Will get all of the Session Teams that a user is on in a specific OU

Sustainability Index

APIDescription
GET api/v1/SustainabilityIndex/Teams/{teamID}

Gets the Sustainability Index for a team for the given date range. The default start date starts seven (7) weeks before the most recent Sunday and goes six (6) weeks from there.

GET api/v1/SustainabilityIndex/OrganizationalUnits/{ouID}/{week}

Gets the 1 Week and 6 Week Sustainability Index for a team

Team

APIDescription
GET api/v1/Teams/{id}

Gets a specific team

DELETE api/v1/Teams/{id}?suppressResponseCodes={suppressResponseCodes}&APIKey={APIKey}&APIToken={APIToken}

Delete a team

POST api/v1/Teams

Create a new team

GET api/OrganizationalUnits/{ouID}/Teams

Get the Teams for a given OU

PUT api/v1/Teams/{id}/Leader/{userid}?suppressResponseCodes={suppressResponseCodes}&APIKey={APIKey}&APIToken={APIToken}

Change the leader of the team

GET api/v1/Teams/{id}/Users

Get the users on a given team

POST api/v1/Teams/{id}/Users/{userid}/{observer}?suppressResponseCodes={suppressResponseCodes}&APIKey={APIKey}&APIToken={APIToken}

Add a user to a team

DELETE api/v1/Teams/{id}/Users/{userid}?suppressResponseCodes={suppressResponseCodes}&APIKey={APIKey}&APIToken={APIToken}

Delete a user from a team

PUT api/v1/Teams/{id}/Users/Order?suppressResponseCodes={suppressResponseCodes}&APIKey={APIKey}&APIToken={APIToken}

Will change the order of the session team members to whatever the order is of the list provided.

GET api/v1/Teams/{id}/Parents

Get the collection of parents for a given team

GET api/v1/Teams/{id}/Children

Get the collection of children for a given team

POST api/v1/Teams/{id}/Parents/{parentid}?suppressResponseCodes={suppressResponseCodes}&APIKey={APIKey}&APIToken={APIToken}

Add a parent to a given team

POST api/v1/Teams/{id}/Children/{childID}?suppressResponseCodes={suppressResponseCodes}&APIKey={APIKey}&APIToken={APIToken}

Add a child to a given team

DELETE api/v1/Teams/{id}/Parents/{parentid}?suppressResponseCodes={suppressResponseCodes}&APIKey={APIKey}&APIToken={APIToken}

Remove a parent from a given team

DELETE api/v1/Teams/{id}/Children/{childID}?suppressResponseCodes={suppressResponseCodes}&APIKey={APIKey}&APIToken={APIToken}

Removes a child from a given team

GET api/v1/Teams/{id}/SessionUsers

Get all of the session users for a team

GET api/Users/{userID}/SessionTeams

Get session teams for a specific user

GET api/SessionTeams/Mine

Get session teams for logged in user

PUT api/v1/Teams/{id}/Name?suppressResponseCodes={suppressResponseCodes}&APIKey={APIKey}&APIToken={APIToken}

Change the name of a given team

User

APIDescription
PUT api/v1/Users/{id}/Password?suppressResponseCodes={suppressResponseCodes}&APIKey={APIKey}&APIToken={APIToken}

Change password for given user

PATCH api/v1/Users/{id}/Unlock?suppressResponseCodes={suppressResponseCodes}&APIKey={APIKey}&APIToken={APIToken}

Unlock a given user

DELETE api/v1/Users/{id}?suppressResponseCodes={suppressResponseCodes}&APIKey={APIKey}&APIToken={APIToken}

Delete a given user

PATCH api/v1/Users/{id}/UnDelete?suppressResponseCodes={suppressResponseCodes}&APIKey={APIKey}&APIToken={APIToken}

UnDelete a given user

PATCH api/v1/Users/{id}/MustChangePassword?suppressResponseCodes={suppressResponseCodes}&APIKey={APIKey}&APIToken={APIToken}

Set a password change requirement on a given user

POST api/v1/Users

Create a new user

GET api/v1/Users/Me

Gets the logged in user

PATCH api/v1/Users/{id}/FullName?suppressResponseCodes={suppressResponseCodes}&APIKey={APIKey}&APIToken={APIToken}

Update user first and last name