API Responses
Overview
The Ittybit API returns JSON encoded responses.
Each successful response includes:
meta
: containing information about the requestdata
: containing the resource (ornull
if there was an error)error
: containing any error messages (ornull
if request succeeded).links
: containing related and page information
Success Responses
Success responses will return either an object or a list of objects, depending on the endpoint.
The meta.type
prop will indicate whether the response is a list or an object.
For list responses with no results, the data
prop will be an empty array.
Error Responses
If the Ittybit API encounters an error, it will include an error
object in the response.
The error
object will contain a human-readable message
explaining the issue.
Error responses will contain an empty data
prop ("data": null
).
Meta
The meta
prop will include the following properties:
-
request_id
stringThe unique ID for the request. If you need to contact support about an issue, including a
request_id
is super helpful. -
org_id
stringThe ID of the org the API Key belongs to
-
project_id
stringThe ID of the project the API Key belongs to
-
version
stringThe version of the API that was used to process the request
-
type
enum ['object', 'list', 'error']The type of the data returned in the response (
object
orlist
), orerror
if an error occurred.
Links
Both success
and error
responses include a links
prop containing endpoints you can use to access additional resources 1, for example the next page in a list of results, or the parent resource of an object.
Possible links
properties:
-
self
stringThe URL of the resource itself
-
parent
stringThe URL of the parent resource (usually a list endpoint)
-
first
stringThe URL of the first page in a list of results
-
next
string | nullThe URL of the next page in a list of results
-
prev
string | nullThe URL of the previous page in a list of results
-
last
stringThe URL of the last page in a list of results
Status Codes
The Ittybit API uses standard HTTP response codes to indicate the success or failure of an API request.
Status Code | Description | When You'll See It |
---|---|---|
200 OK | Request succeeded | The most common success response, returned when a request completes successfully |
201 Created | Resource created | Returned when a new resource is successfully created via a POST request |
202 Accepted | Request accepted | The request was accepted for processing, but the processing may not have completed yet |
400 Bad Request | Invalid request | The request was malformed or missing required parameters |
401 Unauthorized | Authentication failed | No API key was provided or the provided key was invalid |
402 Payment Required | Payment issue | Your account has billing issues or has reached its quota limit |
403 Forbidden | Permission denied | Your API key doesn't have permission to access the requested resource |
404 Not Found | Resource not found | The requested resource doesn't exist or was deleted |
405 Method Not Allowed | Invalid HTTP method | The HTTP method used is not supported for this endpoint |
429 Too Many Requests | Rate limit exceeded | You've exceeded the allowed number of requests per time period |
500 Internal Server Error | Server error | Something went wrong on our servers (we're automatically notified) |
503 Service Unavailable | Service offline | The API is temporarily unavailable, usually due to maintenance |
In general:
- codes in the
2xx
range indicate success - codes in the
4xx
range indicate an error that failed given the information provided (e.g. a required parameter was omitted, a request was not authorised, etc). Theerror
prop will contain amessage
explaining the issue. - codes in the
5xx
range indicate there is an error with Ittybit's service
Rate Limits
The Ittybit API has rate limits in place to ensure fair usage and to protect the service from abuse.
If you exceed the rate limits, you will receive a 429 Too Many Requests
response. The response will include a Retry-After
header indicating how many seconds you should wait before making another request.
If you are concerned that you might exceed the rate limits, please contact support to discuss your requirements and we will be happy to set-up custom limits for your project.
Report issues
Please do contact support if you are receiving unexpected errors, particularly if you are receiving 5xx
errors.
We'll work with you to solve the problem asap.
Footnotes
-
We have consciously chosen not to include a complete hypermedia implementation. The limited extra functionality is not worth increased response size for every request. Take away our RESTful badge if you want, we don't care. 😊 ↩