Reach 360: Introduction to Reach 360 API
Article Last Updated
This article applies to:
The Reach 360 API is organized around REST. Our API has predictable resource-oriented URLs, accepts JSON-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response codes, authentication, and verbs.
Your Reach 360 API requests will use the URL https://api.reach360.com. For the latest updates, see the Changelog.
Click here to learn how to generate API keys in Reach 360.
Authentication
Your API Key is used to authenticate requests and identifies your Reach 360 account. It should be stored securely: make sure it is kept out of version control, and can only be accessed by those who need it. Treat it like any other password.
All API requests must use Bearer Authentication: your API Key must be provided as a Bearer Token in the Authorization
header. All API requests must be made over HTTPS. Calls made over plain HTTP will fail. API requests without authentication will also fail.
Versioning
When changes are made to our API that aren't backward-compatible, we'll release a new, dated API version. The initial API version of 2023-04-04
will be assumed when your requests do not include a API-Version
header.
When an invalid API version header is provided you will receive a 400 response with the error code invalid_api_version
. Successful API requests will include a API-Version
response header, indicating which API version your request was processed using.
Whenever a new API version is released, we call it out explicitly in our Changelog, in addition to creating a new entry on the API Versions page.
Example Request
curl -i <https://api.reach360.com/users> \\ -H "Authorization: Bearer $API_KEY" -H "API-Version: 2020-07-16"
Pagination
All paginated endpoints are cursor-based and return a nextUrl
property. If not null
, nextUrl
indicates that there may be additional results. A GET
request can be made to the nextUrl
URL to get the next page of results. A nextUrl
of null
indicates there are no further results. All paginated endpoints support a limit
query string parameter that specifies the maximum number of results to return in a single response. All endpoints that return a list of results support pagination.
Note: The limit
value must be between 1 and 100 (except where otherwise noted; and defaults to 50 if not specified).
Endpoints Supporting Pagination
GET /courses
GET /groups
GET /groups/{groupId}/users
GET /invitations
GET /learning-paths
GET /learning-paths/{learningPathId}
GET /learning-paths/{learningPathId}/courses
GET /reports/activity
GET /reports/courses/{courseId}
GET /reports/learners/{userId}
GET /reports/learning-paths/{learningPathId}/courses
GET /reports/learning-paths/{learningPathId}/learners
GET /users
GET /users/{userId}/groups
GET /webhooks
Errors
A 400 response containing a list of errors
will be returned when the request is not valid. Some common error codes include:
validation_failed
: The request body has a validation errorinvalid_email
: Theemail
property is not a correctly formatted email addressmissing_api_key
: The request is missing an API Keyinvalid_api_key
: The API Key provided is invalid
Example Response
{ "errors" : [ { "code" : "invalid_email", "message" : "\\"email\\" must be a valid email" } ] }
Support
We're excited for you to connect Reach 360 with the tools you use most. Support can confirm if API calls are working as expected, but we can't help with writing custom script or debugging third-party applications.
If you do run into an issue, we'll do our best to help you troubleshoot by asking for:
- The simplest version of the call you're making with the API
- Whether the problem can be replicated outside of your application
- Request headers, response headers (including the X-Request-Id header), request bodies, and response bodies
Reach out to our team and let us know what's happening. We'll take it from there!