Overview

The ServiceReef API is designed for organizations to pull data about their account. API is a RESTful API that accepts and returns JSON.

URL Structure

Each request must be made over HTTPS and authorized with a unique API Key, discussed in Authentication section below. A 403 status code will be returned if request is made over HTTP.

API URL

https://api.servicereef.com

Sample Request

https://api.servicereef.com/v1/events

OAuth 2.0 Authentication

The ServiceReef API uses OAuth Client Credentials grant. API keys can be generated from API Keys page in organization profile.

First, client must obtain authorization token from Token Endpoint (https://api.servicereef.com/OAuth/Token)

Example request:

POST https://api.servicereef.com/OAuth/Token HTTP/1.1
grant_type=client_credentials&client_id=APPID&client_secret=KEY

Both APP ID and KEY can be generated from the API Keys page

This endpoint will return a bearer token. All of the subsequent requests made to the API must include the Authorization Header with the following format:

Authorization: Bearer TOKEN

View legacy authentication docs

Paging

Each API endpoint that returns a list of results includes paging that returns the current page, page size, and total number of records.

Errors

Each succesful response will return 200 status code. Invalid request will return 4xx or 5xx codes and an object of class ErrorResult.

Example:

{
  "Message":"Invalid request.",
  "ValidationErrors":
    {
    "Title":["The Title field is required."]
    }
}

API Endpoints

Activities

APIDescription
GET v1/Activities

Get all the activities

Categories

APIDescription
GET v1/categories

Get all of the custom categories for your organization

GET v1/categories/{categoryId}

Returns the details and available options for a particular category

Events

APIDescription
GET v1/events

Returns a list of events for organization

GET v1/events/{eventId}

Get details for a single event

GET v1/events/{eventId}/participants

Returns a list of participants for an event

GET v1/events/{eventId}/payments

Returns a list of payments for this event

POST v1/events/{eventId}/register/{userId}

Register user for an opportunity

GET v1/events/{eventId}/tasks

Returns a list of tasks for this event

GET v1/events/{eventId}/participants/{participantId}/tasks

Returns a list of tasks for event and participant

POST v1/events/{eventId}/tasks/{taskId}/complete

Complete an opportunity task

Forms

APIDescription
GET v1/forms

Returns organization's forms

GET v1/forms/{formId}

Returns organization's form

GET v1/forms/{formId}/responses

Returns answers for completed organization's forms

Groups

APIDescription
GET v1/groups

Returns a list of groups for organization

GET v1/groups/{groupId}

Get details for a single group

Members

APIDescription
GET v1/members

Returns a list of members for organization

GET v1/members/{userId}

Returns details about a member

GET v1/members/external/{userExternalId}

Returns details about a member

GET v1/members/{userId}/forms

Returns answers for forms user has completed

GET v1/members/{userId}/positions

Returns positions assigned to a member

GET v1/members/{userId}/donationsreceived

Returns donations made for a member

GET v1/members/{userId}/files

Returns files associated with a member

POST v1/members/{userId}/externalId

Set external identifier for a member

POST v1/members/create

Create member account in limited status

Partners

APIDescription
GET v1/partners

Returns a list of partners for organization

GET v1/partners/events

Returns a list of opportunities for partners

GET v1/partners/events/{eventId}/participants

Returns a list of participants for a partner opportunity

Payments

APIDescription
GET v1/payments

Returns a list of transactions for an organization including donations and payments

POST v1/payments/add

Create a new donation(transaction)

POST v1/payments/{transactionId}

Update an existing donation(transaction)

DELETE v1/payments/{transactionId}

Delete a donation(fundraising)

Positions

APIDescription
GET v1/positions

Returns organization's positions

GET v1/positions/{positionId}

Returns organization's position

GET v1/positions/{positionId}/members

Returns members assigned to a position

POST v1/positions/add

Add a new position

POST v1/positions/{positionId}

Update a position

POST v1/positions/{positionId}/archive

Archive a position

Tasks

APIDescription
GET v1/tasks

Returns a list of track tasks

Webhooks

APIDescription
PUT v1/webhooks/{id}

Updates the specified webhook

DELETE v1/webhooks/{id}

Removes the specified webhook

GET v1/Webhooks

Lists the webhooks registered for this organization

POST v1/Webhooks

Creates a new webhook