Skip to content

List projects with pagination, search, and sorting

GET
/api/projects

Paginated project listing for SPA consumption. Supports substring search over name and description, whitelist-validated sorting, and pagy-backed pagination (default 25 per page, maximum 100). Unknown sort fields are silently ignored. Requires authentication. Returns 400 when the requested page is out of range. Timestamps on this endpoint are ISO 8601 (render_as_json path), unlike the string-rendered project pages.

Authorizations

tokenAuth

Personal access token authentication. Send via Authorization header: Authorization: Token vulcan_xxx. Tokens are SHA-256 hashed server-side (never stored in plaintext). Scopes: read (GET), write (mutations), admin (everything). Create tokens via Settings → API Tokens in the web UI.

Type
HTTP (token)

Parameters

Query Parameters

q

Case-insensitive substring filter matched against project name and description.

Type
string
Example"Photon"
sort

Sort field. Unknown fields are silently ignored.

Type
string
Valid values
"name""created_at""updated_at"
Example"name"
order

Sort direction. Defaults to asc when sort is applied.

Type
string
Valid values
"asc""desc"
Example"asc"
page

Page number (1-based). Out-of-range pages return 400.

Type
integer
Example1
per_page

Records per page (default 25, capped at 100).

Type
integer
Example25

Responses

Paginated project rows

application/json
JSON
{
  
"rows": [
  
  
{
  
  
  
"id": 34,
  
  
  
"name": "Photon 3",
  
  
  
"description": null,
  
  
  
"visibility": "discoverable",
  
  
  
"memberships_count": 2,
  
  
  
"admin_name": "Demo Admin",
  
  
  
"admin_email": "admin@example.org",
  
  
  
"created_at": "2026-05-30T14:06:03.797Z",
  
  
  
"updated_at": "2026-05-30T14:06:28.292Z"
  
  
}
  
],
  
"pagination": {
  
  
"page": 1,
  
  
"per_page": 25,
  
  
"total": 1
  
}
}

Playground

Server
Authorization
Variables
Key
Value

Samples

Powered by VitePress OpenAPI

Part of the MITRE Security Automation Framework (SAF)