Skip to main content
All requests to the Smokeball API require a valid API key issued by Smokeball and an access token (see Authentication). Make sure to include the appropriate scopes in your app settings before attempting any API requests.

Example Request

string
required
Client authentication key issued by Smokeball.Used to identify the application making the request. Example: Y2xpZW50X2lkOmNsaWV
string
required
Bearer token for user authentication.Must be prefixed with Bearer.Example: Bearer eyJraWQiOiJseVpBaHdjSW5UdVl6U...
Response

Paged Responses

You will notice that some requests will have the optional parameters limit and offset. These are used to control how many results are returned in a request that returns a list of results. In the response above, you can see the details of the paging properties in the first section of the response:
Paging Properties
By default, the limit will be set to a maximum of 500 results.

Server-to-Server requests

The details below apply only if your Client Credentials Grant allows access to multiple accountsIt does not apply for Private Apps created via the Developer Console, which are restricted to a single account.If your app was created from the Developer Console, you can ignore this section.
When using the Client Credentials Grant to perform server-to-server requests, and your credentials are authorized to access more than one account, you must explicitly specify which account you are targeting by prefixing the URL with the accountId in this format:
https://api.smokeball.com/{accountId}/{resource-path}
For example, using the contacts resource, a typical URL would be:
https://api.smokeball.com/contacts/
But for a server-to-server request specifying the accountId: ea4ca7b9-b826-4840-a8k5-94e6c6937c65, the URL becomes:
Response
Note: All links in the response will include the accountId prefix:

Acting on behalf of a user

Because server-to-server requests are not performed using a user token there is no userId associated with each request. A userId is necessary for permission checking or ensuring that the UI reflects the change done by the specified user. To act on behalf of a certain user simply supply the UserId header with your requests. The value must be that of a User in the firm.

Tracking your requests

Since all POST/PUT requests are handled asynchronously by the Smokeball API, it is useful to be able to track the changes especially when using Webhooks. This is acheived by supplying the RequestId header with your requests. If the RequestId header is supplied, it will be returned as a response header for every request you make. It will also be included in all webhook callbacks so you can track what data was impacted by your request.