Semaphor

List dashboards

Returns all dashboards the authenticated user can access in the project. Results include permission flags (canEdit, canShare, canDelete) and ownership metadata for each dashboard.

Filters only narrow the dashboards already available to the authenticated user and project-scoped access token. Use repeated tag parameters for exact tag matching and search for title/description text search.

Ordering. Dashboards come newest update first (updatedAt descending, then id ascending). With updatedSince, they come oldest update first (updatedAt ascending, then id ascending), so you can sync incrementally from the last updatedAt you saw.

Paging. Two paging modes are supported. Use cursor to walk or sync the whole list: every response carries nextCursor; pass it back as cursor for the next page, or stop when it is null. Cursors are opaque; don't build or edit them. Use offset for page-numbered views that jump to a page. offset can't be combined with cursor or updatedSince.

ownership.sharedCount counts the dashboard's grants: organization, project, groups, people, tenants and all tenants.

Favorites. Every dashboard carries isFavorite and favoritedAt for the person the token names. Add favorite=true to list only that person's favorites, in the same order and with the same paging. A favorite never adds a dashboard the person can't open. viewer says whether this session can change favorites: read-only while signed in as someone else.

GET
/api/management/v1/dashboards

Authorization

BearerAuth
AuthorizationBearer <token>

A project-scoped or dashboard-scoped access token. Generate one via the Token API using your project ID and project secret.

In: header

Query Parameters

tag?array<>

Exact dashboard tags to match. Repeat the parameter for multiple tags, for example ?tag=product:inbound-ticketing&tag=audience:operations. Comma-separated values are not supported.

Items1 <= items <= 20
tagMatch?string

Whether a dashboard must contain all supplied tags or any supplied tag. Requires at least one tag.

Default"all"
Value in"all" | "any"
kind?string

Filter by kind. Every dashboard has kind dashboard; Data Apps are no longer supported, so data_app returns an empty page.

Value in"dashboard" | "data_app"
origin?string

Who created the dashboard: an organization user, a tenant user, or no recorded creator (unknown: created before creators were recorded, or the creator was deleted).

Value in"org_created" | "tenant_created" | "unknown"
search?string

Case-insensitive search against dashboard title and description.

limit?integer

Maximum number of dashboards to return. Use a canonical unsigned base-10 integer from 1 through 500.

Default500
Range1 <= value <= 500
offset?integer

Number of matching dashboards to skip. Use a canonical unsigned base-10 safe integer. Returns 400 when sent with cursor or updatedSince.

Default0
Range0 <= value <= 9007199254740991
cursor?string

The nextCursor from a previous response, to continue that listing. Send it with the same filters and the same updatedSince as the request that returned it.

updatedSince?string

Return dashboards updated at or after this ISO 8601 timestamp, oldest update first.

Formatdate-time
idsOnly?boolean

Return only dashboard IDs, the total and nextCursor.

Defaultfalse
favorite?string

Return only the dashboards the person the token names has added to their favorites. Omit it to list every dashboard; any other value returns 400. Combines with every other filter and with idsOnly.

Value in"true"

Response Body

application/json

application/json

application/json

application/json

curl -X get "https://semaphor.cloud/api/management/v1/dashboards"
{
  "dashboards": [
    {
      "id": "string",
      "kind": "string",
      "tags": [
        "string"
      ],
      "title": "string",
      "description": "string",
      "projectId": "string",
      "tenantId": "string",
      "isPrivate": true,
      "isPublic": true,
      "version": "string",
      "permissions": {
        "canEdit": true,
        "canShare": true,
        "canDelete": true
      },
      "ownership": {},
      "isFavorite": true,
      "favoritedAt": "2019-08-24T14:15:22Z"
    }
  ],
  "total": 0,
  "nextCursor": "string",
  "organizationAppearance": {},
  "viewer": {
    "access": "read-write",
    "accessReason": "impersonating"
  }
}
{
  "error": "string",
  "code": "string",
  "errorCode": "string",
  "details": {},
  "success": true
}
{
  "error": "string",
  "code": "string",
  "errorCode": "string",
  "details": {},
  "success": true
}
{
  "error": "string",
  "code": "string",
  "errorCode": "string",
  "details": {},
  "success": true
}