The Fuse APIs are all REST APIs that adhere to a sensible set of guidelines. All our APIs will use the following structures consistently.
API Endpoints
Our APIs can be found at: https://api.fuseinsight.com
.
Note
You can use the detailed API reference to see all available endpoints, or find out more about testing using sandbox.
Status Codes
Fuse uses the following status codes across all of our APIs:
Successful Status Codes
200 OK
— Produced a response successfully.201 Created
— The resource was created successfully.204 No Content
— The response was successful but there is no data to return.
Error Status Codes
400 Bad Request
— The request structure did not make sense and could not be executed. Commonly returned when the request parameters are not structured correctly.401 Unauthorized
— The API token being used to access the APIs is not valid. See the "authentication" page for more details.403 Forbidden
— The API token being used to access the APIs does not have access to this resource. See the "authentication" page for more details.404 Not Found
— The resource with that ID could not be found.422 Unprocessible Entity
— The request data did not make sense and could not be executed. Commonly returned when the request parameters are structurally valid, but do not validate.429 Too Many Requests
— The request could not be performed because a rate limit was exceeded. Try this request after some delay.
Responses
The Fuse API generally responds with JSON, with the Content-Type
header set to application/json
.
Some APIs will return HTML, with the Content-Type
header set to text/html
— these are intended to be opened on a user's device.
Successful Responses
For endpoints that create/read/update a resource, that resource will be returned as the response inside a data
property:
{
"data": {
"id": "11111111-2222-3333-4444-555555555555",
"first_name": "Bob",
"last_name": "Fellow",
"email": "[email protected]"
}
}
For endpoints that list resources, an array of resources will be returned inside the data
property:
{
"data": [
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"provider_code": "ob-monzo",
"bank_accounts": [
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"account_name": "Rent",
"account_type": "current"
}
]
}
]
}
The resources will always have the same structure across these types of calls.
For endpoints that delete a resource, the body will be empty.
All of these responses will return one of the successful status codes.
Error Responses
All error responses will return a JSON object with the properties code
(a robot friendly error code) and message
(a human friendly error message).
They will also return with one of the error status codes.
{
"code": 404,
"message": "User Not Found"
}
Types
Fuse uses JSON standard types in request and response bodies. For types that don't have natural JSON representations, the following types are used instead:
- ISO-8601 formatted strings are used for Dates and DateTimes, eg.
"2022-01-01
and"2022-01-01T00:00:00.000Z"
Versioning
API paths are prefixed with a version, eg. /v1
.
APIs within a version can change in the following ways:
- New fields can be added to responses
- New fields can be added to requests, but only when optional
- Bug and security fixes can be applied in a potentially breaking way
Any other change will increment the version and customers will be notified. A timeframe for deprecation of the old version may eventually be given, the length of which will be decided on a case-by-case basis.