Skip to main content
The List API lets you programmatically add, update, and remove entries on all lists that are visible in the web interface, including custom lists. The following endpoints are supported:
  • getLists
  • listEntries
  • addEntries
  • deleteEntries
For playbook patterns that use these endpoints — and for getting xorlab events into your SOAR in the first place — see Automate with a SOAR.

Quickstart

  1. Go to the Admin view in xorlab, and open the API keys configuration. API keys
  2. Create a new API key and store it in a secure location. The key comes with a fixed permission set that only allows manipulating list entries, and nothing else.
  3. Now you can use the key to change lists via the API. Below are some examples.
Use this first to discover which lists are available. For the global scope, set tenantUid to null:
Use this to get the available lists for a specific tenant:
Used placeholders:

Understanding list behavior

Each list has a maximum size. The exact limit depends on the list type and is returned by the getLists endpoint as maxSize. The most important behavior to understand is what happens when a list is already full:
Automatic cleanup of full listsIf a list has reached its maximum size and you add a new entry, xorlab automatically removes the oldest existing entry from that list.
This means:
  • New entries can still always be added
  • The list size never grows beyond its configured maximum
  • Older entries may disappear automatically if the list is already full
If needed, you can still manage list entries manually either through the Lists page or through configuration files in the Expert Editor. However the same automatic cleanup applies.

Accessing custom lists

Custom lists can be accessed via the API in the same way as all built-in lists. The only requirement is:
  • Custom lists needs to have a corresponding .info.json file in the Expert Editor, as described in Adding a custom list.

Support for multi-tenancy

API keys can be created on:
  • the global scope (All tenant selected)
  • a tenant scope (specific tenant selected)
The scope where a key is created determines what it can access.
  • A tenant-scoped key can manipulate list entries only within that tenant
  • A globally scoped key can manipulate list entries for all tenants and for the global scope of the instance
API key for tenant The scope cannot be changed afterward, so create a separate key per automation with the narrowest scope that works. Together with the fixed permission set, this keeps the impact of a leaked key limited to the list entries of one tenant.

Endpoint reference

Each endpoint has its own reference page in the sidebar below this one, generated from the OpenAPI specification: request and response schemas, error codes, and a playground you can call your own instance from.