Our API responds with a JSON serialized object in the body. Any exceptions to this will be noted below.
| Status Code | Name | Description |
|---|---|---|
| 200 | OK |
Standard response for successful requests. Example:
HTTP/1.1 200 OK
Content-Length: 27
Content-Type: application/json
{"id":1,"name":"Full Time"}
|
| 201 | Created |
The request was fulfilled and resulted in a new resource being created. An HTTP Location header is included in the response. Example:
HTTP/1.1 201 Created
Content-Length: 665
Content-Type: application/json
Location: https://www.newbrunswickjobs.ca/api/v1.1/jobs/183668
{
"id":183668,
"title":"Account Manager",
...
}
|
| 204 | No Content |
Resource was successfully deleted. Example:
HTTP/1.1 204 No Content
|
With the exception of 204 status (which doesn't contain a response body), all success responses will contain a JSON serialized object.
When returning a single object (e.g. a PositionType), the response body will contain a JSON serialized object graph.
Example:
{
"id":1,
"name":"Full Time"
}
When returning a list, an array of objects will be wrapped in a data property.
Example:
{
"data":[
{"id":1,"name":"Full Time"},
{"id":2,"name":"Part Time"},
{"id":3,"name":"Contract"},
{"id":4,"name":"Temp"},
{"id":5,"name":"Volunteer"}
]
}
If lists are long, the API returns partial results in a single page. The representation includes a paging object with the following properties:
| Property | Type | Description |
|---|---|---|
| total | Int32 | Total number of records available. |
| pageSize | Int32 | The size of a page. |
| page | Int32 | The current page. |
| pages | Int32 | Total number of pages. |
| previous | String | URI to the previous page if it exists. If it doesn't exist, this will be empty string. |
| next | String | URI to the next page if it exists. If it doesn't exist, this will be empty string. |
Example:
{
"data":[
{
"id":183668,
"title":"Account Manager",
"locations":[
{"id":156,"description":"Vancouver, BC","name":"Vancouver","type":"Town"},
{"id":405,"description":"Whistler, BC","name":"Whistler","type":"Town"}
],
"employer":{
"id":72,
"name":"Pure Media Designs"
},
"referenceId":null,
"publishDate":"2013-03-28",
"confidential":false,
"status":"active"
},
...
],
"paging":{
"total":25,
"previous":null,
"page":1,
"pages":3,
"next":"https://www.newbrunswickjobs.ca/jobs?pageSize=10&page=2",
"pageSize":10
}
}
| Status Code | Name | Description |
|---|---|---|
| 400 | Bad Request |
The request was invalid. Please review the message and try again. Example:
HTTP/1.1 400 Bad Request
Content-Length: 60
Content-Type: application/json
{"message":"Email is invalid.","type":"ValidationException"}
|
| 401 | Unauthorized |
Not authorized to make the request. Example:
HTTP/1.1 401 Unauthorized
Content-Length: 123
Content-Type: application/json
{"message":"Not authorized to access job: 202038","type":"UnauthorizedAccessException"}
|
| 403 | Forbidden |
Attempted to perform an operation that is forbidden. Example:
HTTP/1.1 403 Forbidden
Content-Length: 65
Content-Type: application/json
{"message":"Insufficient job post credit.","type":"InsufficientCreditException"}
|
| 404 | Not Found |
Resource was not found. Example:
HTTP/1.1 404 Not Found
Content-Length: 65
Content-Type: application/json
{"message":"Job ID 183668 not found.","type":"NotFoundException"}
404 responses can also return plain text. When it does, there's a known issue where the Content-Type header still declares application/json when it should be text/plain. Example:
HTTP/1.1 404 Not Found
Content-Type: application/json
Content-Length: 9
Not Found
|
| 405 | Method Not Allowed |
The method (aka verb) used is not allowed. 405 responses return plain text instead of JSON. Example:
HTTP/1.1 405 Method Not Allowed
Content-Type: text/plain
Content-Length: 18
Method Not Allowed
|
| 500 | Internal Server Error |
An unexpected error occurred on the server. Example:
HTTP/1.1 500 Internal Server Error
Content-Length: 52
Content-Type: application/json
{"message":"Argument is undefined."}
|
| 503 | Service Unavailable |
Server is undergoing maintenance and is not available. 503 responses return HTML instead of JSON. |
When the error response returns JSON, the following properties will be available.
| Property | Always Available | Description | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| message | ✓ | Error message. | ||||||||||||||||||||||||
| type |
Type of error will be one of the following:
|
Example:
{
"message":"Email is invalid.",
"type":"ValidationException"
}
All dates and times in requests and responses are represented in Pacific time in ISO 8601 format. Dates without a time part will look like this:
2013-03-25
Dates with a time part will look like this:
2013-03-25T13:00