Slog API
Slog is a headless project management system accessible via REST API and the Model Context Protocol (MCP).Base URL
Authentication
All resource endpoints require authentication via an Oauth Bearer token or an API key.API key authentication
API keys are automatically created by the CLI. They can also be used using the/api-keys endpoints to create additional keys with custom names and expiration dates. To authenticate with an API key include it in the Authorization header, e.g.
curl. The colon after the key prevents curl from prompting for a password as well.
Slog-Api-Key header:
Oauth authentication
Oauth tokens are generally created and handled by other services. If you have a token you can use it directly for API calls using theAuthorization header:
Response Format
Single resources are wrapped in a key matching the resource type. Lists use the plural name with apagination object.
Resources
| Resource | Description |
|---|---|
| Tasks | Primary unit of work |
| Projects | Groups tasks together |
| Teams | Organizational unit; defines task reference prefixes (e.g. PLAT-42) |
| Milestones | Time-boxed goals |
Query Parameters
All list endpoints support the following query parameters.Field Selection
Request only the fields you need. Nested relations use brace notation.id, identifier, title, status for tasks).
Return a single record by ID or reference
Filtering
Filters use the formfilter[op][field]=value.
| Operator | Description |
|---|---|
eq | Exact match |
neq | Not equal |
gt / gte | Greater than / greater than or equal |
lt / lte | Less than / less than or equal |
contains | Case-insensitive substring |
startsWith | Case-insensitive prefix |
in | Match any of a comma-separated list |
Sorting
Sorts use the formsort[field]=direction. Multiple sorts are applied in order.
Pagination
All list endpoints use cursor-based pagination.| Parameter | Default | Max | Description |
|---|---|---|---|
limit | 50 | 250 | Number of results per page |
cursor | — | — | ID of the last item from the previous page |
pagination.nextCursor is null when there are no more pages.
Batch Requests
Fetch multiple resources in a single round-trip.{ "error": { "message": "...", "code": "..." } } and the rest still succeed.
Batch supports GET-style requests only (list, get, list sub-resource).
IDs and Identifiers
Every record has anid (a sortable UPID string, e.g. task_01jq...). Tasks additionally have a human-readable identifier generated from the team prefix and an incrementing sequence number (e.g. PLAT-42).
The GET /tasks/:id endpoint accepts either format:
Authentication Endpoints
These endpoints are outside the main resource router and do not require a pre-existing token.OAuth
Current User
Logout
204 No Content.
API Key Endpoints
API keys allow programmatic access without OAuth. They are created per-user and scoped to your account.List Keys
Create Key
expiresAt is optional. The full key is returned only in this response:
Delete Key
204 No Content.