Gnoll Docs Back to Dashboard
Quick Start
Getting Started

Authentication

All API requests require authentication. Gnoll supports cookie-based auth (for the web UI) and API key auth (for scripts, agents, and integrations).

API Key Authentication

The recommended method for programmatic access. API keys are passed via the Authorization header:

Authorization: Bearer gkey_your_key_here

Creating API Keys

  1. Go to API Keys in the sidebar
  2. Click Create API Key
  3. Give it a name
  4. Select the scopes it should have access to
  5. Optionally restrict it to specific projects
Store your key securely. The full key is only shown once at creation time. If lost, delete the key and create a new one.

Scopes

API keys are authorized by scopes. Each scope grants access to specific resources and actions:

ScopeGrants Access To
issues:readList and view issues
issues:writeCreate, update, close, reopen, delete issues
deps:readView dependencies and dependency graph
deps:writeAdd and remove dependencies
comments:readList and view comments
comments:writeCreate and delete comments
epics:readView epic-specific data
epics:writeManage epic relationships
labels:readList labels and categories
labels:writeCreate, update, delete labels; attach/detach from issues
search:readFull-text search
events:readView activity events
dashboard:readView dashboard statistics

Project Scoping

API keys can be restricted to specific projects. When a key is project-scoped, it can only access issues within those projects.

Set the active project context using a cookie:

Cookie: ProjectId=your_project_id

Or the key's project restrictions will be applied automatically.

Response Format

All API responses are JSON. Successful responses return the data directly. Error responses follow this format:

{
  "error": "Description of what went wrong",
  "code": "ERROR_CODE",
  "status": 400
}

Pagination

List endpoints support pagination with these query parameters:

ParameterDefaultDescription
page1Page number (1-based)
pageSize25Items per page (max 100)

Paginated responses include:

{
  "items": [...],
  "totalCount": 142,
  "page": 1,
  "pageSize": 25,
  "totalPages": 6
}

Base URL

All API endpoints are prefixed with /api/v1/. For example:

GET https://your-instance.com/api/v1/issues