Access to the API must be achieved through an OAuth flow or by having a user that is logged in to the system (with a session, etc).
When communicating with the API, developers must set a header in the HTTP request to specify which version of the API they want to use:
| Header Name | Value | Version Accessed |
|---|---|---|
'Accept' |
'application/vnd.exercises.openstax.v1' |
v1 |
Many of the API specifications provide a related JSON schema. These schemas are based on the standard defined at http://json-schema.org/. A lot of these schemas aren’t overly specific to the actions they are listed under, e.g. they always say that an id is required but that isn’t the case when new data is being posted to a create call.
| Resource | Description |
|---|---|
| GET /api/books | Returns a list of books in both the ABL and some archive version or latest |
| GET /api/books/:uuid | Returns a list of pages in some book |
| Resource | Description |
|---|---|
| GET /api/exercises | Return a set of Exercises matching query terms |
| GET /api/exercises/search | Return a set of Exercises matching query terms |
| POST /api/exercises/search | Return a set of Exercises matching query terms |
| POST /api/exercises | Creates an Exercise |
| GET /api/exercises/:uid | Gets the specified Exercise |
| PUT /api/exercises/:uid | Updates the specified Exercise |
| DELETE /api/exercises/:uid | Deletes the specified Exercise |
| Resource | Description |
|---|---|
| PUT /api/object_name/:object_uid/publish | Publishes the specified object |
| Resource | Description |
|---|---|
| GET /api/users | Return a set of Users matching query terms |
| GET /api/user | Gets the current user's profile |
| PATCH /api/user | Updates the current user's profile |
| DELETE /api/user | Disables the current user's account |
| Resource | Description |
|---|---|
| GET /api/vocab_terms | Return a set of VocabTerms matching query terms |
| GET /api/vocab_terms/search | Return a set of VocabTerms matching query terms |
| POST /api/vocab_terms/search | Return a set of VocabTerms matching query terms |
| POST /api/vocab_terms | Creates a VocabTerm |
| GET /api/vocab_terms/:uid | Gets the specified VocabTerm |
| PUT /api/vocab_terms/:uid | Updates the specified VocabTerm |
| DELETE /api/vocab_terms/:uid | Deletes the specified VocabTerm |