Help center

List libraries

Reference for GET /libraries, which returns every library the workspace can see in one response, own libraries first.

Business plan Updated
On this page
  1. Parameters
  2. Request
  3. Response
  4. Errors
Shell
GET https://app.sopcompass.com/api/v1/libraries

Scope: read only or read and write. Paginated: no; everything in one response.

Returns the workspace’s own libraries, then any libraries shared into it from another workspace. Own libraries are ordered by their board’s position, then their position on the board; shared-in libraries follow in the same way. Use a library’s id as library_id on GET /sops or POST /sops.

Parameters

None.

Request

Shell
curl https://app.sopcompass.com/api/v1/libraries \
  -H "Authorization: Bearer $SOPCOMPASS_API_KEY"
JavaScript
const res = await fetch("https://app.sopcompass.com/api/v1/libraries", {
  headers: { Authorization: `Bearer ${process.env.SOPCOMPASS_API_KEY}` },
});
const { data: libraries } = await res.json();
const writable = libraries.filter((l) => !l.shared);
Python
import os
import requests

res = requests.get(
    "https://app.sopcompass.com/api/v1/libraries",
    headers={"Authorization": f"Bearer {os.environ['SOPCOMPASS_API_KEY']}"},
    timeout=30,
)
libraries = res.json()["data"]
writable = [lib for lib in libraries if not lib["shared"]]

Response

200 OK

JSON
{
  "data": [
    {
      "id": "3f6b2c1e-8a4d-4c7e-9b1a-2d5e7f8a9b01",
      "title": "Hiring",
      "description": "Everything from offer letter to first week.",
      "board_id": "9a1c4e2b-6d3f-4b8a-8c7e-1f2a3b4c5d02",
      "board_name": "Company",
      "default_departments": ["hr_people"],
      "sop_count": 6,
      "shared": false,
      "shared_from": null,
      "created_at": "2026-08-30T12:00:00.000000Z"
    },
    {
      "id": "4a6c8e0b-2d4f-4a1c-8e3a-5c7e9b1d3f07",
      "title": "Client sites",
      "description": null,
      "board_id": "1b3d5f7a-9c2e-4a6b-8d0f-2a4c6e8b0d14",
      "board_name": "Fulfillment and delivery",
      "default_departments": ["operations"],
      "sop_count": 14,
      "shared": false,
      "shared_from": null,
      "created_at": "2026-08-30T12:04:51.338120Z"
    },
    {
      "id": "e6a8c0d2-4f6b-4a8c-9e0d-4f6b8d0a2c12",
      "title": "Brand standards",
      "description": "Logo, colors and uniform rules for every franchise.",
      "board_id": "5d7f9b1c-3e5a-4c7e-8b9d-1f3a5c7e9b20",
      "board_name": "Company",
      "default_departments": [],
      "sop_count": 3,
      "shared": true,
      "shared_from": "Acme Head Office (example)",
      "created_at": "2026-07-14T10:22:08.915003Z"
    }
  ]
}
Field Type Description
id UUID The library’s id.
title string The library’s title.
description string or null The library’s description.
board_id UUID The board the library is on. For a shared-in library, a board of the workspace that shares it.
board_name string That board’s name.
default_departments array of strings Departments new SOPs in this library are for by default: any of hr_people, operations, finance, sales, marketing. Can be [].
sop_count integer SOPs in the library that aren’t archived.
shared boolean true when the library is shared into this workspace from another one. You can read its SOPs but not create SOPs in it.
shared_from string or null The name of the workspace that shares it; null for the workspace’s own libraries.
created_at timestamp When the library was created.

Errors

Status Code When
405 method_not_allowed POST instead of GET.

Authentication, plan and rate limit errors apply to every endpoint; see Errors.