API

The Silosset REST API

Silosset has a REST API, documented with OpenAPI at api.silosset.com/docs. Use it to read your register from another system, add assets from a script, or keep a report of your own up to date.

Authentication

Credentials are issued on request by the Silosset team; there is no self-service screen for them yet. Every request acts as one member and has exactly that member's permissions and locations.

API key

The simplest option for a script or a server. Send the key in the X-API-Key header on every request.

curl
curl -H "X-API-Key: $SILOSSET_API_KEY" \
  "https://api.silosset.com/api/v1/organisations/{organisation_id}/assets?limit=50&skip=0"

OAuth2 client credentials

For a service that should use access tokens rather than a standing key. Exchange the client id and secret for an access token, then send it as a Bearer token.

curl
curl -X POST https://api.silosset.com/api/v1/oauth/token \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d grant_type=client_credentials \
  -d client_id=$SILOSSET_CLIENT_ID \
  -d client_secret=$SILOSSET_CLIENT_SECRET \
  -d client_email=integration@your-company.com

# Then send the access token on every request:
#   Authorization: Bearer <access_token>

Organisation-scoped endpoints

Every endpoint for your data sits under your organisation's id, which is the part after /o/ in the address when you are signed in to app.silosset.com. Lists return the total in an X-Total-Count header. A few of the most used:

MethodPathWhat it does
GET/api/v1/organisations/{organisation_id}/assetsList assets, 20 at a time by default (limit up to 200, skip)
POST/api/v1/organisations/{organisation_id}/assets/filteredSearch and filter assets by status, location, category, tag or assignee
GET/api/v1/organisations/{organisation_id}/assets/{asset_id}Read one asset
GET/api/v1/organisations/{organisation_id}/assets/{asset_number}/tag-numberLook an asset up by its tag number
POST/api/v1/organisations/{organisation_id}/assetsAdd an asset
POST/api/v1/organisations/{organisation_id}/assets/{asset_id}/histories/filteredRead an asset's history of changes
GET/api/v1/organisations/{organisation_id}/locationsList locations
GET/api/v1/organisations/{organisation_id}/categoriesList categories
GET/api/v1/organisations/{organisation_id}/assigneesList the people and companies assets are issued to
POST/api/v1/organisations/{organisation_id}/assignments/filteredList assignments of assets to people
POST/api/v1/organisations/{organisation_id}/maintenances/filteredList maintenance work orders

The full list, with every field and response, is in the API docs.

Examples

Filter the register the same way the asset list in Silosset does, or page through it from a script.

Filter assets (curl)
curl -X POST \
  -H "X-API-Key: $SILOSSET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"search": "laptop", "statuses": ["assigned"], "sort_by": "name", "order_by": "asc"}' \
  "https://api.silosset.com/api/v1/organisations/{organisation_id}/assets/filtered"
List assets (Python)
import os
import requests

ORGANISATION_ID = "your-organisation-id"
response = requests.get(
    f"https://api.silosset.com/api/v1/organisations/{ORGANISATION_ID}/assets",
    headers={"X-API-Key": os.environ["SILOSSET_API_KEY"]},
    params={"limit": 50, "skip": 0},
)
response.raise_for_status()
print(response.headers["X-Total-Count"], "assets in total")
for asset in response.json():
    print(asset["asset_number"], asset["name"])

How to get a key

Talk to us and we set it up with you. Every message gets a reply within 24 hours.

  1. 1

    Tell us what you are building

    Email support@silosset.com or use the contact form. Say which organisation it is for and whether an API key or OAuth2 client credentials suit you better.

  2. 2

    Choose the member it acts as

    A key belongs to a member account. Give that member only the permissions and locations the integration needs.

  3. 3

    Receive your credentials

    We issue the key or client credentials to you directly. Keep them on your server, never in a browser or a shared document.

Good to know

A few things that save time when you first connect.

  • Requests can only reach the organisations, locations and actions the member behind the key is allowed
  • Asset lists return at most 200 assets per request; use skip to page through the rest
  • File links in responses are signed and expire after a short time, so fetch files when you need them

Connect Silosset to your systems

Tell us what you want to connect and we will issue credentials and point you at the right endpoints.